Token导航 LogoToken导航

MCP Server · 数据服务

Multi Db MCP

一个基于MCP协议的HTTP服务器,提供MySQL和MSSQL数据库的查询工具,支持连接池、认证和速率限制。

stdio官方级别未说明来源级核验工具 6
数据库工具多数据库支持Python认证服务

快速开始

作者 / 组织
MdwebbSE
提供方
MdwebbSE
运行时
Python

工具数量

6

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Multi Db MCP 属于数据服务类 MCP Server,公开资料标注 6 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

数据服务

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 6 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

多数据库MCP服务器

一种模型上下文协议(MCP)HTTP服务器,为MySQL和MSSQL数据库提供数据库查询工具,具有连接池、身份验证和速率限制。

特性

  • 多数据库支持:连接MySQL和MSSQL数据库
  • MCP协议:通过模型上下文协议公开数据库工具
  • 连接池:高效的连接重用,以获得更好的性能
  • 认证:承载令牌身份验证(可配置)
  • 速率限制:内置速率限制以防止滥用
  • 只读模式:可选只读模式以确保安全
  • 行限制:每个查询可配置的最大行数
  • 运输安全:DNS重新绑定保护和CORS支持

Python环境设置

先决条件

  • python:3.9或更高版本

设置虚拟环境

创建虚拟环境(推荐):

# Navigate to the project directory
cd /path/to/multi-db-mcp

# Create virtual environment
python -m venv venv

# Activate
source venv/bin/activate

验证激活:

# Should show (venv) prefix
python --version

安装依赖项

# Upgrade pip first (recommended)
pip install --upgrade pip

# Install required packages
pip install -r requirements.txt

# Verify installation
pip list | grep -E "pymysql|mssql|starlette|mcp|uvicorn"

______________________________________________________________________

运行服务器

uvicorn server:app --host 0.0.0.0 --port 8001

服务安装

作为Linux服务运行(systemd)

  1. 创建systemd服务文件:
   sudo nano /etc/systemd/system/multi-db-mcp.service
  1. 添加以下内容:
   [Unit]
   Description=Multi-Database MCP Server
   After=network.target

   [Service]
   Type=simple
   User=www-data
   Group=www-data
   WorkingDirectory=/path/to/multi-db-mcp
   Environment="PATH=/path/to/multi-db-mcp/venv/bin"
   Environment="DB_SERVERS_CONFIG=/path/to/multi-db-mcp/db_servers.json"
   Environment="DB_READ_ONLY=true"
   ExecStart=/path/to/multi-db-mcp/venv/bin/uvicorn server:app --host 0.0.0.0 --port 8000
   Restart=always
   RestartSec=10

   [Install]
   WantedBy=multi-user.target
  1. 安装并启用该服务:
   sudo chown -R www-data:www-data /path/to/multi-db-mcp

   sudo systemctl daemon-reload
   sudo systemctl enable multi-db-mcp
   sudo systemctl start multi-db-mcp
  1. 检查服务状态:
   sudo systemctl status multi-db-mcp
   sudo journalctl -u multi-db-mcp -f

快速开始

1.配置数据库服务器

编辑 db_servers.json 要配置数据库连接,请执行以下操作:

{
  "transport_security": {
    "enable_dns_rebinding_protection": true,
    "allowed_hosts": ["localhost:*", "127.0.0.1:*"],
    "allowed_origins": ["http://localhost:*", "http://127.0.0.1:*"]
  },
  "servers": {
    "main-mysql": {
      "engine": "mysql",
      "host": "your-mysql-host",
      "port": 3306,
      "user": "username",
      "password": "password",
      "allowed_databases": ["mydb"],
      "allowed_tables": {
        "mydb": ["users", "orders"]
      },
      "connect_timeout": 10
    },
    "main-mssql": {
      "engine": "mssql",
      "host": "your-mssql-host",
      "port": 1433,
      "user": "username",
      "password": "password",
      "allowed_databases": ["mydb"],
      "encrypt": true,
      "trust_server_certificate": false,
      "connect_timeout": 10
    }
  }
}
配置选项
选项必填说明
engine是数据库引擎: mysql 或 mssql
host是数据库服务器主机名
port是数据库服务器端口
user是身份验证用户名
password是身份验证密码
allowed_databases否此服务器可以访问的数据库列表
allowed_tables否将数据库名称映射到允许的表列表的对象。限制 preview_table 和 select_where 工具到特定表格。
connect_timeout否连接超时(秒)(默认值:10)
encrypt否启用加密(仅限MSSQL)
trust_server_certificate否信任服务器证书(仅MSSQL)

2.环境变量

