M

MCP SQL 服务

@JubinSaniei/mcp-mssql
0 Stars 370 次浏览 JubinSaniei 更新于 2026-08-23

一种模型上下文协议服务器,允许像 Claude 这样的大型语言模型执行 SQL 查询、探索数据库模式以及与 SQL Server 数据库保持持久连接。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP SQL Server

这是一个用于与 SQL Server 交互的模型上下文协议 (MCP) 服务器。它允许大型语言模型(如 Claude)执行 SQL 查询、探索数据库架构,并在多个请求之间保持持久连接。

功能

  • SQL 查询执行:对 SQL Server 数据库运行 SELECT 查询
  • 存储过程支持:使用参数执行存储过程
  • 架构探索:查看数据库表和列定义
  • 会话持久性:在查询之间维护 SQL 连接,以便使用临时表和多查询操作
  • Docker 就绪:通过 Docker 简单部署

快速开始

使用 Docker(推荐)

# Clone the repository
git clone https://github.com/JubinSaniei/mcp-mssql
cd mcp-mssql

# Start the container with your SQL Server connection details
./docker-run.sh 192.168.1.100 YourSecurePassword

# Test the connection and session persistence
./test-mcp.sh
./test-session-persistence.sh

有关完整的 Docker 设置说明,请参阅 Docker README

配置

该服务器支持以下环境变量:

类别 变量 描述 默认值
连接 SQL_SERVER SQL Server 主机名或 IP 172.31.64.1
SQL_PORT SQL Server 端口 1433
SQL_USER SQL Server 用户名 sa
SQL_PASSWORD SQL Server 密码 必需
SQL_DATABASE 数据库名称 ''
安全 SQL_ENCRYPT 启用加密 true
SQL_TRUST_SERVER_CERT 信任服务器证书 true
超时 SQL_CONNECTION_TIMEOUT 连接超时(毫秒) 30000
SQL_REQUEST_TIMEOUT 请求超时(毫秒) 30000
连接池 SQL_POOL_MAX 池中的最大连接数 10
SQL_POOL_MIN 池中的最小连接数 0
SQL_POOL_IDLE_TIMEOUT 池的空闲超时(毫秒) 30000

与 Claude 一起使用

要将此 MCP 服务器添加到 Claude CLI 中:

# Add the MCP server using the config file
claude mcp add-json mssql-mcp "$(cat claude-mcp-config.json)"

# To add it globally
claude mcp add-json -s user mssql-mcp "$(cat claude-mcp-config.json)"

# Start a conversation with Claude using this MCP
claude mcp mssql-mcp

在 Claude 对话中,您可以:

  1. 执行查询:

    <mcp:execute_query>
    SELECT TOP 10 * FROM YourTable
    </mcp:execute_query>
    
  2. 执行存储过程:

    <mcp:execute_StoredProcedure>
    {
      "procedure": "sp_tables",
      "parameters": []
    }
    </mcp:execute_StoredProcedure>
    
  3. 探索数据库架构:

    <mcp:schema>
    YourDatabaseName
    </mcp:schema>
    

会话持久性

此 MCP 服务器实现了 SQL 连接的会话持久性,这允许:

  • 在多个查询中创建和使用临时表
  • 维护变量和会话状态
  • 持久事务(尽管对长时间运行的事务要谨慎)
  • 不需要重新连接,从而提高性能

会话持久性是自动处理的 - Claude 将在整个对话中保持相同的数据库连接。

开发

本地开发设置

# Install dependencies
npm install

# Run the server directly (requires environment variables to be set)
npm start

# Run with TypeScript compiler watching for changes
npm run dev

测试

# Test basic query functionality
./test-query.sh

# Test session persistence (requires Docker)
./test-session-persistence.sh

安全注意事项

  • 服务器仅允许 SELECT 查询(不允许 INSERT、UPDATE、DELETE 等)
  • 系统和扩展存储过程(sp_、xp_)被阻止
  • 实现了针对数据库名称和参数的 SQL 注入保护

故障排除

如果您遇到问题:

  1. 检查容器日志:docker logs mssql-mcp
  2. 验证 SQL Server 连接:./test-mcp.sh
  3. 测试会话持久性:./test-session-persistence.sh
  4. 确保 SQL_PASSWORD 环境变量设置正确

有关详细的故障排除步骤,请参阅 Docker README