mcpField
M
mcp-builder

mcp-builder

github.com/w95開発28538 回インストール35 週間前に更新
リポジトリ

mcp-builder について

mcp-builderは、MCPサーバーを開発する人向けのガイドです。計画から実装、テスト、評価までを扱い、ツール設計やプロトコル選択の指針も示します。

主な機能

  1. 01MCPサーバーの設計指針
  2. 02プロトコルとSDKの調査
  3. 03実装ワークフロー
  4. 04ツールスキーマとエラー処理
  5. 05テストと評価の指針

活用シーン

  1. 01サーバーのAPIとツールの計画
  2. 02TypeScriptやPythonでのツール実装
  3. 03MCP Inspectorによるサーバーテスト
  4. 04サーバー品質を測る評価問題の作成

MCP 対応

このスキルは、LLMクライアントにツール、リソース、プロンプトを提供するMCPサーバーの構築を支援します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/w95/awesome-claude-corporate-skills --skill mcp-builder

インストール後、Claude Code で/mcp-builderを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE.txt
reference/
evaluation.md
mcp_best_practices.md
node_mcp_server.md
python_mcp_server.md
scripts/
connections.py
evaluation.py
example_evaluation.xml
requirements.txt

詳細

MCP サーバー開発ガイド

概要

LLM が適切に設計されたツールを通じて外部サービスとやり取りできるようにする MCP(Model Context Protocol)サーバーを作成します。MCP サーバーの品質は、LLM が実際のタスクをどれだけうまく達成できるかで評価されます。


プロセス

🚀 大まかなワークフロー

高品質な MCP サーバーの作成には、主に 4 つのフェーズがあります。

フェーズ 1:詳細な調査と計画
1.1 最新の MCP 設計を理解する

API カバレッジとワークフローツール: 包括的な API エンドポイントのカバレッジと、特化したワークフローツールのバランスを取ります。ワークフローツールは特定のタスクでより便利な場合があり、一方で包括的なカバレッジがあれば、エージェントは操作を柔軟に組み合わせられます。パフォーマンスはクライアントによって異なります。基本的なツールを組み合わせるコード実行が役立つクライアントもあれば、より高水準のワークフローが適しているクライアントもあります。判断に迷った場合は、包括的な API カバレッジを優先してください。

ツールの命名と見つけやすさ: 明確で説明的なツール名を付けると、エージェントが適切なツールをすばやく見つけられます。一貫性のある接頭辞(例:github_create_issue、github_list_repos)を使い、操作を表す名前を付けてください。

コンテキスト管理: エージェントは、簡潔なツールの説明と、結果を絞り込んだりページ分割したりできる機能を活用できます。焦点を絞った関連データを返すツールを設計してください。一部のクライアントではコード実行がサポートされており、エージェントが効率よくデータを絞り込み、処理するのに役立ちます。

実行可能なエラーメッセージ: エラーメッセージには、具体的な提案と次の手順を示し、エージェントが解決策を見つけられるようにしてください。

1.2 MCP プロトコルのドキュメントを確認する

MCP 仕様をたどる:

サイトマップから関連ページを探します:https://modelcontextprotocol.io/sitemap.xml

