使用说明
项目简介
本项目是一个基于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)。
安装步骤
-
克隆仓库
git clone https://github.com/MCP-Mirror/boilingdata_mcp-server-and-gw cd boilingdata_mcp-server-and-gw -
安装依赖 确保你已经安装了Node.js和npm。在项目根目录下运行:
npm install -
构建项目
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 端点 }
基本使用方法
-
启动MCP服务器 在项目根目录下,运行以下命令启动服务器:
npm run start服务器默认监听 'http://127.0.0.1:8808',并通过SSE协议提供服务。
-
使用MCP客户端连接 配置你的MCP客户端(例如,可以使用仓库中提供的 'src/client.ts' 作为参考,或者配置兼容MCP协议的LLM应用),使其连接到 'http://127.0.0.1:8808'。客户端可以发送MCP请求到服务器,例如列出资源、读取资源内容、列出工具和调用工具等。
如果你想运行仓库自带的客户端示例 'src/client.ts',你需要先确保服务器已经启动,然后在新的终端窗口中,导航到项目目录并运行:
npm run client客户端示例会连接到服务器,并演示列出资源、读取资源和调用 'query' 工具的基本操作。
注意: 本示例MCP服务器使用内存中的DuckDB数据库,数据不会持久化。
信息
分类
数据库与文件