ワンクリックで
conoha-vps-mcp-test
ConoHa VPS MCPサーバーの動作確認テストを自動実行するスキル。 「ConoHa テスト」「MCP動作確認」「動作検証」「conoha-test」「MCPテスト」 「VPSテスト」「検証項目」などのキーワードで発動する。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
ConoHa VPS MCPサーバーの動作確認テストを自動実行するスキル。 「ConoHa テスト」「MCP動作確認」「動作検証」「conoha-test」「MCPテスト」 「VPSテスト」「検証項目」などのキーワードで発動する。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
コーディングパターン準拠チェックを実行するスキル。 「パターンチェック」「コーディング規約」「coding pattern」「パターン準拠」 「コード規約チェック」「規約違反」「パターン違反」などのキーワードで発動する。
ConoHa VPS MCPサーバーの操作ガイド。サーバー作成・削除・起動・停止・リサイズ、ボリューム管理、セキュリティグループ設定、オブジェクトストレージ操作など、ConoHa VPS APIをMCPツールで操作する際に参照する。「ConoHa」「VPS」「サーバー作成」「サーバー削除」「ボリューム」「セキュリティグループ」「オブジェクトストレージ」「conoha_get」「conoha_post」「conoha_delete」「フレーバー」「イメージ」「SSHキーペア」「スタートアップスクリプト」などのキーワードで発動する。
| name | conoha-vps-mcp-test |
| description | ConoHa VPS MCPサーバーの動作確認テストを自動実行するスキル。 「ConoHa テスト」「MCP動作確認」「動作検証」「conoha-test」「MCPテスト」 「VPSテスト」「検証項目」などのキーワードで発動する。 |
ConoHa VPS MCPサーバーの全機能(37項目)を一括テストし、結果をMarkdownレポートとして出力する。
conoha_get, conoha_post, conoha_post_put, conoha_post_put_by_param, conoha_post_by_header_param, conoha_get_by_param, conoha_delete_by_param, conoha_head, encode_base64, fetch_url)が利用可能であること並列実行時のリソース名衝突を防ぐため、テスト実行ごとに一意な RUN_ID を決め、作成する全リソース名・一時ファイルパスに付与する。
# CI(GitHub Actions)では run_id を使う。ローカルでは日時+乱数で代替。
RUN_ID="${GITHUB_RUN_ID:-$(date +%Y%m%d%H%M%S)-$RANDOM}"
test-${RUN_ID}ssh_key_${RUN_ID} / SSHキー生成パス: /tmp/test_ssh_key_${RUN_ID}/tmp/test_index_${RUN_ID}.html<名前>-${RUN_ID} とするreferences/test-cases.md 内の固定名(test / ssh_key / web-server-secgroup 等)は、上記に倣い <固定名>-${RUN_ID} のテンプレートとして扱うテスト開始前に以下を実行する(既存ファイルがあってもプロンプトでハングしないよう、生成前に必ず削除する):
SSHキー生成(Group M, N で使用):
# -f 先が既存だと ssh-keygen は "Overwrite (y/n)?" で停止するため事前に削除
rm -f "/tmp/test_ssh_key_${RUN_ID}" "/tmp/test_ssh_key_${RUN_ID}.pub"
ssh-keygen -t ed25519 -f "/tmp/test_ssh_key_${RUN_ID}" -N "" -q
テスト用HTMLファイル作成(Group S で使用):
cat > "/tmp/test_index_${RUN_ID}.html" << 'EOF'
<!DOCTYPE html>
<html><head><title>Test</title></head>
<body><h1>ConoHa MCP Test Page</h1></body></html>
EOF
各グループは独立したサブエージェント(Agent/Task)で実行してよい。グループ間は下記の依存順を守り、依存のないグループは並列実行できる(並列時は前述の RUN_ID でリソース名衝突を防ぐ)。
サブエージェントがメインに返す情報は最小限にする(全応答を返さない。コンテキスト肥大と読み取り負荷を防ぐため):
references/report-template.md)を生成する。全グループを実行する場合は Group A → B → C → D → E → F → G → H → I → J → K → L → M → N → O → P → Q → R → S の順に実行する。
単一グループのみ実行する場合の依存解決: 各グループは自グループ内でサーバー作成(No.1)等の前提を内包する自己完結構成だが、グループ外の「テスト用リソース準備」前提は単独実行時に明示的に先行実行する:
RUN_ID の決定は常に最初に行う。/tmp/test_ssh_key_${RUN_ID})生成を先に実行(references/test-groups.md の各グループ「前提」を参照)。/tmp/test_index_${RUN_ID}.html)作成を先に実行。vG7#kLp9zX!qtest-${RUN_ID}default(基本)サーバーの状態遷移が必要な場合(起動/停止/リサイズ等)は、conoha_get で path="/servers/detail" を呼び出してステータスを確認し、目的の状態になるまで待機する。
無限待機の禁止: 待機にはタイムアウト(目安: 1グループあたり最大10分)と最大ポーリング回数を設ける。超過した場合、または ERROR ステータスを観測した場合は、そのテストを NG(後述の原因特定情報付き)として打ち切り、クリーンアップへ進む。
各グループ完了後、作成したリソースを必ず削除する:
テスト中に想定外の事態(ツールが想定外のエラー/形式を返す、状態遷移タイムアウト、ネットワーク断、前提リソース欠落 等)が起きた場合の共通ルート:
異常系テスト(No.24〜No.30)では、MCPツール呼び出し前にバリデーションで拒否されることを確認する。実際にAPIが呼ばれてエラーになるのではなく、ツール側でバリデーションエラーとなることが期待される。
create_server はMCPプロンプトであり、MCPツールとして直接呼び出すことはできない。
しかし、プロンプトの実質的な動作はMCPツールで代替検証できるため、これらのテストをスキップしてはならない。
create_server プロンプトはサーバー作成をMCPツールで行うよう指示するものである。
そのため、No.1と同じ手順(conoha_get でフレーバー・イメージ・ボリュームタイプ取得 → conoha_post でボリューム作成 → conoha_post path=/servers でサーバー作成)を
adminPass=vG7#kLp9zX!q、Ubuntu 24.04、メモリ1GB、サーバー名 test-${RUN_ID} で実行し、サーバーがACTIVEになることを確認する。create_server プロンプトの rootPassword バリデーションは conoha_post path=/servers の adminPass バリデーションと同一の正規表現を使用している。
そのため、conoha_post path=/servers でサーバー作成を試み、adminPass=aaa を指定してバリデーションエラーになることを確認する。
No.24と同様にMCPツール呼び出し前のバリデーション拒否を確認すればよい。各テスト実行後、references/report-template.md のフォーマットに基づき結果を記録する。
各MCPツール呼び出しの後、以下の情報をログファイルに記録する:
conoha_get)ログは references/report-log-template.md のフォーマットに基づき、グループ・テストNo.・ステップごとに時系列で記録する。
この全文ログはファイルにのみ書き出し、サブエージェントからメインへは返さない(メインへの返却は「サブエージェント実行モデル」の OK/NG サマリと NG 時の原因特定情報に限る)。サブエージェントで並列実行する場合、ログファイルは RUN_ID とグループ名でファイル名を分け、書き込み衝突を避ける。
テスト結果は以下のパスに出力する:
./test-results/YYYY-MM-DD_HH-MM.md./test-results/YYYY-MM-DD_HH-MM_log.md(YYYY-MM-DD_HH-MM はテスト実行開始時の日時)