SQL查询集成工具

该工具通过Model Context Protocol(MCP)集成,允许Claude直接使用自然语言查询和分析SQL Server数据库中的数据。

  • by DLTKShakunVohra
  • Shell
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 shakunvohradeltek/MCPServerForMSSQL

使用说明

用于Claude的SQL Server MCP

此存储库包含用于Claude的SQL Server MCP(模型上下文协议)集成。这种集成允许Claude使用自然语言直接查询和分析SQL Server数据库中的数据。

此MCP服务器已通过MCP审核认证: https://mcpreview.com/mcp-servers/shakunvohradeltek/mcpserverformssql

概述

SQL MCP集成的工作原理如下:

  1. 设置一个本地服务器,Claude可以通过模型上下文协议与之通信
  2. 使用pymssql直接连接到SQL Server数据库(不需要ODBC)
  3. 将Claude的自然语言请求转换为SQL查询
  4. 将查询结果返回给Claude进行解释和演示

重要协议说明:此集成使用克劳德要求的MCP协议版本“2025-03-26”以实现兼容性。该集成包括一个正确处理协议的固定MCP实现,包括正确的JSON-RPC格式和Content-Length标头。

主要特点

  • 无需ODBC:使用pymssql直接连接到SQL Server
  • 简化架构:最少的依赖性和简单的设计
  • 协议支持:与Claude的MCP系统配合使用
  • 交叉平台的:在macOS和Linux上一致工作
  • 简易安装:一步安装过程
  • 智能配置:添加SQL支持时保留现有的MCP设置和Claude指令

安装

先决条件

  • macOS或Ubuntu Linux
  • Python 3.7+
  • FreeTDS(通过Homebrew在macOS上自动安装)
  • Claude CLI(从安装 claude.ai/docs/installation)
  • 具有适当权限的SQL Server凭据(最好是只读的,请参阅 安全注意事项)

安装步骤

  1. 运行安装脚本:
./install_sql_mcp.sh
  1. 按照提示输入SQL Server连接详细信息:

    • SQL Server主机名
    • SQL Server端口(默认值:1433)
    • 数据库名称
    • 用户名
    • 密码
    • 信任服务器证书(默认值:true)
  2. 安装程序将:

    • 安装所需的依赖项
    • 为SQL Server连接配置FreeTDS
    • 设置Python虚拟环境
    • 安装所需的Python包
    • 创建必要的脚本
    • 配置Claude以识别SQL MCP服务器
  3. 验证安装:

./run_simple_sql.sh "SELECT 1 AS TestQuery"

用法

  1. 启动克劳德:
claude

您还可以:

  • 检查MCP状态: claude /mcp
  • 调试MCP: claude --mcp-debug
  1. 向Claude询问有关数据库的问题:
@sql execute_sql
SELECT TOP 5 * FROM YourTable
@sql execute_sql
SELECT COUNT(*) FROM Users WHERE IsActive = 1

⚠️ 安全注意事项

重要提示: 出于安全原因,请使用以下数据库帐户 受限权限:

  • 为Claude的数据库访问创建一个专用的只读用户
  • 避免使用具有DROP、DELETE或表创建权限的帐户
  • 切勿在生产环境中使用sa或管理员帐户
  • 考虑仅限制对分析所需的特定表/视图的访问

当Claude基于自然语言请求生成SQL查询时,使用过于特权的帐户可能会导致意外的数据丢失或数据库结构更改。

激励克劳德的最佳实践

使用Claude查询SQL Server数据库时,请遵循以下最佳实践:

  1. 请Claude先探索数据库模式:在构造查询之前,提示Claude检查数据库结构以了解表、列和关系。

    @sql execute_sql
    SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'dbo' ORDER BY TABLE_NAME, ORDINAL_POSITION
    
  2. 提供有关数据模型的上下文:解释你的数据库包含什么类型的数据,以及这些表之间是如何相互关联的。

  3. 从模式探索开始:请Claude在编写复杂查询之前先探索表结构。

  4. 验证查询结果:让Claude解释查询结果的含义,并验证它们是否符合您的期望。

  5. 逐步构建复杂性:从简单的查询开始,随着Claude展示对模式的理解,逐渐增加复杂性。

故障排除

如果遇到SQL MCP集成问题:

  1. 测试直接连接:
./run_simple_sql.sh "SELECT 1 AS TestQuery"
  1. 确保FreeTDS配置正确:
tsql -C
  1. 验证Claude能否找到MCP服务器:
claude mcp list
  1. 如果您看到“连接失败”或“连接关闭”消息,但查询仍然有效,这是正常行为,可以忽略。

  2. 协议版本兼容性:此安装使用克劳德MCP所需的协议版本“2025-03-26”。如果遇到MCP传输关闭错误,请检查协议版本是否没有更改。

  3. JSON-RPC格式:Claude的MCP需要具有非空ID和Content-Length标头的正确JSON-RPC形式。安装脚本正确配置了这一点。

MCP工具暴露

MCP服务器向Claude公开了以下工具:

execute_sql

  • 描述:在连接的数据库上执行SQL查询
  • 输入架构:
    • query (string,必填):要执行的SQL查询
  • 用法:使用 @sql execute_sql 在Claude中,后面是SQL查询
  • 退货:带有查询结果、行数和成功状态的JSON对象

文件和组件

安装过程中创建:

  • simple_sql.py -直接处理SQL查询的Python脚本
  • run_simple_sql.sh -调用Python脚本的包装器脚本
  • mcp_fixed.py -使用适当的工具实现MCP协议
  • run_mcp_fixed.sh -MCP服务器的包装脚本
  • .mcp.json -MCP服务器的配置文件
  • CLAUDE.md -Claude关于如何使用SQL集成的说明

团队分布

要将此SQL MCP集成分发给您的团队,请执行以下操作:

  1. 与您的团队成员共享此存储库

  2. 团队成员应:

    • 使脚本可执行: chmod +x *.sh
    • 运行安装脚本: ./install_sql_mcp.sh
    • 按照提示输入他们的SQL Server详细信息

最新更新(2024年5月)

安装脚本已更新,其中包含以下重要修复:

  1. 将MCP协议版本固定为“2025-03-26”(以前为“2024-11-05”),以满足Claude的要求
  2. 添加了改进的MCP实现,可以正确处理JSON-RPC格式
  3. 正确处理MCP通信中的Content-Length标头
  4. 修复了协议中的通知处理
  5. 为持久MCP连接添加了连续循环
  6. 改进了错误处理和调试日志
  7. 新增:通过MCP协议公开SQL工具 -MCP服务器现在正确地公开了 execute_sql 工具通过 tools/list 和 tools/call 方法,使其与Claude的工具发现和执行系统兼容

鸣谢

此SQL MCP集成基于以下开源项目: