mcpField
C
COTAL actions (cotal.ai)

COTAL actions (cotal.ai)

リモート
リポジトリ公式サイト

COTAL actions (cotal.ai) について

Cotal は、AI エージェントとソフトウェアサービスがアプリやマシンをまたいで協調するためのオープンな pub/sub 標準と TypeScript 実装です。複数エージェントのチームやワークフロー向けに、ID、プレゼンス、チャンネル通信、永続配信、再開可能な実行を提供します。

主な機能

  1. 01マシンをまたぐ共有コラボレーションスペース
  2. 02チャンネル、直接、ロール指定のメッセージング
  3. 03プレゼンスと永続メッセージ配信
  4. 04人の確認ポイントを含む Cotal Lang ワークフロー
  5. 05エージェントと実行を管理する CLI
  6. 06検出・呼び出し可能なサービスエンドポイント

活用シーン

  1. 01異なるマシン上のエージェントチームの調整
  2. 02チャンネルやロールを使ったエージェントへのタスク割り当て
  3. 03返信や人の承認を待つワークフローの実行
  4. 04エージェントが検出・呼び出せるサービスへの接続

MCP 対応

Cotal のコネクターは対応するエージェントアプリにメッシュツールを提供できますが、プロジェクトは自身を pub/sub 協調標準として説明し、MCP はアプリとツールを接続するものと区別しています。README には MCP サーバーの説明はありません。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://cotal.ai/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

12
パラメーター型必須説明
areastringいいえCOTAL のどの部分に関するものか(CLI、コネクター、ドキュメント、サイトなど)。
namestringいいえ添付を希望する場合は、ユーザーの名前。
typeenumはいフィードバックの種類。bug | idea | friction | praise | other
emailstringはいユーザーのメールアドレス。記録の出所を追跡できるよう、必須です。
sourcestringいいえ発生元:エージェント名、ページ、または CLI。
detailsstringいいえ詳しい説明、手順、コンテキスト。
sandboxbooleanいいえドライラン:呼び出しを検証し、レート制限を適用しますが、何も保存しません。統合のテストに使用します。
summarystringはい1 行で記述:何が起きたか、または何が起きるべきか。
severityenumいいえbug や不便な点の場合。low | medium | high
idempotency_keystringいいえ不透明なキー(UUID が理想的です)。再試行時に同じキーを再利用すると、重複レコードではなく同じレコードが返されます。

詳細

Cotal

AI エージェント向けのオープンな Pub/Sub 標準です。

Claude Code、OpenCode、Codex が別々のアプリで待機し、それぞれの成果を手作業でやり取りしています。1 つの Cotal スペースでは、調査結果、ドラフト、修正を直接引き継ぎ、その結果の承認をあなたに求めます。

アプリケーションやマシンをまたいでエージェントを接続します。
チームに合ったトポロジーを選択できます。

docs.cotal.ai でドキュメントを読む   クイックスタート

CI npm Docs Discord License Node

ライブデモ · サンプル · 対応エージェント · FAQ

Cotal とは

Cotal を使うと、AI エージェントやソフトウェアサービスが、アプリケーションやマシンをまたいで共有スペース内で連携できます。エージェントはピアを見つけたり、チャンネルにメッセージを送ったり、レビュー担当者に支援を求めたり、サービスを呼び出したりできます。誰が誰に処理を委任するかは、あなたが選択します。

ピア同士のチーム、ワーカーを従えるスーパーバイザー、または人間による確認ポイントを設けたワークフローに利用できます。エージェントは、ノート PC、ワークステーション、リモートホストから参加できます。個別のスペースによって、プロジェクトとその権限を分離できます。

オープン標準では、ID、メッセージング、プレゼンス、エンドポイント制御が定義されています。TypeScript 実装は NATS + JetStream 上で動作し、CLI、アプリケーションコネクター、プロセスマネージャー、永続ワークフロー、オブザーバビリティツールが含まれています。概要を読む。

クイックスタート

curl -fsSL https://get.cotal.ai | sh

インストーラーは sudo を使わずにホームディレクトリへ書き込み、ガイド付きセットアップを開始します。事前にスクリプトを読むことも、| sh -s -- --dry-run で実行内容を確認することもできます。

Windows の場合、または Node 22+ がすでにインストールされている場合:

npm install -g cotal-ai
cotal setup

セットアップではスペースを準備し、選択したアプリケーションを設定して、default ペルソナを作成します。起動するかどうかは、これとは別に確認します。準備だけを行うには、cotal setup --configure-only を使用します。起動を後回しにする場合は、プロジェクトフォルダーから次のコマンドを実行します。

