MCP ツール
cc_server はひとつの MCP(JSON-RPC 2.0)ツールレジストリをホストし、メインサーバーポート(既定 9030)の POST /mcp と GET /sse で、プロトコルバージョン 2024-11-05 として提供します。デスクトップ、Web ビルド、外部 MCP クライアント、内蔵エージェントランタイムというすべてのクライアントが、同じレジストリに到達します。外部 MCP サーバーは、動的レイヤーとして同じレジストリにブリッジできます。
レジストリの規模
「レジストリの規模」というセクション| 項目 | 数 |
|---|---|
cc_server が登録するツール |
110 |
packages/cc_mcp 由来 |
108 |
packages/cc_mcp_client 由来(ツールディスカバリ) |
2 |
ベースレジストリに登録(server_mcp_registry.dart) |
63 |
起動後、各サービスが立ち上がるにつれて登録(cc_server_runtime.dart) |
47 |
| ベースレジストリの 63 のうち、コードグラフリポジトリを条件とするもの | 5 |
5 つのコードグラフツールは、ホストが buildServerMcpRegistry にコードグラフリポジトリを渡したときだけ登録されます。cc_server は常に渡すため、出荷されるバイナリでは 110 すべてが有効です。
完全なレジストリは、ディスカバリのゲートなしで tools/list に公開されます。チケットの編集は型付きツールです。
共通パラメータ
「共通パラメータ」というセクションworkspace_id
「workspace_id」というセクションワークスペーススコープのデータに触れるすべてのツールで必須です。workspace_id がないか無効な場合は明示的なエラーが返り、対象エンティティのワークスペースと一致しない値は黙って無視されるのではなく拒否されます。真にグローバルなツールでは省略します。list_workspaces と 6 つのニュースフィードツール(list_feeds、list_articles、get_article、set_article_read、set_article_saved、refresh_feeds)で、これらはサーバー所有者のユーザー単位のフィードリストに乗ります。ディスカバリツール(search_tool_bm25、list_my_tools)では任意であり、会話モードごとに呼び出し可否を分類できるようにしています。サーバーがエージェントをディスパッチする場合、ワークスペースはサーバー側で強制されるため、エージェントは外部の id を渡して別のワークスペースに到達することはできません。
ツールディスカバリ
「ツールディスカバリ」というセクションどちらも cc_mcp ではなく cc_mcp_client 由来で、どちらもモードガードを参照するため、現在 の会話モードで呼び出し可能なものを報告します。
| ツール | 説明 |
|---|---|
search_tool_bm25 |
キーワードでツールカタログを検索し、一致するツール、その引数スキーマ、それぞれが今呼び出し可能かどうかを返します |
list_my_tools |
この会話で今呼び出し可能なツールを、そのモードで絞り込んで一覧表示します |
3 つ目のディスカバリツール search_tools は内蔵ハーネスの内側にのみ存在し、この MCP レジストリには含まれません。これは実行自身のツールサーフェスを順位付けし、search_tool_bm25 と違って見つけたもののスキーマを読み込むため、エージェントは次のターンで一致したものを呼び出せます。ハーネス上のエージェントはこちらを優先すべきです。MCP クライアントには search_tool_bm25 があります。
エージェントツール
「エージェントツール」というセクション| ツール | 説明 |
|---|---|
list_agents |
ワークスペースに登録されているエージェントを一覧表示します |
エージェント間のメッセージングと委任
「エージェント間のメッセージングと委任」というセクションエージェント同士はスペース(永続的で、ロスターに見える)を介して会話します。ask_agent は必須のタイムアウトを伴う要求/応答です。delegate_task はサーバー側で、深さの上限、循環検出、予算エンベロープ、自律性の上限によってガードされます。
| ツール | 説明 |
|---|---|
send_to_agent |
to_agent_id または完全一致の to_agent_name で宛先を指定し、別のエージェントへ一方向のメッセージを送ります |
ask_agent |
別のエージェントに質問し、その返信を待つか、タイムアウトします |
delegate_task |
タスクを追跡対象の子チケットとして別のエージェントに委任します |
consult_agent |
スキルに基づいて最適なスペシャリストをスペースに追加し、焦点を絞ったブリーフでディスパッチします |
todo_read |
この会話に永続化されたタスクチェックリストを読み取ります |
スキルツール
「スキルツール」というセクションすべてのインストールと更新は、スキルのコンテンツがディスクやエージェントのプロンプトに到達する前に、フェイルクローズドのスキャンゲートを通過します。
| ツール | 説明 |
|---|---|
list_skills |
ワークスペースで利用可能なスキルのスラッグを一覧表示します |
create_skill |
markdown コンテンツから新しいスキルを作成します |
install_skill |
GitHub リポジトリの固定した ref から、スキルのディレクトリ全体をインストールします |
update_skill |
インストール済みの GitHub スキルを新しい ref に更新し、再スキャンして再固定します |
list_skill_updates |
より新しいバージョンが利用可能なスキルを一覧表示します |
verify_skills |
ロックされたスキルを、ディスク上のコンテンツハッシュと照合して検証します |
pin_skill |
ディスク上に既存のスキルをハッシュ化して skills-lock.json に記録します |
プラン、プレイブック、アーティファクトのツール
「プラン、プレイブック、アーティファクトのツール」というセクション| ツール | 説明 |
|---|---|
submit_plan |
プランモードの出力契約です。Plan Studio で開く型付きの PlanDocument を出力します |
create_playbook |
プランを、型付きの {{param}} プレースホルダーを持つ名前付き・バージョン付きテンプレートとして保存します |
run_playbook |
パラメータ値でプレイブックを実体化し、オペレーターが承認するプランを生成します |
publish_artifact |
型付きブロック(markdown、table、chart、mermaid、code、JSON)の順序付きリストを公開し、クライアントでネイティブにレンダリングします |
revise_artifact |
公開済みアーティファクトの内容を置き換えます |
list_artifacts |
ワークスペースのアーティファクトを一覧表示します |
get_artifact |
アーティファクトをひとつ読み取ります |
complete_goal |
会話のアクティブな永続ゴール(/goal または /loop で開始)が達成されたことを宣言します |
ワークスペースツール
「ワークスペースツール」というセクション| ツール | 説明 |
|---|---|
list_workspaces |
すべてのワークスペースを id と名前とともに一覧表示します(グローバル。workspace_id なし) |
リポジトリツール
「リポジトリツール」というセクション| ツール | 説明 |
|---|---|
list_repos |
ワークスペースに登録されたリポジトリを一覧表示します。エージェントの呼び出し元は、その会話の分離されたコピーオンライトのワークツリーパスを受け取り、元のチェックアウトを渡されることはありません |
メッセージングツール
「メッセージングツール」というセクション| ツール | 説明 |
|---|---|
list_spaces |
ワークスペースのメッセージングスペースを一覧表示します |
get_messages |
スペースからメッセージを取得します |
send_message |
名前付きの送信元エージェントとしてスペースにメッセージを送ります |
get_space_notes |
スペースの共有ハンドオフドキュメントを読み取ります |
update_space_notes |
スペースの共有ハンドオフドキュメントを置き換えます |
todo_write |
この会話のタスクチェックリストを 1 回の呼び出しで置き換えます(リスト全体を渡します) |
レビューツール
「レビューツール」というセクション| ツール | 説明 |
|---|---|
start_ai_review |
PR の AI レビューを開始します。レビュー領域を計算し、スペシャリストのレビュアーを PR スペースへファンアウトし、ウォークスルーを執筆して確定します |
add_review_node |
構造化されたレビューの指摘(ファイル、行、P0–P3 の優先度)をレビュースペースに追加します |
confirm_review_node |
ピアの指摘を確認します。作成者が自己確認することはできません |
resolve_review_node |
実際に変更を加えたうえで指摘を修正済みにします。レビュースペースにトレースを投稿します |
dismiss_review_node |
該当しない指摘を却下します。抑制ファクトを記録し、レビュアーがその指摘を再び立てないようにします |
request_peer_review |
別のレビュアーエージェントに、指摘の再確認を依頼します |
dispatch_reviewers |
マッチしたレビュアーエージェントをレビュースペースに同時にディスパッチします |
submit_reviewer_verdict |
レビュアーごとの Ship/Hold/Block の判定を、確信度と説明とともに投稿します |
finalize_review |
ノードごとのコンセンサスと PR ごとの判定を計算し、レビューをクローズします |
set_cohort_summary |
レビューコホートの平易な言葉による要約を設定します |
add_review_diagram |
構造化された、グラフで検証済みの図(sequence、entityRelation、stateMachine)をコホートに添付します |
publish_review_to_github |
確定したレビューを、インラインコメントと要約本文として GitHub に公開します |
メモリツール
「メモリツール」というセクション| ツール | 説明 |
|---|---|
search_memory |
ファクトとポリシーを検索します(キーワード、セマンティック、またはハイブリッド。既定はハイブリッド) |
propose_fact |
短い markdown のファクトをドメインに保存します |
supersede_fact |
ファクトを別のファクトによって置き換えられたものとしてマークします |
propose_policy |
規範的なルールをドメインに保存します(そのドメインへの書き込み権限が必要です) |
supersede_policy |
ポリシーを廃止します。監査のために保持しつつ、非アクティブとしてマークします |
list_policies |
アクティブなポリシーを一覧表示します。任意でドメインで絞り込めます |
list_memory_domains |
ワークスペースのメモリドメインを、ファクト数とポリシー数とともに一覧表示します |
record_observation |
生の観測をエージェントのワーキングメモリに記録します |
get_my_notes |
呼び出し元エージェントのワーキングメモリのスクラッチパッドを読み取ります |
update_my_notes |
呼び出し元エージェントのワーキングメモリのスクラッチパッドを更新します |
remember |
このセッションのエージェントのホットワーキングメモリにノートを追加します(TTL と件数に上限あり) |
consolidate_memory |
統合(「睡眠」)パスを実行します。期限切れのホット項目を追い出し、永続的なものを長期ファクトに繰り入れます |
harmonize_memory |
エージェント間の信念ハーモナイゼーション(SHMR)を実行し、矛盾にフラグを立てます |
list_memory_conflicts |
検出された矛盾と、それぞれがどう解決されたかを一覧表示します |
ガバナンスツール
「ガバナンスツール」というセクション| ツール | 説明 |
|---|---|
create_goal |
組織のゴールを作成します(会社、チーム、エージェント、またはタスクのレベル) |
list_goals |
ゴールを、レベル、ステータス、集計された進捗とともに一覧表示します |
update_goal_progress |
ゴールの進捗を設定します |
create_approval |
ガバナンス対象のアクション(プラン終了、マージ、リリース、採用、カスタム)に対するボード承認を開きます |
list_approvals |
承認を一覧表示します。任意でステータスで絞り込めます |
decide_approval |
決定を記録します。承認、却下、修正依頼、再提出です |
comment_approval |
ボード承認にコメントします |
exit_plan_mode |
plan_exit 承認を開き(承認されるとそれを消費し)、会話をプランモードから切り替えます |
agent_heartbeat |
生存を報告します(alive、idle、stuck)。沈黙するとランタイムヘルスが recently-lost、次いで offline に切り替わります |
list_runtime_health |
各エージェントのランタイムヘルスを一覧表示します |
list_agent_presence |
各エージェントのプレゼンス(ヘルス、ライフサイクル、実行中およびキューの件数、キャパシティ)を一覧表示します |
get_org_chart |
レポーティングツリーを読み取ります。CEO がルートにあり、reports_to によってネストされます |
create_work_product |
チケットに紐づく永続的な成果物を作成します |
save_work_product_revision |
新しいリビジョンを保存します。並行編集で拒否させるには base_revision_id を渡します |
list_work_products |
ワークプロダクトを一覧表示します。任意で 1 つのチケットに絞り込めます |
get_work_product |
ワークプロダクトを、そのリビジョン履歴とともに読み取ります |
create_runtime_profile |
再利用可能なランタイムプロファイル(プロトコルファミリー、CLI コマンド、固定の起動引数)を定義します |
list_runtime_profiles |
ワークスペースのランタイムプロファイルを一覧表示します |
コードグラフツール
「コードグラフツール」というセクションホストがコードグラフリポジトリを提供したときだけ登録されます。インデックスは同梱の文法セット(Dart、JS/TS、PHP、Python、Rust、Zig、C/C++、Go、Java、Ruby、C#、Swift、Kotlin、R、Assembly、MATLAB、Ada)を対象とし、それ以外の言語のシンボルは含まれません。
| ツール | 説明 |
|---|---|
search_code |
インデックス済みのシンボルを、名前、シグネチャ、doc コメントで検索します(BM25 + セマンティックのハイブリッド) |
code_symbol |
完全一致した名前でシンボルを検索します。file:line とシグネチャを返します |
code_callers |
あるシンボルを呼び出す、または依存するシンボル(入力エッジ)を一覧表示します |
code_callees |
あるシンボルが呼び出す、または依存するシンボル(出力エッジ)を一覧表示します |
code_impact |
あるシンボルの推移的な影響範囲を、指定した深さまで計算します |
チケッティングツール
「チケッティングツール」というセクション| ツール | 説明 |
|---|---|
create_ticket |
設定されたプロバイダーにチケットを作成します |
get_ticket |
id でチケットを 1 件取得します |
list_tickets |
チケットを一覧表示します。任意でステータスまたは担当者で絞り込めます |
update_ticket |
ステータス、タイトル、説明、優先度、ラベルを更新します(ステータスは in_progress / completed などのエイリアスを受け付けます) |
assign_ticket |
チケットをエージェントまたはチーム(あるいはその両方)に割り当てます |
reassign_ticket |
チケットを別のエージェントに再割り当てします |
add_ticket_collaborator |
エージェントをチケットのコラボレーターとして招待します(そのスペースに追加されます) |
comment_on_ticket |
チケットにコメントします |
close_ticket |
チケットをクローズし(完了としてマーク)、任意で出力を付けられます |
fail_ticket |
エラーメッセージとともにチケットを失敗としてマークします |
delegate_ticket |
チケットをエージェントに委任し、追跡対象のチケットを作成します |
ticket_pr_link |
PR ノード id によってチケットとプルリクエストをリンクまたはリンク解除します(action: link | unlink) |
ticket_relation |
2 つのチケット間の関係を追加または削除します — blocked_by、blocking、related_to、duplicate_of、duplicated_by、sub_issue_of、parent_of(action: add | remove) |
list_ticket_relations |
チケットの親、サブイシュー、依存関係リンクを一覧表示します |
チームとパイプラインのツール
「チームとパイプラインのツール」というセクション| ツール | 説明 |
|---|---|
record_team_activity |
チームリーダーのアクティビティエントリをチケットに対して記録します |
preview_trigger |
仮定のイベントが開始するパイプライン実行をドライランします。何もコミットしません |
submit_output |
呼び出し元の現在のパイプライン実行に対する構造化出力ペイロードを送信します。その実行が宣言した出力スキーマに対して検証されます |
オーケストレーションツール
「オーケストレーションツール」というセクション| ツール | 説明 |
|---|---|
propose_orchestration |
事前の 1 回の承認のために、構造化されたマルチエージェントのオーケストレーションプランを出力します。検証し、違反があれば返します |
ニュースフィードツール
「ニュースフィードツール」というセクション| ツール | 説明 |
|---|---|
list_feeds |
登録された RSS/Atom フィードを一覧表示します |
list_articles |
記事を一覧表示します。任意でフィード、未読、保存済みで絞り込めます |
get_article |
記事を 1 件取得します |
set_article_read |
記事を既読または未読としてマークします |
set_article_saved |
記事を保存または保存解除します |
refresh_feeds |
有効なすべてのフィードを今すぐ再取得します |
エンクロージャー(リグ)のツール
「エンクロージャー(リグ)のツール」というセクション使い捨てのマシン — エンクロージャー内のブラウザや Linux デスクトップ、Android エミュレータ、iOS シミュレータ — を実行の内部から操作します。起動後に無条件で登録されます。マシンが実際に起動できるかどうかは、ツールが呼び出しごとに答えるプローブの問いです。1 つの会話で繰り返し呼び出すと 1 台のマシンが再利用されます。スクリーンショットは画像コンテンツとして返り、結果ごとに 1 枚という予算があり、抽出されたページ/UI のコンテンツは信頼できないデータとしてフェンスされます。4 つの use ツールと rig_close は enclosureControl のアクションクラスを宣言するため(use ツールは networkEgress と processSpawn も、mobile_use と ios_use は packageInstall も宣言します)、読み取り専用モードでは拒否されます。rig_list は何も宣言しません — ワークスペースの状態を読むだけです。サーフェスごとの動詞の語彙の全体はリグのリファレンスにあります。
| ツール | 説明 |
|---|---|
computer_use |
エンクロージャー内の VM で Linux デスクトップを操作します: 移動、クリック、ドラッグ、スクロール、入力、リサイズ、クリップボード、スクリーンショット |
browser_use |
ヘッドレスの Chromium、Firefox、WebKit(engine)を操作します: ナビゲート、クリック、入力、抽出(a11y/DOM/コンソール)、クリップボード、スクリーンショット |
mobile_use |
ADB 経由で Android を操作します: 検査/入力、スクリーンショット、アプリのインストール/起動/停止/リセット/アンインストール、ディープリンク、argv 形式のデバイスコマンド |
ios_use |
WebDriverAgent/CoreSimulator を通じて iOS シミュレータを操作します: 検査/入力、スクリーンショット、アプリのインストール/起動/停止/アンインストール、ディープリンク、argv 形式のシミュレータプロセス |
rig_list |
ワークスペースのリグを、サーフェス、ステータス、ディスプレイサイズ、コントローラーとともに一覧表示します |
rig_close |
リグを破棄し、それが所有するマシンの状態を捨てます |
MCP では公開されないもの
「MCP では公開されないもの」というセクションカレンダーとミーティングには MCP ツールがありません。エージェントはあなたのカレンダー、ミーティング、文字起こし、アクションアイテム、決定を読むことはできません。アクションアイテムと決定を生成する要約は、エージェントが呼び出せるツールとしてではなく、内蔵の meeting_summary パイプラインとして実行されます。
モードによるツールのゲート
「モードによるツールのゲート」というセクションゲートはひとつのテーブル(ModeToolPolicy)から 2 回適用されます。1 回は Claude Code アダプターの MCP ディスパッチャーで、もう 1 回は内蔵ハーネスのレジストリです。ブロックされた呼び出しは理由を返します。
| モード | ツールサーフェス |
|---|---|
chat |
登録されたすべてのツール。許可リストなし |
plan |
厳選された許可リスト。ワークツリーへの書き込みと、create / assign / delegate のチケット動詞はありませんが、メモリ、アーティファクト、todo、submit_plan、exit_plan_mode、およびディスパッチされたチケットに対するチケット完了の動詞は許可されます |
review |
厳選された許可リスト: レビューへの参加、コミュニケーション、読み取り専用のコンテキスト取得、そして create_ticket と assign_ticket を含むチケット動詞の全体セット |
orchestrate |
厳選された許可リスト: 調査と読み取りのツール、および propose_orchestration、create_playbook、run_playbook。採用、分解、チケットの完了は承認後に決定的に行われ、実行の途中で行われることは決してありません |
許可リストに関係なく、すべてのモードで許可されるもの:
| セット | ツール |
|---|---|
| メモリとアーティファクト | search_memory, propose_fact, propose_policy, supersede_fact, supersede_policy, record_observation, update_my_notes, get_my_notes, list_memory_domains, list_policies, publish_artifact, revise_artifact, list_artifacts, get_artifact |
| コードグラフ | search_code, code_symbol, code_callers, code_callees, code_impact |
| 実行のメカニクス | search_tool_bm25, list_my_tools, todo_write, todo_read |
許可リストに載っているからといってツールが呼び出し可能になるわけではなく、逆もまた同様です。オペレーターへの質問のケイパビリティはハーネスのツール(ask_user)であるため、この MCP カタログには一切現れません。
承認でゲートされるツール
「承認でゲートされるツール」というセクションツールは requiresApproval を宣言できます。その場合ディスパッチャーは ApprovalPayload を構築し、ツールが実行される前に ConfirmationPort を通じてそれを提示します。cc_server がそのポートを配線するため、ゲートは有効です。
これを宣言している登録済みツール: create_ticket、update_ticket、assign_ticket、reassign_ticket、close_ticket、ticket_relation、create_goal、update_goal_progress、create_approval、decide_approval、comment_approval、create_work_product、save_work_product_revision、create_runtime_profile、install_skill、update_skill。
これとは別に、統合アクションガードレールは、空でない ActionClass セットを宣言するあらゆるツールをゲートします。承認者が接続されていない状態での prompt の決定は拒否されます。ガードレールを参照してください。
ツールが背後にないケイパビリティ
「ツールが背後にないケイパビリティ」というセクション製品のすべてのケイパビリティがエージェントから到達できるわけではありません。以下にはツールがまったくないため、他所で参照されているのを見かけたかもしれない名前は “unknown tool” を返します:
| ケイパビリティ | 代わりにどこにあるか |
|---|---|
| エージェントの採用、解雇、編集 | エージェント UI。hire_agent / fire_agent / update_agent ツールはありません |
| ワークスペースの作成 | RPC 経由の workspace.upsert。これが所有権をシードして刻印します |
| プロジェクト(作成/一覧/更新/ファイル登録) | チケット UI。プロジェクトはオペレーター向けのサーフェスです — プロジェクトを参照してください |
| オペレーターへのブロッキングな質問 | MCP ではなくハーネスの ask_user ツール。会話内にフォームをレンダリングし、回答が来るまでブロックします |
| エージェントごとの診断 | 何もありません。doctor は存在しません — エージェントの診断を参照してください |
| カレンダーとミーティング | 人間のクライアント専用の RPC(前述) |