server.py

Code Hygiene Score: 75

Keine Issues gefunden.

Dependencies 15

Funktionen 1

Code

#!/usr/bin/env python3
"""MCP-DB Server - Sichere Datenbankzugriffe fuer Claude Code."""

import logging
import sys
from pathlib import Path

# Logging nur zu stderr (wichtig fuer MCP!)
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
    handlers=[logging.StreamHandler(sys.stderr)],
)
logger = logging.getLogger(__name__)

# .env laden
from dotenv import load_dotenv

load_dotenv(Path(__file__).parent / ".env")

# MCP importieren
from mcp.server.fastmcp import FastMCP

# Tools importieren
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 - 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."""
    logger.info("Starting MCP-DB Server")
    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")


if __name__ == "__main__":
    main()
← Übersicht