メインコンテンツへスキップ

MCP(AI連携)ガイド

MCPとは

MCP(Model Context Protocol)は、AI のチャットから AgentPM を直接操作するための決まりごとです。つなぐと、話しかけるだけでタスクの作成・更新、会議の管理、レビュー操作ができます。

つなぎ方は2つあります。ふつうは「外部チャットからつなぐ」を使ってください。

つなぎ方 向いている相手 入れるもの
外部チャットからつなぐ(推奨) ChatGPT・Claude のウェブ版・Cursor・VS Code など URL を1本貼るだけ
手元のパソコンで動かす Claude Code(開発者向け) Node.js と鍵の設定

外部チャットからつなぐ(推奨)

AgentPM のサーバーに接続先が用意してあるので、インストールは要りません。

接続先

https://agentpm.app/api/mcp

ChatGPT の場合

  1. ChatGPT の設定 → コネクタ → 開発者モードを有効にする(Plus・Pro・Business などのプランが必要)
  2. 「カスタムコネクタを追加」に上の URL を貼る
  3. AgentPM のログイン画面が出るので、ログインする
  4. 許可の画面で、つなぐ組織とできることの範囲を選んで「許可する」

許可する範囲

選択肢 できること
見るだけ タスク・会議・議事録・Wiki を読む
見る+書く 上に加えて、タスクの作成・更新・ボール渡し

どちらを選んでも、削除・一括変更・承認はできません。 承認は責任者本人の行為なので、外部のチャットには任せない作りにしています。

接続の確認と解除

設定 → 外部チャットとの接続(/settings/connections)で、いま何がつながっているかを見られます。心当たりのない接続はここで解除してください。組織のオーナーは、その組織の全員分が見えます。

つなげる数

プラン 同時につなげる数
フリー 2件まで
Pro・Enterprise 無制限

リモートMCPはフリーでも使えます。 上限に当たったら、使っていない接続を解除すれば新しくつなげます。すでにつないである接続は、プランが下がっても切れません。

注意

  • 相手先・協力会社のアカウントからは接続できません(社内メンバー専用)
  • 1つの接続で見られるのは、選んだ1つの組織だけです。複数の組織を使うなら、つなぎ先でもう1つ接続を作ってください

手元のパソコンで動かす(Claude Code 向け)

つなぐとできること

項目 説明
作業の自動化 AIがタスク作成・更新を直接実行。画面操作不要
一括操作 複数タスクの一括作成、ステータス変更など
状況把握 「今クライアント待ちのタスクは?」などの質問に即回答
議事録処理 会議の議事録からタスクを自動生成
監査証跡 AI経由の操作もすべてアクティビティログに記録

セットアップ

1. APIキーの取得

  1. プロジェクト設定 → API設定を開く(admin権限が必要)
  2. 「新規APIキーを発行」をクリック
  3. スコープを選択:
    • space — 特定プロジェクトのみ操作可能
    • user — 自分が所属する全プロジェクトを横断操作可能
  4. 発行されたAPIキーを安全に保存する

注意: APIキーは発行時のみ表示されます。紛失した場合は再発行が必要です。

2. Claude Code への接続設定

claude_desktop_config.json またはプロジェクトの .mcp.json に以下を追加します:

{
  "mcpServers": {
    "taskapp": {
      "command": "node",
      "args": ["packages/mcp-server/dist/index.js"],
      "env": {
        "TASKAPP_API_KEY": "your-api-key-here",
        "SUPABASE_URL": "https://your-project.supabase.co",
        "SUPABASE_SERVICE_KEY": "your-service-key"
      }
    }
  }
}

3. 接続確認

Claude Code で以下のように聞いてみてください:

AgentPMのプロジェクト一覧を表示して

プロジェクト名の一覧が返ってくれば接続成功です。


利用可能なツール一覧

タスク管理ツール

ツール名 説明
task_create タスクを新規作成
task_update タスクを更新(指定フィールドのみ)
task_list スペース内のタスク一覧を取得
task_get タスクの詳細と担当者を取得
task_delete タスクを削除(安全確認付き)
task_import CSVからタスクを一括作成(既定は確認のみ。agentpm task import の実体)
task_update の wikiPageId タスクに Wiki ページを紐づける(画面の「仕様書連携」)
task_list_my 全スペース横断で自分のタスクを取得

ボール管理ツール

ツール名 説明
ball_pass ボールの所有権を移動
ball_query ボール所有者でタスクをフィルタ
dashboard_get ダッシュボード情報(統計・待ちタスク)を取得

会議管理ツール

ツール名 説明
meeting_create 新しい会議を作成
meeting_start 会議を開始(planned → in_progress)
meeting_end 会議を終了(自動サマリー生成)
meeting_list 会議一覧を取得
meeting_get 会議の詳細と参加者を取得

