这是一个提供与 SQL Server 数据库交互工具的模型上下文协议(MCP)服务器。该服务器允许大型语言模型(LLMs)通过标准化协议查询和检查 SQL Server 数据库。
全局安装为 .NET 工具:
dotnet tool install --global tsql-mcp-server
更新到最新版本:
dotnet tool update --global tsql-mcp-server
# 克隆仓库
git clone https://github.com/Popplywop/tsql-mcp-server
cd tsql-mcp-server
# 构建项目
dotnet build
如果已作为 .NET 全局工具安装:
# 使用直接连接字符串
tsql-mcp-server --dsn "Server=your-server;Database=your-database;User Id=your-username;Password=your-password;TrustServerCertificate=True;"
# 使用环境变量
tsql-mcp-server --env-var "SQL_CONNECTION_STRING"
如果从源代码构建:
# 使用直接连接字符串
dotnet run --dsn "Server=your-server;Database=your-database;User Id=your-username;Password=your-password;TrustServerCertificate=True;"
# 使用环境变量
dotnet run --env-var "SQL_CONNECTION_STRING"
要使用此服务器与支持模型上下文协议的 Claude 或其他 LLM,您需要在您的 MCP 配置文件中对其进行配置。
{
"servers": [
{
"name": "SqlServerMcp",
"command": "tsql-mcp-server",
"args": [
"--dsn",
"Server=your-server;Database=your-database;User Id=your-username;Password=your-password;TrustServerCertificate=True;"
]
}
]
}
{
"servers": [
{
"name": "SqlServerMcp",
"command": "path/to/tsql-mcp-server.exe",
"args": [
"--dsn",
"Server=your-server;Database=your-database;User Id=your-username;Password=your-password;TrustServerCertificate=True;"
]
}
]
}
用实际值替换连接字符串。此配置可用于 Claude 的 MCP 集成或其他支持模型上下文协议的 LLM 平台。
为了更好的安全性,您可以使用环境变量存储连接字符串:
{
"servers": [
{
"name": "SqlServerMcp",
"command": "tsql-mcp-server",
"args": [
"--env-var",
"SQL_CONNECTION_STRING"
]
}
]
}
--dsn 或 -d:SQL Server 连接字符串--env-var 或 -e:包含连接字符串的环境变量名称query:要执行的 SQL 查询commandTimeout:可选命令超时时间(秒)maxRows:可选最大返回行数服务器通过基于资源的方法提供数据库模式信息。资源通过 URI 访问,并采用惰性加载和缓存以提高性能。
| 资源 URI | 描述 | 加载行为 |
|---|---|---|
sqlserver://schemas/{schema_name} | 关于特定模式的信息 | 首次请求时加载,缓存 10 分钟 |
sqlserver://schemas/{schema_name}/tables | 模式中的表列表 | 首次请求时加载,缓存 10 分钟 |
sqlserver://schemas/{schema_name}/views | 模式中的视图列表 | 首次请求时加载,缓存 10 分钟 |
sqlserver://schemas/{schema_name}/procedures | 模式中的存储过程列表 | 首次请求时加载,缓存 10 分钟 |
sqlserver://schemas/{schema_name}/tables/{table_name} | 关于特定表的详细信息 | 首次请求时加载,缓存 10 分钟 |
sqlserver://schemas/{schema_name}/views/{view_name} | 关于特定视图的详细信息 | 首次请求时加载,缓存 10 分钟 |
sqlserver://schemas/{schema_name}/procedures/{procedure_name} | 关于特定过程的详细信息 | 首次请求时加载,缓存 10 分钟 |
资源由 MCP 客户端自动发现,可以直接访问而无需调用特定工具。
ExecuteQuery:
query: "SELECT TOP 10 * FROM MyTable"
maxRows: 100
资源可以通过其 URI 直接访问:
# 列出所有模式
GET sqlserver://schemas
# 获取关于特定模式的信息
GET sqlserver://schemas/dbo
# 列出模式中的所有表
GET sqlserver://schemas/dbo/tables
# 获取关于特定表的详细信息
GET sqlserver://schemas/dbo/tables/Customers
基于资源的方法提供了以 RESTful 方式探索和与数据库模式交互的方式。
本项目根据 MIT 许可证发布 - 详情见 LICENSE.md 文件。
MIT 许可证是一种宽松许可证,允许在最少限制的情况下重复使用。它允许任何人使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,前提是原始版权通知和许可通知出现在所有副本中。