使用说明
SQL MCP 服务器
一个轻量级的模型上下文协议(MCP)服务器,为GitHub Copilot和其他MCP客户端提供数据库连接功能。通过智能连接管理,可直接在本地或远程数据库上执行SQL查询。
特点/特性
- 🔌(电源插头) 多数据库支持Oracle、MySQL、PostgreSQL、SQLite
- 🔄 旋转箭头(表示循环、重复或刷新等含义) 读写分离自动读卡器/写卡器连接管理
- 🔒 表示“锁”或“安全”的符号。 事务管理自动提交/回滚处理
- ⚡(闪电符号,常用于表示速度、能量或惊人的事物) 异步操作对所有数据库操作提供全面的异步/await支持
- 🛡️(护盾符号,无实际含义,可理解为“护盾”或“防御”) 参数化查询使用参数绑定进行安全查询执行
- 📊 表格 模式内省通过MCP资源获取数据库模式信息
快速入门
-
安装依赖项
pip install -r requirements.txt -
配置数据库
cp .env.example .env # Edit .env with your database credentials -
启动服务器
python start.py # Or directly: python main.py
数据库配置
服务器根据环境变量自动检测您的数据库类型。复制 .env.example to .env 并为您的数据库进行配置:
Oracle 数据库
ORACLE_HOST=localhost
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password
ORACLE_SERVICE_NAME=ORCL
MySQL 数据库
DB_HOST=localhost
DB_USER=your_username
DB_PASS=your_password
DB_NAME=your_database
PostgreSQL 数据库
POSTGRES_HOST=localhost
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
POSTGRES_DB=your_database
SQLite 数据库
SQLITE_PATH=./database.db
读写分离
对于生产环境设置,请配置单独的读取器连接:
# MySQL example
DB_HOST=mysql-primary.example.com
DB_HOST_READER=mysql-replica.example.com
# Oracle example
ORACLE_HOST=oracle-primary.example.com
ORACLE_HOST_READER=oracle-replica.example.com
MCP 工具
服务器提供以下MCP工具:
execute_sql_query
执行一条单独的SQL查询:
{
"query": "SELECT * FROM users WHERE id = ?",
"parameters": [123],
"force_writer": false
}
execute_sql_transaction
在事务中执行多个查询:
{
"queries": [
{"query": "INSERT INTO users (name) VALUES (?)", "parameters": ["John"]},
{"query": "UPDATE users SET active = 1 WHERE name = ?", "parameters": ["John"]}
]
}
get_database_info
获取数据库配置信息:
{}
test_database_connection
测试数据库连接性:
{}
MCP资源公司
database://schema
获取完整的数据库模式信息,包括表、列和数据类型。
连接管理
该连接器智能地管理数据库连接:
- SELECT 查询 → 使用阅读器连接(如果已配置)
- 插入/更新/删除 → 使用作者连接
- 交易 → 始终使用写入连接
- 自动提交 → 提交成功事务
- 自动回滚 回滚失败的事务
发展
项目结构
sql-mcp/
├── connector.py # Core database connector (translated from connector.js)
├── main.py # FastMCP server implementation
├── start.py # Startup script with environment checking
├── requirements.txt # Python dependencies
├── .env.example # Environment configuration template
├── database.json # Database configuration documentation
└── README.md # This file
依赖项
核心依赖项:
fastmcp- MCP服务器框架uvicorn- ASGI服务器python-dotenv- 加载环境变量
数据库驱动程序(按需安装):
oracledb- Oracle 数据库aiomysql- 支持异步的MySQLasyncpg- 支持异步的PostgreSQLaiosqlite- 支持异步的SQLite
在紫外线(UV)下跑步
这个项目支持UV包管理器:
uv pip install -r requirements.txt
uv run python main.py
FastMCP 集成
这个服务器是基于FastMCP框架构建的。FastMCP的文档可以通过MCP访问,网址为:https://gofastmcp.com/mcp
安全注意事项
- 始终使用参数化查询以防止SQL注入
- 考虑为只读连接使用只读数据库用户
- 将敏感凭据存储在环境变量中,绝不要存储在代码中
- 为生产数据库使用连接加密(SSL/TLS)
许可证
这个项目是开源的。详情请参阅许可证文件。
做出贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 做出你的更改
- 如适用,请添加测试
- 提交一个拉取请求
支持
对于问题和疑问:
- 检查数据库配置
.env - 验证与数据库的连接性
test_database_connection工具 - 查看服务器日志以获取错误详情