議事録ツール

ツール名 説明
minutes_get 会議の議事録を取得
minutes_update 議事録を更新(上書き)
minutes_append 議事録に追記

レビューツール

ツール名 説明
review_open タスクのレビューを開始(レビュアー指定)
review_approve レビューを承認
review_block レビューをブロック(変更依頼、理由必須)
review_cancel レビューを取り消し(承認待ち・差し戻しのみ。依頼者・space admin・org owner)
review_list レビュー一覧を取得
review_get レビュー詳細と各レビュアーの状態を取得

マイルストーンツール

ツール名 説明
milestone_create マイルストーンを作成
milestone_update マイルストーンを更新
milestone_delete マイルストーンを削除
milestone_list マイルストーン一覧を取得
milestone_get マイルストーンの詳細を取得

クライアント管理ツール

ツール名 説明
client_invite_create 招待を作成(role=client 相手先/role=member 社内メンバー)。招待リンクを返す・メールは送らない
client_invite_bulk_create クライアントを一括招待(最大50件)
client_list クライアント一覧を取得
client_get クライアントの詳細を取得
client_update クライアントのロールを更新
client_add_to_space 既存クライアントを別プロジェクトに追加
client_invite_list 招待一覧を取得(ステータスフィルタ可)
client_invite_resend 招待を再送

プロジェクト管理ツール

ツール名 説明
space_list プロジェクト一覧を取得
space_get プロジェクトの詳細を取得
space_create プロジェクトを作成
space_update プロジェクトを更新

ファイルツール

ツール名 説明
file_list 添付ファイル一覧(名前・説明文・種類・サイズ)
file_update ファイルの説明文(何のファイルか)や表示名を更新
file_upload_url アップロード開始(署名URLを発行)
file_upload_complete アップロード完了を確定

Wikiツール

wiki_create / wiki_update の本文は Markdown / HTML / BlockNote JSON を受け、保存時に画面と同じブロック形式へ変換する(format で明示可)。

ツール名 説明
wiki_list Wikiページ一覧を取得
wiki_get Wikiページの詳細(本文含む)を取得
wiki_create Wikiページを作成
wiki_update Wikiページを更新(バージョン履歴自動保存)
wiki_delete Wikiページを削除
wiki_versions バージョン履歴を取得

アクティビティツール

ツール名 説明
activity_search データの変更履歴(誰が・いつ・どの経路で・何を変えたか)を検索
activity_entity_history 1つの行(タスク・Wikiページ等)の変更履歴を取得

会話例:日常業務

例1: 朝の状況確認

あなた: 今日のダッシュボード情報を見せて

Claude: dashboard_get を実行します。

現在のプロジェクト状況:
- 全タスク: 47件
- 進行中: 12件
- レビュー中: 3件
- クライアント待ち: 5件
- 検討中(considering): 2件
- 完了: 25件

クライアント待ちタスク(早急に対応が必要):
1. 「トップページデザイン承認」 - 期限: 2/15
2. 「API仕様の最終確認」 - 期限: 2/14
3. 「ロゴデータの提供」 - 期限なし
4. 「利用規約の確認」 - 期限: 2/18
5. 「テスト環境の確認」 - 期限: 2/20

例2: タスクの一括作成

あなた: 次のスプリントのタスクを作って。
    - LP改修(フロント、担当: 田中、2/20まで)
    - API認証バグ修正(バック、担当: 鈴木、2/18まで)
    - E2Eテスト追加(QA、担当: 佐藤、2/22まで)

Claude: 3件のタスクを作成します。

task_create を3回実行:

1. ✅「LP改修」作成完了
   - ステータス: todo、ボール: internal、期限: 2/20
   - 担当者: 田中

2. ✅「API認証バグ修正」作成完了
   - ステータス: todo、ボール: internal、期限: 2/18
   - 担当者: 鈴木

3. ✅「E2Eテスト追加」作成完了
   - ステータス: todo、ボール: internal、期限: 2/22
   - 担当者: 佐藤

3件すべて作成しました。

例3: ボールの移動

あなた: 「トップページデザイン」のタスクをクライアントに渡して。
    理由は「デザインカンプが完成したので確認をお願いします」で。

Claude: ball_pass を実行します。

✅ ボールを移動しました:
- タスク: トップページデザイン
- internal → client
- 理由: デザインカンプが完成したので確認をお願いします
- クライアント担当: 山田様、中村様(通知済み)

例4: クライアント待ちタスクの確認

あなた: クライアントにボールがあるタスクを全部見せて

Claude: ball_query を実行します(ball=client)。

クライアント待ちタスク(5件):

