使用说明
SQL Server MCP(模型上下文协议)服务器
A.NET 8实现的MCP服务器,提供SQL server数据库访问MCP兼容的AI助手,如Claude Code。
特性
- 执行SQL查询(SELECT、INSERT、UPDATE、DELETE等)
- 获取SQL Server实例和数据库信息
- 列出表及其模式
- 检索特定表的列信息
- 同时支持Windows身份验证和SQL Server身份验证
- 建在。NET 8,采用现代异步/等待模式
先决条件
- .NET 8.0 SDK
- SQL Server实例(本地或远程)
- MCP兼容客户端(如Claude Code)
安装
-
克隆存储库:
git clone <your-repo-url> cd SqlServerMCP -
构建项目:
dotnet build -
测试构建:
# Use the provided test scripts build.bat # Basic build with package check full_test.bat # Complete build and runtime test test_direct.bat # Direct MCP server test
配置
环境变量
使用以下环境变量配置SQL Server连接:
MSSQL_SERVER:SQL Server实例(默认值:localhost)MSSQL_DATABASE:数据库名称(默认:master)MSSQL_USER:SQL Server用户名(可选-如果未提供,则使用Windows身份验证)MSSQL_PASSWORD:SQL Server密码(可选-如果未提供,则使用Windows身份验证)
配置示例
Windows身份验证:
set MSSQL_SERVER=localhost
set MSSQL_DATABASE=MyDatabase
SQL Server身份验证:
set MSSQL_SERVER=localhost
set MSSQL_DATABASE=MyDatabase
set MSSQL_USER=sa
set MSSQL_PASSWORD=YourPassword
Claude代码集成
要将此MCP服务器与Claude Code一起使用,请将以下配置添加到您的 ~/.claude.json 文件:
{
"projects": {
"your-project-path": {
"mcpServers": {
"sqlserver": {
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/SqlServerMCP/SqlServerMCP.csproj",
"--no-build"
],
"env": {
"MSSQL_SERVER": "localhost",
"MSSQL_DATABASE": "YourDatabase",
"MSSQL_USER": "sa",
"MSSQL_PASSWORD": "YourPassword"
}
}
}
}
}
}
注: 替换 /path/to/SqlServerMCP/SqlServerMCP.csproj 使用项目文件的实际路径。
可用的MCP工具
连接后,您的AI助手将可以使用以下工具:
执行SQL
执行任何SQL查询(SELECT、INSERT、UPDATE、DELETE等)
- 参数:
query-要执行的SQL查询 - 退货: SELECT查询的查询结果或修改查询的执行状态
GetServerInfo
获取有关SQL Server实例和当前数据库的信息
- 退货: 服务器版本、当前数据库、当前用户、服务器名称和当前日期/时间
列表表格
列出当前数据库中的所有表
- 退货: 表架构名称、表名称和表类型
GetTableSchema
获取特定表的列信息
- 参数:
tableName-要检查的表的名称 - 退货: 列详细信息,包括名称、数据类型、可空性、默认值和约束
使用示例
使用Claude Code设置MCP服务器后,您可以使用以下自然语言命令:
- “显示数据库中的所有表”
- “Users表的架构是什么?”
- “执行此查询:从价格>100的产品中选择*”
- “获取有关此SQL Server实例的信息”
发展
项目结构
Program.cs:入口点和MCP服务器设置SqlServerService.cs:核心SQL Server连接和查询执行逻辑SqlServerTools.cs:MCP工具定义和实现SqlServerMCP.csproj:项目配置和依赖关系
建造和测试
# Clean and build
dotnet clean
dotnet build
# Run the MCP server directly
dotnet run
# Test with provided batch files
full_test.bat
依赖项
ModelContextProtocol(0.2.0-preview.1):MCP服务器框架Microsoft.Extensions.Hosting(8.0.1):依赖注入和托管Microsoft.Extensions.Logging.Console(8.0.1):日志记录支持Microsoft.Data.SqlClient(5.2.2):SQL Server连接
安全考虑
- 连接字符串是根据环境变量动态构建的
TrustServerCertificate=true已为开发场景启用- 敏感信息应存储在环境变量中,而不是硬编码
- 考虑在生产环境中使用更安全的身份验证方法
故障排除
- 连接问题:验证SQL Server是否正在运行并且可以访问
- 身份验证失败:检查用户名/密码或Windows身份验证设置
- 港口问题:确保SQL Server正在侦听预期端口(默认1433)
- 防火墙:验证防火墙是否允许连接到SQL Server
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
