项目简介

这是一个基于 Model Context Protocol (MCP) 实现的服务器端应用,专注于提供通过 MCP 协议进行数据库操作的能力。当前主要支持 PostgreSQL 数据库。它将数据库的常见操作封装成 MCP 工具,供支持 MCP 协议的 LLM 客户端调用。

主要功能点

本项目提供了以下数据库操作功能,可以通过 MCP 工具调用:

  • 连接管理:注册和注销与 PostgreSQL 数据库的连接。
  • 数据操作:执行标准的 SQL 查询 (SELECT)、插入 (INSERT)、更新 (UPDATE) 和删除 (DELETE) 语句。
  • 结构管理:查看数据库表的结构(描述表)、创建/删除表、创建/删除索引。
  • 浏览对象:列出指定 Schema 下的所有表。
  • 高级管理:创建数据库类型和 Schema。

安装步骤

  1. 环境准备: 确保你的系统已安装 .NET 7.0 或更高版本 SDK。
  2. 获取代码: 克隆 GitHub 仓库到本地:
    git clone https://github.com/Taki-Ta/MCPTools.git
    cd MCPTools
  3. 编译项目: 在项目根目录下运行编译命令:
    dotnet build
  4. 运行服务器: 项目包含两种运行模式:Stdio (标准输入输出) 和 SSE (HTTP Server-Sent Events)。
    • 运行 Stdio 服务器(通常用于本地或通过进程启动):
      dotnet run --project DBMCP
    • 运行 SSE 服务器(通常用于网络服务):
      dotnet run --project DBMCP_SSE
    服务器成功启动后,将监听相应的 MCP 协议请求。

服务器配置(供 MCP 客户端参考)

MCP 服务器由 MCP 客户端(通常是集成大模型的应用)启动或连接。MCP 客户端需要配置如何找到并与此服务器通信。以下是一个典型的 MCP 客户端配置文件(通常是 JSON 格式)中,用于描述如何启动或连接到本项目的配置片段:

{
    "servers": {
        "dbmcp-stdio": { // 给服务器起的名称,客户端内部使用
            "type": "stdio", // 通信类型:Stdio (标准输入输出)
            "command": "dotnet", // 启动服务器的可执行命令
            "args": ["run", "--project", "path/to/dbmcp", "--no-build"] // 命令的参数,这里指定运行 Stdio 服务器项目
        },
        "dbmcp-sse": { // 给服务器起的名称,客户端内部使用
            "type": "sse", // 通信类型:SSE (HTTP Server-Sent Events)
            "url": "http://127.0.0.1:5000/sse" // SSE 服务器的访问地址
        }
        // 你只需要根据实际运行方式选择其中一个配置添加到你的客户端配置中
    }
}

请根据你运行服务器的方式(Stdio 或 SSE)和实际路径/地址,调整上述配置并添加到你的 MCP 客户端的配置文件中。

基本使用方法(供 MCP 客户端参考)

一旦 MCP 客户端成功启动并连接到此 MCP 服务器,大模型应用即可通过调用服务器暴露的 MCP 工具来执行数据库操作。基本交互流程如下:

  1. 注册连接: 调用 'Register' 工具,传入你的 PostgreSQL 连接字符串作为参数。服务器会返回一个唯一的 '连接ID'。
  2. 执行操作: 调用其他数据库操作工具(如 'Query', 'Insert', 'Update', 'Delete', 'Describe', 'ListTables', 'CreateTable' 等),传入第一步获取的 '连接ID' 作为参数,以及相应的 SQL 语句或表名等参数。
  3. 获取结果: 服务器将返回操作的结果(如查询数据、影响的行数、操作成功/失败信息等)。
  4. 注销连接 (可选): 完成所有操作后,调用 'Unregister' 工具,传入 '连接ID',释放数据库连接资源。

例如,大模型可能会生成一个工具调用请求,要求 MCP 客户端调用这个服务器的 'Query' 工具,并提供之前注册的 '连接ID' 和一条 SQL 查询语句。

信息

分类

数据库与文件