使用说明

项目简介

本项目是一个基于Node.js构建的示例MCP服务器,旨在演示如何利用Model Context Protocol (MCP) 向LLM客户端提供结构化数据访问和工具调用能力。该服务器集成了DuckDB内存数据库,允许客户端通过标准MCP协议,发现数据库中的表结构(作为资源)并执行SQL查询(作为工具)。此外,项目还包含一个简单的MCP客户端和一个stdio到SSE的网关,方便用户理解和测试MCP服务器的功能。

主要功能点

  • 资源管理: 将DuckDB数据库中的表结构以资源的形式暴露给MCP客户端,客户端可以获取表的schema信息。
  • 工具注册与执行: 注册了 "query" 和 "visualise" 两个工具,允许客户端执行SQL查询并获取结果,其中 "visualise" 工具预留了未来数据可视化的扩展。
  • SSE传输协议: 使用Server-Sent Events (SSE) 作为MCP服务器与客户端之间的通信协议。
  • 示例客户端: 提供了一个简单的Node.js客户端,演示如何连接到MCP服务器、列出资源和工具、以及调用工具。
  • stdio网关: 包含一个stdio到SSE的网关,用于适配可能使用stdio作为传输协议的LLM客户端(如Claude)。

安装步骤

  1. 克隆仓库

    git clone https://github.com/MCP-Mirror/boilingdata_mcp-server-and-gw
    cd boilingdata_mcp-server-and-gw
  2. 安装依赖 确保你已经安装了Node.js和npm。在项目根目录下运行:

    npm install
  3. 构建项目

    npm run build

服务器配置

MCP客户端需要配置以下JSON信息以连接到此MCP服务器。请注意,MCP客户端不需要执行以下命令,配置信息是提供给MCP客户端软件的,用于告知客户端如何启动和连接MCP服务器。

{
  "serverName": "boiling-insights",
  "command": "node",
  "args": ["dist/src/server.js"],
  "transport": "sse",
  "baseUrl": "http://127.0.0.1:8808"
  // "serverName":  服务器名称,可自定义
  // "command":  启动服务器的命令,这里使用 node 运行 JavaScript 文件
  // "args":  命令参数,指向编译后的服务器入口文件
  // "transport":  使用的传输协议,这里是 SSE
  // "baseUrl":  SSE连接的基础URL,客户端将连接到此URL的 /sse 端点
}

基本使用方法

  1. 启动MCP服务器 在项目根目录下,运行以下命令启动服务器:

    npm run start

    服务器默认监听 'http://127.0.0.1:8808',并通过SSE协议提供服务。

  2. 使用MCP客户端连接 配置你的MCP客户端(例如,可以使用仓库中提供的 'src/client.ts' 作为参考,或者配置兼容MCP协议的LLM应用),使其连接到 'http://127.0.0.1:8808'。客户端可以发送MCP请求到服务器,例如列出资源、读取资源内容、列出工具和调用工具等。

    如果你想运行仓库自带的客户端示例 'src/client.ts',你需要先确保服务器已经启动,然后在新的终端窗口中,导航到项目目录并运行:

    npm run client

    客户端示例会连接到服务器,并演示列出资源、读取资源和调用 'query' 工具的基本操作。

注意: 本示例MCP服务器使用内存中的DuckDB数据库,数据不会持久化。

信息

分类

数据库与文件