项目简介

这是一个实现了 Model Context Protocol (MCP) 的服务器程序,专为与 SQL Server 数据库交互而设计。它允许支持 MCP 协议的 LLM(大型语言模型)通过标准化的方式执行 SQL 查询和获取数据库架构信息。

主要功能点

  • 数据库查询: 允许执行 SQL 'SELECT'、'INSERT'、'UPDATE'、'DELETE' 等语句,并返回查询结果或受影响的行数。
  • 架构检查: 提供获取数据库中所有表、视图、存储过程列表以及查询特定表详细架构(列名、数据类型等)的能力。
  • 安全校验: 内置了基本的 SQL 注入防御机制,过滤掉一些危险的 SQL 语法。

安装步骤

  1. 安装 .NET SDK: 确保您的系统安装了 .NET 8.0 SDK 或更高版本。
  2. 克隆仓库: 使用 Git 克隆项目仓库到您的本地机器。
    git clone https://github.com/Popplywop/mssql-mcp-server 
    cd mssql-mcp-server
  3. 构建项目: 在项目根目录执行构建命令。
    dotnet build
    构建成功后,您会在 'bin' 目录下的相应配置(如 'Debug' 或 'Release')和框架(如 'net8.0')子目录中找到可执行文件(例如 'mssql-mcp-server.exe')。

服务器配置

MCP 服务器通常不是直接运行给用户使用的,而是由支持 MCP 的 LLM 客户端程序来启动和管理。您需要在 LLM 客户端的 MCP 配置中添加该服务器的信息。配置通常是 JSON 格式,包含服务器的名称、启动命令和参数。

关键配置信息包括:

  • 名称 (name): 给这个 MCP 服务器起一个唯一的名称(例如 'SqlServerMcp')。
  • 命令 (command): 指定服务器可执行文件的完整路径(例如 '/path/to/mssql-mcp-server.exe')。
  • 参数 (args): 指定启动服务器所需的命令行参数。最重要的参数是数据库连接字符串:
    • 使用 '--dsn' 或 '-d' 参数直接提供连接字符串(例如 '"--dsn", "Server=your-server;Database=your-database;User Id=your-username;Password=your-password;TrustServerCertificate=True;"')。请注意连接字符串中可能包含需要转义的特殊字符。
    • 或者,使用 '--env-var' 或 '-e' 参数指定一个环境变量的名称,服务器将从该环境变量读取连接字符串(例如 '"--env-var", "SQL_CONNECTION_STRING"')。出于安全考虑,推荐使用环境变量来管理敏感的连接信息。

请根据您的 LLM 客户端的文档来完成具体的 MCP 服务器配置步骤。

基本使用方法

一旦服务器在 LLM 客户端中配置并启动成功,LLM 就可以通过 MCP 协议调用服务器提供的工具来与 SQL Server 交互:

  1. LLM 可以调用 'ListTables' 工具来获取数据库中的所有表名,以便了解数据库结构。
  2. LLM 可以调用 'GetTableSchema' 工具,指定一个表名,来获取该表的列信息(名称、类型等)。
  3. LLM 可以调用 'ExecuteQuery' 工具,提供一个 SQL 查询语句(例如 'SELECT * FROM Customers WHERE City = 'London''),服务器将执行该查询并将结果返回给 LLM。
  4. LLM 还可以调用 'ListViews', 'ListStoredProcedures', 'GetDatabaseInfo' 等工具获取其他数据库信息。

LLM 会根据用户输入的指令,结合自身能力和对可用工具的理解,自动选择并调用相应的 MCP 工具来完成任务。

信息

分类

数据库与文件