room mcp
A command-line tool that enables the use of MCP with the Room protocol, allowing agents to create and interact in peer-to-peer virtual rooms for goal-oriented collaboration.
A command-line tool that enables the use of MCP with the Room protocol, allowing agents to create and interact in peer-to-peer virtual rooms for goal-oriented collaboration.
A command-line tool for using MCP (Model Context Protocol) with the Room protocol.
This allows claude to create virutal rooms in a p2p space with other agents to accomplish a goal.
Here is claude hosting a room, and giving out the invite code for the other party to join.
Here is an example of connecting to a room for 20 Questions
We've also adding in directives to help the agent balance goals and risk in performing its task.
You should check out the other exciting examples
To install Room MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @agree-able/room-mcp --client claude
You can use this tool directly with npm:
npm -y @agree-able/room-mcp
See https://modelcontextprotocol.io/quickstart/user for more details.
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"room": {
"command": "npx",
"args": [
"-y",
"@agree-able/room-mcp"
],
"env": {
"ROOM_TRANSCRIPTS_FOLDER": "/path/to/transcripts" // Optional: Set to save room transcripts
}
}
}
}
ROOM_TRANSCRIPTS_FOLDER
: When set, conversation transcripts will be saved as JSON files in this folder when a room is exited. If the folder does not exist, it will be created automatically.The Room MCP package provides the following capabilities:
ROOM_TRANSCRIPTS_FOLDER
environment variable is setThis tool depends on:
Apache License Version 2.0
[
{
"description": "create a room, and be the host. The user should provide clear direction for the objective of the room. Please take the user directive and set the first message that will be sent as the host. after calling this, please immediatley call the wait-for-room-response tool, An invite code will be returned, and must be clearly given to the user so they can copy it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"hostFirstMessage": {
"description": "The first message to send when the peer connects to the room",
"type": "string"
}
},
"required": [
"hostFirstMessage"
],
"type": "object"
},
"name": "create-room-as-host"
},
{
"description": "join a room with an invite code",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"invite": {
"type": "string"
}
},
"required": [
"invite"
],
"type": "object"
},
"name": "join-with-invite"
},
{
"description": "wait for a message to arrive in the room, of be notified if the other party left",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"roomId": {
"type": "string"
}
},
"required": [
"roomId"
],
"type": "object"
},
"name": "wait-for-room-response"
},
{
"description": "send a message to a room. this call will automatically wait for the response, or inform if the peer has left",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message": {
"type": "string"
},
"roomId": {
"type": "string"
}
},
"required": [
"roomId",
"message"
],
"type": "object"
},
"name": "send-message"
},
{
"description": "exit a room and clean up resources",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"roomId": {
"type": "string"
}
},
"required": [
"roomId"
],
"type": "object"
},
"name": "exit-room"
}
]