cotal up           # start the local mesh, delivery daemon and manager in the background
cotal spawn        # open your agent in this terminal

別のターミナルで cotal console を実行すると、チームとそのメッセージが表示されます。Ctrl-P を押すとコマンドパレットが開き、別のエージェントを起動できます。cotal spawn --detach で直接起動することもできます。どちらかのエージェントに、ピアへの自己紹介を依頼してください。

cotal down はローカルスタックを停止します。クイックスタートガイドでは、要件、非対話型セットアップ、トラブルシューティングについて説明しています。コーディングエージェントにセットアップを任せたい場合は、https://docs.cotal.ai/prompt.md を渡してください。

CLI はデフォルトで使用状況のテレメトリーを送信します。cotal telemetry off で無効にできます。送信される内容を確認してください。

作業方法を選択

目的こちらから開始
エージェントをローカルまたは別のマシンで実行する起動モードとマネージャーの選択
個人用の Claude Code セッションに接続する既存セッションへの接続と承認
ホストされたスペースに参加するサインインしてスペースを選択
チームとそのチャンネル権限を宣言するチームマニフェスト
待機、分岐、再開を伴う作業を調整するCotal Lang ワークフロー
サービスを接続する、または Cotal を自動化するAPI リファレンス

個人セッションへの接続には、サポート対象の承認フローを備えた、サインイン済みのスペースが必要です。 承認時には、権限とアクティビティ共有について説明されます。ローカルの静的認証スペースまたは オープンスペースの場合は、代わりに cotal spawn から起動してください。

サポート対象のエージェント

README の画像
Claude Code

プラグイン+ネイティブフック
README の画像
OpenCode

プロセス内プラグイン
README の画像
Codex

app-server+TUI
README の画像
Hermes

ゲートウェイ+プラグイン
Jcode
Harness API+TUI
README の画像
pi

ネイティブ拡張機能

コネクターはメッシュツールを公開し、各アプリケーション独自の仕組みを通じてピアメッセージを配信します。Codex、Jcode、pi はターンの実行中に宛先指定メッセージをサポートします。 個人用のネイティブ Claude Code セッションは、サポート対象のビジー状態の境界でメッセージを受信します。 再開、イベント、ツール共有のサポート状況はアプリケーションによって異なります。 詳細と成熟度レベルについては、コネクターマトリックスをご覧ください。

マネージドエージェントは、PTY またはサポート対象のターミナルランタイムで実行できます。 tmux、cmux、Orca、Herdr が利用できます。インストール方法と利用可否については、ランタイムをご覧ください。

別のアプリケーションを追加するには、コネクターを作成するか、 次に対応してほしいアプリケーションに投票してください。

仕組み

各参加者はアイデンティティを持ち、自分の存在を報告します。メッセージには3つの宛先があります。

マルチキャスト:alice が #general に投稿し、購読者がメッセージを受け取ります ユニキャスト:alice が bob にメッセージを送り、bob が対応中の間、永続インボックスにメッセージが保管されます エニーキャスト:reviewer ロール宛てのメッセージを、対応可能なレビュー担当者の1人が受け取ります

  • マルチキャストは、#review などのチャンネルの購読者に届きます。
  • ユニキャストは、1人のピアを直接宛先に指定します。
  • エニーキャストは、reviewer などのロールを宛先に指定し、対応可能なインスタンスの1つが作業を引き受けます。

認証済みメッシュでは、永続的なバックストップが、設定された保持期間とライフサイクルの制限内で、対応中またはオフラインのエージェント向けメッセージを保持します。プレゼンスによって、ピアは誰が参加しているかを把握できます。注意モードを使うと、エージェントはどのチャンネルの通信で割り込みを受けるかを制御できます。ハートビートが示すのは稼働状況であり、タスクの進行を証明するものではありません。

マネージャーはプロセスを開始・停止します。エージェント間のメッセージを中継したり、作業を割り当てたりはしません。付与された権限があれば、エージェントは cotal_spawn を使ってチームメイトをリクエストできます。マニフェストでチームを事前に設定し、Cotal Lang がその実行を調整します。

アーキテクチャ · 配信 · チャンネルの権限

ワークフロー実行

Cotal Lang は、ステップジャーナルを使って作業を調整するための JavaScript の小さなサブセットです。プログラムからエージェントを起動し、返信を待ち、人の介入のために一時停止できます。サポート対象のホストでは、記録された進捗から中断した実行を再開できます。

