SQL Server MCP Client
一个实现了模型上下文协议 (MCP) 的 Microsoft SQL Server 客户端。该服务器通过一个简单的 MCP 接口提供 SQL 查询功能。
aadversteeg
README
SQL Server MCP 客户端
一个实现了模型上下文协议 (MCP) 的 Microsoft SQL Server 客户端。此服务器通过一个简单的 MCP 接口提供 SQL 查询功能。
概述
SQL Server MCP 客户端使用 .NET Core 和模型上下文协议 C# SDK (github.com/modelcontextprotocol/csharp-sdk) 构建。它提供了执行 SQL 查询、列出表以及从 SQL Server 数据库检索模式信息的工具。该服务器设计轻量级,并演示了如何创建一个具有实际数据库功能的自定义 MCP 服务器。它可以直接部署在机器上,也可以作为 Docker 容器部署。
功能
- 在连接的 SQL Server 数据库上执行 SQL 查询
- 列出连接的数据库中的所有表,包括模式和行数信息
- 检索特定表的详细模式信息
- 通过环境变量配置数据库连接
入门
前提条件
- .NET 9.0(用于本地开发/部署)
- Docker(用于容器部署)
构建说明(用于开发)
如果您想从源代码构建项目:
-
克隆此存储库:
git clone https://github.com/aadversteeg/mssqlclient.git
-
导航到项目根目录:
cd mssqlclient
-
使用以下命令构建项目:
dotnet build src/mssqlclient.sln
-
运行测试:
dotnet test src/mssqlclient.sln
Docker 支持
本地注册表
SQL Server MCP 客户端在您的本地注册表的 5000 端口可用。
# 拉取最新版本
docker pull localhost:5000/mssqlclient-mcp-server:latest
手动 Docker 构建
如果您需要自己构建 Docker 镜像:
# 导航到存储库根目录
cd mssqlclient
# 构建 Docker 镜像
docker build -f src/Core.Infrastructure.McpServer/Dockerfile -t mssqlclient-mcp-server:latest src/
# 运行本地构建的镜像
docker run -d --name mssql-mcp -e "MSSQL_CONNECTIONSTRING=Server=your_server;Database=your_db;User Id=your_user;Password=your_password;TrustServerCertificate=True;" mssqlclient-mcp-server:latest
本地注册表推送
要推送到您的本地注册表:
# 构建 Docker 镜像
docker build -f src/Core.Infrastructure.McpServer/Dockerfile -t localhost:5000/mssqlclient-mcp-server:latest src/
# 推送到本地注册表
docker push localhost:5000/mssqlclient-mcp-server:latest
MCP 协议用法
客户端集成
要从您的应用程序连接到 SQL Server MCP 客户端:
- 使用模型上下文协议 C# SDK 或任何 MCP 兼容的客户端
- 配置您的客户端以连接到服务器的端点
- 调用下面描述的可用工具
可用工具
execute_query
在连接的 SQL Server 数据库上执行 SQL 查询。
参数:
query
(必需): 要执行的 SQL 查询。
示例请求:
{
"name": "execute_query",
"parameters": {
"query": "SELECT TOP 5 * FROM Customers"
}
}
示例响应:
| CustomerID | CompanyName | ContactName |
| ---------- | -------------------------------- | ------------------ |
| ALFKI | Alfreds Futterkiste | Maria Anders |
| ANATR | Ana Trujillo Emparedados y h... | Ana Trujillo |
| ANTON | Antonio Moreno Taquería | Antonio Moreno |
| AROUT | Around the Horn | Thomas Hardy |
| BERGS | Berglunds snabbköp | Christina Berglund |
Total rows: 5
list_tables
列出连接的 SQL Server 数据库中的所有表,包括模式和行数信息。
示例请求:
{
"name": "list_tables",
"parameters": {}
}
示例响应:
Available Tables:
Schema | Table Name | Row Count
------ | ---------- | ---------
dbo | Customers | 91
dbo | Products | 77
dbo | Orders | 830
dbo | Employees | 9
get_table_schema
从连接的 SQL Server 数据库获取表的模式。
参数:
tableName
(必需): 要获取模式信息的表的名称。
示例请求:
{
"name": "get_table_schema",
"parameters": {
"tableName": "Customers"
}
}
示例响应:
Schema for table: Customers
Column Name | Data Type | Max Length | Is Nullable
----------- | --------- | ---------- | -----------
CustomerID | nchar | 5 | NO
CompanyName | nvarchar | 40 | NO
ContactName | nvarchar | 30 | YES
ContactTitle| nvarchar | 30 | YES
Address | nvarchar | 60 | YES
City | nvarchar | 15 | YES
Region | nvarchar | 15 | YES
PostalCode | nvarchar | 10 | YES
Country | nvarchar | 15 | YES
Phone | nvarchar | 24 | YES
Fax | nvarchar | 24 | YES
配置
数据库连接字符串
需要 SQL Server 连接字符串才能连接到您的数据库。此连接字符串应包括服务器信息、数据库名称、身份验证详细信息以及任何必需的连接选项。
您可以使用 MSSQL_CONNECTIONSTRING
环境变量设置连接字符串:
# 运行 Docker 容器时
docker run -e "MSSQL_CONNECTIONSTRING=Server=your_server;Database=your_db;User Id=your_user;Password=your_password;TrustServerCertificate=True;" localhost:5000/mssqlclient-mcp-server:latest
典型的连接字符串包括:
- 服务器名称或 IP 地址
- 数据库名称
- 身份验证方法(SQL Server 或 Windows 身份验证)
- 可选参数,如加密设置
示例连接字符串:
# SQL Server 身份验证
Server=database.example.com;Database=Northwind;User Id=sa;Password=YourPassword;TrustServerCertificate=True;
# Windows 身份验证
Server=database.example.com;Database=Northwind;Integrated Security=SSPI;TrustServerCertificate=True;
# 具有特定端口的 SQL Server
Server=database.example.com,1433;Database=Northwind;User Id=sa;Password=YourPassword;TrustServerCertificate=True;
如果未提供连接字符串,服务器将在尝试使用这些工具时返回错误消息。
集成安全性在 Docker 容器中不起作用!
配置 Claude Desktop
使用本地安装
要配置 Claude Desktop 以使用本地安装的 SQL Server MCP 客户端:
- 将服务器配置添加到 Claude Desktop 配置中的
mcpServers
部分:
"mssql": {
"command": "dotnet",
"args": [
"YOUR_PATH_TO_DLL\\Core.Infrastructure.McpServer.dll"
],
"env": {
"MSSQL_CONNECTIONSTRING": "Server=your_server;Database=your_db;User Id=your_user;Password=your_password;TrustServerCertificate=True;"
}
}
- 保存文件并重新启动 Claude Desktop
使用 Docker 容器
要从 Docker 容器中使用 SQL Server MCP 客户端与 Claude Desktop:
- 将服务器配置添加到 Claude Desktop 配置中的
mcpServers
部分:
"mssql": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "MSSQL_CONNECTIONSTRING=Server=your_server;Database=your_db;User Id=your_user;Password=your_password;TrustServerCertificate=True;",
"localhost:5000/mssqlclient-mcp-server:latest"
]
}
- 保存文件并重新启动 Claude Desktop
许可证
此项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。