使用说明
项目简介
本项目是一个使用 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) 实时通信。
安装步骤
- 克隆仓库:
git clone https://github.com/mateusdata/mcp-mateusdata-server.git cd mcp-mateusdata-server - 安装依赖:
npm install - 构建项目: (生产环境或需要构建时)
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与计算