使用说明

项目简介

本项目是一个使用 Node.js 和 TypeScript 实现的简单 MCP (Model Context Protocol) 服务器示例。它展示了如何构建一个基础的 MCP 服务器,提供工具执行和资源访问能力,并通过标准输入输出 (Stdio) 或 Server-Sent Events (SSE) 与 MCP 客户端通信。

主要功能点

  • JSON-RPC 请求处理: 能够接收并处理遵循 JSON-RPC 2.0 规范的 MCP 客户端请求。
  • 工具注册与调用: 定义了例如 'add-number'、'greet' 和 'grocery-shopping' 等示例工具,客户端可以通过 'tools/call' 方法请求服务器执行这些工具。
  • 资源定义与访问: 定义了一个动态的 'greeting' 资源,客户端可以通过 URI 访问服务器提供的上下文信息。
  • 多种传输协议支持: 支持通过标准输入输出 (Stdio) 进行通信,也支持基于 HTTP 的 Server-Sent Events (SSE) 实时通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/mateusdata/mcp-mateusdata-server.git
    cd mcp-mateusdata-server
  2. 安装依赖:
    npm install
  3. 构建项目: (生产环境或需要构建时)
    npm run build

服务器配置

本 MCP 服务器需要通过 MCP 客户端进行配置和连接。典型的 MCP 客户端(如 Cursor IDE)需要知道如何启动这个服务器进程。配置信息通常包含服务器名称、启动命令及其参数。

  • 服务器名称: 自定义一个标识符,例如 'mateusdata-mcp-server'。
  • 启动命令: 'node'
  • 启动参数: 指向编译后的服务器入口文件路径。如果使用默认构建,通常是 'build/index.js'。请根据您的实际项目路径进行调整。

例如,在客户端配置文件中,您可能需要添加类似以下内容的条目(具体格式取决于客户端):

{
  // ... 其他配置
  "mcpServers": {
    "自定义的服务器名称": {
      "command": "node",
      "args": ["/path/to/your/cloned/repo/build/index.js"] // 请将此路径替换为实际路径
    }
  }
  // ... 其他配置
}

配置完成后,客户端将能够启动并连接到此 MCP 服务器。

基本使用方法

一旦服务器被 MCP 客户端启动并连接,客户端就可以通过发送 JSON-RPC 请求与服务器交互。

  • 调用工具: 客户端发送一个包含 'method: "tools/call"', 'params: { name: "工具名称", arguments: { ...参数 } }' 的 JSON-RPC 请求。服务器执行对应工具并返回结果。例如,客户端可以调用 'greet' 工具并传递 'name' 参数。
  • 访问资源: 客户端发送一个包含 'method: "resources/get"', 'params: { uri: "资源URI" }' 的 JSON-RPC 请求。服务器根据 URI 生成或查找资源内容并返回。例如,客户端可以访问 'greeting://Mateus' URI。
  • 使用 SSE: 如果服务器以 SSE 模式启动,客户端可以通过 HTTP 连接到 SSE 端点 ('/sse') 接收服务器的通知和响应,并通过另一个 HTTP 端点 ('/messages') 发送 JSON-RPC 请求。

您也可以通过命令行手动发送 JSON-RPC 请求进行测试(使用 Stdio 模式启动时):

# 启动服务器 (Stdio模式)
node build/index.js

# 在另一个终端向其标准输入发送请求 (例如调用greet工具)
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"greet","arguments":{"name":"Mateus"}}}' | node build/index.js

服务器将通过标准输出返回相应的 JSON-RPC 响应。

信息

分类

AI与计算