MCP JSON-RPC クライアントとサーバーの例
このリポジトリには、MCPに着想を得たJavaScriptで実装された、シンプルで初心者にも分かりやすいJSON-RPCクライアントとサーバーのサンプルが含まれています。このプロジェクトでは、外部依存関係を一切使用せずに、Node.jsの組み込みモジュールを用いた基本的な通信フローを実証しています。
概要
サーバー (
TCP ポート 4000 をリッスンします。
2 つの JSON-RPC メソッドを実装します。
initialize: 基本機能オブジェクト (「エコー」ツールをアドバタイズ) を返します。echo: クライアントから提供されたパラメータをエコーバックします。
クライアント (
ポート 4000 でサーバーに接続します。
initialize要求を送信し、その後にecho要求を送信します。サーバーから受信した応答をログに記録します。
Related MCP server: MCP Bone
前提条件
システムにNode.jsがインストールされていること (v10 以降を推奨)。
はじめる
Smithery経由でインストール
Smithery経由で Claude Desktop 用の MCP JSON-RPC クライアントおよびサーバーの例を自動的にインストールするには:
手動インストール
リポジトリをクローンします。
git clone https://github.com/sandy-mount/mcpjs.git cd mcp-jsonrpc-exampleサーバーを実行します。
ターミナル ウィンドウを開いて、次を実行します。
node server.js次のようなメッセージが表示されます。
Server listening on port 4000クライアントを実行します。
別のターミナル ウィンドウを開いて、次を実行します。
node client.jsクライアントはサーバーに接続し、初期化要求とエコー要求を送信し、応答を表示します。
仕組み
サーバーはポート 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ファイルをご覧ください。
貢献
お気軽に問題を開いたり、改善点や提案を記載したプル リクエストを送信してください。
楽しいコーディングを!