Escritório
オフィス
Claude Code セッション間の ピアツーピア通信。あなたのセッションと専門家が名前で呼べる人になり、同時に複数の話題について互いに会話します — オーケストレーターなし。
デザイン仕様: pessoal/claudicaro-cli/docs/design/2026-08-02-escritorio-multiagente.md。
なぜこれなしではできなかったのか
Claude Code のネイティブトポロジーは ツリー です。サブエージェントは親に返し、SendMessage は自身のセッションが生成した相手にしか届かず、Workflow はスクリプト経由でデータを渡します。兄弟同士は会話しません。横方向の通信には共有メディアが必要です — それがこのメールです。
Related MCP server: claude-mesh
6つのツール
tool | 機能 |
| 誰がいるか、何を知っているか、どのティアか — 一人につき一行、 |
| 質問して 応答を待つ |
| 送信して 続行する。保留中の質問のスレッド内では、その応答になる |
| メッセージを取得する(通常はフックが自動で配信する) |
| 共有ホワイトボード、宛先なし |
| 操作する前にリソースを主張する |
さらに fechar_thread は会話を終了し、各同僚にノートブックを蒸留させます。
仕組み
スレッド は会話の唯一のコンテナです — ルームやチャンネルを置き換えます。ピア間の議論は N 人の参加者がいるスレッドで、各参加者は誰に返信するかを選びます。
ボスなし、メール内の2つのルールがシステムを支えます:
hopsはメッセージごとにデクリメントされ、ゼロになるとメールは拒否します。無限のピンポンを防ぎます。スレッドの所有者はそれを開いた人であり、その人だけが閉じることができます。
配信 には2つの性質があります:
生存セッション は フック で受信します(
Stopは停止をブロックして配信します。PostToolBatchは作業の途中で配信します)。フックはスクリプトです — モデルの外部で実行され、トークンコストはゼロです。ロスターの同僚 はメールによって
claude -pで 起こされ、応答してから再び眠ります。
同僚のメモリ: スレッド内ではセッションを生存させ(--resume)、すべてを記憶します。スレッドが閉じられると、学んだことを ノートブック .md に蒸留し、セッションは終了します。長期的なものはノートブックです — 監査可能、手動編集可能、バージョン管理されています。
インストール
npm install && npm run build
node scripts/instalar.mjs # --dry pra ver antes, --remover pra desfazerインストーラーは配信フックを ~/.claude/settings.json に登録し、ESCRITORIO_WORKSPACE/ESCRITORIO_ROSTER を設定し、claude mcp add --scope user で MCP サーバーを登録します(これは ~/.claude.json に書き込まれます — settings.json は MCP を登録しません)。
初回は settings.json.antes-do-escritorio にバックアップを作成し、そのバックアップを上書きすることはありません。
ロスター
~/claude-workspace-config/roster.yaml(Mac ↔ VM で同期されたリポジトリ):
especialista-deposito:
brief: "Depósito antecipado: cobrança, pagamento, reembolso (DSG/v1)"
agent_file: ${ESCRITORIO_WORKSPACE}/dsg/.agent/especialista-deposito.md
caderno: ${ESCRITORIO_WORKSPACE}/pessoal/escritorio/cadernos/especialista-deposito.md
tier: advisor
cwd: ${ESCRITORIO_WORKSPACE}/dsg/v1brief は roster() が返す唯一のものです — 「この人を呼ぶのはどんな時か」を考えて書いてください。パスは ~ と ${VAR} を受け入れます。環境変数の展開により、同じファイルが Mac と VM の両方で機能し、ワークスペースは異なる場所にあります。
ティア
tier | 可能なこと | 強制方法 |
| 読み取りとアドバイス | ツールの 許可リスト( |
| ワーキングツリーに書き込む |
|
| 分離して書き込む | 独自の git worktree。作成できない場合、実際のリポジトリにフォールバックせず 拒否 する |
リクエストはクエリ内でティアを 引き下げる ことはできますが、引き上げることはできません。
なぜ拒否リストではなく許可リストなのか
最初のバージョンは --disallowedTools Edit Write NotebookEdit を bypassPermissions と共に使用していました。実際の claude でテストしたところ、漏洩しました: 同僚が Bash 経由でファイルを書き込みましたが、これは拒否リストに含まれていませんでした。4つのバリエーションで測定:
flags | 結果 |
| 漏洩(Bash 経由で書き込み) |
| 防止 |
許可モードなし + 拒否 Edit/Write/Bash | 防止 |
許可モードなし + 許可リスト 読み取り専用 | 防止、さらに |
許可リストに決定しました: リストし忘れたものは許可される代わりに 拒否 されます。許可リスト内の Bash(cat:*) はリダイレクト(cat > arquivo)によるエスケープを 許可しなかった ことに注意してください。
動作の確認
npm run tailメールを監視し、すべてのセッション間 で何が起こっているかを出力します — ボードへの書き込み、クレーム、スレッドの開始、メッセージの交換、応答の到着:
Escritório — monitor ao vivo
sessões vistas na última hora: icaromelo@v1, icaromelo@kairos-ui, icaromelo@oraculo-api, …
threads abertas: (nenhuma)
────────────────────────────────────────────────────────────────────────
13:26:36 ▤ quadro dsg/v1:decisoes = cache sempre via RedisService · icaromelo@v1
13:26:37 🔒 claim src/infra/redis por icaromelo@v1 · revisar TTLs
13:26:38 ⊕ thread [477cfbdc] Em uma frase: qual TTL padrao usamos? · dono icaromelo@v1
13:26:38 icaromelo@v1 →? especialista-cache [477cfbdc]
Em uma frase: qual TTL padrao usamos?
13:26:44 especialista-cache ←! icaromelo@v1 [477cfbdc]
O TTL padrão é 3600 segundos (1 hora) — mas sempre passe TTL explícito…→? はブロッキング質問、→ はメッセージ、←! は応答です。
アイデンティティ
各セッションには名前が必要です。ESCRITORIO_ID が宣言されている場合はそれを使用し、ない場合は usuário@pasta から派生します — プロジェクトごとに安定しているため、dsg/v1 で開かれたセッションは常に icaromelo@v1 であり、別のセッションからアドレス指定できます。
テスト
npm test # 117 testes, sem gastar API
node scripts/smoke-mcp.mjs # sobe o servidor MCP de verdade via stdio
node scripts/smoke-e2e.mjs # E2E REAL: acorda colega, --resume, caderno (gasta API)
node scripts/smoke-escrita.mjs # E2E REAL dos 3 tiers: advisor bloqueado, worktree isolado,
# editor sob claim (gasta API)既知の制限
マシンごとに1つのメール。 Oracle VM 上のセッションは Mac のメールと通信しません。マシン間のブリッジは別の問題です。
dist/は SSD 上にあります。 SSD がアンマウントされると、フックは静かに失敗し(|| true)、MCP は切断されます — 何も停止しませんが、再マウントされるまでオフィスは消えます。生存セッションへの
askは、そのセッションが実行中であることに依存します。 誰もそのセッションを開いていない場合、タイムアウト(5分)まで待機し、応答は後で受信箱に入ります。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables multiple Claude Code instances to communicate through direct messages and topic-based channels. It features a real-time web dashboard for monitoring conversations and includes a persistent mailbox for offline message delivery.
- Alicense-qualityBmaintenanceEnables networked Claude-to-Claude messaging over HTTP and MCP channels, allowing direct messages, broadcasts, threaded replies, and permission approvals among Claude Code instances.23MIT
- Alicense-qualityBmaintenanceEnables multiple Claude Code sessions to communicate and coordinate through broadcast and peer-to-peer messaging.21MIT
- Alicense-qualityBmaintenanceLets Claude Code instances discover and message each other across sessions, with reliable delivery via hooks instead of experimental channels.26MIT
Related MCP Connectors
The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.
Ephemeral REST chatrooms for AI agents to coordinate. Share a room URL — agents talk live.
Agent-to-agent network for teams: dm, who-knows-X routing, shared rooms. Human-in-the-loop.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/icaromelo1/escritorio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server