Skip to content

MCP から Takosumi を操作する

Operator control MCP adapter を使うと、Takos や別の MCP client から Takosumi の Git install-plan、Capsule、Run を操作できます。新しい Git Source から reviewable Plan Run まで準備し、Capsule の一覧、plan、Run の確認、承認、apply を行えます。

この adapter は任意機能です。Takos 専用の tool を組み込むのではなく、通常の mcp.server Interface として /mcp/operator-control/v1 に公開します。client は MCP の tools/list から、その endpoint が提供する tool を読み取ります。

前提条件

  • Takosumi Accounts と dashboard が動いている
  • 外から到達できる HTTPS の Takosumi origin がある
  • operator が MCP adapter を有効にできる
  • 利用者が対象 Workspace の member である

接続する

1. adapter を有効にする

stock platform worker に次を設定します。

text
TAKOSUMI_OPERATOR_CONTROL_MCP_ENABLED=1
TAKOSUMI_ACCOUNTS_ISSUER=https://<takosumi-origin>

flag がない場合、MCP route は 404 を返します。Accounts issuer は scheme と path を 含む Takosumi origin に合わせてください。

host が TAKOSUMI_INSTALL_CONFIG_COMPOSITION を独自の runtime object で置き換えている 場合は、OPERATOR_CONTROL_MCP_INSTALL_CONFIG もその配列へ追加します。

2. Git module をデプロイする

dashboard の Add service で次を指定します。

text
Git URL:     https://github.com/tako0614/takosumi.git
modulePath:  opentofu-modules/operator-control-mcp
variables:
  takosumi_origin = https://<takosumi-origin>

plan を確認して apply すると、module の endpoint Output から mcp.server Interface が作られます。install した本人には mcp.invoke permission を持つ OAuth Binding が提案されます。

この module は公開 Takosumi API だけを使います。Takoform provider は不要です。

3. MCP client から接続する

Interface の接続情報を dashboard で開き、MCP client に渡します。transport は Streamable HTTP です。

text
https://<takosumi-origin>/mcp/operator-control/v1

認証には Interface Binding から取得した OAuth token を使います。operator token や module の provider credential は client へ渡しません。

提供する tool

Tool用途
takosumi_install_plan_createGit Source から durable install-plan を作成・再生する
takosumi_install_plan_getinstall-plan の現在状態を副作用なしで読む
takosumi_install_plan_reconcileinstall-plan を明示的に一段だけ進める
takosumi_capsules_listCapsule の一覧を読む
takosumi_capsule_plan既存 Capsule の plan を開始する
takosumi_capsule_destroy_plan既存 Capsule の destroy plan を作り review で停止する
takosumi_run_getRun の状態と plan の要約を読む
takosumi_run_approve確認済みの Run を承認する
takosumi_run_apply承認済みの保存済み plan を apply する

install-plan create には client が再試行でも維持する idempotencyKey が必須です。 nextAction: reconcile の間だけ reconcile を繰り返し、review_run になったら返された Run を確認します。install-plan 自体は approve/apply しません。destroy-plan tool も review 待ち Run を作るだけで、approve/apply は行いません。listget は 読み取り専用です。approveapply は変更を伴うため、MCP client は実行前に 利用者へ確認する必要があります。

tool の一覧と入力 schema は adapter が tools/list で返します。client 側に固定の Takosumi tool catalog を持たせないでください。

認証と安全性

各 MCP request では、Takosumi が OAuth token、Interface、Binding、Workspace、 mcp.invoke permission を確認します。install-plan、Capsule、Run も同じ Workspace に 属している必要があります。

install-plan tool は公開 /api/v1 の bounded request だけを転送します。variable 値、 credential、provider token、任意の control-plane path は受け付けません。Git credential が必要な場合は、事前に作成した authConnectionId だけを参照します。

adapter は確認済みの Workspace と利用者情報だけを既存の Takosumi API handler に渡します。 元の bearer token を Run、state、Output、audit、log へ保存しません。通常の Workspace role、policy、plan 承認、保存済み plan の digest 検証もそのまま適用されます。

takosumi_run_apply は MCP request から apply guard を上書きできません。server が 保存済み plan、state、provider connection をもう一度検証してから実行します。

うまく接続できないとき

症状確認すること
route が 404TAKOSUMI_OPERATOR_CONTROL_MCP_ENABLED=1 が実行環境に反映されているか
OAuth Binding が Ready にならないAccounts issuer、公開 origin、module の takosumi_origin が一致しているか
401 / 403token の audience、mcp.invoke permission、Workspace membership を確認する
Capsule や Run が見つからないBinding と対象が同じ Workspace にあるか
tool が古いclient の固定一覧ではなく、接続先で tools/list を再取得する

運用ログへ bearer token や provider credential を出さないでください。

AGPL-3.0-only