MCP SQL Server(注:MCP在此处可能指的是“Microsoft Certified Professional”(微软认证专业人员),但具体上下文可能有所不同,若MCP有其他特定含义,请根据实际情况调整翻译)
针对Microsoft SQL Server的只读模型上下文协议(MCP)服务器,使AI代理能够安全地探索和查询SQL Server数据库。
快速入门
步骤1:安装软件包
# Global installation (recommended)
npm install -g @bilims/mcp-sqlserver
# Verify installation
mcp-sqlserver --version步骤2:配置您的SQL Server连接
选择您的SQL Server类型并按照配置步骤操作:
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 Server
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 Server Express
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桌面配置文件:
- macOS(发音:/ˈmækOS/,中文常简称为“苹果系统”或直接使用英文原名): ~/Library/Application Support/Claude/claude_desktop_config.json - Windows: %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桌面版
第五步:开始探索!
在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"
特点/特性
- 🔒 只读操作仅允许执行SELECT查询,并需进行全面的安全验证
- 🗄️ 模式发现探索数据库、表、视图、关系和元数据
- 📊 数据探索执行带有内置限制和超时的安全查询
- 🔐 准备就绪,适用于企业生产环境中使用证书信任的加密连接
- 🛡️ 安全至上查询验证、SQL注入防护和访问控制
可用工具
模式发现
list_databases- 列出SQL Server实例上的所有数据库list_tables- 列出数据库或模式中的表list_views- 数据库或模式中的列表视图describe_table- 获取包含列、数据类型和约束条件的详细表结构
关系分析
get_foreign_keys- 获取表的外键关系get_table_stats- 获取表统计信息,包括行数和大小信息
数据探索
execute_query- 执行带有安全验证的只读SELECT查询get_server_info- 获取SQL Server的版本、版本(或发行版)以及配置详情
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 Server 用户名SQLSERVER_PASSWORD- SQL Server 密码
可选的
SQLSERVER_HOST- 服务器主机名(默认:localhost)SQLSERVER_DATABASE- 默认数据库名称SQLSERVER_PORT- 端口号(默认:1433)SQLSERVER_ENCRYPT- 启用加密(默认:true)SQLSERVER_TRUST_CERT- 信任服务器证书(默认:true)SQLSERVER_CONNECTION_TIMEOUT- 连接超时时间(毫秒)(默认:30000)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 Desktop(中文可译为“Claude桌面版”或“Claude桌面应用”)
添加到您的Claude桌面配置中(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、WITH、SHOW、DESCRIBE和EXPLAIN语句
- 危险关键字综合黑名单(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 Server 配置相匹配
- 确保用户具有适当的读取权限
- 首先使用 SQL Server Management Studio 测试连接
权限问题
用户账户至少需要:
CONNECT对数据库的访问权限SELECT对您想要查询的表/视图的权限- 访问用于元数据查询的系统视图
常见的 SQL Server 配置
Azure SQL 数据库
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"使用自签名证书的本地SQL Server
export SQLSERVER_HOST="sql-server.company.com"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"许可证
麻省理工学院(MIT)
做出贡献
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支
- 做出你的更改
- 如适用,请添加测试
- 提交拉取请求
支持
对于问题和疑问:
- 查看上面的故障排除部分
- 查阅SQL Server连接文档
- 确保MCP客户端兼容性
______________________________________________________________________
构建于 模型上下文协议SDK 以实现无缝的人工智能集成。
