SQL Server MCP Client

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(用于容器部署)

构建说明(用于开发)

如果您想从源代码构建项目:

  1. 克隆此存储库:

    git clone https://github.com/aadversteeg/mssqlclient.git
    
  2. 导航到项目根目录:

    cd mssqlclient
    
  3. 使用以下命令构建项目:

    dotnet build src/mssqlclient.sln
    
  4. 运行测试:

    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 客户端:

  1. 使用模型上下文协议 C# SDK 或任何 MCP 兼容的客户端
  2. 配置您的客户端以连接到服务器的端点
  3. 调用下面描述的可用工具

可用工具

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 客户端:

  1. 将服务器配置添加到 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;"
  }
}
  1. 保存文件并重新启动 Claude Desktop

使用 Docker 容器

要从 Docker 容器中使用 SQL Server MCP 客户端与 Claude Desktop:

  1. 将服务器配置添加到 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"
  ]
}
  1. 保存文件并重新启动 Claude Desktop

许可证

此项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

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

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript