Legion-MCP 数据库查询服务器
一个帮助人们使用 Query Runner 访问和查询数据库中数据的服务器,集成了 Model Context Protocol (MCP) Python SDK。支持的数据库包括: PostgreSQL Redshift MySQL Microsoft SQL Server Google APIs Amazon Web Services(通过 boto3) CockroachDB SQLite
服务介绍
数据库 MCP 服务器(由 Legion AI 提供)
一个使用 Legion Query Runner 并集成 Model Context Protocol (MCP) Python SDK 来帮助人们访问和查询数据库中数据的服务器。
功能
- 通过 Legion Query Runner 访问数据库
- 为 AI 助手提供 Model Context Protocol (MCP) 支持
- 将数据库操作暴露为 MCP 资源、工具和提示
- 多种部署选项(独立 MCP 服务器,FastAPI 集成)
- 查询执行和结果处理
- 通过环境变量、命令行参数或 MCP 设置 JSON 进行灵活配置
支持的数据库
| 数据库 | DB_TYPE 代码 |
|---|---|
| PostgreSQL | pg |
| Redshift | redshift |
| CockroachDB | cockroach |
| MySQL | mysql |
| RDS MySQL | rds_mysql |
| Microsoft SQL Server | mssql |
| Big Query | bigquery |
| Oracle DB | oracle |
| SQLite | sqlite |
我们使用 Legion Query Runner 库作为连接器。您可以在他们的 api 文档 中找到更多信息。
什么是 MCP?
Model Context Protocol (MCP) 是一种用于在 AI 应用程序中维护上下文的规范。此服务器使用 MCP Python SDK 来:
- 将数据库操作暴露为 AI 助手的工具
- 提供数据库模式和元数据作为资源
- 生成有用的数据库操作提示
- 启用与数据库的状态交互
安装与配置
必需参数
所有安装方法都需要两个参数:
- DB_TYPE:数据库类型代码(见上表)
- DB_CONFIG:用于数据库连接的 JSON 配置字符串
DB_CONFIG 格式因数据库类型而异。请参阅 API 文档 获取特定于数据库的配置详情。
安装方法
选项 1:使用 UV(推荐)
当使用 uv 时,不需要特定的安装步骤。我们将直接使用 uvx 来运行 database-mcp。
UV 配置示例:
REPLACE DB_TYPE and DB_CONFIG with your connection info.
{
"mcpServers": {
"database-mcp": {
"command": "uvx",
"args": [
"database-mcp"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
},
"disabled": true,
"autoApprove": []
}
}
}
选项 2:使用 PIP
通过 pip 安装:
pip install database-mcp
PIP 配置示例:
{
"mcpServers": {
"database": {
"command": "python",
"args": [
"-m", "database_mcp",
"--repository", "path/to/git/repo"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
}
}
}
}
运行服务器
开发模式
mcp dev mcp_server.py
生产模式
python mcp_server.py
配置方法
环境变量
export DB_TYPE="pg" # or mysql, postgresql, etc.
export DB_CONFIG='{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
mcp dev mcp_server.py
命令行参数
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
或者使用 UV:
uv mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
暴露的 MCP 功能
资源
| 资源 | 描述 |
|---|---|
schema://all |
获取完整的数据库模式 |
工具
| 工具 | 描述 |
|---|---|
execute_query |
执行 SQL 查询并以 markdown 表格形式返回结果 |
execute_query_json |
执行 SQL 查询并以 JSON 形式返回结果 |
get_table_columns |
获取指定表的列名 |
get_table_types |
获取指定表的列类型 |
get_query_history |
获取最近的查询历史 |
提示
| 提示 | 描述 |
|---|---|
sql_query |
创建针对数据库的SQL查询 |
explain_query |
解释SQL查询的作用 |
optimize_query |
优化SQL查询以提高性能 |
开发
测试
uv pip install -e ".[dev]"
pytest
发布
rm -rf dist/ build/ *.egg-info/ && python -m build
python -m build
python -m twine upload dist/*
许可证
本仓库采用GPL许可证