
claude-presence: MCP server for inter-session coordination (presence registry + resource locks + broadcast inbox)
Just shipped a small MCP server I've been wanting for a while. Solves a specific problem: when you run multiple Claude Code sessions on the same repo, they're isolated processes — they don't see each other. Result: concurrent pushes, cancelled CI runs, duplicate work.
claude-presence exposes 9 MCP tools over stdio:
- Presence: session_register, session_heartbeat, session_list, session_unregister
- Locks: resource_claim, resource_release, resource_list (advisory, on arbitrary named resources)
- Inbox: broadcast, read_inbox
Backed by local SQLite (WAL mode), no network, no daemon. TTL-based cleanup (10 min for dead sessions, configurable per-lock max 24h).
Ships with 6 slash commands and optional SessionStart/UserPromptSubmit hooks so presence info gets injected into every prompt without typing.
Stack: TypeScript, MCP SDK 1.29, better-sqlite3, vitest. 29 tests, CI on Ubuntu + macOS × Node 18/20/22. MIT.
v0.2 milestone is up for team mode (HTTP/SSE transport + Docker self-hosted): https://github.com/garniergeorges/claude-presence/milestone/1
Curious what other MCP server authors think about the design, especially the named-resource-lock approach vs file-level locks (like mcp_agent_mail does).