🚀 增强版 MCP MSSQL 服务器
一个适用于Microsoft SQL Server的生产就绪型模型上下文协议(MCP)服务器,为AI代理提供安全、无状态的数据库访问能力。
✨(这个符号本身没有具体的中文翻译,但通常可以表示“闪亮”、“闪耀”或用于表达某种积极、兴奋的情绪) 新功能与增强特性
- 🔒 高级安全SQL注入防护、查询验证和可配置的安全策略
- 📊 健康监测实时性能指标和连接健康检查
- ⚙️ 配置管理针对开发和生产环境的特定设置
- 📦 批量操作针对大规模数据操作的高效批处理
- 🛡️ 增强错误处理为AI代理提供包含可操作信息的结构化错误
- 🎯 准备就绪,可投入生产企业级监控和安全能力
🛠️(工具/扳手) 可用工具(共9个)
核心数据库工具 (增强型)
- 列出 MSSQL 数据库 - 列出所有可访问的数据库
- mssql_list_tables 翻译成中文是“列出 MSSQL 数据库中的表” - 列出特定数据库中的表
- mssql_describe_table 翻译为中文是“描述 MSSQL 表” - 获取详细的表结构信息
- \
mssql_query\翻译成中文是“执行 MSSQL 查询”。不过,需要注意的是,在现代的 PHP 开发中,\mssql_query\已经被弃用,并且不再推荐使用,取而代之的是使用 PDO(PHP Data Objects)或其他更现代的数据库连接和查询方法 - 执行带有安全验证和度量指标的查询 - MSSQL示例数据 - 从表中检索示例行
- mssql_get_relationships 翻译为中文是:“获取 MSSQL 关系”或“获取 MSSQL 中的关系”。这里,“mssql”指的是 Microsoft SQL Server,“get_relationships”表示获取关系或关联 - 发现外键关系
新高级工具
- MSSQL健康检查 - 服务器健康监测及性能指标
- mssql_validate_query 翻译为中文是:“验证 MSSQL 查询” - 无需查询执行的安全验证
- \
mssql_bulk_insert\翻译成中文是“MSSQL批量插入” - 高效的批量数据插入操作
🚀 快速入门
# Install dependencies
npm install
# Build the project
npm run build
# Configure your database (copy .env.example to .env)
cp .env.example .env
# Start the server
npm start
# Run tests (requires running MSSQL server)
npm test🎯 这个的作用
这个MCP服务器允许AI代理:
- 连接 安全地连接到MSSQL数据库
- 发现 数据库模式(数据库、表、列)
- 查询 安全地以只读方式访问数据
- 探索 关系和元数据
- 样本 无需全表扫描的数据以供分析
✨ 主要特点
- ✅ 只读安全仅允许使用SELECT查询
- 🔒 表示“锁”或“安全”的意思。 安全认证默认启用加密连接
- 🔍 翻译为中文是:“🔍”(这个符号本身在中文里没有直接对应的翻译,因为它是一个图形符号,通常用于表示放大镜或搜索等意思,在这里直接保留原样或根据上下文解释为“放大镜/搜索”等含义)。如果仅从字符本身来看,没有直接的中文翻译,但其含义可以根据上下文来解释。 模式发现自动数据库结构探索
- 📊 表格/数据图表 智能采样获取代表性数据而不造成过载
- 🔗 关系映射理解外键连接
- 🛡️ 译为中文是“盾牌”。 SQL注入防护参数化查询和验证
🛠️ 安装
先决条件:
- Node.js 18及以上版本
- 访问 MSSQL Server(2008 R2 及更高版本)
- 具有读取权限的数据库用户
设置:
- 克隆或下载此仓库
- 跑
npm install安装依赖项 - 跑步
npm run build编译TypeScript - 配置您的数据库连接(参见配置部分)
📝 配置
无需配置!
这个MCP服务器现在 无状态的 - 在调用每个工具时,您需要提供连接详情。AI代理会在需要时询问您的数据库凭据。
对于 Claude Desktop,请在您的配置中添加:
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["path/to/mcp-mssql-connector/dist/index.js"]
}
}
}🔧 可用工具
| 工具 | 描述 | 关键参数 | |
|---|---|---|---|
| 项目 | 英文翻译 | 中文翻译 | mssql_connect |
| 连接到 MSSQL 服务器 | 服务器, 用户, 密码 | mssql_list_databases | |
| 列出可用数据库 | - | mssql_list_tables | |
| 列出数据库中的表 | 数据库 | mssql_describe_table | |
| 获取表结构 | 数据库, 表 | mssql_query | |
| 执行SELECT查询 | 数据库,查询,限制 | mssql_sample_data | |
| 获取样本行 | 数据库, 表, 限制 | mssql_get_relationships |
| 获取外键 | 数据库,表 |
💡 使用示例
List all databases on server 'myserver.com' using username 'myuser' and password 'mypass'列出数据库:
List all tables in the 'Northwind' database on myserver.com with my credentials探索结构:
Query "SELECT TOP 10 * FROM Customers WHERE Country = 'USA'" on Northwind database at myserver.com查询数据:
Show foreign key relationships for the Orders table in Northwind database on myserver.com理解关系:
- 🔒 安全只读
- 仅允许使用SELECT语句输入验证
- 所有参数均通过Zod模式验证连接安全
- 默认启用TLS加密查询限制
- 自动行限制防止数据大量导出错误处理
安全的错误信息,不暴露内部细节
📋 要求
- 🤝 贡献
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支
- 进行你的更改
- 如适用,请添加测试
提交拉取请求
📄 许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
🆘 支持
- 如果您遇到问题: 检查一下 使用指南
- 对于通用解决方案
- 验证您的MSSQL服务器配置
- 确保数据库权限设置正确