次に、.md サフィックスを付けて特定のページを取得すると、Markdown 形式で確認できます(例:https://modelcontextprotocol.io/specification/draft.md)。

確認すべき主なページ:

  • 仕様の概要とアーキテクチャ
  • トランスポート方式(ストリーミング可能な HTTP、stdio)
  • ツール、リソース、プロンプトの定義
1.3 フレームワークのドキュメントを確認する

推奨スタック:

  • 言語:TypeScript(高品質な SDK サポートがあり、多くの実行環境(例:MCPB)で互換性に優れています。また、AI モデルは TypeScript コードの生成が得意です。幅広く使われていること、静的型付け、優れたリントツールも利点です)
  • トランスポート:リモートサーバーには、ステートレスな JSON を使用するストリーミング可能な HTTP(ステートフルなセッションやストリーミング応答と比べて、スケーリングと保守が簡単です)。ローカルサーバーには stdio を使用します。

フレームワークのドキュメントを読み込む:

TypeScript の場合(推奨):

  • TypeScript SDK:WebFetch を使って https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md を読み込みます
  • ⚡ TypeScript ガイド - TypeScript のパターンと例

Python の場合:

  • Python SDK:WebFetch を使って https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md を読み込みます
  • 🐍 Python ガイド - Python のパターンと例
1.4 実装を計画する

API を理解する: サービスの API ドキュメントを確認し、主要なエンドポイント、認証要件、データモデルを特定します。必要に応じてウェブ検索や WebFetch を活用してください。

ツールの選定: 包括的な API カバレッジを優先します。一般的な操作から始めて、実装するエンドポイントを列挙してください。


フェーズ 2:実装
2.1 プロジェクト構成を設定する

プロジェクトの設定については、言語別のガイドを参照してください。

2.2 コアインフラストラクチャを実装する

共通ユーティリティを作成します。

  • 認証機能付き API クライアント
  • エラーハンドリング用ヘルパー
  • レスポンスのフォーマット(JSON/Markdown)
  • ページネーションのサポート
2.3 ツールを実装する

各ツールについて:

入力スキーマ:

  • Zod(TypeScript)または Pydantic(Python)を使用します
  • 制約と明確な説明を含めます
  • フィールドの説明に例を追加します

出力スキーマ:

  • 可能な場合は、構造化データ向けに outputSchema を定義します
  • ツールの応答で structuredContent を使用します(TypeScript SDK の機能)
  • クライアントがツールの出力を理解し、処理するのに役立ちます

ツールの説明:

  • 機能の簡潔な概要
  • パラメーターの説明
  • 戻り値の型スキーマ

実装:

  • I/O 操作には async/await を使用します
  • 対処方法がわかるエラーメッセージを含む、適切なエラー処理
  • 該当する場合はページネーションをサポートします
  • 最新の SDK を使用する場合は、テキストコンテンツと構造化データの両方を返します

アノテーション:

  • readOnlyHint:true/false
  • destructiveHint:true/false
  • idempotentHint:true/false
  • openWorldHint:true/false

フェーズ 3:レビューとテスト
3.1 コード品質

以下を確認します:

  • コードが重複していないこと(DRY 原則)
  • 一貫性のあるエラー処理
  • 型が完全に網羅されていること
  • ツールの説明が明確であること
3.2 ビルドとテスト

TypeScript:

  • npm run build を実行して、コンパイルを確認します
  • MCP Inspector でテストします:npx @modelcontextprotocol/inspector

Python:

  • 構文を確認します:python -m py_compile your_server.py
  • MCP Inspector でテストします

詳しいテスト方法と品質チェックリストについては、言語別のガイドを参照してください。


フェーズ 4:評価を作成する

MCP サーバーの実装後、その有効性をテストするための包括的な評価を作成します。

評価の完全なガイドラインについては、✅ 評価ガイドを読み込みます。

4.1 評価の目的を理解する

評価を使用して、LLM が MCP サーバーを効果的に活用し、現実的で複雑な質問に回答できるかをテストします。

4.2 評価用の質問を 10 件作成する

効果的な評価を作成するには、評価ガイドに記載された手順に従います:

  1. ツールの確認:利用可能なツールを一覧表示し、その機能を理解します
  2. コンテンツの探索:読み取り専用の操作で、利用可能なデータを調べます
  3. 質問の作成:複雑で現実的な質問を 10 件作成します
  4. 回答の検証:各質問を自分で解いて、回答を検証します
4.3 評価の要件

各質問が以下の要件を満たしていることを確認します:

  • 独立性:他の質問に依存しないこと
  • 読み取り専用:破壊的でない操作のみが必要であること
  • 複雑性:複数のツール呼び出しと詳細な探索が必要であること
  • 現実性:人々が実際に関心を持つユースケースに基づいていること
  • 検証可能性:文字列比較で検証できる、明確で単一の回答があること
  • 安定性:時間が経過しても回答が変わらないこと
4.4 出力形式

次の構造の XML ファイルを作成します:

<evaluation>
  <qa_pair>
    <question>Find discussions about AI model launches with animal codenames. One model needed a specific safety designation that uses the format ASL-X. What number X was being determined for the model named after a spotted wild cat?</question>
    <answer>3</answer>
  </qa_pair>

</evaluation>

参考ファイル

📚 ドキュメントライブラリ

開発中、必要に応じて以下のリソースを読み込みます:

MCP のコアドキュメント(最初に読み込む)
  • MCP プロトコル:まず https://modelcontextprotocol.io/sitemap.xml のサイトマップを確認し、その後 .md サフィックスを付けて特定のページを取得します
  • 📋 MCP のベストプラクティス - 以下を含む、MCP に関する共通ガイドライン:
    • サーバーとツールの命名規則
    • 応答形式のガイドライン(JSON と Markdown の比較)
    • ページネーションのベストプラクティス
    • トランスポートの選択(ストリーミング可能な HTTP と stdio の比較)
    • セキュリティとエラー処理の標準
SDK ドキュメント(フェーズ 1/2 で読み込む)
  • Python SDK:https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md から取得します
  • TypeScript SDK:https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md から取得します
言語別実装ガイド(フェーズ 2 で読み込み)
  • 🐍 Python 実装ガイド - Python/FastMCP の包括的なガイドです。内容は次のとおりです。

    • サーバー初期化のパターン
    • Pydantic モデルの例
    • @mcp.tool を使ったツール登録
    • 動作する完全なサンプル
    • 品質チェックリスト
  • ⚡ TypeScript 実装ガイド - TypeScript の包括的なガイドです。内容は次のとおりです。

    • プロジェクト構成
    • Zod スキーマのパターン
    • server.registerTool を使ったツール登録
    • 動作する完全なサンプル
    • 品質チェックリスト
評価ガイド(フェーズ 4 で読み込み)
  • ✅ 評価ガイド - 評価作成の包括的なガイドです。内容は次のとおりです。
    • 質問作成のガイドライン
    • 回答の検証方法
    • XML 形式の仕様
    • 質問と回答の例
    • 提供されたスクリプトを使った評価の実行

コメント