mcp-builder について
MCP サーバーの計画、実装、テスト、評価を支援するガイドスキルです。プロトコルや SDK の参照情報に加え、ツール設計、エラー処理、ページネーション、評価の指針を開発者に提供します。
主な機能
- 01MCP サーバーの調査と計画
- 02ツール設計と API 範囲の指針
- 03TypeScript と Python の実装資料
- 04ビルドと MCP Inspector によるテスト
- 05評価用の質問設計ガイド
活用シーン
- 01外部サービス向け MCP サーバーの計画
- 02見つけやすいツールと解決につながるエラーの設計
- 03MCP サーバー実装のテスト
- 04実際のクライアントタスク向け評価の作成
MCP 対応
MCP サーバーの構築を支援し、プロトコル、トランスポート、ツール、リソース、プロンプトの設計を扱います。MCP SDK と MCP Inspector を使った実装・テストも案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ makerjackie/ jackie-skills-starter --skill mcp-builderインストール後、Claude Code で/mcp-builderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtreference/evaluation.mdmcp_best_practices.mdnode_mcp_server.mdpython_mcp_server.mdscripts/connections.pyevaluation.pyexample_evaluation.xmlrequirements.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 を使用します。
フレームワークのドキュメントを読み込む:
- MCP のベストプラクティス:📋 ベストプラクティスを見る - 基本的なガイドライン
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 プロジェクト構成を設定する
プロジェクトの設定については、言語別のガイドを参照してください。
- ⚡ TypeScript ガイド - プロジェクト構成、package.json、tsconfig.json
- 🐍 Python ガイド - モジュール構成、依存関係
2.2 コアインフラストラクチャを実装する
共通ユーティリティを作成します。
- 認証機能を備えた API クライアント
- エラー処理のヘルパー
- 応答のフォーマット(JSON/Markdown)
- ページネーションのサポート
2.3 ツールを実装する
各ツールについて:
入力スキーマ:
- Zod(TypeScript)または Pydantic(Python)を使用します
- 制約と明確な説明を含めます
- フィールドの説明に例を追加します
出力スキーマ:
- 可能な場合は、構造化データ向けに
outputSchemaを定義します - ツールの応答で
structuredContentを使用します(TypeScript SDK の機能) - クライアントがツールの出力を理解し、処理するのに役立ちます
ツールの説明:
- 機能の簡潔な概要
- パラメーターの説明
- 戻り値の型スキーマ
実装:
- I/O 操作には async/await を使用します
- 対処方法がわかるエラーメッセージを含む、適切なエラー処理
- 該当する場合はページネーションをサポートします
- 最新の SDK を使用する場合は、テキストコンテンツと構造化データの両方を返します
アノテーション:
readOnlyHint:true/falsedestructiveHint:true/falseidempotentHint:true/falseopenWorldHint: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 件作成する
効果的な評価を作成するには、評価ガイドに記載された手順に従います:
- ツールの確認:利用可能なツールを一覧表示し、その機能を理解します
- コンテンツの探索:読み取り専用の操作で、利用可能なデータを調べます
- 質問の作成:複雑で現実的な質問を 10 件作成します
- 回答の検証:各質問を自分で解いて、回答を検証します
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 形式の仕様
- 質問と回答の例
- 提供されたスクリプトを使った評価の実行