使用说明

项目简介

MCP-SqlServer 是一个使用 C# 开发的 MCP 服务器,旨在为大型语言模型 (LLM) 提供访问 Microsoft SQL Server 数据库的能力。它通过标准化的 MCP 协议与 LLM 客户端通信,允许 LLM 安全地查询数据库信息、获取 Schema 结构以及执行健康检查。

主要功能点

  • 健康检查 (HealthCheck): 检测 SQL Server 数据库连接是否正常。
  • 获取 Schema (GetSchema): 获取 SQL Server 数据库中所有表的 Schema 信息,包括表名、列名和数据类型,帮助 LLM 理解数据库结构。
  • 执行查询 (Query): 允许 LLM 执行 SQL 查询语句,并以 JSON 格式返回查询结果,使 LLM 能够从数据库中检索数据。
  • 基于 STDIO 传输协议: 使用标准输入输出流与 MCP 客户端进行通信。
  • 日志记录: 服务器运行日志记录在 'mcp_server.log' 文件中,方便问题排查。

注意: 该服务器允许 LLM 执行 SQL 查询,包括可能修改数据库的查询。请务必谨慎配置和使用,确保 LLM 的访问权限受到适当的控制。

安装步骤

  1. 配置数据库连接字符串:

    • 在项目根目录下创建名为 'env.database' 的文件。
    • 将您的 SQL Server 数据库连接字符串写入 'env.database' 文件中。例如:
      Server=your_server_name;Database=your_database_name;User Id=your_user_id;Password=your_password;
    • 请务必替换 'your_server_name', 'your_database_name', 'your_user_id', 'your_password' 为您实际的数据库连接信息。
  2. 编译项目:

    • 使用 .NET SDK 编译该 C# 项目。在项目根目录下打开命令行终端,执行 'dotnet build' 命令。

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是 Claude Desktop 的 'claude_desktop_config.json' 配置文件示例,展示了如何配置 'database' 服务器:

{
    "mcpServers": {
        "database": {
            "command": "dotnet",
            "args": [
                "run",
                "--project",
                "{项目路径}",
                "--no-build"
            ]
        }
    }
}

配置参数说明:

  • '"database"': 服务器名称,您可以自定义,用于在 MCP 客户端中标识该服务器。
  • '"command": "dotnet"': 启动服务器的命令,这里使用 'dotnet' 运行 .NET 程序。
  • '"args"': 启动参数列表:
    • '"run"': 'dotnet run' 命令用于运行 .NET 项目。
    • '"--project"': 指定项目文件路径。 请将 '{项目路径}' 替换为 MCP-SqlServer 项目文件 ('MCP-SqlServer.csproj' 文件所在的目录) 的实际绝对路径。 例如:'"C:\Users\YourUserName\Documents\MCP-SqlServer"'。
    • '"--no-build"': 可选参数,如果项目已经编译过,可以添加此参数跳过编译步骤,加快启动速度。

请注意:

  • 替换 '{项目路径}': 务必将 '{项目路径}' 替换为您本地 MCP-SqlServer 项目的实际绝对路径。
  • 绝对路径: 建议使用绝对路径,以避免因工作目录不同导致的问题。
  • Claude Desktop 配置: 以上配置示例用于 Claude Desktop,其他 MCP 客户端的配置方式可能略有不同,请参考相应客户端的文档。

基本使用方法

  1. 启动 MCP 服务器: 按照上述服务器配置,在 MCP 客户端中启动 'database' 服务器。
  2. 在 LLM 中调用工具: 在支持 MCP 协议的 LLM 应用中,您应该能够看到注册的工具(HealthCheck, GetSchema, Query)。您可以指示 LLM 使用这些工具来与 SQL Server 数据库进行交互。
  3. 参考示例: 仓库的 README.md 文件中提供了在 Claude Desktop 中使用这些工具的截图示例,您可以参考这些示例来了解如何使用。 例如,您可以指示 LLM "使用数据库的 GetSchema 工具获取表结构信息" 或 "使用数据库的 Query 工具查询订单表的所有记录"。

信息

分类

数据库与文件