Skip to main content
Glama

Create live collaboration and synchronization room

chat_create

LIVE COLLABORATION ROOM CREATOR. Creates a 24-hour ephemeral room (https://host/chat/) AND an easy-access 4-word link ('fourwords_url': https://host/word-word-word-word-123456789, 'combo') with real-time WebSocket/SSE messaging, presence tracking, IP moderation, LLM authentication keys, and a versioned collaborative Markdown scratchpad. Optionally accepts 'initial_markdown' (to populate the shared Markdown document immediately upon creation), 'initial_message' (to post an opening message in the chat), and 'llm_name' (to author the initial Markdown/message as an 🤖 LLM). Returns 'url' (default room URL), 'fourwords_url' (4-word room shortcut URL), 'combo', 'room_id', 'stream_url' (SSE), 'admin_key' (fwadm_...), 'llm_key' (fwllm_...), 'llm_url', 'usage', and optional 'markdown' / 'initial_message_seq'. USE WHEN: the user asks to create a chat room (with or without initial Markdown content), or the task needs live coordination with humans or other LLM agents. After creating, use chat_wait_events (with watch_doc=true) to track Markdown edits and user messages in real time. SECURITY & KEYS: 'admin_key' is a SECRET for the human room owner only (for moderation/banning); NEVER share 'admin_key' with other agents or post it in the room. 'llm_key' (or 'llm_url') is shared ONLY with LLM participants so they can authenticate as 🤖 LLMs.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "chat_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
llm_nameNoOptional: short LLM agent name (e.g., 'claude', 'gemini', 'gpt') used to author initial_markdown or initial_message with the room's new llm_key.
notify_keyNoOptional NotificationKeyHub MD5 hash to push real-time alerts to all subscribed user devices when this action completes
initial_messageNoOptional: initial chat message (1 to 4,000 chars) to post into the room immediately upon creation.
initial_markdownNoOptional: initial Markdown content (up to 50,000 chars) to save into the room's shared collaborative document immediately upon creation.

Output Schema

NameRequiredDescriptionDefault
okNo
urlYes
comboYes
usageNo
llm_keyNo
llm_urlNo
room_idYes
markdownNo
admin_keyNo
stream_urlNo
fourwords_urlYes
initial_message_seqNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / notify_key
      Added value: +{
      +  "description": "Optional NotificationKeyHub MD5 hash to push real-time alerts to all subscribed user devices when this action completes",
      +  "pattern": "^[a-f0-9]{32}$",
      +  "type": "string"
      +}
  2. Changed5 schema fields changed
    • addedInput schema / properties / initial_markdown
      Added value: +{
      +  "description": "Optional: initial Markdown content (up to 50,000 chars) to save into the room's shared collaborative document immediately upon creation.",
      +  "type": "string"
      +}
    • addedInput schema / properties / initial_message
      Added value: +{
      +  "description": "Optional: initial chat message (1 to 4,000 chars) to post into the room immediately upon creation.",
      +  "type": "string"
      +}
    • addedInput schema / properties / llm_name
      Added value: +{
      +  "description": "Optional: short LLM agent name (e.g., 'claude', 'gemini', 'gpt') used to author initial_markdown or initial_message with the room's new llm_key.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / initial_message_seq
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / markdown
      Added value: +{
      +  "type": "object"
      +}
  3. Changed3 schema fields changed
    • addedOutput schema / properties / combo
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fourwords_url
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "url",
      -  "room_id"
      -]New value: +[
      +  "url",
      +  "fourwords_url",
      +  "combo",
      +  "room_id"
      +]
  4. Changed6 schema fields changed
    • addedOutput schema / properties / admin_key
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / llm_key
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / llm_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / ok
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / stream_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / usage
      Added value: +{
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false; the description adds substantial context beyond that: rooms are 24-hour ephemeral, the admin_key is a secret for the human owner that must never be shared with agents, and llm_key is for LLM participants only. It stops short of describing rate limits or what happens at expiry, but the security and lifecycle disclosure is genuinely valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The security and 'USE WHEN' guidance is well front-loaded, but the long parenthetical enumeration of every return field ('url', 'fourwords_url', 'combo', 'room_id', 'stream_url', ...) duplicates the output schema and inflates the text. The all-caps header 'LIVE COLLABORATION ROOM CREATOR' is redundant with the tool name and burns the most prominent position.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete enough to call correctly: creation conditions, optional initial content, post-creation follow-up, and key-handling rules are all covered, and an output schema exists so return-value explanation is unnecessary. The only gap is that notify_key's side effect (pushing alerts to subscribed devices) is left solely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented; the description's mentions of initial_markdown, initial_message, and llm_name largely restate the schema text. It does clarify that llm_name causes the initial content to be authored as an LLM, a small interaction detail the schema only implies, but notify_key is never mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource (creating a 24-hour ephemeral chat room) and states the distinguishing traits: two URL forms, WebSocket/SSE messaging, presence, and a collaborative Markdown doc. An agent can tell this apart from siblings like chat_join or chat_send without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit 'USE WHEN' block covering both the direct user request case and the coordination-with-humans-or-agents case. It also routes the agent forward, naming chat_wait_events with watch_doc=true for follow-up tracking, which is exactly the missing-link guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources