{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/opt\/mcp-servers\/mcp-db\/server.py",
"old_string": "#!\/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.select_tool import register_select_tool\nfrom tools.schema_tool import register_schema_tool\nfrom tools.stats_tool import register_stats_tool\n\n# MCP Server initialisieren\nmcp = FastMCP(\"mcp-db\")\n\n# Tools registrieren\nregister_select_tool(mcp)\nregister_schema_tool(mcp)\nregister_stats_tool(mcp)\n\n\ndef main():\n \"\"\"Server Entrypoint\"\"\"\n logger.info(\"Starting MCP-DB Server\")\n logger.info(\"Tools: db_select, db_schema, db_stats\")\n mcp.run(transport=\"stdio\")",
"new_string": "#!\/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\")"
}
}
{
"tool_response": {
"filePath": "\/opt\/mcp-servers\/mcp-db\/server.py",
"oldString": "#!\/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.select_tool import register_select_tool\nfrom tools.schema_tool import register_schema_tool\nfrom tools.stats_tool import register_stats_tool\n\n# MCP Server initialisieren\nmcp = FastMCP(\"mcp-db\")\n\n# Tools registrieren\nregister_select_tool(mcp)\nregister_schema_tool(mcp)\nregister_stats_tool(mcp)\n\n\ndef main():\n \"\"\"Server Entrypoint\"\"\"\n logger.info(\"Starting MCP-DB Server\")\n logger.info(\"Tools: db_select, db_schema, db_stats\")\n mcp.run(transport=\"stdio\")",
"newString": "#!\/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\")",
"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.select_tool import register_select_tool\nfrom tools.schema_tool import register_schema_tool\nfrom tools.stats_tool import register_stats_tool\n\n# MCP Server initialisieren\nmcp = FastMCP(\"mcp-db\")\n\n# Tools registrieren\nregister_select_tool(mcp)\nregister_schema_tool(mcp)\nregister_stats_tool(mcp)\n\n\ndef main():\n \"\"\"Server Entrypoint\"\"\"\n logger.info(\"Starting MCP-DB Server\")\n logger.info(\"Tools: db_select, db_schema, db_stats\")\n mcp.run(transport=\"stdio\")\n\n\nif __name__ == \"__main__\":\n main()\n",
"structuredPatch": [
{
"oldStart": 1,
"oldLines": 5,
"newStart": 1,
"newLines": 5,
"lines": [
" #!\/usr\/bin\/env python3",
"-\"\"\"MCP-DB Server - Sichere Datenbankzugriffe für Claude Code\"\"\"",
"+\"\"\"MCP-DB Server - Sichere Datenbankzugriffe für Claude Code.\"\"\"",
" ",
" import logging",
" import sys"
]
},
{
"oldStart": 23,
"oldLines": 23,
"newStart": 23,
"newLines": 40,
"lines": [
" ",
" # Tools importieren",
" sys.path.insert(0, str(Path(__file__).parent))",
"-from tools.select_tool import register_select_tool",
"+from tools.databases_tool import register_databases_tool",
"+from tools.delete_tool import register_delete_tool",
"+from tools.describe_tool import register_describe_tool",
"+from tools.execute_tool import register_execute_tool",
"+from tools.insert_tool import register_insert_tool",
" from tools.schema_tool import register_schema_tool",
"+from tools.select_tool import register_select_tool",
" from tools.stats_tool import register_stats_tool",
"+from tools.tables_tool import register_tables_tool",
"+from tools.update_tool import register_update_tool",
" ",
" # MCP Server initialisieren",
" mcp = FastMCP(\"mcp-db\")",
" ",
"-# Tools registrieren",
"+# Tools registrieren - Read-Only",
" register_select_tool(mcp)",
" register_schema_tool(mcp)",
" register_stats_tool(mcp)",
"+register_describe_tool(mcp)",
"+register_databases_tool(mcp)",
"+register_tables_tool(mcp)",
" ",
"+# Tools registrieren - Write Operations",
"+register_execute_tool(mcp)",
"+register_insert_tool(mcp)",
"+register_update_tool(mcp)",
"+register_delete_tool(mcp)",
" ",
"+",
" def main():",
"- \"\"\"Server Entrypoint\"\"\"",
"+ \"\"\"Server Entrypoint.\"\"\"",
" logger.info(\"Starting MCP-DB Server\")",
"- logger.info(\"Tools: db_select, db_schema, db_stats\")",
"+ logger.info(\"Read-Only: db_select, db_schema, db_stats, db_describe, db_databases, db_tables\")",
"+ logger.info(\"Write: db_execute, db_insert, db_update, db_delete\")",
" mcp.run(transport=\"stdio\")",
" ",
" "
]
}
],
"userModified": false,
"replaceAll": false
}
}