mcp-server について
mcp-server は、MCP の問題を再現し、最新仕様に照らしてサーバー実装を検証するスキルです。MCP サーバーを保守する開発者向けに、根拠の整理、最小限の修正案、Inspector による修正前後の確認を支援します。
主な機能
- 01MCP の障害を再現して分類
- 02MCP 仕様と実装の照合
- 03ツール、リソース、プロンプトの確認
- 04優先順位を付けた最小修正案の作成
- 05Inspector による変更の検証
活用シーン
- 01MCP サーバーの接続・呼び出し失敗の調査
- 02リリース前のプロトコル適合性確認
- 03修正前後の Inspector 結果の比較
MCP 対応
MCP サーバーのテストと検証を目的とするスキルです。仕様に照らしてサーバーの動作やツール、リソース、プロンプトの公開状態を確認し、Inspector で検証します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dalestudy/ skills --skill mcp-serverインストール後、Claude Code で/mcp-serverを入力して読み込まれたか確認します。
詳細
MCP 原因分析・仕様検証
問題の再現、最新仕様と実装の照合、不一致の根拠整理、修正前後の Inspector 検証
入力要件(不足している場合は確認)
まず、以下の3点だけを確認します。
- 作業目的:
원인 분석または스펙 검증 - 対象コード/サーバーの場所:repo path、package 名、実行エントリー
- ランタイム/transport:
Node(TypeScript)またはPython、stdioまたはSSE/HTTP
必要な場合に限り、以下の項目を追加で確認します。
- 再現手順:エラーログ、失敗したリクエスト/レスポンス、期待される動作
- 点検対象の Tool/Resource/Prompt 名
- デプロイ環境/認証情報(リモート呼び出しの問題の場合のみ)
判断ルール
- 実装より分析と検証を優先します
- サーバーの新規作成/スキャフォールディングは対象外です
- 修正が必要な場合は、既存コードを基準に最小限の変更で進めます
- 確定した事実と推定した仮説を分けて記録します
安全ルール
STDIO ロギング
- stdio transport では stdout へのログ出力を禁止します
- Node では
console.log()の代わりにconsole.error()を使用します - Python では
print()の代わりにloggingを使用します
入力/呼び出しの検証
- 必須入力が不足していないか、最初に検証します
- Tool handler の実行前に schema 検証を行います
- ファイルパス入力では path traversal(
../)をブロックします - 外部 API の呼び出しには timeout を強制します
実行手順
Step 1. 問題の再現
- 最小限の再現シナリオを定義します
- 失敗箇所を transport、tools、resources、prompts に分類します
- 再現結果を
確定事実と推定に分けて記録します
Step 2. 最新仕様との照合
- まず MCP Specification を確認します
- MCP SDKs のドキュメントと、使用中の SDK バージョンを照合します
- 実装コードと仕様を項目ごとに1対1で対応付けます
- transport の初期化/接続方式
tools/list、tools/callのリクエスト/レスポンス構造resources/list、resources/readの公開/取得構造- prompt の登録名、argument schema、handler のルーティング
- レスポンス形式
content、isError
- 不一致が見つかった場合は、影響範囲と修正箇所を併せて整理します
Step 3. 修正案の整理
- 原因ごとの修正順序を優先度順に整理します
- 各修正案の影響範囲と回帰リスクを明記します
- テスト可能な検証ケースも併せて提示します
Step 4. Inspector 検証
- 修正前後で同一のシナリオを使って結果を比較します
- 合格/不合格の基準をチェックリストに記録します
Resources / Prompts の検証項目
resources/listが期待したリソースを公開しているか確認しますresources/readが実際の payload を返すか確認します- prompt の登録名が競合していないか確認します
- prompt の argument schema が呼び出し payload と一致しているか確認します
- handler またはルーティングが欠落していないか確認します
Inspector テストチェックリスト
- サーバーの起動および Inspector との接続維持の基準を満たしているか
-
tools/listの結果が期待する tool の公開基準を満たしているか - 代表的な tool 1つ以上で
tools/callが成功する基準を満たしているか - レスポンスが
content/isErrorの構造基準を満たしているか - stdout が汚染されず、プロトコルが維持される基準を満たしているか
- 修正前後の結果の差を検証する基準を満たしているか
Error の返却基準
以下の条件のいずれかに該当する場合は、isError: true を返します。
- サーバーの実行または接続自体に失敗した場合
- 必須入力の不足により検証を進められない場合
- 仕様との不一致が確認された場合
- 再現に失敗し、原因を特定できない場合
- 環境上の制約により Inspector テストを実施できない場合
Error レスポンスには、最低限以下の項目を含めます。
- 失敗した段階
- 観測された症状
- 必要な追加入力または次の対応
出力仕様(Output Contract)
常に以下の順序で結果を整理します。
- 問題の概要と再現条件
- 確定した事実/推定した仮説
- 仕様との照合結果(一致/不一致)
- 修正箇所と影響範囲
- Inspector による修正前後の検証結果
- 残るリスクと今後の確認項目
Tool の返却形式
Success
{
"content": [{ "type": "text", "text": "..." }]
}
Error
{
"isError": true,
"content": [{ "type": "text", "text": "..." }]
}
コメント
Markdown 対応