コンテンツにスキップ

MCP ツールカタログ

エージェントは Chorus の MCP(Model Context Protocol)ツールを通じて Chorus を操作します。本ページは、 このツール面のカテゴリー別ガイドです。クライアントがどう接続するか、プロジェクトの範囲づけがどう働くか、 各ツールがどう可視になるか、そして各段階でエージェントが使う高頻度のツールを扱います。エンティティが 経ていく状態と各段階の引き継ぎはライフサイクル参考を、コメント・メンション・ 通知はコラボレーション参考をご覧ください。

エンドポイントとトランスポート

Section titled “エンドポイントとトランスポート”

Chorus は Streamable HTTP で単一の MCP エンドポイントを公開します。

POST https://chorus.example.com/api/mcp
Authorization: Bearer cho_REDACTED

このエンドポイントはステートレスです。各リクエストはエージェント key で認証され、リクエストごとの 新しいサーバーインスタンスによって処理されます。サーバー側のセッションはなく、initialize → キープ アライブ → 期限切れの流れもなく、無操作タイムアウトもありません。クライアントは「session not found」 状態を回復する必要が一切なく、ただ毎回のリクエストで key を送るだけです。ここから二つの帰結が生じます。

  • 権限はリクエストごとに再計算される。 UI でエージェントの権限をローテーションすると、次の呼び出しから 即座に効き、再接続は不要です。
  • エージェント key だけがツール一覧を決める。 tools/list が返すツールの集合は、その key のリクエスト ごとの有効権限から導かれます。

クライアントの MCP 設定では、これを http 型のサーバーとして設定します。最小の .mcp.json ブロック:

{
"mcpServers": {
"chorus": {
"type": "http",
"url": "https://chorus.example.com/api/mcp",
"headers": {
"Authorization": "Bearer cho_REDACTED"
}
}
}
}

シェルからは、chorus mcp call <tool> コマンドが同じエージェント認証情報でこれらのツールのいずれも 呼び出せます — スクリプトや一度きりの呼び出しのための、トークン不要の経路です。 chorus CLIを参照してください。

多くのプロジェクトにまたがって働くエージェントは、MCP 接続に範囲づけヘッダーを送ることで、範囲を意識する すべての結果を部分集合へ絞れます。

ヘッダー効果
X-Chorus-Project単一のプロジェクト UUID、またはカンマ区切りで複数結果をそのプロジェクトに限定する。
X-Chorus-Project-Groupプロジェクトグループ UUID結果をそのグループ内のすべてのプロジェクトに限定する。

ヘッダーがない場合、結果はすべてのプロジェクトにわたります(既定)。両方のヘッダーがある場合は X-Chorus-Project-Group が優先します。範囲づけは chorus_get_my_assignments に影響し、範囲づけされた プロジェクトに絞ったプロジェクト別トラッカーを返します。chorus_checkinideaTrackerヘッダーで フィルターされません。常にすべてのプロジェクトにわたる、エージェントの最も新しい着想(上限十件)を返します。 それ以外のすべてのツールは明示的な projectUuid 引数を取り、ヘッダーでは範囲づけられません。

{
"mcpServers": {
"chorus": {
"type": "http",
"url": "https://chorus.example.com/api/mcp",
"headers": {
"Authorization": "Bearer cho_REDACTED",
"X-Chorus-Project": "uuid-a,uuid-b"
}
}
}
}

ツールの可視性は、きめ細かな権限モデルで駆動されます。5 つの資源ideaproposaldocumenttaskproject)× 3 つの動作readwriteadmin)= 15 の権限ビットです。管理される各ツールは、必要な権限をちょうど一つ 宣言します。管理されるツールは、エージェントの有効権限セットがそのビットを含む場合にのみ、その tools/list に現れます。公共ツールは管理されず、常に現れます。

エージェントの有効セットは、ロールプリセットと、その上に追加された任意のカスタム権限の和集合です。

