pymssql mcp
用于Microsoft SQL server数据库的MCP(模型上下文协议)服务器。使像Claude这样的人工智能助手能够通过标准化协议与SQL Server进行交互。
](https://badge.fury.io/py/pymssql-mcp)  
特性
- 自然语言查询:用简单的英语问克劳德你的数据
- 架构发现:探索表、视图、列和关系
- CRUD操作:安全地读取、插入、更新和删除行
- 存储过程:使用参数执行存储过程
- 多数据库支持:列出数据库并在数据库之间切换
- 数据导出:将查询结果导出为JSON或CSV文件
- 事务支持:开始、提交和回滚事务
- 知识持久性:Claude记得它从你的数据库中学到了什么
- 安全控制:只读模式、命令阻塞、行限制、模式限制
- 连接监视器:从挂起的连接中自动恢复
- OAuth集成:使用SSO部署为Claude.ai自定义连接器
文档
| 指南 | 说明 |
|---|---|
| 什么是MCP? | 了解MCP和pymssql-MCP |
| 安装 | 完整的安装指南 |
| 快速入门 | 10分钟后开始跑步 |
| 配置 | 所有配置选项 |
| 工具参考 | 详细的工具文档 |
| 使用示例 | 常见使用模式 |
| OAuth设置 | Claude.ai与SSO的集成 |
快速开始
1.安装
pip install pymssql-mcp2.配置克劳德桌面
编辑您的Claude Desktop配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mssql": {
"command": "pymssql-mcp",
"env": {
"MSSQL_HOST": "your-server.example.com",
"MSSQL_USER": "your-username",
"MSSQL_PASSWORD": "your-password",
"MSSQL_DATABASE": "your-database",
"MSSQL_READ_ONLY": "true"
}
}
}
}3.重新启动克劳德桌面
退出并重新打开Claude Desktop。您将看到一个锤子图标,表示工具可用。
4.开始聊天
向克劳德询问您的数据库:
“有什么桌子?”
“描述客户表”
“按总金额显示前10个订单”
“我们每个州有多少客户?”
可用工具
连接和数据库
| 工具 | 说明 |
|---|---|
connect | 连接到数据库 |
disconnect | 关闭所有连接 |
list_databases | 列出可用数据库 |
switch_database | 切换数据库上下文 |
查询和架构
| 工具 | 说明 |
|---|---|
execute_query | 运行SELECT查询 |
validate_query | 检查查询是否安全 |
list_tables | 列出表和视图 |
describe_table | 获取列信息 |
CRUD操作
| 工具 | 说明 |
|---|---|
read_rows | 按ID或筛选器读取行 |
insert_row | 插入新行 |
update_row | 更新现有行 |
delete_row | 删除一行 |
存储过程
| 工具 | 说明 |
|---|---|
list_stored_procs | 列出可用程序 |
describe_stored_proc | 获取程序参数 |
call_stored_proc | 执行程序 |
出口和交易
| 工具 | 说明 |
|---|---|
export_to_json | 将结果导出为JSON |
export_to_csv | 将结果导出到CSV |
begin_transaction | 启动交易 |
commit_transaction | 提交更改 |
rollback_transaction | 回滚更改 |
知识持久性
| 工具 | 说明 |
|---|---|
save_knowledge | 保存学习信息 |
get_all_knowledge | 检索所有知识 |
search_knowledge | 搜索已保存的知识 |
配置
必需变量
| 变量 | 描述 |
|---|---|
MSSQL_HOST | SQL Server主机名 |
MSSQL_USER | 数据库用户名 |
MSSQL_PASSWORD | 数据库密码 |
MSSQL_DATABASE | 数据库名称 |
安全设置
| 变量 | 默认值 | 描述 |
|---|---|---|
MSSQL_READ_ONLY | false | 阻止所有写入操作 |
MSSQL_MAX_ROWS | 1000 | 每个查询的最大行数 |
MSSQL_BLOCKED_COMMANDS | DROP,TRUNCATE,... | 要阻止的命令 |
MSSQL_ALLOWED_SCHEMAS | (all) | 仅限于特定模式 |
MSSQL_BLOCKED_DATABASES | (无) | 隐藏特定数据库 |
看 配置参考 对于所有选项。
部署模式
本地(默认)
使用Claude Desktop作为本地进程运行:
pymssql-mcpHTTP/SSE服务器
作为多个用户的共享HTTP服务器运行:
pymssql-mcp --http --host 0.0.0.0 --port 8080流式HTTP(Claude.ai集成)
为Claude.ai运行OAuth身份验证:
pymssql-mcp --streamable-http --host 0.0.0.0 --port 8080看 OAuth设置 获取完整的集成说明。
发展
# Clone repository
git clone https://github.com/bpamiri/pymssql-mcp.git
cd pymssql-mcp
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint and format
ruff check .
ruff format .
# Type check
mypy src/安全
pymssql-mcp包括多种安全功能:
- 只读模式:阻止所有写入操作
- 命令阻止:阻止危险的SQL命令(DROP、TRUNCATE等)
- 架构限制:限制对特定架构的访问
- 数据库阻止列表:隐藏敏感数据库
- 行限制:限制查询结果以防止内存问题
- 查询验证:执行前分析查询
- 参数化查询:防止SQL注入
看 安全.md 安全策略和最佳实践。
贡献
欢迎投稿!看 贡献.md 作为指导方针。
许可证
阿帕奇-2.0。看 许可证 了解详情。
