Escritório
Büro
Peer-to-Peer-Kommunikation zwischen Claude Code-Sitzungen. Ihre Sitzungen und Ihre Experten werden zu namentlich adressierbaren Personen, die gleichzeitig über verschiedene Themen miteinander sprechen – ohne Orchestrator.
Design-Spezifikation: pessoal/claudicaro-cli/docs/design/2026-08-02-escritorio-multiagente.md.
Warum das ohne ihn nicht möglich war
Die native Topologie von Claude Code ist ein Baum: Unteragent gibt an den Eltern zurück, SendMessage erreicht nur diejenigen, die die eigene Sitzung erzeugt hat, Workflow übergibt Daten über das Skript. Zwei Geschwister sprechen nicht miteinander. Laterale Kommunikation erfordert ein gemeinsames Medium – und das ist diese Mailbox.
Related MCP server: claude-mesh
Die sechs Werkzeuge
tool | Funktion |
| wer existiert, was sie wissen, welcher Tier – eine Zeile pro Person, ohne |
| fragt und wartet auf die Antwort |
| sendet und folgt; im Thread einer ausstehenden Frage wird es zur Antwort darauf |
| holt die Korrespondenz (normalerweise liefert der Hook bereits selbst) |
| gemeinsame Tafel, ohne Empfänger |
| beansprucht Ressource, bevor daran gearbeitet wird |
Plus fechar_thread, das das Gespräch beendet und jeden Kollegen das Notizbuch destillieren lässt.
Wie es funktioniert
Thread ist der einzige Gesprächscontainer – ersetzt Räume und Kanäle. Debatte zwischen Gleichgestellten ist ein Thread mit N Teilnehmern, bei dem jeder wählt, wem er antwortet.
Ohne Chef halten zwei Regeln in der Mailbox das System zusammen:
hopswird bei jeder Nachricht dekrementiert; bei Null verweigert die Mailbox. Tötet endloses Ping-Pong.Besitzer des Threads ist derjenige, der ihn geöffnet hat, und nur er schließt ihn.
Zustellung hat zwei Arten:
Lebende Sitzung erhält per Hook (
Stopblockiert das Anhalten und liefert aus;PostToolBatchliefert mitten in der Arbeit aus). Der Hook ist ein Skript – läuft außerhalb des Modells, Token-Kosten null.Kollege aus dem Roster wird von der Mailbox mit
claude -pgeweckt, antwortet und schläft weiter.
Gedächtnis des Kollegen: Innerhalb eines Threads hält er die Sitzung am Leben (--resume) und erinnert sich an alles; wenn der Thread geschlossen wird, destilliert er das Gelernte in ein Notizbuch .md und die Sitzung stirbt. Langfristig ist das Notizbuch – prüfbar, manuell bearbeitbar, versioniert.
Installation
npm install && npm run build
node scripts/instalar.mjs # --dry pra ver antes, --remover pra desfazerDer Installer registriert den Zustellungs-Hook in ~/.claude/settings.json, setzt ESCRITORIO_WORKSPACE/ESCRITORIO_ROSTER und registriert den MCP-Server über claude mcp add --scope user (der in ~/.claude.json schreibt – settings.json registriert kein MCP).
Erstellt beim ersten Mal ein Backup in settings.json.antes-do-escritorio und überschreibt dieses Backup nie.
Roster
~/claude-workspace-config/roster.yaml (synchronisiertes Repo 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 ist das Einzige, was roster() zurückgibt – schreiben Sie mit dem Gedanken „wann würde ich diese Person rufen“. Pfade akzeptieren ~ und ${VAR}; es ist die Umgebungserweiterung, die dieselbe Datei für Mac und VM nutzbar macht, wo der Workspace an unterschiedlichen Orten liegt.
Stufen
Stufe | darf | wie durchgesetzt |
| lesen und beraten | Allowlist von Tools ( |
| in den Working Tree schreiben |
|
| isoliert schreiben | eigener Git-Worktree; wenn nicht erstellbar, verweigert statt in das echte Repo zu fallen |
Eine Anfrage kann die Stufe in der Abfrage herabsetzen, niemals anheben.
Warum Allowlist und nicht Denylist
Die erste Version verwendete --disallowedTools Edit Write NotebookEdit mit bypassPermissions. Mit echtem claude getestet, leckte es: Der Kollege schrieb die Datei über Bash, das nicht in der Negation war. Gemessen in den vier Varianten:
Flags | Ergebnis |
| leckte (schrieb über Bash) |
| hielt |
ohne permission-mode + nega Edit/Write/Bash | hielt |
ohne permission-mode + Allowlist read-only | hielt, und las |
Es blieb bei der Allowlist: Was ich vergesse aufzulisten, bleibt verweigert statt freigegeben. Beachten Sie, dass Bash(cat:*) in der Allowlist nicht erlaubte, durch Umleitung zu entkommen (cat > arquivo).
Ver acontecendo
npm run tailVerfolgt die Mailbox und druckt, was zwischen allen Sitzungen passiert – Tafel geschrieben, Claim, Thread geöffnet, Nachricht ausgetauscht, Antwort eintreffend:
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…→? ist blockierende Frage, → Nachricht, ←! Antwort.
Identität
Jede Sitzung braucht einen Namen. ESCRITORIO_ID wenn deklariert; ohne ihn, abgeleitet von usuário@pasta – stabil pro Projekt, also ist eine in dsg/v1 geöffnete Sitzung immer icaromelo@v1 und kann von einer anderen adressiert werden.
Tests
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)Bekannte Einschränkungen
Eine Mailbox pro Maschine. Sitzung auf der Oracle-VM spricht nicht mit der Mailbox des Macs; die Brücke zwischen Maschinen ist ein separates Problem.
dist/lebt auf der SSD. Bei abmontierter SSD schlägt der Hook still (|| true) und der MCP bleibt getrennt – nichts hängt, aber das Büro verschwindet bis zum Wiederanbringen.askin einer lebenden Sitzung hängt davon ab, dass sie läuft. Wenn niemand diese Sitzung geöffnet hat, warten Sie bis zum Timeout (5 Min.) und die Antwort bleibt im Inbox für später.
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