关于 MSSQL MCP Server
MSSQL MCP Server 是一个 MCP 服务,让 AI 助手安全地与 Microsoft SQL Server 数据库交互。它支持列出表、读取表内容和执行 SQL 查询,并通过环境变量配置访问权限。适合希望在受控范围内让模型访问 MSSQL 数据库的开发者。
主要功能
- 01列出数据库中的所有表
- 02通过 query_sql 执行只读 SELECT 查询
- 03通过 execute_sql 执行 DDL 与写入语句
- 04基于环境变量配置数据库连接
- 05支持 stdio 与 Streamable HTTP 传输
- 06提供 Docker 镜像与 ODBC 驱动配置
适用场景
- 01让 AI 助手查询 MSSQL 数据库中的数据
- 02在 Claude Desktop 或 Cursor 中浏览数据库表结构
- 03以只读方式为模型提供数据库分析能力
MCP 相关
MSSQL MCP Server 作为 MCP 服务运行,向 MCP 客户端暴露列出表、只读查询和执行 SQL 的工具,并通过工具注解区分只读与破坏性操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MSSQL MCP 服务
MSSQL MCP 服务是一款 模型上下文协议(MCP)服务,可与 Microsoft SQL Server(MSSQL) 数据库进行安全、结构化的交互。它允许 AI 助手:
- 列出可用表
- 读取表内容
- 在受控访问下执行 SQL 查询
基于 MCP SDK v2(2026-07-28 规范)构建,支持 stdio 和 Streamable HTTP 两种传输方式。
功能
- 通过环境变量安全访问 MSSQL 数据库
- 通过标识符验证防范 SQL 注入
- 提供带有适当 MCP 注解的只读和写入工具
- 通过 Trusted Connection 支持 Windows 身份验证
- 双传输方式——stdio(默认)和 HTTP
- 支持 Docker,并预配置 ODBC 驱动程序
- 全面的日志记录,用于监控查询和操作
安装
pip install mssql-mcp-server
配置
设置以下环境变量以配置数据库访问:
# Required
MSSQL_DATABASE=your_database
# Authentication (choose one):
# Option 1: SQL Server Authentication
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password
# Option 2: Windows / Kerberos Authentication
Trusted_Connection=yes
# Optional
MSSQL_HOST=localhost # or use MSSQL_SERVER
MSSQL_DRIVER=SQL Server # default driver
TrustServerCertificate=no # default: no (set to yes for self-signed certs)
MCP_TRANSPORT=stdio # or "streamable-http" for Streamable HTTP
可用工具
| 工具 | 描述 | 注解 |
|---|---|---|
list_tables | 列出数据库中的所有表 | 只读、幂等 |
query_sql | 执行只读 SELECT 查询 | 只读、幂等 |
execute_sql | 执行任意 SQL 语句(SELECT、INSERT、UPDATE、DELETE、DDL) | 有破坏性 |
用法
与 Claude Desktop 配合使用
将此配置添加到 claude_desktop_config.json:
{
"mcpServers": {
"mssql": {
"command": "uv",
"args": [
"--directory",
"path/to/mssql_mcp_server",
"run",
"mssql_mcp_server"
],
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database"
}
}
}
}
与 Cursor IDE 配合使用
将以下内容添加到 .cursor/mcp.json:
{
"mcpServers": {
"mssql": {
"command": "uv",
"args": [
"--directory",
"path/to/mssql_mcp_server",
"run",
"mssql_mcp_server"
],
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database"
}
}
}
}
使用 pip install(全局安装)
{
"mcpServers": {
"mssql": {
"command": "mssql_mcp_server",
"env": {
"MSSQL_HOST": "localhost",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database"
}
}
}
}
使用 Docker
docker build -t mssql-mcp-server .
docker run -e MSSQL_HOST=host.docker.internal \
-e MSSQL_USER=your_username \
-e MSSQL_PASSWORD=your_password \
-e MSSQL_DATABASE=your_database \
mssql-mcp-server
作为独立服务运行
# Install dependencies
pip install -r requirements.txt
# Run the server (stdio)
python -m mssql_mcp_server
# Run with HTTP transport
MCP_TRANSPORT=streamable-http python -m mssql_mcp_server
开发与测试
# Clone the repository
git clone https://github.com/JexinSam/mssql_mcp_server.git
cd mssql_mcp_server
# Set up a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements-dev.txt
pip install -e .
# Run tests
pytest -v
# Test with MCP Inspector
uv run mcp dev src/mssql_mcp_server/server.py
故障排除
“找不到程序”错误
这通常意味着 mssql_mcp_server 命令不在 PATH 中。解决方法:
- 使用
uv(推荐):将 MCP 客户端配置为使用uv --directory path/to/mssql_mcp_server run mssql_mcp_server - 使用完整路径:通过
pip show mssql-mcp-server查找安装位置,并使用 scripts 目录 - 使用
python -m:以python -m mssql_mcp_server运行
MSSQL 驱动程序问题
默认驱动程序为 SQL Server(Windows 内置)。在 Linux/macOS 上或需要使用较新的功能时:
- 安装 Microsoft ODBC Driver 18
- 设置
MSSQL_DRIVER="ODBC Driver 18 for SQL Server"
连接超时
如果在其他项目中使用 MSSQL_SERVER,此服务同时支持 MSSQL_HOST 和 MSSQL_SERVER 环境变量(优先使用 MSSQL_HOST)。
安全注意事项
- 使用权限最小化的专用 MSSQL 用户。
- 切勿使用 root 凭据或拥有完整管理权限的账户。
- 将数据库访问限制在必要操作范围内(例如,如果模型不应修改数据,则仅使用
GRANT SELECT)。readOnlyHint和destructiveHint注解用于改善客户端体验;安全性完全由数据库凭据强制保障。 - 启用日志和审计以进行安全监控。
- 定期检查权限,确保遵循最小权限原则。
安全最佳实践
要进行安全配置:
- 创建权限受限的专用 MSSQL 用户。
- 避免将凭据硬编码——改用环境变量。
- 仅允许访问必要的表和操作。
- 启用 SQL Server 日志记录和监控以进行审计。
- 定期检查数据库访问权限,防止未授权访问。
详细说明请参阅 MSSQL 安全配置指南。
⚠️ 重要: 配置数据库访问时,务必遵循最小权限原则。
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
贡献
欢迎贡献!请按以下步骤参与:
- Fork 此仓库。
- 创建功能分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 将分支推送到远程仓库:
git push origin feature/amazing-feature - 发起 Pull Request。
需要帮助?
如有任何疑问或问题,欢迎创建 GitHub Issue,或联系维护者。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。