Taasky Common ground について
Taasky Common ground は、2つのコーディングエージェントのセッションでタスクの理解を照合し、合意点、相違点、未解決事項を人が確認できる形にまとめます。このローカル版は Node.js で動作し、データを端末上の SQLite ファイルに保存します。
主な機能
- 01エージェントセッション用の共有ルーム
- 02合意点、相違点、未解決事項の記録
- 03判断に対する人の確認
- 04SQLite を使ったローカル実行
- 05Claude Code と Codex の接続
活用シーン
- 01Claude Code と Codex の調査結果の比較
- 02コードや仕様に関する見解の相違の確認
- 03ローカル環境内での調整結果の承認
MCP 対応
Taasky は `/mcp` をエージェント向けに提供し、Claude Code と Codex に追加できます。エージェントは後続の呼び出しにルームトークンを使い、人はルームページで判断案を確認します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Taasky
Taasky を自分のマシンで実行します。1 つのタスクに取り組む 2 つのエージェントセッションが同じルームに集まり、互いの認識が一致しているか確認します。たとえば、メインのチェックアウトで Claude Code を、ワークツリーで Codex を使います。結果は 1 つのページで確認し、承認できます。マシンの外にデータが出ることはありません。
npx @taasky/taasky local # Taasky at http://localhost:8790/mcp
npx @taasky/taasky connect # in another terminal: adds it to Claude Code and Codex
Node.js 24 以降が必要です。local はループバックのみでリッスンし、~/.taasky に SQLite ファイルを 1 つだけ保存します。connect は claude mcp add --scope user と
codex mcp add を実行するため、新しいセッションではすべて taasky-local が使えます。すでに開いているセッションでは、再起動後に使えるようになります。
次に、Taasky plugin から common-ground スキルをインストールし、片方のセッションに、もう片方のセッションと何かを確認するよう依頼します。参加するセッションは自分で選べます。エージェントから招待リンクを受け取り、もう片方のセッションに渡します。それぞれのセッションからルームの専用ページ(human_url)が提供され、そこで自分が承認するまで、合意は成立しません。
コードは mcp.taasky.ai と同じです。ルーム、手順、MCP サーバー、人が利用するページが含まれます。こちらでは、標準の Node.js と SQLite ファイル 1 つで実行します。プロトコルはオープンです: taasky/protocol。
チームのためのノード
ドラフト。 チームで安心して使うために不足しているものは、 docs/ROADMAP.md に記載されています。
同じコードを使って、チームの内部環境でサービスを提供できます。異なる人のエージェントが互いの認識をすり合わせ、各自が結果を承認します。コード、仕様、社内の意見対立など、チームのコンテキストを他者のクラウドに持ち出せない場合に適しています。見知らぬ人との調整(打ち合わせ、訪問)には双方がアクセスできるリレーが必要なため、その場合はホスト型の mcp.taasky.ai を使ってください。プロトコルでは、これを B2B internal デプロイトラックとして定義しています(core/PROTOCOL.md §2)。
実行する
このリポジトリをクローンした場所から実行します:
Node.js 24 以降が必要です。
npm ci
npm run dev # loopback only, dev confirmations, dev.sqlite
curl localhost:8790/health
ノードは次のサービスを提供します:
- エージェント向けの
/mcp; - 人向けの
/i/…招待ページと、/p/…、/r/…ルームページ;
npm run dev は TAASKY_DEV_MODE を有効にします。エージェントは X-Taasky-Dev-User ヘッダーを使って任意のユーザーとして操作でき、POST /dev/confirm/<pending_id> はカードを使わずに承認します。ノードにアクセスできる人は誰でも、任意のユーザーとして操作できるため、ループバックのみでバインドしてください。
Docker を使う
cp .env.example .env # set TAASKY_BASE_URL
docker compose up -d
イメージは node として実行されます。データは /data/taasky.sqlite にある taasky-data ボリュームに保存されます。バックアップ対象はこのファイル 1 つだけです。ノードの前段に TLS 対応のリバースプロキシを配置し、TAASKY_TRUST_PROXY=1 を設定すると、レート制限でクライアントのアドレスが使われます。
エージェントを接続する
各ユーザーは、mcp.taasky.ai の代わりにノードをエージェントに指定します。
# Claude Code
claude mcp add --transport http taasky https://taasky.internal.example.com/mcp
# Codex
codex mcp add taasky --url https://taasky.internal.example.com/mcp
スキルは taasky/plugin から入手します:
common-groundは Common ground 用です;taaskyには、両方のスキルが共有するルーム、ターン、承認の機能があります。
プラグイン自体の mcp.json は mcp.taasky.ai を参照します。ノードを使う場合は、上記のようにサーバーを手動で接続するか、手元のプラグインの URL を変更してください。
Authorization ヘッダーなしの /mcp は、キーなしで利用できます。エージェントはルームごとにルームトークンを取得し、その後のすべての呼び出しでそのトークンを渡します。
確認
コアは、人のタップなしに approve を送ることはありません(PROTOCOL.md §8)。
各人にはルームごとに human_url が割り当てられ、カードはそこで待機します。
- エージェントが承認、拒否、または取り下げを求めます。ノードは操作を保留し、
human_urlを返します。 - エージェントは、共有している任意のチャットでリンクを人に渡します。
- 人は境界内でリンクを開き、カードを読んで回答します。
リンクを持っている人なら誰でもその席の回答ができるため、リンクは担当する人だけに送ってください。ノードがページを開いた人を識別できるようになるまでは(docs/ROADMAP.md)、リンクが唯一の認証情報です。このページにはプッシュ通知がありません。エージェントは確認のたびにリンクを送ります。
Telegram も利用する場合(TAASKY_CONFIRMATIONS=telegram)、チャットでのプッシュ通知とボタンが追加されますが、ノードが保証する内容が次の2点で損なわれます。
- カードが境界の外に出ます。 Telegram にはカードのテキスト、つまり調整内容とその理由が送信されます。Telegram のサーバーからも閲覧できます。
- ノードがインターネットに接続されます。 ボットの Webhook を利用するには、Telegram から
TAASKY_BASE_URLに HTTPS でアクセスできる必要があります。
次の両方を許容できる場合にのみ利用してください。
- @BotFather でボットを作成します。
TELEGRAM_BOT_TOKENとTAASKY_CONFIRMATIONS=telegramを設定します。POST /telegram/setupを一度呼び出し、ボットの Webhook をTAASKY_BASE_URLに設定します。
設定
| 変数 | デフォルト | |
|---|---|---|
TAASKY_BASE_URL | http://localhost:$PORT | 人とエージェントが使う URL。プロキシ経由の場合は、プロキシの URL を指定します |
PORT、HOST | 8790、127.0.0.1 | |
TAASKY_DB | taasky.sqlite | SQLite ファイル1つ、WAL |
TAASKY_TRUST_PROXY | 0 | X-Forwarded-For からクライアントのアドレスを取得します |
TAASKY_CONFIRMATIONS | web | web:人のページのみ。telegram:ボットも利用 |
TELEGRAM_BOT_TOKEN | — | TAASKY_CONFIRMATIONS=telegram 用の独自ボット |
TAASKY_DEV_MODE | 0 | ループバックのみ:/dev/confirm、X-Taasky-Dev-User |
TAASKY_ONE_HUMAN | 0 | ループバックのみ:すべての席を1人が担当し、全席で1ページと1回の「はい」を共有します(taasky local が設定します) |
TAASKY_AUTH_PER_MINUTE、TAASKY_MCP_PER_MINUTE | 30、120 | アドレスまたはユーザーごとのレート制限 |
構成
core/ は、npm run sync によって作成された、core/COMMIT に記載されたコミット時点の taasky-mcp のコピーです。src/ はホストです。ホスト型サービスにおいて Cloudflare が提供する機能を、すべて提供します。
| Cloudflare | ここでの実装 |
|---|---|
| D1 | node:sqlite(src/d1.ts) |
| KV | 同じファイル内のテーブル(src/kv.ts) |
| レート制限 | メモリ内(src/limiter.ts) |
| 静的アセット | src/static.ts |
| 毎時の cron | タイマー |
詳しくはdocs/ARCHITECTURE.mdをご覧ください。
npm test # the host's D1 and KV slice
TAASKY_URL=http://localhost:8790 node ../taasky-mcp/scripts/smoke.mjs # end to end, against npm run dev
フォント
ページでは Instrument Serif、Inter、JetBrains Mono を使用しています。これらは SIL Open Font License 1.1 に基づいています。ライセンスはlicenses/にあります。
ライセンス
FSL-1.1-ALv2、Functional Source License:
- Taasky と競合する製品またはサービスを除き、どのような目的でもノードを実行、変更、再配布できます。
- 自分のチームまたは会社で実行することは、許可される目的です。
- 各バージョンは、リリースから2年後に Apache-2.0 になります。
プロトコル(taasky/protocol)は Apache-2.0 です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。