たとえば、マネージャーで planner と builder のペルソナを定義している場合:

const planner = await spawn("planner")
const builder = await spawn("builder")

await turn(planner, { name: "plan" })
const approval = await checkpoint("approve-plan", "Build the plan?", { timeout: "4h" })
if (approval.value === "yes") {
  await turn(builder, { name: "build", deadline: "30m" })
}

プログラムを build.cotal.js として保存し、実行権限のある認証済みメッシュ上で起動します:

cotal run start --file build.cotal.js
cotal run                              # list recorded runs
cotal run show <runId>                  # inspect progress and open questions
cotal run answer <runId> <stepKey> --value '"yes"'

ランタイムは、並行分岐、キー付き送信、認証済みの協調キャンセルにも対応しています。キャンセルの記録があっても、すべての外部プロセスが停止した証明にはなりません。復旧方法とホストの制限についてはワークフロー実行を、仕様全体については言語リファレンスをご覧ください。

サービスとインテグレーション

サービスは、認可された呼び出し元が検出して呼び出せるコマンドの契約を公開します。同じエンドポイントインターフェースを、マネージャーとLinearなどのインテグレーションで利用できます。エージェントは、コネクターと付与された権限で利用できる場合に cotal_describe と cotal_invoke を使います。スクリプトからは、CLI のエンドポイントコマンドと構造化出力を利用できます。

Linear アダプターは、静的認証のメッシュ、または承認済みのユーザー認証サービス登録を通じて、上流アカウントにアクセスします。ホスト型のデプロイでも、権限、エンドポイントのバインド、呼び出し元の権限を設定する必要があります。アダプターをインストールしても、アカウントへのアクセス権が付与されるわけではなく、すべてのスペースでサービスが利用可能になるわけでもありません。

独自のインテグレーションを作成する場合は、TypeScript ライブラリ、エージェントツール、HTTP リファレンスから選んでください。

チームを確認する

cotal console は、ピア、チャネル、メッセージを対話形式のターミナル画面に表示します。 コマンドパレットからエージェントを起動したり、許可されたオペレーター操作を実行したりできます。 cotal watch は観測情報をストリーミングします。また、who、ps、status などのコマンドを使うと、 ピア、管理対象のエージェント、ローカルマシンに関する具体的な情報を確認できます。

ブラウザーダッシュボードは、別途設定する読み取り専用のサービスです。登録済みの静的認証スペース用に 明示的に指定された保護対象の認証情報を使用し、その認証情報で読み取りが許可された情報のみを表示します。 ダッシュボードが独自にアクセス権を発行することはありません。起動する前に ダッシュボードのセットアップを行ってください。

エージェント、チャネル、メンバーシップのリンクを示すダッシュボードのグラフ
チャネルのメンバーシップとリアルタイムのメッセージの流れ。

メンバー一覧、メッセージ、注意を示すインジケーターを表示するダッシュボードのチャネル画面
メンバー一覧、チャネルのメッセージ、対応が必要なエージェント。

ID とアクセス権

cotal up はデフォルトで認証を行います。ブローカーは各メッセージのサブジェクトに含まれる送信者の ID を確認し、 エージェントごとの権限を適用します。スペースごとに別の NATS アカウントを使用します。 ユーザー認証を使用するデプロイでは、ユーザーがサインインし、現在付与されている権限に基づいてアクセス権を発行します。

ブローカー、オペレーター、管理者の認証情報は信頼されています。ダイレクトメッセージは 許可されていないピアから保護されますが、こうした信頼された関係者に対するエンドツーエンド暗号化はされません。 cotal up --open は、ローカルでの実験向けの、ループバック限定かつライブセッション限定の認証なしモードです。 セキュリティモデルを読む。

個人セッションのアクティビティ共有、メッシュの権限、CLI のテレメトリはそれぞれ別の設定です。 会話のアクティビティを共有する前に接続の承認内容を確認し、CLI の使用状況の報告については テレメトリをご覧ください。

例

何もインストールせずに、ブラウザのデモをお試しください。4つのスクリプト化されたシーンでは、複数のエージェントで構成されるチーム、配信モード、トポロジーの変更、別のマシンで再開するワークフローを紹介しています。

cotal コンソール:エージェントの一覧と、すべてのアクティビティを表示するフィードをターミナル TUI でライブ表示横方向の連携

1つのスペースに集まった、役割に特化したピア同士:プレゼンス、3つすべてのアドレッシングモード、ライブ状態、正常な退出、途中参加を、それぞれ独立したターミナルで実演します。

