{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/mcp-servers\/mcp_db\/server.py",
"content": "#!\/usr\/bin\/env python3\n\"\"\"MCP-DB Server - Sichere Datenbankzugriffe fuer Claude Code.\"\"\"\n\nimport logging\nimport sys\nfrom pathlib import Path\n\n# Logging nur zu stderr (wichtig fuer MCP!)\nlogging.basicConfig(\n level=logging.INFO,\n format=\"%(asctime)s - %(levelname)s - %(message)s\",\n handlers=[logging.StreamHandler(sys.stderr)],\n)\nlogger = logging.getLogger(__name__)\n\n# .env laden\nfrom dotenv import load_dotenv\n\nload_dotenv(Path(__file__).parent \/ \".env\")\n\n# MCP importieren\nfrom mcp.server.fastmcp import FastMCP\n\n# Tools importieren\nfrom tools.databases_tool import register_databases_tool\nfrom tools.delete_tool import register_delete_tool\nfrom tools.describe_tool import register_describe_tool\nfrom tools.execute_tool import register_execute_tool\nfrom tools.insert_tool import register_insert_tool\nfrom tools.schema_tool import register_schema_tool\nfrom tools.select_tool import register_select_tool\nfrom tools.stats_tool import register_stats_tool\nfrom tools.tables_tool import register_tables_tool\nfrom tools.update_tool import register_update_tool\n\n# MCP Server initialisieren\nmcp = FastMCP(\"mcp-db\")\n\n# Tools registrieren - Read-Only\nregister_select_tool(mcp)\nregister_schema_tool(mcp)\nregister_stats_tool(mcp)\nregister_describe_tool(mcp)\nregister_databases_tool(mcp)\nregister_tables_tool(mcp)\n\n# Tools registrieren - Write Operations\nregister_execute_tool(mcp)\nregister_insert_tool(mcp)\nregister_update_tool(mcp)\nregister_delete_tool(mcp)\n\n\ndef main():\n \"\"\"Server Entrypoint.\"\"\"\n logger.info(\"Starting MCP-DB Server\")\n logger.info(\"Read-Only: db_select, db_schema, db_stats, db_describe, db_databases, db_tables\")\n logger.info(\"Write: db_execute, db_insert, db_update, db_delete\")\n mcp.run(transport=\"stdio\")\n\n\nif __name__ == \"__main__\":\n main()\n"
}
}
{
"tool_response": {
"type": "update",
"filePath": "\/var\/www\/mcp-servers\/mcp_db\/server.py",
"content": "#!\/usr\/bin\/env python3\n\"\"\"MCP-DB Server - Sichere Datenbankzugriffe fuer Claude Code.\"\"\"\n\nimport logging\nimport sys\nfrom pathlib import Path\n\n# Logging nur zu stderr (wichtig fuer MCP!)\nlogging.basicConfig(\n level=logging.INFO,\n format=\"%(asctime)s - %(levelname)s - %(message)s\",\n handlers=[logging.StreamHandler(sys.stderr)],\n)\nlogger = logging.getLogger(__name__)\n\n# .env laden\nfrom dotenv import load_dotenv\n\nload_dotenv(Path(__file__).parent \/ \".env\")\n\n# MCP importieren\nfrom mcp.server.fastmcp import FastMCP\n\n# Tools importieren\nfrom tools.databases_tool import register_databases_tool\nfrom tools.delete_tool import register_delete_tool\nfrom tools.describe_tool import register_describe_tool\nfrom tools.execute_tool import register_execute_tool\nfrom tools.insert_tool import register_insert_tool\nfrom tools.schema_tool import register_schema_tool\nfrom tools.select_tool import register_select_tool\nfrom tools.stats_tool import register_stats_tool\nfrom tools.tables_tool import register_tables_tool\nfrom tools.update_tool import register_update_tool\n\n# MCP Server initialisieren\nmcp = FastMCP(\"mcp-db\")\n\n# Tools registrieren - Read-Only\nregister_select_tool(mcp)\nregister_schema_tool(mcp)\nregister_stats_tool(mcp)\nregister_describe_tool(mcp)\nregister_databases_tool(mcp)\nregister_tables_tool(mcp)\n\n# Tools registrieren - Write Operations\nregister_execute_tool(mcp)\nregister_insert_tool(mcp)\nregister_update_tool(mcp)\nregister_delete_tool(mcp)\n\n\ndef main():\n \"\"\"Server Entrypoint.\"\"\"\n logger.info(\"Starting MCP-DB Server\")\n logger.info(\"Read-Only: db_select, db_schema, db_stats, db_describe, db_databases, db_tables\")\n logger.info(\"Write: db_execute, db_insert, db_update, db_delete\")\n mcp.run(transport=\"stdio\")\n\n\nif __name__ == \"__main__\":\n main()\n",
"structuredPatch": [
{
"oldStart": 1,
"oldLines": 11,
"newStart": 1,
"newLines": 11,
"lines": [
" #!\/usr\/bin\/env python3",
"-\"\"\"MCP-DB Server - Sichere Datenbankzugriffe für Claude Code.\"\"\"",
"+\"\"\"MCP-DB Server - Sichere Datenbankzugriffe fuer Claude Code.\"\"\"",
" ",
" import logging",
" import sys",
" from pathlib import Path",
" ",
"-# Logging nur zu stderr (wichtig für MCP!)",
"+# Logging nur zu stderr (wichtig fuer MCP!)",
" logging.basicConfig(",
" level=logging.INFO,",
" format=\"%(asctime)s - %(levelname)s - %(message)s\","
]
},
{
"oldStart": 22,
"oldLines": 7,
"newStart": 22,
"newLines": 6,
"lines": [
" from mcp.server.fastmcp import FastMCP",
" ",
" # Tools importieren",
"-sys.path.insert(0, str(Path(__file__).parent))",
" from tools.databases_tool import register_databases_tool",
" from tools.delete_tool import register_delete_tool",
" from tools.describe_tool import register_describe_tool"
]
}
],
"originalFile": "#!\/usr\/bin\/env python3\n\"\"\"MCP-DB Server - Sichere Datenbankzugriffe für Claude Code.\"\"\"\n\nimport logging\nimport sys\nfrom pathlib import Path\n\n# Logging nur zu stderr (wichtig für MCP!)\nlogging.basicConfig(\n level=logging.INFO,\n format=\"%(asctime)s - %(levelname)s - %(message)s\",\n handlers=[logging.StreamHandler(sys.stderr)],\n)\nlogger = logging.getLogger(__name__)\n\n# .env laden\nfrom dotenv import load_dotenv\n\nload_dotenv(Path(__file__).parent \/ \".env\")\n\n# MCP importieren\nfrom mcp.server.fastmcp import FastMCP\n\n# Tools importieren\nsys.path.insert(0, str(Path(__file__).parent))\nfrom tools.databases_tool import register_databases_tool\nfrom tools.delete_tool import register_delete_tool\nfrom tools.describe_tool import register_describe_tool\nfrom tools.execute_tool import register_execute_tool\nfrom tools.insert_tool import register_insert_tool\nfrom tools.schema_tool import register_schema_tool\nfrom tools.select_tool import register_select_tool\nfrom tools.stats_tool import register_stats_tool\nfrom tools.tables_tool import register_tables_tool\nfrom tools.update_tool import register_update_tool\n\n# MCP Server initialisieren\nmcp = FastMCP(\"mcp-db\")\n\n# Tools registrieren - Read-Only\nregister_select_tool(mcp)\nregister_schema_tool(mcp)\nregister_stats_tool(mcp)\nregister_describe_tool(mcp)\nregister_databases_tool(mcp)\nregister_tables_tool(mcp)\n\n# Tools registrieren - Write Operations\nregister_execute_tool(mcp)\nregister_insert_tool(mcp)\nregister_update_tool(mcp)\nregister_delete_tool(mcp)\n\n\ndef main():\n \"\"\"Server Entrypoint.\"\"\"\n logger.info(\"Starting MCP-DB Server\")\n logger.info(\"Read-Only: db_select, db_schema, db_stats, db_describe, db_databases, db_tables\")\n logger.info(\"Write: db_execute, db_insert, db_update, db_delete\")\n mcp.run(transport=\"stdio\")\n\n\nif __name__ == \"__main__\":\n main()\n"
}
}