GitDiagram
Architecture diagrams, explanations and Mermaid source for public GitHub repositories.
Multiplayer for AI coding agents: collision detection before the edit, messaging, delegation.
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月13日
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
このメッセージを Claude のチャットに貼り付けます。AI がパソコンを確認し、変更するファイルを伝え、毎回あなたの了承を待ちます。
このパソコンの Claude に MCP server Tower を入れてください。順番に:1) node -v で Node.js があるか確認。なければ https://nodejs.org/en/download から入れるよう私に伝え、自分では入れない。2) この設定だけを使う(PopNx MCP の確認済み):{ "mcpServers": { "tower": { "command": "npx", "args": [ "-y", "tower-mcp", "serve" ] } } } 3) 変更するファイルのフルパスか実行するコマンドを伝えて、私の了承を待つ。4) キーは不要。5) 了承した内容を実行し、Tower のツールが本当に表示されるか確認する。このメッセージにあなたのキーは含まれません。キーが必要な場合は、AI がファイルやアプリの入力欄にご自身で貼るよう案内します。
もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter
node -vMac:⌘ + Space を押し、Terminal と入力して Enter
Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」
まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です
入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v
一度入れれば、Node.js を使うすべてのツールで使えます
SettingsDeveloperEdit Config
{
"mcpServers": {
"tower": {
"command": "npx",
"args": [
"-y",
"tower-mcp",
"serve"
]
}
}
}Tower を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が Tower を使っていると言うか、回答に Tower のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ Tower につなげません
Tower はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
A · Tower につなげるアプリを使う
B · 開発者ツール の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
Claude Code につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
このメッセージを Claude Code のチャットに貼り付けます。AI がパソコンを確認し、変更するファイルを伝え、毎回あなたの了承を待ちます。
このパソコンの Claude Code に MCP server Tower を入れてください。順番に:1) node -v で Node.js があるか確認。なければ https://nodejs.org/en/download から入れるよう私に伝え、自分では入れない。2) この設定だけを使う(PopNx MCP の確認済み):claude mcp add --scope user tower -- npx -y tower-mcp serve 3) 変更するファイルのフルパスか実行するコマンドを伝えて、私の了承を待つ。4) キーは不要。5) 了承した内容を実行し、Tower のツールが本当に表示されるか確認する。このメッセージにあなたのキーは含まれません。キーが必要な場合は、AI がファイルやアプリの入力欄にご自身で貼るよう案内します。
もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter
node -vMac:⌘ + Space を押し、Terminal と入力して Enter
Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」
まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です
入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v
一度入れれば、Node.js を使うすべてのツールで使えます
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
claude mcp add --scope user tower -- npx -y tower-mcp serveTower が一覧にあり、接続済みと表示されれば OK です
Tower を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が Tower を使っていると言うか、回答に Tower のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
このメッセージを Cursor のチャットに貼り付けます。AI がパソコンを確認し、変更するファイルを伝え、毎回あなたの了承を待ちます。
このパソコンの Cursor に MCP server Tower を入れてください。順番に:1) node -v で Node.js があるか確認。なければ https://nodejs.org/en/download から入れるよう私に伝え、自分では入れない。2) この設定だけを使う(PopNx MCP の確認済み):{ "mcpServers": { "tower": { "command": "npx", "args": [ "-y", "tower-mcp", "serve" ] } } } 3) 変更するファイルのフルパスか実行するコマンドを伝えて、私の了承を待つ。4) キーは不要。5) 了承した内容を実行し、Tower のツールが本当に表示されるか確認する。このメッセージにあなたのキーは含まれません。キーが必要な場合は、AI がファイルやアプリの入力欄にご自身で貼るよう案内します。
もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter
node -vMac:⌘ + Space を押し、Terminal と入力して Enter
Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」
まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です
入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v
一度入れれば、Node.js を使うすべてのツールで使えます
Tower を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が Tower を使っていると言うか、回答に Tower のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
先にパソコンへ Node.js を入れてください(1 回だけ)
このメッセージを VS Code のチャットに貼り付けます。AI がパソコンを確認し、変更するファイルを伝え、毎回あなたの了承を待ちます。
このパソコンの VS Code に MCP server Tower を入れてください。順番に:1) node -v で Node.js があるか確認。なければ https://nodejs.org/en/download から入れるよう私に伝え、自分では入れない。2) この設定だけを使う(PopNx MCP の確認済み):{ "servers": { "tower": { "type": "stdio", "command": "npx", "args": [ "-y", "tower-mcp", "serve" ] } } } 3) 変更するファイルのフルパスか実行するコマンドを伝えて、私の了承を待つ。4) キーは不要。5) 了承した内容を実行し、Tower のツールが本当に表示されるか確認する。このメッセージにあなたのキーは含まれません。キーが必要な場合は、AI がファイルやアプリの入力欄にご自身で貼るよう案内します。
もう入っていますか?先に確認 · ターミナルを開き、このコマンドを入力して Enter
node -vMac:⌘ + Space を押し、Terminal と入力して Enter
Windows:スタートメニューを開き、Windows PowerShell と入力して「開く」
まだ入っていない場合: 公式ダウンロードページで LTS 版と、クリックで進むインストーラーを選びます:Mac は .pkg、Windows は .msi。ダブルクリックして最後まで進めるだけで、curl コマンドは不要です
入れ終わったらターミナルを閉じて開き直し、同じコマンドをもう一度実行します。バージョン番号が出れば完了です: node -v
一度入れれば、Node.js を使うすべてのツールで使えます
Tower を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が Tower を使っていると言うか、回答に Tower のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Claude Code
claude mcp add --scope user tower -- npx -y tower-mcp serveClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"tower": {
"command": "npx",
"args": [
"-y",
"tower-mcp",
"serve"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"tower": {
"command": "npx",
"args": [
"-y",
"tower-mcp",
"serve"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"tower": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tower-mcp",
"serve"
]
}
}
}この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
npm: tower-mcpこのサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月15日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Rohanxmalik で確認済みです
コードの最終更新:先月
MITを使用
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
OSV.dev に tower-mcp@0.12.1 の登録はありません
このバージョンのパッケージ本体のみ確認。すべての依存関係ではありません · 確認日 2026年11月15日
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
まだレビューはありません
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は先月、最新バージョン(0.12.1)がレジストリに届いたのは先月です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:GitDiagram, Appllama, Cloudflare MCP, Omnara, Repowise
同じカテゴリでほかの作者のもの。コマンドは確認済み。公式を先に、次にスター順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Architecture diagrams, explanations and Mermaid source for public GitHub repositories.
Study screens, flows and paywalls from top-earning iOS apps, then build from what wins.
Deploy durable AI agents with Omnara, an open-source managed-agent platform.
Codebase intelligence for AI coding agents: graph, git history, docs, decisions, code health.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Multiplayer for your team's AI coding agents.
[tower-mcp on npm](https://www.npmjs.com/package/tower-mcp) · [Website](https://rohanxmalik.github.io/Tower/) · [Docs](./docs/quickstart.md) — setup: npx -y tower-mcp setup
Every great work tool went multiplayer — Docs beat Word, Figma beat Photoshop. AI is still the one everyone uses alone: one prompt, one box, one person.
Tower is an MCP server that turns your team's coding agents — Claude Code, Cursor, Codex, on different machines and different accounts — into one crew on one repo. Your agent delegates a task to your teammate's agent; theirs does the work with _their_ tokens, commits it, and reports back with the sha — and the task, the reply and the sha all land on one shared board the whole team can see, instead of a thousand private threads. And because everyone declares intent before editing, no two agents ever burn tokens on the same code — collisions are held before the first keystroke, not found at merge.
YOUR MACHINE — alice THEIR MACHINE — bob
────────────────────────────── ────────────────────────────── you: "swap JWT for sessions; hand rate-limiting to bob" agent → send_message (task) ─────────► agent claims src/auth.ts → "unreadMessages: 1" → fetch_messages (or: tower work accepted it, running claude…) → does the task, their machine/tokens → commits (hook completes the claim) [DONE] bob → alice: ◄───────── → send_message (task_update) "rate limit 30/min, merged in ab12f3"
Status: v0.12.1 — early, building in public. Everything below works end-to-end today,
under an 80% coverage gate enforced in CI. What's shipped and what's next:
CHANGELOG.md · design doc: MVP-SPEC.md.
Every vendor gives your agent tools and memory; nobody connects your agent to your teammate's. Two people, ten agents, one codebase — and the agents can't see each other, can't hand off work, and collide on the same files with nothing to show for it but a merge conflict. Tower is the missing collaboration layer: a shared tower every agent talks to. It sits _above_ git and _uses_ MCP; it doesn't replace either. Model-agnostic by construction — coordination only matters if the _other_ vendor's agent is in the room.
| Word | What it means here |
|---|---|
| MCP | the standard way agents call external tools. Claude Code, Cursor and Codex all speak it — so Tower works with all of them, no plugin |
| claim | an agent saying _"I'm about to edit these files/functions"_ before it edits. The core move |
| symbol | a named function, class or method — so two agents editing _different_ functions in one file aren't treated as colliding |
| hard / soft | hard = same symbol → the claim is refused, with what to work on instead (force overrides). soft = same file different symbols, or another branch → you're told, you proceed |
| board | a web page showing every agent's active claims, tasks and messages |
| worker | tower work — a daemon on a machine that picks up delegated tasks and runs a coding agent headlessly |
Claims expire on their own (15-minute TTL, refreshed by heartbeats), so a crashed agent never locks a file forever — and a live agent's claims are extended automatically, so they don't lapse mid-task.
One repo means one coordination space. Tower keys claims on the repository's _root commit sha_, which every clone, fork and mirror shares. So a fork and its upstream coordinate with each other, and git@github.com:acme/app.git and https://github.com/Acme/App are the same place rather than two isolated groups.
Needs Node 22.13+ (it uses the built-in node:sqlite, so there's nothing to compile). Nothing to install, nothing written to disk:
npx -y tower-mcp demo
This opens a browser tab with a live board, seeded with a real hard collision and a completed delegation:
Tower demo is live → http://localhost:52410/board#token=demo
What you're seeing: alice and bob both claimed AuthService.verify — a HARD collision caught before either wrote a line. Below it: a delegated task with bob's reply + commit, a broadcast still waiting, and a pinned team rule. Ctrl+C stops the demo (nothing was written to disk).
Didn't work? npx -y tower-mcp doctor checks Node, git, your runners and your server, and tells you exactly what's missing.
Prefer a terminal-only demo? (needs a clone)
npm run demo # after: git clone … && npm install
⛔ COLLISION — AuthService.verify
Agent "cursor-bob" is mid-change (started 2s ago, ETA ~6m, purpose: replace JWT). Options: [w] wait — no need to retry: Tower messages you when their claim ends [d] dependent — run: tower next-task (a module that's safe to start now) [b] branch — build on their WIP instead of racing them [f] force — re-run guard with --force; you own the merge risk
What `setup` writes — all of it in your repo, nothing global, no network calls you didn't configure:
| Path | What |
|---|---|
.mcp.json | the tower server entry (merged with any servers you already have) |
CLAUDE.md | the claim-first rule appended (created if you don't have one) |
AGENTS.md | same rule appended — only if the file already exists |
.tower/ | your local SQLite state (claims, messages, tasks). Safe to delete |
.gitignore | .tower/ appended, so you never commit the local db |
.git/hooks/pre-commit, post-commit | only with `--hooks` |
npx -y tower-mcp setup
Reload your editor — done. Add --keep-going and the rule it writes tells agents to route around a conflict rather than stop and ask you (see Nobody waits). Joining a team server instead?
npx -y tower-mcp setup --url https://tower-xxxx.onrender.com/mcp --token <team-secret> --hooks
What setup does / manual config
setup writes the tower entry into .mcp.json (merging with your existing servers), appends the claim-first + check-your-inbox rule to CLAUDE.md (and AGENTS.md if you have one), and with --hooks installs the git pre/post-commit guards. Manual equivalent:
// Claude Code — .mcp.json
{ "mcpServers": { "tower": { "command": "npx", "args": ["-y", "tower-mcp", "serve"] }, }, }
npx -y tower-mcp init # writes .tower/policy.yaml + prints MCP setup
npx -y tower-mcp serve # MCP over stdio (or: serve --http --port 4319 --token )
From source (contributors)
git clone https://github.com/Rohanxmalik/Tower && cd Tower
npm install && npm run build node packages/cli/dist/index.js serve
Then add to your agent's rules file:
"Before editing any file, call
claim_intentwith the files and symbols you'll change.
If a
hardconflict returns, stop and ask the user; the response'salternativessays
what is safe to work on meanwhile."
Full setup → docs/quickstart.md.
Two people, two machines, two accounts — one repo. This is what Tower is for:
send_message with kind: "task". Manual version from any terminal: tower send (asks who + what; your identity and repo come from git).claim_intent), the response says unreadMessages: 1; the rules file tells it to fetch_messages and act. Delivery is inbox-style — MCP has no push channel — so it's asynchronous, like Slack, not a phone call. Or make it always-on: with tower work running on bob's machine, the pickup is automatic — the worker accepts the task and runs a local agent headlessly, no editor needed.send_message { kind: "task_update", replyTo: }: _"rate limit 30/min on /login, merged in ab12f3."_ Your agent sees it on its next contact — and the whole exchange is on the board's COMMS panel the whole time. Via tower work, the result arrives as a branch + PR: the worker commits on tower/task- , pushes, opens the PR, and the task_update carries the sha and PR link.Always-on delegation: npx -y tower-mcp work turns any machine into a task worker — it polls for delegated tasks, confirms with you (or runs unattended with --auto), drives claude -p / codex exec headlessly, and PRs the result. Full guide + security model → docs/worker.md.
A worker needs three things (run npx -y tower-mcp doctor and it checks all of them): a clean git working tree — it refuses to run on uncommitted changes, so it never mixes your work into a task's commit; claude or codex on PATH; and authenticated gh if you want pull requests (without it, branches still push).
Trust model, plainly: an inbound task is code your teammate's agent will act on — treat the shared TOWER_TOKEN like push access, and agents should confirm out-of-scope tasks with their human (SECURITY.md).
The board is a remote control, not just a dashboard. Open https:// /board on your phone:
tower work daemon on that machine picks it up, runs the agent, and opens a PR.--approve remote