mcpField
L
Learning about MCP

Learning about MCP

ローカル
github.com/WojciechMatuszewski開発ツール084 週間前に更新

Learning about MCP について

Learning about MCP は、Node ベースの MCP サーバーを学ぶためのプロジェクトです。MCP の基本要素やトランスポート、サーバー側のエラー処理を説明し、サンプリングとルートは未実装としています。

主な機能

  1. 01Node ベースのサーバー実装
  2. 02stdio と SSE の説明
  3. 03MCP の基本要素の解説
  4. 04SDK によるエラー処理

活用シーン

  1. 01MCP サーバー概念の学習
  2. 02トランスポート方式の確認
  3. 03サーバー側ツールのエラー処理の理解

MCP 対応

MCP サーバーを学ぶためのプロジェクトです。リソース、プロンプト、ツール、サンプリング、ルート、stdio と SSE のトランスポートを扱い、サンプリングとルートは未実装です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP について学ぶ

TODO:

学んだこと

  • トランスポート方式は 2 種類あります。

    • stdio 経由です。クライアントが使用するサーバーバイナリへのパスを指定する必要があります。

    • sse 経由です。サーバーのネットワークアドレスを指定する必要があります。

      • このトランスポート方式のほうが、より汎用的だと思います。サーバーをクライアントとは別にデプロイできます。
  • サーバーに fastify を使いたかったのですが、既存の SDK では動作させられませんでした。

    • これは、Node だけを使ってこのようなサーバーを書く方法を学ぶ絶好の機会です。
  • MCP に関連する中核的なプリミティブは次のとおりです。

    • リソース — PDF やデータベースのレコードなどのデータで、クライアントがユーザーのクエリに対する適切な応答を作成するために使用できます。

    • プロンプト — 「prompt to x」のフローで、テキストボックスの下に表示されることがある、あらかじめ定義されたプロンプトのようなものです。

    • ツール — LLM がユーザーに代わってアクションを実行できるようにします。ツールを呼び出し、その結果をクライアントに返すのはサーバーです。クライアントの役割は、その結果を LLM に渡すことです。

    • サンプリング — 正直なところ、まだ何なのかよく分かっていません。

    • ルート — サーバーの「境界」を定義します。たとえば、サーバーがファイルシステムを操作するツールを公開している場合、「ルート」に特定のディレクトリを含めることで、そのツールの対象をそのディレクトリだけに限定できます。

    • トランスポート — これについては上で説明しました。STDIO と SSE のトランスポートがあります。メッセージは JSON-RPC 2.0 形式で構成されます。

  • SDK にエラーハンドリングが組み込まれている点がとても気に入っています。

    • サーバーの tool コールバック関数でエラーをスローすると、クライアント SDK が処理して、適切に応答してくれます。

コメント

MCP は初めてですか?

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

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