使用说明
MSSQL MCP服务器
用于Microsoft SQL server数据库操作的模型上下文协议(MCP)服务器。
特性
- 对SQL Server执行SQL查询
- 执行存储过程
- 获取数据库连接信息
- 同时支持Windows身份验证和SQL Server身份验证
- 通过环境变量灵活配置
- 可流式HTTP传输 用于基于web的应用程序和远程连接
- 支持多个同时进行的会话
用法
服务器支持两种传输模式:
1.标准运输(默认)
适用于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传输支持基于API键的连接映射,使用 Azure表存储,允许不同的客户端使用唯一的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表存储设置、API密钥管理和安全最佳实践的详细信息,请参阅 Azure表存储文档.
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表存储连接字符串(API密钥映射所需) | - |
AZURE_TABLE_NAME |
API密钥映射的Azure表名称 | ApiKeyMappings |
可用工具
-
sqlexecutequery -执行SQL查询
- 参数:
query(字符串),params(对象,可选)
- 参数:
-
sqlexecute过程 -执行存储过程
- 参数:
procedure_name(字符串),params(对象,可选)
- 参数:
-
sql_get-database_info -获取数据库连接信息
- 无需参数
-
还有更多。..
需求
- Node.js 14或更高版本
- 安装了ODBC驱动程序的SQL Server
- 对于Windows身份验证:在具有适当权限的Windows上运行