多数据库MCP服务器

支持多远程数据库的模型上下文协议服务器,采用无状态设计,每次调用需指定数据库。

  • by N0I0C0K
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 N0I0C0K/multidb-mcp

使用说明

MultiDB MCP服务器

支持多个远程数据库的MCP(模型上下文协议)服务器。无状态设计-在每次调用时指定数据库。

特性

  • 🔄 同时连接到多个数据库(MySQL/PostgreSQL)
  • 🎯 无状态设计-无需连接状态管理
  • 🔍 查询、模式检查、数据库管理
  • 🛡️ 通过配置文件管理连接信息
  • ✅ 用户确认数据修改操作

安装

推荐:使用uvx

uvx multidb-mcp

MCP配置示例:

{
  "multidb-mcp": {
    "type": "stdio",
    "command": "uvx",
    "args": [
      "multidb_mcp"
    ],
    "env": {
      "DATABASE_CONFIG_PATH": "xxx/database.json",
      "DEFAULT_MAX_ROWS_AFFECTED": "1"
    }
  }
}

其他的方法

使用紫外线:

uv venv && source .venv/bin/activate
uv pip install -e .
multidb-mcp

使用pip:

pip install -e .
multidb-mcp

配置

创建 config.json 文件:

{
  "databases": {
    "dev1": {
      "type": "mysql",
      "host": "localhost",
      "port": 3306,
      "user": "root",
      "password": "password",
      "database": "dev_db"
    },
    "test": {
      "type": "postgresql",
      "host": "localhost",
      "port": 5432,
      "user": "postgres",
      "password": "password",
      "database": "test_db"
    }
  }
}

复制自 config.example.json:

cp config.example.json config.json  # Edit with actual connection details

配置文件优先级

  1. 命令行参数: --config /path/to/config.json
  2. 环境变量: DATABASE_CONFIG_PATH=/path/to/config.json
  3. 默认路径: ./config.json

用法

启动服务器

# Using default config
multidb-mcp

# Using custom config
multidb-mcp --config /path/to/config.json

# Using environment variable
export DATABASE_CONFIG_PATH=/path/to/config.json && multidb-mcp

# Development mode
fastmcp dev multidb_mcp/server.py

运行演示

python demo.py

MCP工具

1.列表_数据库

列出所有已配置的数据库。

2.execute_query

在指定的数据库上执行SQL查询。对于数据修改操作(插入/更新/删除),需要用户确认。

参数 类型 说明
connection_name string 配置文件中的数据库连接名称
query string SQL查询语句

3.列表表

列出指定数据库中的所有表。

参数 类型 说明
connection_name string 配置文件中的数据库连接名称

4.描述表

获取表结构详细信息(字段、类型、约束)。

参数 类型 说明
connection_name string 配置文件中的数据库连接名称
table_name string 表名

无状态设计

每个工具调用都明确指定要操作的数据库。优点:

  • ✅ 无服务器端状态管理
  • ✅ 无干扰的并发多客户端接入
  • ✅ 清晰、独立的通话
  • ✅ 非常适合分布式/无服务器环境
  • ✅ 消除状态不一致问题

许可证

有关详细信息,请参阅LICENSE文件。