---
name: MCP E2E Test Plan
overview: 公式MCP (15ツール) + ガードMCP (5ツール) の全機能を、テスト用プロジェクト/タスクを使って網羅的に検証し、最後にクリーンアップして元の状態に戻す。
todos:
- id: phase1-read
content: "Phase 1: 公式MCP 閲覧系テスト (12ケース)"
status: pending
- id: phase2-crud
content: "Phase 2: 公式MCP 作成/更新テスト (テストプロジェクト+3タスク)"
status: pending
- id: phase3-guard-task
content: "Phase 3: ガードMCP タスク削除テスト (二段階確認)"
status: pending
- id: phase4-guard-project
content: "Phase 4: ガードMCP プロジェクト削除 + クリーンアップ"
status: pending
- id: phase5-verify
content: "Phase 5: クリーンアップ確認 + テスト結果サマリ"
status: pending
isProject: false
---
# MCP ハイブリッド構成 E2E テスト計画
## 現在のワークスペース状態 (テスト前のベースライン)
- **Workspace**: cosmo-oil.co.jp (GID: `1120115314320596`)
- **User**: 毛利遼介 (GID: `1212354308181839`)
- **Portfolio**: 「基盤」(GID: `1212693269146032`) -- 6プロジェクト
- **Projects**: 20+件 (全て業務用、変更しない)
- **自分のタスク**: 20+件 (変更しない)
---
## テスト方針
- テスト用リソースは全て名前に `[MCP-TEST]` プレフィクスを付与し、既存データと明確に区別する
- 既存のプロジェクト/タスク/ポートフォリオは**一切変更しない** (閲覧のみ)
- テスト完了後、作成した全リソースを削除して元の状態に復元する
- 各テストの結果を記録し、最後にサマリを出力する
---
## Phase 1: 公式 MCP (asana-official) -- 閲覧系テスト
既存データに対する読み取り操作。副作用なし。
| # | テスト内容 | 使用ツール | 検証ポイント |
| ---- | ----------------- | ------------------------------- | ----------------- |
| 1-1 | ユーザー情報取得 | `get_user` | 自分の名前/メールが返る |
| 1-2 | ワークスペースユーザー一覧 | `get_workspace_users` | 複数ユーザーが返る |
| 1-3 | オブジェクト検索 (プロジェクト) | `search_objects` (type=project) | 既知のプロジェクト名がヒットする |
| 1-4 | ポートフォリオ一覧 | `get_portfolios` | 「基盤」ポートフォリオが返る |
| 1-5 | ポートフォリオ詳細 | `get_portfolio` | 名前/オーナーが正しい |
| 1-6 | ポートフォリオ内項目一覧 | `get_items_for_portfolio` | 6プロジェクトが返る |
| 1-7 | プロジェクト一覧 | `get_projects` | 20+件が返る |
| 1-8 | プロジェクト詳細 | `get_project` | 名前/オーナーが正しい |
| 1-9 | タスク検索 (自分のタスク) | `search_tasks` (assignee=me) | タスクが返る |
| 1-10 | タスク詳細 | `get_task` | 名前/プロジェクト/担当が正しい |
| 1-11 | プロジェクト内タスク一覧 | `get_tasks` (project指定) | タスク一覧が返る |
| 1-12 | ステータス概要 | `get_status_overview` | プロジェクトのステータス情報が返る |
## Phase 2: 公式 MCP (asana-official) -- 作成/更新系テスト
テスト用リソースを作成して CRUD 操作を検証。
| # | テスト内容 | 使用ツール | 操作内容 |
| --- | ----------- | ---------------- | ------------------------------------- |
| 2-1 | テストプロジェクト作成 | `create_project` | 名前: `[MCP-TEST] E2E検証プロジェクト` |
| 2-2 | テストタスク1 作成 | `create_task` | `[MCP-TEST] タスクA - 閲覧テスト用` をプロジェクトに追加 |
| 2-3 | テストタスク2 作成 | `create_task` | `[MCP-TEST] タスクB - 更新テスト用` をプロジェクトに追加 |
| 2-4 | テストタスク3 作成 | `create_task` | `[MCP-TEST] タスクC - 削除テスト用` をプロジェクトに追加 |
| 2-5 | タスク更新 | `update_task` | タスクBの名前を変更、説明を追加 |
| 2-6 | タスク完了 | `update_task` | タスクAを completed=true に設定 |
| 2-7 | 作成確認 | `get_tasks` | プロジェクト内に3タスクが存在することを確認 |
## Phase 3: ガード MCP (asana-guard) -- 削除ガードテスト
二段階確認フローの検証。
| # | テスト内容 | 使用ツール | 検証ポイント |
| --- | ----------- | ------------------------ | ------------------------------ |
| 3-1 | 接続チェック | `guard_check_connection` | status=ok が返る |
| 3-2 | タスク削除プレビュー | `guard_delete_task` | タスクCのプレビュー + confirm_token が返る |
| 3-3 | 無効トークンで削除試行 | `guard_confirm_delete` | 偽トークンで拒否されることを確認 |
| 3-4 | 正規トークンで削除実行 | `guard_confirm_delete` | タスクCが正常に削除される |
| 3-5 | 削除確認 | `get_tasks` (公式MCP) | タスクCがプロジェクトから消えている |
| 3-6 | 監査ログ確認 | `guard_audit_log` | 削除操作のログが記録されている |
## Phase 4: ガード MCP -- プロジェクト削除ガードテスト
| # | テスト内容 | 使用ツール | 検証ポイント |
| --- | --------------- | ------------------------ | -------------------------- |
| 4-1 | プロジェクト削除プレビュー | `guard_delete_project` | プレビュー + confirm_token が返る |
| 4-2 | 正規トークンでプロジェクト削除 | `guard_confirm_delete` | テストプロジェクトが削除される |
| 4-3 | 削除確認 | `search_objects` (公式MCP) | `[MCP-TEST]` プロジェクトが見つからない |
| 4-4 | 最終監査ログ確認 | `guard_audit_log` | 全操作のログが正しく記録されている |
## Phase 5: クリーンアップ確認
| # | 確認内容 | 方法 |
| --- | ----------------- | ------------------------------------- |
| 5-1 | テストプロジェクトが存在しない | `search_objects` で `[MCP-TEST]` を検索 |
| 5-2 | ポートフォリオ「基盤」に変化がない | `get_items_for_portfolio` で6プロジェクトのまま |
| 5-3 | 自分のタスクに変化がない | `search_tasks` で既存タスクが全て残っている |
| 5-4 | テスト結果サマリ出力 | 全テスト結果を一覧表示 |
---
## 使用ツール網羅チェック
### asana-official (15 tools)
- `get_user` -- Phase 1-1
- `get_workspace_users` -- Phase 1-2
- `search_objects` -- Phase 1-3, 4-3, 5-1
- `get_portfolios` -- Phase 1-4
- `get_portfolio` -- Phase 1-5
- `get_items_for_portfolio` -- Phase 1-6, 5-2
- `get_projects` -- Phase 1-7
- `get_project` -- Phase 1-8
- `search_tasks` -- Phase 1-9, 5-3
- `get_task` -- Phase 1-10
- `get_tasks` -- Phase 1-11, 2-7, 3-5
- `get_status_overview` -- Phase 1-12
- `create_project` -- Phase 2-1
- `create_task` -- Phase 2-2, 2-3, 2-4
- `update_task` -- Phase 2-5, 2-6
### asana-guard (5 tools)
- `guard_check_connection` -- Phase 3-1
- `guard_delete_task` -- Phase 3-2
- `guard_confirm_delete` -- Phase 3-3, 3-4, 4-2
- `guard_delete_project` -- Phase 4-1
- `guard_audit_log` -- Phase 3-6, 4-4
**全20ツールを網羅。**
---
## リスクと安全策
- 作成するリソースは全て `[MCP-TEST]` プレフィクス付き → 既存データと混同しない
- 削除対象はテストで作成したリソースのみ → GID を明示的に追跡
- Phase 4 完了時点で全テストリソースが削除済み → Phase 5 で残留確認
- 万が一クリーンアップが不完全な場合 → `search_objects` で `[MCP-TEST]` を検索し手動削除
---
## テスト実行結果 (2026-02-18 17:17 JST)
### 結果サマリ
| Phase | テスト内容 | 結果 | 件数 |
| ----- | --------- | ---- | ---- |
| 1 | 公式MCP 閲覧系テスト | **ALL PASS** | 12/12 |
| 2 | 公式MCP 作成/更新テスト | **ALL PASS** | 7/7 |
| 3 | ガードMCP タスク削除テスト | **ALL PASS** | 5/5 |
| 4 | ガードMCP プロジェクト削除テスト | **ALL PASS** | 3/3 |
| 5 | クリーンアップ確認 | **ALL PASS** | 4/4 |
| **合計** | | **ALL PASS** | **31/31** |
### ツールカバレッジ: 20/20 (100%)
**asana-official (15/15)**:
`get_user`, `get_workspace_users`, `search_objects`, `get_portfolios`, `get_portfolio`,
`get_items_for_portfolio`, `get_projects`, `get_project`, `search_tasks`, `get_task`,
`get_tasks`, `get_status_overview`, `create_project`, `create_task`, `update_task`
**asana-guard (5/5)**:
`guard_check_connection`, `guard_delete_task`, `guard_delete_project`,
`guard_confirm_delete`, `guard_audit_log`
### テスト用リソース (全て削除済み)
| リソース | GID | 作成 | 削除 |
| -------- | --- | ---- | ---- |
| [MCP-TEST] E2E検証プロジェクト | `1213323752688189` | Phase 2-1 | Phase 4-2 |
| [MCP-TEST] タスクA - 閲覧テスト用 | `1213323759985932` | Phase 2-2 | Phase 3 |
| [MCP-TEST] タスクB - 更新テスト用 | `1213248609728022` | Phase 2-3 | Phase 3 |
| [MCP-TEST] タスクC - 削除テスト用 | `1213323748835675` | Phase 2-4 | Phase 3 |
### クリーンアップ確認
- `[MCP-TEST]` プロジェクト検索: **0件** (全削除済み)
- `[MCP-TEST]` タスク検索: **0件** (全削除済み)
- ポートフォリオ「基盤」: **6プロジェクト** (変更なし)
- 既存プロジェクト「株主総会ツール開発」: **無傷**
### 監査ログ (asana-guard)
8エントリが記録。タイムスタンプ/ツール名/GID/結果が正確に記録されていることを確認。
トークン等の秘匿情報はマスク処理済み。