Skip to main content
Glama
melvincarvalho

MCP JSON-RPC Server

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 クライアントおよびサーバーの例を自動的にインストールするには:

npx -y @smithery/cli install @melvincarvalho/mcpjs --client claude

手動インストール

  1. リポジトリをクローンします。

    git clone https://github.com/sandy-mount/mcpjs.git cd mcp-jsonrpc-example
  2. サーバーを実行します。

    ターミナル ウィンドウを開いて、次を実行します。

    node server.js

    次のようなメッセージが表示されます。

    Server listening on port 4000
  3. クライアントを実行します。

    別のターミナル ウィンドウを開いて、次を実行します。

    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ファイルをご覧ください。

貢献

お気軽に問題を開いたり、改善点や提案を記載したプル リクエストを送信してください。


楽しいコーディングを!

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/melvincarvalho/mcpjs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server