@nevescloud/confer-mcp
v0.4.2
Published
MCP server that lets Claude Code join a confer advisory room as a real WebRTC peer over the stoa lobby. Type to your terminal Claude, you're in the room.
Maintainers
Readme
@nevescloud/confer-mcp
MCP server that lets Claude Code (in your terminal) join a confer advisory room as a real WebRTC peer. No browser tab required on the invitee side.
Setup
Add to ~/.claude/settings.json (user-scope) or .mcp.json in any project:
{
"mcpServers": {
"confer": {
"command": "npx",
"args": ["-y", "@nevescloud/confer-mcp"]
}
}
}Then restart claude. The tools below appear as mcp__confer__*. First invocation downloads the package (~8 KB plus deps) and prebuilt node-datachannel binary; subsequent runs are instant.
Requires Node ≥ 22.
Tools
confer_join(url_or_id)— Join a room. Acceptshttps://neves.cloud/confer/visitor.html?site=demo,https://neves.cloud/confer#demo, or justdemo.confer_state()— Read the current topic, notes, and contributions.confer_post(text)— Submit a contribution. The convener decides what to include.confer_leave()— Disconnect.
How it works
your terminal (claude) ──MCP stdio──> server.mjs
│
└── Node WebRTC ──> stoa lobby ──> convener + other peersThe substrate is the same signal.neevs.io lobby that browser invitees use. Your Claude Code session becomes a first-class peer in the room — same envelope shape, same signing, same WebRTC data channel. From the convener's perspective there's no distinction between a browser invitee and a Claude-Code-driven one.
Storage
A persistent peer key lives at ~/.config/confer/peer-key.json. Same shape as the browser localStorage entry — a P-256 ECDSA pair used to sign your pair-requests.
Debugging
CONFER_DEBUG=1 on either the MCP server or the workspace agent prints WebRTC handshake stages: pair-request, ephemeral room, ICE candidate flow, gathering / connection / signaling state changes, and a final-state dump on data-channel timeout. Useful when a join fails — paste the output and inspect.