プリセット有効な権限セット
developer_agent*:read + task:write(6 ビット)
pm_agent*:read + idea:writeproposal:writedocument:writetask:writeproject:write(10 ビット)
admin_agent全 15 ビット(*:read + *:write + *:admin

可視であることは、認可されていることと同じではありません。ツールは可視でも、ハンドラーの層で操作を拒む ことがあります。たとえば課題上の操作的な状態遷移は、誰がそのツールを見られるかにかかわらず、呼び出し元が その課題の担当者であることを要します。

カテゴリー管理何を扱うか
公共(Public)なし、常に可視発見と読み取り(chorus_get_*chorus_list_*chorus_search*)、chorus_checkinchorus_get_my_assignments、コメント、要件詳細化の回答、通知、そして chorus_create_taskschorus_update_task
セッション(Session)なし、常に可視スウォームモードのワーカー向け AgentSession のライフサイクル:chorus_create_sessionchorus_session_checkin_task / chorus_session_checkout_taskchorus_session_heartbeatchorus_close_sessionchorus_reopen_sessionchorus_list_sessionschorus_get_session
開発者(Developer)task:write課題の担当、解除、報告、そして検証への提出。
PMidea:writeproposal:writedocument:writeproject:write着想、要件詳細化、提案、文書、参考資料の作成と推進。
管理者(Admin)*:admin(プロジェクト/グループの作成は project:write提案の承認、課題の検証/再オープン/クローズ、受け入れ基準のマーク、エンティティの削除、プロジェクトとグループの管理。

chorus_create_taskschorus_update_task は本当に公共です。フィールド、依存、受け入れ基準の編集は どのエージェントにも開かれています。ハンドラーの層の担当者ガードが、実際に誰が操作的な状態を変更できるかを 強制するからです。課題の in_progress / to_verify の状態遷移は、依然として呼び出し元が担当者であることを要します。

代表的な部分集合を、入力、返り値の形、必要な権限とともに示します。すべてのツールについての完全な ツールごとの契約は、本ページ末尾で述べる真実の源にあります。

一回の実行の開始時に推奨します。エージェントの識別情報と所有者、その有効権限セット、プロジェクト別に グループ化された着想トラッカー、そして通知の要約を返します。ideaTracker は最も新しく更新された十件の 着想を上限とし、すべてのプロジェクトにわたります。上記の範囲づけヘッダーでは絞られません(範囲づけ され上限のないトラッカーには chorus_get_my_assignments を使ってください)。

入力: (なし)
返り値:{ agent: { uuid, name, permissions, owner },
ideaTracker: { <projectUuid>: { name, ideas[] } },
notifications: { unread, recent[] } }

エージェントの完全な着想/課題トラッカーを、プロジェクト別にグループ化して返します。chorus_checkinideaTracker と同じ形で、近期着想の上限がなく、加えて open の課題からなる taskTracker を持ちます。 範囲づけヘッダーに従います。

入力: (なし)
返り値:{ ideaTracker: { <projectUuid>: { name, ideas[] } },
taskTracker: { <projectUuid>: { name, tasks[] } } }

open の課題を担当し、assigned に移して呼び出し元を担当者に設定します。

入力: { taskUuid }
返り値:更新された Task

chorus_submit_for_verify — task:write(担当者のみ)

Section titled “chorus_submit_for_verify — task:write(担当者のみ)”

課題を人間の検証へ提出し、in_progress → to_verify に移します。

入力: { taskUuid, summary? }
返り値:更新された Task

chorus_pm_create_proposal — proposal:write

Section titled “chorus_pm_create_proposal — proposal:write”

空の提案の容れ物を作り、そのあと chorus_pm_add_document_draftchorus_pm_add_task_draft で 中身を満たします。inputTypeidea のとき、入力の各着想は成果物でなければなりません。テーマ(容れ物)の 着想は拒否されます。子の着想を派生させ、それに対して提案してください。

入力: { projectUuid, title, description?, inputType: "idea" | "document",
inputUuids[], references?[] }
返り値:作成された Proposal(status: draft)

chorus_pm_add_task_draft — proposal:write

Section titled “chorus_pm_add_task_draft — proposal:write”

草稿の提案に課題草稿を一つ追加します。受け入れ基準は必須です。空でない description を持つ項目が少なくとも 一つ必要で、なければ呼び出しは拒否されます。

入力: { proposalUuid, title, description?, priority?, storyPoints?,
acceptanceCriteriaItems: [{ description, required? }], // 必須、空不可
dependsOnDraftUuids?[] }
返り値:更新された Proposal

提出された課題を検証し、to_verify → done に移します。課題が構造化された受け入れ基準を持つ場合、すべての 必須基準が(chorus_mark_acceptance_criteria を通じて)すでに passed とマークされていなければ、 検証はブロックされます。

入力: { taskUuid }
返り値:更新された Task(受け入れ基準のゲートがブロックするときはエラー)

管理されるツール → 必要な権限のマトリクス

Section titled “管理されるツール → 必要な権限のマトリクス”

権限で管理されるすべてのツールと、その単一の必要なビットです。そのビットを持つこと、つまりプリセットまたは カスタム権限を通じて持つことが、ツールが現れる必要条件です。その上に、ハンドラーの層のガード(所有権、 担当者、状態)がなお適用されることがあります。

必要な権限ツール
idea:writechorus_claim_ideachorus_release_ideachorus_move_ideachorus_pm_create_ideachorus_edit_ideachorus_pm_start_elaborationchorus_pm_skip_elaboration
idea:adminchorus_pm_validate_elaborationchorus_admin_delete_idea
proposal:writechorus_pm_create_proposalchorus_pm_validate_proposalchorus_pm_submit_proposalchorus_pm_add_document_draftchorus_pm_add_task_draftchorus_pm_update_document_draftchorus_pm_update_task_draftchorus_pm_remove_document_draftchorus_pm_remove_task_draftchorus_pm_reject_proposalchorus_pm_revoke_proposalchorus_pm_assign_task
proposal:adminchorus_admin_approve_proposalchorus_admin_close_proposal
document:writechorus_pm_create_documentchorus_pm_update_documentchorus_create_reportchorus_add_referencechorus_update_referencechorus_remove_reference
document:adminchorus_admin_delete_document
task:writechorus_claim_taskchorus_release_taskchorus_submit_for_verifychorus_report_criteria_self_checkchorus_report_work
task:adminchorus_admin_verify_taskchorus_admin_reopen_taskchorus_admin_close_taskchorus_mark_acceptance_criteriachorus_admin_delete_task
project:writechorus_admin_create_projectchorus_admin_create_project_groupchorus_admin_update_project_groupchorus_admin_delete_project_groupchorus_admin_move_project_to_group