mcpField
A
A Simple MCP Server and Client

A Simple MCP Server and Client

ローカル
github.com/logesh-kumar開発ツール184 週間前に更新

A Simple MCP Server and Client について

都市情報、天気予報、旅行アドバイスを扱う MCP サーバーとクライアントの小規模なサンプルです。stdio 通信と JSON-RPC メッセージの記録を通じて、開発者が MCP の仕組みを学べます。

主な機能

  1. 01都市情報リソース
  2. 02天気予報ツール
  3. 03天気に基づく旅行プロンプト
  4. 04stdio によるクライアント・サーバー通信
  5. 05読みやすい JSON-RPC ログ

活用シーン

  1. 01MCP のリソース、ツール、プロンプトの学習
  2. 02デバッグ時の JSON-RPC 通信確認
  3. 03サーバープロセスを起動するクライアントの試用

MCP 対応

サーバーは都市リソース、天気ツール、旅行アドバイスのプロンプトを MCP クライアントに提供します。付属クライアントは stdio で接続し、リソースの読み取り、ツールの呼び出し、プロンプトの取得を実演します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

シンプルな MCP サーバーとクライアント

これは、天気情報を公開してアクセスする方法を示す、シンプルな Model Context Protocol(MCP)サーバーとクライアントの実装です。

サーバー

サーバーは server.js に実装されています。次の機能を提供します。

  • リソース:

    • city://NewYork:ニューヨーク市に関する基本情報
    • city://London:ロンドンに関する基本情報
    • city://Tokyo:東京に関する基本情報
  • ツール:

    • get-weather:都市名と日数をパラメーターとして、都市の天気予報を取得します
  • プロンプト:

    • weather-advice:天候に基づいた旅行のアドバイスを取得します

クライアント

クライアントは client.js に実装されています。次の方法を示します。

  • MCP サーバーに接続する
  • 利用可能なリソースを一覧表示する
  • 特定の都市のリソースを読み取る
  • 天気予報ツールを呼び出す
  • 天気に関するアドバイスのプロンプトを取得する

JSON-RPC 通信

この実装では、クライアントとサーバー間の基盤となる通信プロトコルとして JSON-RPC 2.0 を使用します。使用する主な JSON-RPC の概念は次のとおりです。

  • メソッド:resources/list、resources/read、tools/call、prompts/get などの標準的なメソッド名
  • パラメーター:メソッド呼び出しとともに送信される入力データ
  • リクエスト ID:リクエストとレスポンスを対応付ける一意の識別子
  • 結果/エラー:構造化されたレスポンスデータまたはエラー情報

MCP SDK がその多くを抽象化しますが、プロトコルを理解しておくと、デバッグやカスタマイズに役立ちます。コンソール出力を確認すると、生の JSON-RPC メッセージを確認できます。

サーバーとクライアントの実行

  1. クライアントを起動します。

    node client.js
    

    クライアントを起動すると、子プロセスとしてサーバーが自動的に起動します。クライアントはサーバーに接続し、すべてのサンプル操作を実行します。

  2. サーバーを単独で起動するには、次のコマンドを実行します。

    node server.js
    

トランスポート機構

この例では、クライアントとサーバー間のトランスポート機構として stdio(標準入力/標準出力)を使用します。クライアントを起動すると、子プロセスとしてサーバーを起動し、stdin/stdout ストリームを介して通信します。

クライアントとサーバー間でやり取りされるメッセージを表示するため、カスタムのロギングトランスポートを実装しています。メッセージは人が読みやすい形式でコンソールに記録され、プロトコルの理解に役立ちます。

トラブルシューティング

リソースまたはプロンプトのリクエストがタイムアウトする場合は、サーバーの実装を確認してください。この例では、現在の SDK バージョンの制限を回避するため、一部のリクエスト種別を直接処理する仕組みが含まれています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。