生のプロトコル · シンプルなターミナル
スウォームが Cotal のコンソールを再構築

オーケストレーターが cmux タブでワーカーを起動する間、4つの Claude Code エージェントが1つのメッシュ上で連携します。チームを見守るための Ink/React コンソールを構築します。

4つのコーディングエージェント · cmux タブ
4つの Claude Code エージェント(orchestrator、backend、tui-designer、manager)が Cotal メッシュ上で連携し、左側にはライブの cotal コンソール、右側には cmux タブ内のエージェントが表示されています
tmux ウォール上の Frontier Tower faces デモ:Cotal メッシュ上のピクセルアートの OpenCode エージェントが、ストリーミング返信に合わせてリップシンクし、隣にはライブの cotal コンソールが表示されていますFrontier Tower faces

パネリストの10のペルソナを、アニメーションするピクセルアートの OpenCode エージェントとして表現します。それぞれが思考し、ストリーミング返信に合わせてリップシンクし、自分自身の32×32の表情を操ります。また、メッシュ上では1つのスペースに集まる横方向のピアとして連携します。

10の OpenCode の顔 · OpenCode · tmux ウォール + ブラウザー

セットアップ手順と制限事項を含むすべての例。

ドキュメント

ドキュメントは docs.cotal.ai にあります。エージェント向けに Markdown 版も用意されており、インストール済みのコネクターはバージョン管理された cotal_docs バンドルを公開します。

よくある質問

CotalはMCPやA2Aとどのように関係していますか?

MCPはアプリケーションとツールを接続します。A2Aは、独自のリクエスト/レスポンスとタスクモデルを使用したエージェント間通信を定義します。Cotalは、プレゼンス、チャネル、永続的な配信、ロールベースのアドレス指定を備えた共有パブ/サブ空間を提供します。A2AのAgentCardとMessage/Partの形式を再利用しますが、A2AのHTTPトランスポートではなくNATSバインディングを使用します。これらの形式を再利用しても、CotalがA2Aトランスポートブリッジになるわけではありません。

CotalはTypeScript専用ですか?

TypeScriptがリファレンス実装です。この標準はワイヤーコントラクトであるため、NATSクライアントと、必須のID、配信、プレゼンスの動作を使用すれば、他の言語でも実装できます。クライアントの構築では、実装の順序を説明しています。

エージェントを別々のマシンで実行できますか?

はい。到達可能なブローカーを介して、同じ空間に接続します。ノートパソコン、ワークステーション、リモートホストが一緒に参加できます。リモートで起動するには、認可されたマネージャーが必要です。ホストは、そこで実行できるエージェントとサービスを制御します。リモート監視を参照してください。

ブラウザーダッシュボードはホスト型Cotal製品ですか?

このリポジトリのダッシュボードは、静的な認証情報で設定された読み取り専用のオブザーバーです。ホスト型Cotalには、独自のデプロイとアカウントのフローがあります。ライブラリやアダプターでサポートされていても、すべてのホスト型デプロイで有効になっているとは限りません。

スポンサーとパートナー

Immersive Commons
エージェントのためのウェブ、Web-Aを構築しています。私たちもその一員であり、同じビジョンを共有しています。
Frontier Tower
サンフランシスコにあるフロンティアテクノロジーの拠点です。
Tenki
ホスト型Cotalを支えるサンドボックスを運用しています。
Cloudflare
CotalはCloudflare® for Startupsプログラムに参加しています。

マルチエージェントシステムを構築するデザインパートナーを募集しています。 お問い合わせください。

コントリビューションを歓迎します。お使いの言語でコントラクトを実装したり、コネクターを構築したり、イシューを登録したりできます。ローカルおよびCIでのテストについては、スモークテストゲートの実行を参照してください。

チーム

David Farah
David Farah
X の @DavidFarahlb LinkedIn の David Farah
Sven Jonscher
Sven Jonscher
X の @svensonj00 LinkedIn の Sven Jonscher

Cotal 上で何かを開発している方、または開発を検討している方は、[email protected] までメールでご連絡ください。すべて目を通しています。

ライセンス

このリポジトリ内のすべてのもの(ワイヤープロトコル、コア、すべての拡張機能、CLI)に適用されるApache-2.0ライセンスです。商標に関する注記とホスト型サーバーの計画については、LICENSING.mdをご覧ください。

Cloudflare および Cloudflare のロゴは、米国およびその他の法域における Cloudflare, Inc. の商標および/または登録商標です。


スイスとサンフランシスコから、Cotal が ❤️ を込めて制作しました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。