变量默认值描述
DB_SERVERS_CONFIG./db_servers.json配置文件的路径
DB_READ_ONLYtrue启用只读模式
DB_MAX_ROWS200每个查询返回的最大行数
DB_POOL_MAX_CONNECTIONS10每个池的最大连接数
DB_POOL_MIN_CONNECTIONS2每个池的最小连接数
DB_POOL_RECYCLE_SECONDS3600连接回收时间
MCP_BEARER_TOKEN(无)用于身份验证的承载令牌
RATE_LIMIT_REQUESTS100每个费率限制窗口的请求
RATE_LIMIT_WINDOW60速率限制窗口(秒)

可用的MCP工具

list_tables

列出数据库中的所有表。

参数:

  • db_server (可选):配置中的数据库服务器名称
  • database (可选):数据库名称
  • schema (可选):架构名称(对于MSSQL,默认为“dbo”)

describe_table

获取表的列信息。

参数:

  • table_name:表的名称
  • db_server (可选):数据库服务器名称
  • database (可选):数据库名称
  • schema (可选):架构名称

run_query

执行SQL查询。

参数:

  • sql:要执行的SQL查询
  • db_server (可选):数据库服务器名称
  • database (可选):数据库名称

注: 在只读模式下,只允许SELECT/SHOW/DESCRIBE/EXPLAIN/WITH查询。

preview_table

预览表中的行。

参数:

  • table_name:表的名称
  • limit (可选):行数(默认值:50,最大值:200)
  • db_server (可选):数据库服务器名称
  • database (可选):数据库名称

select_where

选择带有过滤器的行。

参数:

  • table_name:表的名称
  • filters:列字典=值过滤器
  • limit (可选):行数(默认值:50,最大值:200)
  • db_server (可选):数据库服务器名称
  • database (可选):数据库名称

list_columns

列出表的列。

参数:

  • table_name:表的名称
  • db_server (可选):数据库服务器名称
  • database (可选):数据库名称
  • schema (可选):架构名称

get_current_database

从请求标头中获取默认的db_server和数据库。

API终点

端点描述
GET /健康检查-返回服务器状态
GET /health使用服务器配置进行详细的健康检查
POST /MCP协议端点

认证

当 MCP_BEARER_TOKEN 已设置,除外的所有端点 / 和 /health 需要一个Bearer令牌:

curl -H "Authorization: Bearer your-token" http://localhost:8001/health

安全考虑

  • 始终使用强承载令牌(至少10个字符)
  • 确保凭据安全,永远不要承诺版本控制
  • 对数据库连接使用SSL/TLS加密
  • 考虑在生产环境中使用只读模式
  • 为您的用例配置适当的速率限制

数据库用户安全

专用数据库用户

强烈建议专门为MCP服务器创建专用数据库用户,而不是使用现有的应用程序或管理帐户。这些专用用户应该具有服务器功能所需的最小权限。

MySQL权限

对于MySQL数据库,建议使用以下最低权限:

-- Grant only necessary permissions
GRANT SELECT, SHOW VIEW, EXECUTE ON your_database.* TO 'mcp_user'@'host';

所需权限:

  • SELECT -从表中读取数据所需
  • SHOW VIEW -必需的 list_tables 工具正常工作
  • EXECUTE -如果使用存储过程,则需要

MSSQL权限

对于MSSQL数据库,建议使用以下最低权限:

-- Create a user with only necessary permissions
USE your_database;
CREATE USER 'mcp_user' FOR LOGIN 'mcp_login';
GRANT SELECT ON SCHEMA::dbo TO 'mcp_user';

所需权限:

  • SELECT 关于相关模式-从表中读取数据时需要

附加安全措施

  • 如果可能,为每个数据库创建单独的用户
  • 限制主机访问('mcp_user'@'localhost' 或特定IP)
  • 为每个数据库用户使用强而唯一的密码
  • 定期审核用户权限
  • 考虑使用数据库角色进行权限管理

输入安全免责声明

MCP服务器包括试图防止恶意代码执行的措施,包括:

  • 查询清理
  • 只读模式强制
  • 速率限制

然而, 最终,用户有责任确保提供给数据库查询的所有输入都是安全的并经过适当验证。服务器无法保证对所有形式的SQL注入或可能由复杂攻击者精心设计的恶意输入提供保护。在通过MCP服务器发送查询之前,始终在客户端验证和净化输入,特别是在接受用户生成的内容时。

项目结构

multi-db-mcp/
├── server.py           # Main HTTP server entry point
├── tools.py            # MCP tool definitions
├── db.py               # Database connections and helpers
├── config.py           # Configuration loading
├── middleware.py       # Auth and rate limiting
├── db_servers.json     # Database configuration
└── README.md           # This file

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

工具与能力

工具数量

6

资源数量

0

提示词数量

0

能力标签

数据库工具Python本地部署多数据库支持连接池认证服务速率限制

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 6 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Multi Db MCP

MCP World · 本页

6stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Multi Db MCP 怎么安装?

公开资料给出的安装命令是 python -m venv venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Multi Db MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Multi Db MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Multi Db MCP 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Multi Db MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP