mcpField
M
mcp-builder

mcp-builder

github.com/warpdotdev開発823186 回インストール28 週間前に更新
リポジトリ

mcp-builder について

mcp-builderは、LLMが外部サービスを利用できるMCPサーバーの開発ガイドです。調査、実装、テスト、評価を扱い、ツール設計やプロトコルの使い方も説明します。

主な機能

  1. 01MCPサーバーの計画と設計指針
  2. 02ツールのスキーマ、説明、アノテーション
  3. 03TypeScriptとPythonの実装資料
  4. 04ビルド、テスト、評価の手順

活用シーン

  1. 01外部API向けMCPサーバーの計画
  2. 02ページネーションや構造化出力を備えたツール設計
  3. 03MCP Inspectorによるサーバー動作の確認
  4. 04現実的なエージェントタスクの評価作成

MCP 対応

このガイドは、MCPサーバーの構築と、MCPクライアント向けのツール、リソース、プロンプトの定義を支援します。プロトコル、SDK、トランスポート、テストの資料も含みます。

インストール

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

$npx skills add https://github.com/warpdotdev/oz-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

詳細

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 サポートがあり、多くの実行環境との互換性にも優れています。また、AI モデルは TypeScript コードの生成が得意です。幅広く使われ、静的型付けに対応し、優れたリンティングツールを利用できる点も利点です)
  • トランスポート:リモートサーバーには、ステートレスな JSON を使用するストリーミング可能な HTTP(ステートフルなセッションやストリーミングレスポンスに比べ、スケーリングや保守が容易です)。ローカルサーバーには stdio を使用します。

フレームワークのドキュメントを参照する:

TypeScript の場合(推奨):

  • TypeScript SDK:https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md を確認してください
  • ⚡ TypeScript ガイド - TypeScript のパターンと例

Python の場合:

  • Python SDK:https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md を確認してください
  • 🐍 Python ガイド - Python のパターンと例
1.4 実装を計画する

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

ツールの選定: 包括的な 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 形式の仕様
    • 質問と回答の例

コメント