MCP JSON-RPC 客户端和服务器示例
本仓库包含一个简单易用的 JavaScript 实现的 JSON-RPC 客户端和服务器示例,该示例受 MCP 启发,面向初学者。该项目演示了使用 Node.js 内置模块进行基本通信的流程,无需任何外部依赖。
概述
服务器(
侦听 TCP 端口 4000。
实现两种 JSON-RPC 方法:
initialize
:返回一个基本功能对象(宣传“echo”工具)。echo
:回显客户端提供的参数。
客户端(
连接到服务器的端口 4000。
发送
initialize
请求,然后发送echo
请求。记录从服务器收到的响应。
先决条件
您的系统上安装了Node.js (建议使用 v10 或更高版本)。
入门
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 MCP JSON-RPC 客户端和服务器示例:
手动安装
克隆存储库:
运行服务器:
打开终端窗口并运行:
您应该会看到如下消息:
运行客户端:
打开另一个终端窗口并运行:
客户端将连接到服务器,发送初始化和回显请求,并显示响应。
工作原理
服务器在端口 4000 上监听传入的 TCP 连接。当它收到 JSON-RPC 消息(每个消息都以换行符结尾)时,它会处理该请求:
对于
initialize
方法,它返回具有基本功能和服务器信息的 JSON-RPC 响应。对于
echo
方法,它返回请求中发送的参数。如果请求了未知方法,它会以 JSON-RPC 错误进行响应。
客户端连接到服务器,发送 JSON-RPC
initialize
请求,等待一小段时间,然后发送echo
请求。服务器的响应将打印到控制台。
文件
server.js — JSON-RPC 服务器实现。
client.js — JSON-RPC 客户端实现。
定制
您可以通过以下方式扩展此示例:
向服务器添加更多 JSON-RPC 方法。
实施额外的错误处理和日志记录。
尝试不同的传输协议或添加 TLS 支持。
执照
本项目遵循 MIT 许可证。详情请参阅LICENSE文件。
贡献
欢迎随时提出问题或提交改进或建议的请求。
编码愉快!
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
一个使用 Node.js 构建的适合初学者的 MCP 启发式 JSON-RPC 服务器,通过“初始化”功能握手和“回显”功能提供基本的客户端-服务器交互。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.Last updated -2440Apache 2.0
- -securityFlicense-qualityA Node.js module that provides an MCP Server connecting to MCP Bone online service, allowing users to register other MCP Servers, obtain function calling tools in JSON or XML format, and parse completion text into tool calls.Last updated -1
- -securityAlicense-qualityA server that bridges MCP tool calls to JSON-RPC function calls over socket connections, allowing external applications to expose functions as MCP tools.Last updated -51MIT License
- AsecurityFlicenseAqualityA simple Node.js MCP server that exposes three tools: greet for personalized messages, calculate for basic math operations, and weather_info for mock weather data retrieval.Last updated -3