关于 Mssql Mcp Server
Mssql Mcp Server 让 AI Agent 和其他 MCP 客户端操作 Microsoft SQL Server。它支持通过 stdio 或 Streamable HTTP 执行查询和存储过程,并提供可配置的身份验证与会话管理。
主要功能
- 01执行 SQL 查询
- 02运行存储过程
- 03获取数据库连接信息
- 04支持 Windows 和 SQL Server 身份验证
- 05支持 stdio 和 Streamable HTTP 传输
- 06支持多个 HTTP 会话
适用场景
- 01从 MCP 客户端查询 SQL Server
- 02通过 Agent 调用存储过程
- 03通过 HTTP 连接 Web 应用
- 04按 API 密钥区分数据库连接
MCP 相关
它将 SQL Server 操作作为 MCP 工具提供,包括执行查询、存储过程和获取连接信息。客户端可通过 stdio 或 Streamable HTTP 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MSSQL MCP 服务
用于 Microsoft SQL Server 数据库操作的模型上下文协议(MCP)服务。
功能
- 对 SQL Server 执行 SQL 查询
- 执行存储过程
- 获取数据库连接信息
- 支持 Windows 身份验证和 SQL Server 身份验证
- 通过环境变量灵活配置
- 可流式 HTTP 传输,适用于 Web 应用和远程连接
- 支持多个同时进行的会话
用法
该服务支持两种传输模式:
1. Stdio 传输(默认)
适用于 Claude Desktop 和其他基于 stdio 的 MCP 客户端。
添加到 Claude Desktop 配置中:
{
"mcpServers": {
"mssql": {
"command": "npx",
"args": [
"github:stilllovee/mssql-mcp-server"
],
"env": {
"DB_SERVER": "servername",
"DB_DATABASE": "dbname",
"DB_USER": "username", //optional
"DB_PASSWORD": "password", //optional
"DB_TRUST_SERVER_CERTIFICATE": "true", //optional
"DB_ENCRYPT": "true" //optional
}
}
}
}
或者在自己的 PC 上安装
npm install
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/folder"],
"env": {
"DB_SERVER": "servername",
"DB_DATABASE": "dbname",
"DB_USER": "username", //optional
"DB_PASSWORD": "password", //optional
"DB_TRUST_SERVER_CERTIFICATE": "true", //optional
"DB_ENCRYPT": "true" //optional
}
}
}
}
或者使用连接字符串:
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/folder"],
"env": {
"DB_CONNECTION_STRING": "Server=localhost;Database=ecommerce;Trusted_Connection=yes;TrustServerCertificate=yes"
}
}
}
}
2. 可流式 HTTP 传输
适用于 Web 应用、远程连接以及首选 HTTP 的环境。
启动 HTTP 服务
使用数据库配置设置 .env 文件:
DB_SERVER=localhost
DB_DATABASE=ecommerce
DB_USE_WINDOWS_AUTH=true
# Or use a full connection string
# DB_CONNECTION_STRING=Server=localhost;Database=ecommerce;Trusted_Connection=yes;TrustServerCertificate=yes
运行服务:
# Using default port 8123
node index-http.js
# Or specify a custom port
node index-http.js --port=3000
服务将在 http://localhost:8123/mcp(或自定义端口)上提供。
HTTP 传输功能
- 会话管理:支持多个具有唯一会话 ID 的客户端同时连接
- 服务器发送事件(SSE):通过 GET 端点实时发送通知
- 有状态连接:在多个请求之间保持会话状态
- 标准 HTTP:适用于任何 HTTP 客户端或代理
- 基于 API 密钥的连接映射:将不同的 API 密钥映射到不同的数据库连接(见下文)
基于 API 密钥的多数据库支持
HTTP 传输支持使用 Azure Table Storage 进行基于 API 密钥的连接映射,使不同客户端能够使用唯一的 API 密钥连接到不同的数据库。
启用 API 密钥映射:
# Set environment variables
USE_API_KEY_MAPPING=true
AZURE_STORAGE_CONNECTION_STRING=your_azure_connection_string
# Start the server
node index-http.js
在 Claude Desktop 中配置:
"mssql": {
"type": "http",
"url": "http://localhost:8123/mcp",
"headers": {
"x-api-key": "your-api-key"
}
},
使用 API 密钥发送请求:
curl -X POST http://localhost:8123/mcp \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'
管理 API 密钥:
# List all API keys
node scripts/manage-api-keys.js list
# Add a new API key
node scripts/manage-api-keys.js add my-api-key
# Delete an API key
node scripts/manage-api-keys.js delete my-api-key
有关 Azure Table Storage 设置、API 密钥管理和安全最佳实践的详细信息,请参阅 Azure Table Storage 文档。
HTTP 端点
POST /mcp- 发送 MCP 请求并接收响应GET /mcp- 建立用于接收通知的 SSE 连接(需要mcp-session-id标头)
可用环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
DB_CONNECTION_STRING | 完整连接字符串(会覆盖所有其他设置) | - |
DB_SERVER | SQL Server 主机名或 IP 地址 | localhost |
DB_DATABASE | 数据库名称 | ecommerce |
DB_USER | SQL Server 身份验证的用户名 | - |
DB_PASSWORD | SQL Server 身份验证的密码 | - |
DB_USE_WINDOWS_AUTH | 使用 Windows 身份验证 | true(未设置用户名/密码时) |
DB_DRIVER | ODBC 驱动程序名称 | ODBC Driver 17 for SQL Server |
DB_ENCRYPT | 启用连接加密 | false |
DB_TRUST_SERVER_CERTIFICATE | 信任服务器证书 | true |
USE_API_KEY_MAPPING | 启用基于 API 密钥的连接映射 | false |
AZURE_STORAGE_CONNECTION_STRING | Azure Table Storage 连接字符串(API 密钥映射必需) | - |
AZURE_TABLE_NAME | 用于 API 密钥映射的 Azure 表名称 | ApiKeyMappings |
可用工具
-
sql_execute_query - 执行 SQL 查询
- 参数:
query(字符串)、params(对象,可选)
- 参数:
-
sql_execute_procedure - 执行存储过程
- 参数:
procedure_name(字符串)、params(对象,可选)
- 参数:
-
sql_get_database_info - 获取数据库连接信息
- 无需参数
-
还有更多……
要求
- Node.js 14 或更高版本
- 安装了 ODBC 驱动程序的 SQL Server
- 使用 Windows 身份验证时:在 Windows 上运行并具备适当权限
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。