MCP SQL 服务器
为Microsoft SQL Server提供只读的模型上下文协议(MCP)服务器,能使AI代理安全地探索并查询SQL Server数据库.
快速启动
步骤1:安装软件包
# Global installation (recommended)
npm install -g @bilims/mcp-sqlserver
# Verify installation
mcp-sqlserver --version
步骤2: 配置您的 SQL 服务器连接
选择您的 SQL 服务器类型并遵循配置 :
Azure SQL 数据库
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"
在线 SQL 服务器
export SQLSERVER_HOST="your-sql-server.company.com"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true" # For self-signed certificates
本地 SQL 服务器快递
export SQLSERVER_HOST="localhost\\SQLEXPRESS"
export SQLSERVER_USER="sa"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="master"
export SQLSERVER_ENCRYPT="false"
export SQLSERVER_TRUST_CERT="true"
第3步:测试连接
# Test your configuration
mcp-sqlserver --help
# Quick connection test (press Ctrl+C to exit)
mcp-sqlserver
步骤4: 添加到 Claude 桌面
-
查找您的 Claude 桌面配置文件 :
- 马科斯数字 :
~/Library/Application Support/Claude/claude_desktop_config.json - 窗口数字 :
%APPDATA%\Claude\claude_desktop_config.json
- 马科斯数字 :
-
添加 MCP 服务器配置 :
{
"mcpServers": {
"sqlserver": {
"command": "mcp-sqlserver",
"env": {
"SQLSERVER_HOST": "your-server.database.windows.net",
"SQLSERVER_USER": "your-username",
"SQLSERVER_PASSWORD": "your-password",
"SQLSERVER_DATABASE": "your-database",
"SQLSERVER_ENCRYPT": "true",
"SQLSERVER_TRUST_CERT": "false"
}
}
}
}
- 重新启动 Claude 桌面
第5步:开始探索!
在 Claude 桌面中尝试这些命令 :
"Test the SQL Server connection""List all databases on the server""Show me the tables in [database name]""Describe the structure of the Users table""Show me foreign key relationships"
特征
- QQ 只读操作: 只允许 SELECT 查询, 并进行全面的安全验证
- · 舍马发现: 探索数据库、表格、视图、关系和元数据
- 数据勘探: 执行内置限制和超时的安全查询
- 企业化准备: 为生产环境加密证书信任的连接
- 安全第一: 查询验证、SQL注射保护以及访问控制
可用工具
Schema 发现
list_databases- 列出 SQL 服务器实例上的所有数据库list_tables- 数据库或计划中的列表表格list_views- 在数据库或计划中列出视图describe_table- 获得详细的表格计划,包括列、数据类型和制约因素
关系分析
get_foreign_keys- 为表格获取外国关键关系get_table_stats- 获得包括行数和大小信息在内的表格统计
数据勘探
execute_query- 执行只读的SELECT查询,并进行安全验证get_server_info- 获得SQL 服务器版本、版本和配置细节
Claude 桌面的共同命令
一旦您的 MCP 服务器配置完毕, 请尝试这些自然语言命令 :
获取开始命令
"Test the SQL Server connection"
"Show me server information"
"List all databases on this server"
"What tables are in the [database name] database?"
数据库勘探
"Describe the structure of the Users table"
"Show me foreign key relationships in this database"
"What are the largest tables by row count?"
"Give me a sample of data from the Orders table"
高级分析
"Help me understand the relationship between Orders and Customers"
"Show me all lookup tables in this database"
"What columns contain date/time information?"
"Find tables that might contain user authentication data"
自定义查询
"Run this query: SELECT TOP 10 * FROM Products WHERE Price > 100"
"Show me all customers created in the last 30 days"
"What are the different product categories in the database?"
安装
npm install
npm run build
配置
服务器使用环境变量配置 :
需求
SQLSERVER_USER- SQL 服务器用户名SQLSERVER_PASSWORD- SQL 服务器密码
可选
SQLSERVER_HOST- 服务器主机名( 默认: localhost)SQLSERVER_DATABASE- 默认数据库名称SQLSERVER_PORT- 口号(默认:1433)SQLSERVER_ENCRYPT- 启用加密( 默认: 真)SQLSERVER_TRUST_CERT- 信任服务器证书( 默认: 真)SQLSERVER_CONNECTION_TIMEOUT- 连接超时 ms( 默认: 3000)SQLSERVER_REQUEST_TIMEOUT- 请求超时毫秒( 默认: 60000)SQLSERVER_MAX_ROWS- 每个查询的最大行数( 默认: 1000)
使用量
环境变量
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"
运行服务器
npm start
安装选项
备选办法1:全球安装(建议)
npm install -g @bilims/mcp-sqlserver
备选案文2:当地安装
npm install @bilims/mcp-sqlserver
npx mcp-sqlserver
选项3: Npx 运行( 无安装)
npx @bilims/mcp-sqlserver
整合实例
克劳德桌面
添加到您的 Claude 桌面配置( N)claude_desktop_config.json:
{
"mcpServers": {
"sqlserver": {
"command": "mcp-sqlserver",
"env": {
"SQLSERVER_HOST": "your-server.database.windows.net",
"SQLSERVER_USER": "your-username",
"SQLSERVER_PASSWORD": "your-password",
"SQLSERVER_DATABASE": "your-database"
}
}
}
}
Claude 代码 CLI
# Set environment variables
export SQLSERVER_HOST="your-server"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
# Use with Claude Code
claude mcp add sqlserver mcp-sqlserver
带有 MCP 扩展的 VSCode
为 VSCode 安装 MCP 扩展并添加服务器配置 .
安全特性
查询验证
- 仅允许SELECT、SHOW、DESCRIBE和Explaine 语句
- 危险关键词综合黑名单(INSERT, UPDATE, DELETE, DROP等)
- SQL 注射模式检测
- 自动查询消毒
连接安全
- 默认启用的 TLS/ SSL 加密
- 针对企业环境的服务器证书信任选项
- 连接集合和超时控制
- 配置请求超时
结果限制
- 每个查询的最大行限制( 可配置)
- 用于 SELECT 查询的自动 TOP 条款注入
- 查询执行时间跟踪
- 内存使用保护
示例查询
一旦连接,您可以通过您的 MCP 客户端使用工具 :
// List all databases
await callTool("list_databases", {});
// List tables in a specific schema
await callTool("list_tables", { schema: "dbo" });
// Get table schema details
await callTool("describe_table", {
table_name: "Users",
schema: "dbo"
});
// Execute a read-only query
await callTool("execute_query", {
query: "SELECT TOP 10 * FROM Users WHERE active = 1",
limit: 10
});
// Get foreign key relationships
await callTool("get_foreign_keys", {
table_name: "Orders"
});
发展
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
# Run linting
npm run lint
# Run tests
npm test
解决问题
连接问题
- 验证服务器主机名和端口
- 检查加密/ 认证设置是否匹配您的 SQL 服务器配置
- 确保用户有适当的阅读权限
- 首先使用 SQL 服务器管理工作室进行测试连接
权限问题
用户账户至少需要:
CONNECT允许进入数据库SELECT在您要查询的表格/视图上的权限- 元数据查询访问系统
常见 SQL 服务器配置
Azure SQL 数据库
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"
现场 SQL 带有自签名证书的服务器
export SQLSERVER_HOST="sql-server.company.com"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"
许可证
麻省理工学院
捐款
- 叉子存储器
- 创建特性分支
- 做你的改变
- 在适用的情况下添加测试
- 提交拉动请求
支助
关于议题和问题清单:
- 检查上面的故障排除区域
- 审查 SQL 服务器连接文档
- 确保MCP客户端兼容性
与该建筑 示范背景协议SDK 用于无缝AI集成.