内容
# mssql-mcp-server
[](LICENSE)
[](https://www.python.org/)
[](Dockerfile)
**微软SQL Server MCP服务器。** 通过Cursor、Claude Code、Codex或任何MCP(模型上下文协议)客户端,查询、检查和排除任何SQL Server实例的故障。 通过ODBC使用运行时获取的每个调用者的凭证进行连接。 密码仅存在于服务器内存中,带有空闲TTL,永远不会被记录。
- **查询工具**:`connect` / `disconnect` / `list_sessions` 会话生命周期,`execute_sql` 带表/JSON/CSV输出,和 `explain_query` 获取估计或实际的Showplan XML执行计划
- **每个调用者的身份**:`X-DB-User` 和 `X-DB-Password` 头部都是可选的;任何缺失的凭证都将被一次性获取并缓存在内存中
- **权限范围访问**:读取 vs. 写入由SQL登录的自身权限管理;`provision_mcp_read.sql` 在所有用户数据库中提供一个现成的只读 `mcp_read` 登录
- **磁盘上零机密**:配置文件、环境变量或日志中没有凭证
## 示例提示
- "显示此查询的执行计划并建议更好的索引。"
- "`db1`上谁正在阻塞谁?"
- "列出`sales`数据库中最大的10个表。"
- "查找所有引用`Orders`表的存储过程。"
- "将此查询的结果导出为CSV。"
## 工具
| 工具 | 描述 |
|------|-------------|
| `connect` | 打开到SQL Server数据库的会话并返回 `session_id` |
| `disconnect` | 关闭活动的SQL Server会话 |
| `list_sessions` | 列出具有服务器、数据库和使用详情的活动会话 |
| `execute_sql` | 运行SQL语句并以表、JSON或CSV形式返回行 |
| `explain_query` | 获取估计或实际的Showplan XML执行计划 |
## 快速开始
```bash
docker compose -f docker-compose.yml -p mssql-mcp up -d --build --force-recreate
```
## 客户端设置
`X-DB-User` 和 `X-DB-Password` 头部都是可选的:任何缺失的凭证都将被一次性获取并缓存在内存中。
### Cursor (`mcp.json`)
```json
{
"mcpServers": {
"mssql-mcp": {
"type": "http",
"url": "http://localhost:8007/mcp",
"headers": {
"X-DB-User": "<your-db-username>",
"X-DB-Password": "<your-db-password>"
}
}
}
}
```
### Claude Code
```bash
claude mcp add --transport http mssql-mcp http://localhost:8007/mcp \
--header "X-DB-User: <your-db-username>" \
--header "X-DB-Password: <your-db-password>"
```
### Codex (`~/.codex/config.toml`)
```toml
[mcp_servers.mssql-mcp]
url = "http://localhost:8007/mcp"
http_headers = { "X-DB-User" = "<your-db-username>", "X-DB-Password" = "<your-db-password>" }
```
任何其他MCP客户端都以相同的方式工作:指向可流式的HTTP端点并传递头部。