MCP 数据库后端服务器(MCP Server for Multi-Database Connector)

使用说明(Markdown 格式)

  • 项目简介

    • 该项目实现一个基于 MCP 的后端服务器,能够托管和管理 Resources、Tools、Prompts,提供数据访问、外部功能调用以及提示模板的渲染能力。通过 STDIO 和 HTTP API 两种传输模式,与 LLM 客户端进行安全、可扩展的上下文服务交互。
  • 主要功能点

    • MCP 协议核心:实现对 MCP 请求的处理、注册工具与渲染响应的能力,支持标准的 Tools、Prompts、Resources 等资源类型。
    • 双模式传输:提供 STDIO 模式(通过子进程间通信与 MCP 客户端对接)以及 HTTP API + SSE(Server-Sent Events)模式,覆盖多场景接入需求。
    • 多数据库支持:集成 MSSQL 与 PostgreSQL 的连接与访问能力,含同步与异步查询入口。
    • 工具注册与执行:内置 Tool Registry,注册并执行多种数据库工具(查询、模式分析、依赖分析、缓存管理、导出等)。
    • 模式缓存与预加载:提供 LFU+LRU+TTL 的多级缓存,以及静态 JSON 配置驱动的 Schema 预加载,提升响应速度与降低成本。
    • 安全与校验:包含 SQL 安全验证器、输入验证器,阻断危险查询并防止注入攻击。
    • API 与文档:提供 REST API 路由、OpenAPI 文档,以及可拓展的中间件(限流、CORS、GZIP 等)。
  • 安装步骤

    • 克隆仓库
    • 安装依赖并配置环境变量(包括数据库信息、缓存、以及 API 配置等)
    • 按需选择传输模式启动服务器
  • 服务器配置(MCP 客户端需要配置的最小信息,JSON 形式,包含 server name、command、args 等)

    • 服务器名称(server name)用于标识 MCP 服务
    • 启动命令(command)及参数(args)用于客户端连接并调用 MCP 服务器
    • 工作目录(cwd)用于运行服务器的工作路径
    • 环境变量配置(env),如数据库类型、主机、端口、账号、密码等

    参考示例(JSON 配置结构描述,非代码块,便于理解):

    • mcpServers: 一个字典,键为服务器标识(如 mcp-db),值为一个对象,包含以下字段
      • command: "python"(启动命令)
      • args: ["-m", "server"](模块启动参数,MCP 服务器模块为 server,基于 src/server.py 实现)
      • cwd: "/path/to/MCP_DB/src"(服务器工作目录,指向源码中的 src 目录)
      • env:
        • DB_TYPE: "postgresql"(数据库类型,可为 mssql 或 postgresql)
        • DB_HOST: "localhost"
        • DB_NAME: "your_database"
        • DB_USER: "your_username"
        • DB_PASSWORD: "your_password"
        • DB_PORT: "5432"(PostgreSQL 的端口,或 1433 for MSSQL)
        • SCHEMA_ENABLE_CACHE: "true"(开启模式缓存)
    • 以上示例信息适用于 MCP 客户端读取并建立连接,MCP 客户端本身在此处不需要额外的实现细节。
  • 基本使用方法

    • STDIO 模式(默认):在源码目录中执行 python -m server,用 MCP 客户端通过 stdio 与服务器对接。
    • HTTP 模式:执行 python -m main --http(或通过配置启动 HTTP/REST API 与 SSE 端点),客户端可通过 http://<host>:<port>/api/v1/... 调用接口。
    • 客户端通过 MCP 协议向服务器请求读取资源、调用工具、获取 Prompts 等,并接收 JSON-RPC 风格的响应。
  • 运行与测试要点

    • 确认数据库连接信息正确配置并可访问(MS SQL Server / PostgreSQL)。
    • 如使用缓存与预加载,请确保 schemas_config/ 相关配置存在并可被读取。
    • 使用 REST API 端点进行基本健康、查询、模式、依赖、缓存等功能的端到端测试。
  • 注意事项

    • 该仓库实现较为完整,包含多种模块(数据库连接、缓存、Schema introspection、工具注册、MCP 协议实现、HTTP API、SSE 支持等),适合在本地、私有云或企业环境中进行扩展与集成。
    • 部署前请根据实际数据库环境调整环境变量与配置文件,确保安全性(密码、密钥等的保护)。

服务器信息