使用说明

项目简介

本项目是一个使用原生Node.js实现的Model Context Protocol (MCP) 服务器的参考实现。它旨在演示如何构建一个符合MCP协议规范的服务端,以便为LLM客户端提供上下文数据和功能。该服务器使用Server-Sent Events (SSE) 作为传输协议,并集成了工具注册和调用功能。

主要功能点

  • MCP协议实现: 实现了MCP协议的核心功能,能够处理MCP客户端发送的符合JSON-RPC格式的请求,并返回响应。
  • 资源管理 (Resources): 仓库描述中提到计划支持资源管理,但当前版本可能尚未完全实现,请关注后续更新。
  • 工具注册与执行 (Tools): 支持注册和执行外部工具,例如示例中提供的计算器 (calculator) 和天气查询 (weather) 工具。允许LLM客户端通过MCP协议调用这些工具来扩展功能。
  • Prompt模板 (Prompts): 仓库描述中提到计划支持Prompt模板,但当前版本可能尚未完全实现,请关注后续更新。
  • SSE传输协议: 使用Server-Sent Events (SSE) 作为主要的客户端-服务器通信协议,实现了实时的双向数据传输。
  • 会话管理: 通过sessionId管理客户端会话,确保每个客户端连接的独立性和数据隔离。
  • 健康检查: 提供 '/ping' 健康检查接口,用于监控服务器运行状态。
  • CORS支持: 配置了CORS (跨域资源共享),允许来自不同域的MCP客户端访问服务器。

安装步骤

  1. 安装Node.js和npm: 确保您的系统已安装Node.js和npm (Node包管理器)。
  2. 克隆仓库: 使用git命令克隆该GitHub仓库到本地:
    git clone https://github.com/rodocite/mcp-node-sse-reference.git
    cd mcp-node-sse-reference
  3. 安装依赖: 在项目根目录下运行npm命令安装项目依赖:
    npm install

服务器配置

MCP服务器需要配置后才能被MCP客户端连接和使用。以下是MCP客户端所需的服务器配置信息(JSON格式):

{
  "serverName": "mcp-node-sse-reference",
  "command": "node",
  "args": [
    "index.js"
  ],
  "transport": "sse",
  "baseUrl": "http://localhost:3001"
}

配置信息说明:

  • 'serverName': 服务器名称,可以自定义,例如 "mcp-node-sse-reference"。
  • 'command': 启动服务器的命令,这里使用 'node' (假设您已将Node.js添加到系统PATH)。
  • 'args': 启动命令的参数,这里指定服务器入口文件为 'index.js'。
  • 'transport': 传输协议,本项目使用 'sse' (Server-Sent Events)。
  • 'baseUrl': 服务器的基础URL,默认为 'http://localhost:3001' (与 'npm run dev' 启动的端口一致)。

MCP客户端配置示例 (以MCP Inspector为例):

在MCP Inspector中,您需要配置 "Servers Cursor",将上述JSON配置粘贴到 Inspector 的服务器配置区域。

基本使用方法

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

    npm run dev

    服务器默认运行在 'http://localhost:3001'。

  2. 使用MCP客户端连接: 使用MCP客户端 (例如 MCP Inspector) ,根据上述服务器配置信息连接到运行中的MCP服务器。

  3. 测试工具: 连接成功后,您可以使用MCP客户端调用服务器提供的工具,例如 "calculator" 和 "weather" 工具。在MCP Inspector的界面上,您可以找到可用的工具列表并进行测试。

注意:

  • 本项目是一个参考实现,可能不包含MCP协议的所有功能。例如,README中提到 'resources' 和 'prompts' 尚未完全测试。
  • 仓库描述中提到可以使用命令 'npx @modelcontextprotocol/inspector node server.js' 测试,但实际项目中入口文件为 'index.js',建议使用 'node index.js' 或 'npm run dev' 启动服务器。MCP客户端配置中的 'args' 也应相应调整为 'index.js'。
  • 确保Node.js环境配置正确,并且端口 '3001' 没有被其他程序占用。

信息

分类

AI与计算