agora
The agora server provides a shared, persistent space for Claude Code sessions within a repository to coordinate work, detect conflicts, log activities, and facilitate communication.
Resume project (
resume_project): Get a full summary of active sessions, recent activity, file/branch collisions, and unread notes — ideal for quickly catching up when starting or resuming a session.See who is active (
who_is_here): List all currently active sessions and the specific files each one is touching, giving a live view of parallel work in the repo.Activity log (
activity_log): View a filterable timeline of all repository events, with options to filter by time window (in minutes) or by a specific session ID.Check for collisions (
check_collision): Before editing files or switching branches, check whether another active session is already working on the same files or branch, helping you avoid overwriting others' work.Leave a note (
leave_note): Send a message to a specific session or broadcast it to all active sessions, enabling asynchronous communication between Claude Code instances.Read notes (
read_notes): Retrieve notes addressed to a specific session (or broadcast notes), with the option to filter for unread-only, and automatically mark them as read.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agorawho is here and what are they doing?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agora
A shared, persistent space for your Claude Code sessions — per repository.
See what other sessions are doing, get warned before you overwrite their work, and leave notes. No daemon, no server to run.
Why
When several Claude Code sessions work on the same repository — in parallel, or just over the course of a day — they're blind to each other. None of them knows what the others touched, they overwrite the same files silently, and the context is lost when you close them.
agora gives every session a shared place to leave a trail and look at each other's work.
Related MCP server: memory-bridge
How it works
The whole system is one SQLite file per repo: <repo-root>/.agora/space.db (in WAL mode, so multiple processes read and write it at once without corruption).
No one runs a server. There's no daemon, no web app. The "space" is the file.
Every session of the repo writes what it does and reads what the others did.
Because it's a file, it persists by itself — close everything, come back tomorrow, the state is still there.
It's a shared board, not a live chat: sessions find out when they start, when they're about to edit (collision), or when they ask (the tools).
Multi-worktree friendly: the
.dblives at the main repo root, so every session of the repo — including those in different worktrees — shares one agora.
Features
🟢 See who's here and what files each session is touching, live.
⚠️ Collision warnings — before you edit a file (or work a branch) another active session already holds.
📋 Project resume — open a session and get a summary of what the others did.
📓 Activity log — a per-repo timeline of everything that happened.
✉️ Notes between sessions (directed or broadcast).
🛡️ Best-effort hooks — they exit
0no matter what; they never block your session.
Requirements
Bun 1.3+
git2.xClaude Code (or any MCP client)
Installation
git clone https://github.com/vorluno/agora-mcp.git
cd agora-mcp
bun install
# Install the 5 hooks (idempotent). Add --project to scope to the current repo only.
bun run src/cli.ts init
# Register the MCP server
claude mcp add agora -- bun run /absolute/path/to/agora-mcp/src/index.tsConfiguration
Any MCP client works. The mcpServers entry:
{
"mcpServers": {
"agora": {
"command": "bun",
"args": ["run", "/absolute/path/to/agora-mcp/src/index.ts"]
}
}
}For Claude Code, claude mcp add (above) writes this for you. For Warp or Cursor, paste the snippet into their MCP settings.
Tools
Tool | Description |
| Summary of the agora: active sessions, recent activity, collisions, unread notes. |
| Active sessions and which files each one is touching. |
| The repo's event log, filterable by time/session. |
| Is another active session touching these files or this branch? |
| Leave a note for another session (or broadcast to all). |
| Read notes addressed to a session (marks them read). |
How collisions are detected
File collision: 2+ distinct sessions with an active
writingclaim on the same file.Branch collision: 2+ active sessions on the same branch but in different worktrees.
Only live sessions are counted, so a session that died without a clean exit won't produce false positives.
Automatic capture (hooks)
init installs 5 best-effort hooks (they always exit 0):
Hook | What it does |
| Registers the session and injects the agora summary into your context (also fires on |
| Records the file claim + event; warns if a new collision appears. |
| Warns you before editing if another session already holds the file. |
| Marks the session idle / stopped and releases its claims. |
Development
bun test # full suite (incl. a real WAL concurrency test)
bunx tsc --noEmit # type-checkBuilt test-first across 14 TDD tasks with per-task and whole-branch review.
License
MIT © 2026 Vorluno
Built by Vorluno — a software studio from Panamá 🇵🇦
Part of the mcp-s family of MCP servers.
This server cannot be installed
Maintenance
Latest Blog Posts
- 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/vorluno/agora-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server