使用说明
MSSQL数据库MCP服务器
一种模型上下文协议(MCP)服务器,使AI助手能够使用以下方式直接安全地与Microsoft SQL server数据库交互 基本SQL身份验证.
🚀 特性
- 基本SQL身份验证 -使用用户名/密码连接(不需要Azure AD)
- 安全查询执行 -内置SQL注入保护和查询验证
- 多个数据库操作 -读取、写入、创建表、管理索引
- 只读模式 -生产环境的安全模式
- 交叉平台的 -适用于Windows、macOS和Linux
- AI助手集成 -与Claude Desktop、VS Code Agent和其他MCP客户端兼容
🛠️ 安装
先决条件
- Node.js 14或更高版本
- 访问Microsoft SQL Server数据库
- MCP兼容的AI助手(Claude Desktop、VS Code Agent等)
设置
-
克隆存储库
git clone https://github.com/yourusername/mssql-mcp-server.git cd mssql-mcp-server -
安装依赖项
npm install -
构建项目
npm run build
⚙️ 配置
Claude桌面设置
- 打开克劳德桌面设置:
File → Settings → Developer → Edit Config - 添加以下配置:
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/path/to/your/mssql-mcp-server/dist/index.js"],
"env": {
"SERVER_NAME": "your-server.database.windows.net",
"DATABASE_NAME": "your-database-name",
"SQL_USERNAME": "your-username",
"SQL_PASSWORD": "your-password",
"READONLY": "true",
"CONNECTION_TIMEOUT": "30",
"TRUST_SERVER_CERTIFICATE": "false"
}
}
}
}
VS代码代理设置
- 创建
.vscode/mcp.json在您的工作空间中:
{
"mcp": {
"servers": {
"mssql": {
"type": "stdio",
"command": "node",
"args": ["/path/to/your/mssql-mcp-server/dist/index.js"],
"env": {
"SERVER_NAME": "your-server.database.windows.net",
"DATABASE_NAME": "your-database-name",
"SQL_USERNAME": "your-username",
"SQL_PASSWORD": "your-password",
"READONLY": "true"
}
}
}
}
}
环境变量
| 变量 | 必填 | 描述 | 默认值 |
|---|---|---|---|
SERVER_NAME |
✅ | SQL Server主机名 | - |
DATABASE_NAME |
✅ | 数据库名称 | - |
SQL_USERNAME |
✅ | SQL身份验证用户名 | - |
SQL_PASSWORD |
✅ | SQL身份验证密码 | - |
READONLY |
❌ | 仅限于只读操作 | "false" |
CONNECTION_TIMEOUT |
❌ | 连接超时(秒) | 30 |
TRUST_SERVER_CERTIFICATE |
❌ | 信任自签名证书 | "false" |
🔧 可用工具
只读模式(READONLY: "true")
read_data-执行SELECT查询list_table-列出数据库中的所有表describe_table-获取详细的表架构信息
完全访问模式(READONLY: "false")
所有只读工具加上:
insert_data-将新记录插入表中update_data-更新现有记录create_table-创建新表create_index-创建数据库索引drop_table-删除表格
💡 使用示例
配置后,您可以使用自然语言与数据库交互:
"Show me all customers from New York"
"Create a table for storing product information"
"List all tables in the database"
"Describe the structure of the users table"
"Insert a new customer record"
🔒 安全功能
- SQL注入保护 -所有查询都经过验证和净化
- 只读模式 -安全地探索数据库,没有修改风险
- 查询验证 -危险操作和模式被阻止
- 连接安全性 -默认情况下启用SSL加密
- WHERE条款要求 -SELECT和UPDATE操作需要WHERE子句
🏗️ 发展
构建
npm run build
观看模式
npm run watch
启动服务器
npm start
🐛 故障排除
常见问题
连接错误
- 验证服务器名称、数据库名称和凭据
- 检查与SQL Server的网络连接
- 确保SQL Server允许该身份验证方法
未找到模块(Windows+WSL)
- 使用完整的Windows路径:
C:\\path\\to\\dist\\index.js - 或者将服务器复制到Windows目录
权限不足
- 验证SQL用户是否具有适当的数据库权限
- 检查数据库是否需要特定的身份验证方法
调试模式
将此添加到您的环境变量中以进行详细的日志记录:
"DEBUG": "true"
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
📞 支持
- 为错误报告或功能请求创建问题
- 检查 MCP文件 关于MCP的一般问题
- 查看故障排除部分以了解常见问题
由以下材料制成❤️ 对于AI社区