______________________________________________________________________
标题:统一数据库MCP服务器 表情符号🗄️ 颜色来源:蓝色 颜色To:靛蓝色 sdk:docker 应用端口:7860 固定:false
统一DB MCP服务器
Unified DB MCP Server是一种以生产为中心的MCP服务,用于跨数据库模式提取和模式迁移。 它通过单个可流式传输的HTTP端点公开MCP工具。
这个项目做什么
- 使用特定于连接器的凭据连接到源数据库。
- 将架构元数据提取到规范化的内部表示中。
- 在数据库引擎之间转换架构类型。
- 将转换后的架构应用于目标数据库。
- 支持模拟运行和表过滤迁移。
支持的数据库
- Supabase
- PostgreSQL
- MySQL
- MariaDB
- SQLite
- MongoDB
- SQL Server
- 卡桑德拉
核心功能
- 用于客户端集成的MCP工具接口(游标、MCP兼容代理、自定义客户端)。
- 流式HTTP MCP端点:
/unified-db/mcp. - API调用的基于头的凭据支持。
- 使用容器健康检查进行Docker化运行时。
项目结构
unified-db-mcp-server/
├── unified_db_mcp/
│ ├── server.py # MCP server entrypoint and routes
│ ├── config.py # App host/port/path and supported DB list
│ ├── schema_migrate.py # Migration orchestration + config + conversion logic
│ ├── tools/
│ │ ├── migrate_schema_tool.py # High-level migration tool wrappers
│ │ └── schema_connector_tools.py
│ ├── database_connectors/ # Per-database connector implementations
│ └── helpers/ # Shared schema and type-conversion utilities
├── Dockerfile
├── docker-compose.yml
├── pyproject.toml
├── requirements.txt
└── README.mdMCP工具暴露
connect_databaseextract_schemaapply_schemamigrate_schema
运行时配置
核心服务器环境变量:
HOST(默认值:0.0.0.0)PORT(默认值:7860)
凭据/环境默认值在中定义 unified_db_mcp/schema_migrate.py. 在运行时,请求级凭据可以通过工具参数或请求头覆盖默认值。
API终点
GET /unified-db/mcp
- MCP发现和可流式传输端点。 - 这是唯一公开的应用程序端点。 - 需要适当 Accept 用于流式传输行为的标头。
生产部署(Docker)
构建
docker build -t unified-db-mcp .跑
docker run --rm -d \
--name unified-db-mcp \
-p 7860:7860 \
-e HOST=0.0.0.0 \
-e PORT=7860 \
unified-db-mcp验证
docker ps --filter "name=unified-db-mcp"
docker logs unified-db-mcp停止
docker stop unified-db-mcp本地开发
python -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
python -m unified_db_mcp.serverMCP端点验证
一个简单的请求可能会返回 406 Not Acceptable 如果可流式传输的标头丢失。
用途:
curl -i -H "Accept: text/event-stream" http://localhost:7860/unified-db/mcp预期响应包括:
HTTP/1.1 200 OKcontent-type: text/event-stream
操作说明
- 在对生产目标应用更改之前运行模拟迁移。
- 将凭据保存在环境变量或安全的秘密存储中。
- 避免在源文件或已提交的工件中嵌入凭据。
- 诊断迁移或连接故障时,请先使用容器日志。
