SQL Server数据库交互协议

一个用于Microsoft SQL Server数据库的模型上下文协议(MCP)服务器,使AI助手如Claude能够通过标准化协议与SQL Server交互。

  • by bpamiri
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 bpamiri/pymssql-mcp

使用说明

pymssql mcp

用于Microsoft SQL server数据库的MCP(模型上下文协议)服务器。使像Claude这样的人工智能助手能够通过标准化协议与SQL Server进行交互。

特性

  • 自然语言查询:用简单的英语问克劳德你的数据
  • 架构发现:探索表、视图、列和关系
  • CRUD操作:安全地读取、插入、更新和删除行
  • 存储过程:使用参数执行存储过程
  • 多数据库支持:列出数据库并在数据库之间切换
  • 数据导出:将查询结果导出为JSON或CSV文件
  • 事务支持:开始、提交和回滚事务
  • 知识持久性:Claude记得它从你的数据库中学到了什么
  • 安全控制:只读模式、命令阻塞、行限制、模式限制
  • 连接监视器:从挂起的连接中自动恢复
  • OAuth集成:使用SSO部署为Claude.ai自定义连接器

文档

指南 说明
什么是MCP? 了解MCP和pymssql-MCP
安装 完整的安装指南
快速入门 10分钟后开始跑步
配置 所有配置选项
工具参考 详细的工具文档
使用示例 常见使用模式
OAuth设置 Claude.ai与SSO的集成

快速开始

1.安装

pip install pymssql-mcp

2.配置克劳德桌面

编辑您的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-mcp

HTTP/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。看 许可证 了解详情。

链接