MCP JSON-RPC クライアントとサーバーの例
このリポジトリには、MCPに着想を得たJavaScriptで実装された、シンプルで初心者にも分かりやすいJSON-RPCクライアントとサーバーのサンプルが含まれています。このプロジェクトでは、外部依存関係を一切使用せずに、Node.jsの組み込みモジュールを用いた基本的な通信フローを実証しています。
概要
- サーバー (
server.js
):- TCP ポート 4000 をリッスンします。
- 2 つの JSON-RPC メソッドを実装します。
initialize
: 基本機能オブジェクト (「エコー」ツールをアドバタイズ) を返します。echo
: クライアントから提供されたパラメータをエコーバックします。
- クライアント (
client.js
):- ポート 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 サーバー。「initialize」機能ハンドシェイクと「echo」関数を通じて基本的なクライアント サーバー インタラクションを提供します。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.Last updated -2733JavaScriptApache 2.0
- -securityFlicense-qualityA Node.js-based MCP server implementing JSON-RPC 2.0, allowing users to generate random US State and signature soup combinations through a fun and simple tool.Last updated -11JavaScript
- -securityAlicense-qualityAn MCP server that enables fetching web content using the Node.js undici library, supporting various HTTP methods, content formats, and request configurations.Last updated -668TypeScriptMIT License
- -securityAlicense-qualityA Node.js package that provides Model Context Protocol server infrastructure for AWS Lambda functions with SSE support, enabling developers to implement MCP tools and prompts as serverless functions.Last updated -1129TypeScriptMIT License