关于 MS SQL Server MCP Server
面向需要结构化访问 Microsoft SQL Server 的大模型 Agent,提供类型化架构检查及参数化、带日志的 CRUD 操作。
主要功能
- 01列出数据表并检查类型化架构
- 02按筛选条件和上限读取行
- 03创建、更新和删除记录
- 04依据实时架构验证标识符
- 05参数化查询与结构化日志
适用场景
- 01查询前检查数据库
- 02查找符合筛选条件的行
- 03插入或修改业务记录
- 04为 Agent 提供受限数据库访问
MCP 相关
向 MCP 客户端提供六种数据库工具:列出数据表、检查架构、读取行,以及创建、更新和删除记录。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-server-mssql
一个 Model Context Protocol 服务,为大模型 Agent 提供安全、结构化的 Microsoft SQL Server 访问能力:检查架构并执行行级 CRUD 操作,每项操作都会使用参数化查询并记录日志。
开发此服务的原因是,连接实际业务数据库的 Agent 需要的不只是“运行这条 SQL 字符串”——它们需要类型明确、失败模式可预测的工具。
工作原理
flowchart LR
A[MCP client<br/>Claude Desktop / Claude Code] -- stdio --> B[mcp-server-mssql]
B --> C[connection pool<br/>mssql driver]
C --> D[(SQL Server)]
B -. structured logs .-> E[logs/]
服务通过环境变量连接到一个数据库,并提供六种工具。所有查询都使用参数化查询——运行任何语句之前,都会根据实时架构验证表名和列名,因此 Agent 无法通过标识符注入。
工具
| 工具 | 功能 |
|---|---|
list_tables | 列出配置数据库中的所有用户表 |
get_table_schema | 获取表的列名、类型、可空性和默认值 |
read_table_rows | 读取行,支持可选列选择、WHERE 筛选条件、ORDER BY 和 LIMIT |
create_table_records | 插入一行或多行(根据架构验证列和值) |
update_table_records | 更新符合筛选条件的行;返回受影响的行数 |
delete_table_records | 删除符合筛选条件的行;返回受影响的行数 |
交互示例
用户:“这个月有哪些客户注册了?”
Agent 调用
list_tables→ 找到Customers→ 调用get_table_schema {"table_name": "Customers"}→ 发现CreatedAt datetime2→ 调用read_table_rows {"table_name": "Customers", "filters": {"CreatedAt": {">=": "2026-07-01"}}, "limit": 50}→ 返回行并作答。
安装设置
需要 Node.js 18+,并且能够访问 SQL Server 实例。
git clone https://github.com/TerraCo89/mcp-server-mssql.git
cd mcp-server-mssql
npm install
cp .env.example .env # fill in connection details
npm run build
配置(环境变量)
| 变量 | 必需 | 说明 |
|---|---|---|
MSSQL_HOST / MSSQL_PORT | 是 / 否 | 端口默认为 1433 |
MSSQL_USER / MSSQL_PASSWORD | 是 | SQL 身份验证凭据 |
MSSQL_DATABASE | 是 | 每个服务实例对应一个数据库 |
MSSQL_ENCRYPT, MSSQL_TRUST_SERVER_CERTIFICATE | 否 | TLS 选项 |
LOG_LEVEL | 否 | 默认值为 info |
搭配 Claude Desktop / Claude Code 使用
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/mcp-server-mssql/dist/server.js"],
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "agent_reader",
"MSSQL_PASSWORD": "...",
"MSSQL_DATABASE": "MyDb"
}
}
}
}
提示:使用权限最小化的 SQL 登录账号——服务只能执行该账号有权执行的操作。
开发
npm run dev # ts-node with live reload
npm test # jest test suite (src/*.test.ts, tests/)
npm run build # emit dist/
Docker:运行 docker build -t mcp-server-mssql .,然后使用相同的环境变量启动。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。