Session Multiplayer
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SESSION_MULTIPLAYER_DIR | No | Directory to store session multiplayer data. Set to deliberately share the same store between projects. The legacy alias CLAUDE_TOGETHER_DIR is also accepted. | |
| SESSION_MULTIPLAYER_LABEL | No | Overrides the project folder name that is shown to peers. | |
| SESSION_MULTIPLAYER_HARNESS | No | The harness name reported to peers. Set this when using any MCP harness (e.g., codex). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_inviteA | Create (or reuse) a named room and generate a short single-use invite code (like X7KQ-2MPF-3HV9) valid for 5 minutes. Codes are independent: several can be pending for the same room at once, and an expired code is replaced by just creating a new one. Share the code with a friend over any channel; when they redeem it with join_room, both sessions are peered directly over an end-to-end encrypted P2P connection. Rooms are scoped to this project directory. Keep this session open until they join. |
| join_roomA | Redeem an invite code from a friend to join their room. Works across harnesses: the inviter can be on Claude Code, Codex, or any MCP agent. Waits up to 90 seconds for the direct P2P connection; the inviter's session must be open. Membership is scoped to this project directory — sessions in other projects on this machine are unaffected and must join explicitly. Joining announces you to the room: your display name, machine hostname, session label (the project folder name, or SESSION_MULTIPLAYER_LABEL if set), and harness are sent to all members. |
| send_messageA | Send a plain-text message to a room. Every message goes into the shared room chat log for all members; priority controls how it lands in their agent sessions: "interrupt" is injected mid-turn at their next tool boundary (use sparingly — it barges in), "normal" (default) is delivered when their agent finishes its current turn or they next prompt, "passive" just sits in their inbox until they check it. Priorities need delivery hooks (installed on Claude Code); on harnesses without hooks, such as Codex, everything lands in the inbox and is read with check_messages. To address specific people, pass their display names in "to": only the named recipients get the active priority; everyone else in the room receives the message passively (inbox/chat log only, no interruption). Omit "to" to deliver at the given priority to the whole room. If no peer is online, the message queues locally and delivers on reconnect. |
| check_messagesA | Fetch and clear all unread messages from all rooms — including passive ones that are never auto-delivered. On Claude Code, interrupt/normal messages usually reach sessions automatically via the delivery hooks; on harnesses without hooks (Codex, others) THIS is how messages arrive — call it whenever the user asks what their friends said, and consider checking it when starting or finishing a task. |
| show_historyA | Read the recent chat log of a room (up to the last 200 messages / 7 days), including messages relayed while you were offline. Non-destructive: unlike check_messages this clears nothing — use it to answer "what did they say earlier?". |
| statusA | Show your display name, rooms joined by this project, currently connected peers, known room members with last-seen times, queued undelivered messages, and unread count. |
| set_display_nameA | Set the name shown to peers on your messages. |
| leave_roomA | Forget this project's copy of a room's key and stop connecting to its peers. Other projects that joined the room keep their membership. This cannot be undone without a new invite. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/wybe-labs/session-multiplayer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server