使用说明
MSSQL MCP服务器
一种模型上下文协议(MCP)服务器,使Claude等LLM能够通过自然语言与Microsoft SQL server数据库进行交互。
特性
- 🔍 使用自然语言查询SQL Server数据库
- 📊 读取、插入、更新和删除数据
- 🏗️ 创建和管理表和索引
- 🔒 使用可选只读模式进行安全连接处理
- ⚡ 使用tsx直接执行TypeScript-无需构建步骤
快速开始
选项1:直接从GitHub使用npx(推荐)
无需安装!只需配置Claude Desktop:
视窗
增添 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"mssql": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "github:EvilPhatBoi/McpSqlServer"],
"env": {
"SERVER_NAME": "your-server.database.windows.net",
"DATABASE_NAME": "your-database",
"SQL_USERNAME": "your-username",
"SQL_PASSWORD": "your-password",
"PORT": "1433",
"ENCRYPT": "true",
"TRUST_SERVER_CERTIFICATE": "false",
"CONNECTION_TIMEOUT": "30",
"READONLY": "false"
}
}
}
}
macOS/Linux
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mssql": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:EvilPhatBoi/McpSqlServer"],
"env": {
"SERVER_NAME": "your-server.database.windows.net",
"DATABASE_NAME": "your-database",
"SQL_USERNAME": "your-username",
"SQL_PASSWORD": "your-password",
"PORT": "1433",
"ENCRYPT": "true",
"TRUST_SERVER_CERTIFICATE": "false",
"CONNECTION_TIMEOUT": "30",
"READONLY": "false",
"DEBUG": "false"
}
}
}
}
关于旧式SQL Server的注意事项: 如果您在使用较旧的SQL Server版本时遇到SSL/TLS连接问题,请尝试:
"ENCRYPT": "false"禁用TLS/SSL加密"TRUST_SERVER_CERTIFICATE": "true"信任自签名证书"CONNECTION_TIMEOUT": "60"对于较慢的连接,则为更高"DEBUG": "true"查看详细的连接日志
选项2:克隆并在本地运行
- 克隆存储库:
git clone https://github.com/EvilPhatBoi/McpSqlServer.git
cd McpSqlServer
- 安装依赖项:
npm install
- 创建
.env文件:
cp .env.example .env
# Edit .env with your database credentials
- 配置Claude Desktop以指向您的本地安装:
{
"mcpServers": {
"mssql": {
"type": "stdio",
"command": "npx",
"args": ["tsx", "C:/path/to/McpSqlServer/src/index.ts"],
"env": {
"SERVER_NAME": "your-server.database.windows.net",
"DATABASE_NAME": "your-database",
"SQL_USERNAME": "your-username",
"SQL_PASSWORD": "your-password"
}
}
}
}
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
SERVER_NAME |
SQL Server主机名 | 必填 |
DATABASE_NAME |
数据库名称 | 必填 |
SQL_USERNAME |
SQL用户名 | 必填 |
SQL_PASSWORD |
SQL密码 | 必填 |
PORT |
SQL Server端口 | 1433 |
ENCRYPT |
启用TLS/SSL加密 | true |
TRUST_SERVER_CERTIFICATE |
信任自签名证书 | false |
CONNECTION_TIMEOUT |
连接超时(秒) | 30 |
READONLY |
启用只读模式 | false |
DEBUG |
启用调试日志记录 | false |
使用示例
配置后,您可以使用Claude中的自然语言与数据库交互:
- “向我展示来自纽约的所有客户”
- 创建一个名为products的表,其中包含id、名称和价格列
- “将id为5的产品的价格更新为29.99”
- “列出数据库中的所有表”
- “描述订单表的结构”
发展
使用tsx在本地运行:
npm run start # Run the server
npm run dev # Run with watch mode
类型检查:
npm run typecheck
安全说明
- 永不承诺
.env具有真实凭据的文件 - 使用只读模式(
READONLY=true)安全生产 - 服务器需要WHERE子句进行更新,以防止意外的大规模更新
- 考虑使用特定于环境的凭据
故障排除
连接问题
- 确保您的SQL Server允许远程连接
- 检查SQL Server端口的防火墙规则(默认1433,或您的自定义port设置)
- 验证凭据和服务器名称
- 通过设置启用调试日志记录
DEBUG=true在环境变量中
SSL/TLS连接问题
- 对于不支持现代TLS的旧SQL Server版本,请设置
ENCRYPT=false - 如果使用自签名证书,请设置
TRUST_SERVER_CERTIFICATE=true - 对于连接超时问题,请增加
CONNECTION_TIMEOUT60或以上 - 检查SQL Server是否接受Node.js支持的TLS版本
调试模式
要启用详细的日志记录以进行故障排除,请执行以下操作:
"env": {
"DEBUG": "true",
// ... other environment variables
}
身份验证错误
- 此服务器使用SQL身份验证,而不是Windows身份验证
- 确保服务器上启用了SQL身份验证
- 检查SQL用户是否具有适当的权限
许可证
麻省理工学院