| # | タスク | クライアント担当 | 期限 | 経過日数 |
|---|--------|--------------|------|---------|
| 1 | トップページデザイン承認 | 山田様 | 2/15 | 3日 |
| 2 | API仕様の最終確認 | 中村様 | 2/14 | 5日 |
| 3 | ロゴデータの提供 | 山田様 | なし | 10日 |
| 4 | 利用規約の確認 | 佐藤様 | 2/18 | 1日 |
| 5 | テスト環境の確認 | 中村様 | 2/20 | 0日 |

#2 と #3 は期限超過/長期未対応です。リマインドを検討してください。

会話例:会議管理

例5: 会議の作成と管理

あなた: 明日の14時からクライアントとの定例会議を作って。
    参加者はクライアント側の山田さんと中村さん、うちは田中と鈴木で。

Claude: meeting_create を実行します。

✅ 会議を作成しました:
- タイトル: 定例会議
- 日時: 2/14 14:00
- 参加者:
  - 社内: 田中、鈴木
  - クライアント: 山田様、中村様
- ステータス: planned

例6: 議事録の記入

あなた: さっきの会議の議事録を記録して。内容は:
    - トップページのデザインは案Bで決定
    - ログイン画面のUIは次回再検討
    - 納品日を3/1に変更
    - [ ] SPEC(/spec/design#top-page): トップページデザイン確定(案B採用)
    - [ ] SPEC(/spec/auth#login-ui): ログイン画面UI検討

Claude: minutes_update を実行します。

✅ 議事録を更新しました。

SPECタスクが2件検出されました:
1. 「トップページデザイン確定(案B採用)」 → spec_path: /spec/design#top-page
2. 「ログイン画面UI検討」 → spec_path: /spec/auth#login-ui

これらを仕様タスクとして自動生成しますか?

例7: 会議の終了

あなた: 会議を終了して

Claude: meeting_end を実行します。

✅ 会議を終了しました。

自動サマリー:
- 決定事項: 2件
- 未決定事項: 1件
- 生成されたタスク: 2件

参加者全員に終了通知を送信しました。

会話例:レビュー管理

例8: レビューの開始

あなた: 「LP改修」タスクのレビューを開始して。
    レビュアーは鈴木さんとクライアントの山田さんで。

Claude: review_open を実行します。

✅ レビューを開始しました:
- タスク: LP改修
- レビュアー: 鈴木、山田様
- ステータス: pending
- 両名に通知を送信しました

例9: レビューの承認

あなた: LP改修のレビュー状況を見せて

Claude: review_get を実行します。

レビュー状況: LP改修
- 全体ステータス: pending(承認待ち)

| レビュアー | 状態 | 更新日 |
|----------|------|--------|
| 鈴木 | ✅ approved | 2/13 15:30 |
| 山田様 | ⏳ pending | - |

山田様の承認待ちです。

例10: 変更依頼

あなた: 「API設計書」のレビューをブロックして。
    理由は「エラーレスポンスの形式が統一されていません。
    RFC 7807準拠にしてください。」

Claude: review_block を実行します。

✅ レビューをブロックしました:
- タスク: API設計書
- 理由: エラーレスポンスの形式が統一されていません。RFC 7807準拠にしてください。
- 担当者に通知しました

会話例:Wiki・仕様管理

例11: Wikiページの作成

あなた: 「API仕様書 v2」というWikiページを作って。
    概要セクションと認証セクションをまず作成して。

Claude: wiki_create を実行します。

✅ Wikiページを作成しました:
- タイトル: API仕様書 v2
- 内容:
  ## 概要
  (ここにAPI全体の概要を記載)

  ## 認証
  (ここに認証仕様を記載)

例12: Wikiの検索と閲覧

あなた: WikiでDB設計に関するページを探して

Claude: wiki_list を実行します。

該当するWikiページ:
1. 「DB設計書」 - 更新日: 2/10
2. 「DDLマイグレーション手順」 - 更新日: 2/8
3. 「テーブル定義一覧」 - 更新日: 2/5

「DB設計書」の内容を表示しますか?

会話例:クライアント管理

例13: クライアントの招待

あなた: 新しいクライアント担当者を招待して。
    tanaka@client.co.jp と sato@client.co.jp の2名。

Claude: client_invite_bulk_create を実行します。

✅ 2名を招待しました:
1. tanaka@client.co.jp → 招待メール送信済み(有効期限: 3/15)
2. sato@client.co.jp → 招待メール送信済み(有効期限: 3/15)

例14: 招待状況の確認

あなた: クライアント招待の状況を教えて

Claude: client_invite_list を実行します。

| メール | ステータス | 招待日 | 有効期限 |
|--------|----------|--------|---------|
| yamada@client.co.jp | ✅ 承諾済み | 1/20 | - |
| nakamura@client.co.jp | ✅ 承諾済み | 1/20 | - |
| tanaka@client.co.jp | ⏳ 未承諾 | 2/13 | 3/15 |
| sato@client.co.jp | ⏳ 未承諾 | 2/13 | 3/15 |

tanaka@client.co.jp と sato@client.co.jp はまだ承諾していません。
再送しますか?

会話例:横断的な操作

例15: 全プロジェクト横断のマイタスク

あなた: 自分に割り当てられているタスクを全プロジェクトで見せて

Claude: task_list_my を実行します。

あなたの担当タスク(全プロジェクト横断):

【A社 Webリニューアル】
1. 🔴 LP改修 - in_progress - 期限: 2/20
2. 🟡 バグ修正#128 - todo - 期限: 2/16

【B社 ECサイト】
3. 🔴 決済画面UI - in_progress - 期限: 2/18
4. ⚪ テスト計画作成 - backlog - 期限なし

【C社 管理システム】
5. 🟡 認証機能実装 - todo - 期限: 2/22

合計: 5件(進行中: 2件、todo: 2件、backlog: 1件)

例16: アクティビティログの検索

あなた: 先週クライアントが行った操作を調べて

Claude: activity_search を実行します。

先週のクライアント操作(2/3 〜 2/9):

| 日時 | クライアント | 操作 | 対象 |
|------|-----------|------|------|
| 2/9 16:30 | 山田様 | レビュー承認 | LP改修 |
| 2/8 10:15 | 中村様 | コメント追加 | API仕様確認 |
| 2/7 14:00 | 山田様 | 日程回答 | 2/14定例 → 参加可能 |
| 2/5 11:30 | 中村様 | 仕様確認 | DB設計#auth |
| 2/3 09:00 | 山田様 | コメント追加 | デザインカンプ |

計5件の操作がありました。

例17: タスクの安全な削除

あなた: テスト用に作った「ダミータスク」を削除して

Claude: task_delete を実行します(まず影響確認)。

⚠️ 削除影響の確認(dry run):
- タスク: ダミータスク
- ステータス: backlog
- コメント: 0件
- レビュー: なし
- 関連する仕様決定: なし

削除しても問題ありませんか?

あなた: はい、削除して

Claude: task_delete を confirmToken 付きで実行します。

✅ 「ダミータスク」を削除しました。

高度な使い方

定型レポートの生成

あなた: 週次レポート用のデータをまとめて。
    今週完了したタスク、進行中のタスク、クライアント待ちのタスクを表にして。

Claude: task_list を3回実行します(status=done, status=in_progress, ball=client)。

## 週次レポート(2/10〜2/14)

### 今週完了(5件)
| タスク | 担当 | 完了日 |
|--------|------|--------|
| ヘッダー修正 | 田中 | 2/10 |
| メール通知機能 | 鈴木 | 2/11 |
| ... | ... | ... |

### 進行中(3件)
| タスク | 担当 | 期限 | 進捗 |
|--------|------|------|------|
| LP改修 | 田中 | 2/20 | レビュー中 |
| ... | ... | ... | ... |

### クライアント待ち(2件)
| タスク | クライアント | 経過 |
|--------|-----------|------|
| デザイン承認 | 山田様 | 3日 |
| ... | ... | ... |

プロジェクト横断での進捗確認

あなた: 全プロジェクトのダッシュボード情報を比較して

Claude: 各プロジェクトで dashboard_get を実行します。

| プロジェクト | 総タスク | 完了率 | クライアント待ち | リスク |
|------------|---------|--------|--------------|-------|
| A社 Web | 47 | 53% | 5件 | ⚠️ 期限超過2件 |
| B社 EC | 32 | 38% | 2件 | ✅ 順調 |
| C社 管理 | 18 | 22% | 0件 | ✅ 順調 |

注意事項

破壊的操作の安全機構

task_delete はデフォルトで dryRun=true で実行されます。実際に削除するには、dry run で取得した confirmToken を使って再度実行する必要があります。AI が誤って重要なデータを削除することを防ぎます。

アクティビティログ

画面・CLI・MCP のどこからの変更も、データベースが自動で変更履歴(change_log)に記録します。誰が・いつ・どの経路で・何を変えたかが残るので、activity_search / activity_entity_history で調べられます。合言葉などの秘密は記録に写しません。

権限の制約

MCPツールもWeb画面と同じ権限ルールに従います。APIキーに紐づくユーザーのロールに応じて、実行可能な操作が制限されます。admin権限が必要な操作(メンバー招待、設定変更など)は、admin以上のAPIキーが必要です。