返回市场
mssql MCP服务器

mssql MCP服务器

作者:c0h1b414 星标更新:2025-06-06

项目介绍

MSSQL MCP 服务器

smithery 徽章

这是一个用于连接到 Microsoft SQL Server 数据库的 Model Context Protocol (MCP) 服务器。此服务器提供了执行 SQL 查询和管理数据库连接的工具。

版本说明: 此项目已升级至使用 Model Context Protocol SDK 1.9.0。详情请参阅 UPGRADE.md

安装

通过 Smithery 安装

要通过 Smithery 自动安装 MSSQL MCP 服务器:

npx -y @smithery/cli install @c0h1b4/mssql-mcp-server --client claude

手动安装

npm install mssql-mcp-server

使用方法

在您的 MCP 设置配置文件中添加服务器:

{
  "mcpServers": {
    "mssql": {
      "command": "mssql-mcp-server",
      "env": {
        "MSSQL_CONNECTION_STRING": "Server=localhost;Database=master;User Id=sa;Password=yourpassword;",
        // 或者单独的连接参数:
        "MSSQL_HOST": "localhost",
        "MSSQL_PORT": "1433",
        "MSSQL_DATABASE": "master",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "yourpassword",
        "MSSQL_ENCRYPT": "false",
        "MSSQL_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

工具

query

在 MSSQL 数据库上执行 SQL 查询。

参数

  • connectionString (字符串,可选):完整的连接字符串(替代单独的参数)
  • host (字符串,可选):数据库服务器主机名
  • port (数字,可选):数据库服务器端口(默认:1433)
  • database (字符串,可选):数据库名称(默认:master)
  • username (字符串,可选):数据库用户名
  • password (字符串,可选):数据库密码
  • query (字符串,必需):要执行的 SQL 查询
  • encrypt (布尔值,可选):启用加密(默认:false)
  • trustServerCertificate (布尔值,可选):信任服务器证书(默认:true)

必须提供 connectionString 或 (host + username + password)。

示例

const result = await use_mcp_tool({
  server_name: 'mssql',
  tool_name: 'query',
  arguments: {
    host: 'localhost',
    username: 'sa',
    password: 'yourpassword',
    query: 'SELECT * FROM Users',
  },
});

运行服务器

本地开发

# 安装依赖
npm install

# 开发模式运行
npm run dev

# 构建
npm run build

# 运行构建后的服务器
npm start

使用 Docker

# 构建并启动服务(SQL Server + MCP 服务器)
docker-compose up

# 或仅构建 Docker 镜像
docker build -t mssql-mcp-server .

测试

# 运行测试
npm test

# 运行带有覆盖率的测试
npm run test:coverage

运行评估

评估包加载了一个 mcp 客户端,然后运行 index.ts 文件,因此在测试之间无需重新构建。您可以通过前缀 npx 命令来加载环境变量。完整文档可以在此处找到 这里

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts examples/simple-server.ts

安全性

该服务器包含针对危险 SQL 操作的安全措施:

  • 阻止潜在有害的命令,如 DROP、TRUNCATE、ALTER、CREATE、EXEC 等。
  • 验证所有输入参数和数据库名称。
  • 对查询长度和超时设置合理的限制。
  • 使用连接池以提高性能和安全性。

许可证

MIT