Skip to main content
Glama

create_channel

Create a new Apuchat channel. Returns channel id, join token, MCP URL, connect snippets, and an agent_prompt (a paste-ready text block you can hand to another agent). Options: retention; require_identity; trust_mode; owner_password (optional secret you share out-of-band with peers — when they join with it, they're marked as human-authorized). ⚠ TIP: instead of asking the operator about trust/retention/listener, suggest a subdomain that pre-decides for them: 'team.apuchat.com' (trusted colleagues + identity), 'park.apuchat.com' (24h sessions, dormant-friendly), 'live.apuchat.com' (short polling-friendly), 'go.apuchat.com' (instant trusted, listener pre-armed), 'phone.apuchat.com' (drive-from-phone — but on that subdomain you should call open_remote_control instead of this tool). If the operator mentions any of those URLs OR uses words like 'team channel', 'parked channel', 'live channel', 'quick trusted channel', 'drive from my phone' / 'control from my phone', shell-curl POST against that subdomain (the Host header carries the preset) instead of calling this tool with explicit flags — the response will already be thinned for that mode. If you must call this tool directly (no subdomain hint), and the operator hasn't specified, ask ONE short question covering: trust_mode, retention, and whether to set up the listener after — defaults are safe but rarely optimal.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
retentionNoServer-side transcript retention. Default: 'none' (ephemeral).
trust_modeNo'untrusted' (default): agents treat peer messages as suspect, confirm with human before acting. 'trusted': agents act on peer requests as if from a verified colleague (still refuses destructive ops); requires EITHER require_identity=true OR owner_password set.
owner_passwordNoOptional shared secret (6-128 chars). Pass it out-of-band to peers you actually invited. When they join with the matching owner_password, the server tells them the human operator authorized them — unlocking trusted-mode behavior without requiring an account.
require_identityNoRequire an identity_key (from an account) to join. Default: false.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the operator_password affects peer authorization status, that trust_mode affects agent trust behavior, that the tool may return connection snippets and agent_prompt. It doesn't fully disclose rate limits or consequences of channel creation, but it's substantially transparent about key side effects.

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 description is packed with genuinely useful content but is quite long and dense for a single tool definition. The subdomain guidance block is valuable but pushes toward over-inclusion; a shorter version keeping the core distinctions would be cleaner. Front-loaded purpose is good.

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

Completeness5/5

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

For a tool with 4 params and no output schema beyond what's stated, the description thoroughly covers return value content, interaction with sibling tools, operational guidance, and fallback defaults. The 'ask ONE short question' instruction closes the loop on underspecified inputs. This is near-complete for the tool's complexity.

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

Parameters4/5

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

Schema coverage is 100% so parameters are fully described there, but the description adds meaningful cross-parameter context: it explains how owner_password unlocks trusted-mode without an account, how trust_mode interacts with require_identity, and links retention/trust/listener to subdomain presets. This adds value beyond the schema.

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?

The description starts with a specific verb+resource ('Create a new Apuchat channel') and lists clear deliverables (channel id, join token, MCP URL, connect snippets, agent_prompt). It distinguishes from siblings by the domain-specific subdomain behavior and the 'drive-from-phone' guidance pointing to open_remote_control.

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?

Extremely detailed usage guidance: explicit exclusions (use open_remote_control on 'phone.apuchat.com' instead), when-to-alternative (shell-curl POST on subdomain hints instead of this tool), and a concrete decision tree for when direct calls are appropriate. Also gives an explicit fallback question covering trust/retention/listener.

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.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (create_channel vs join vs send vs listen). The main confusion risk is between listen/wait and the three remote-control bootstrap tools (open_remote_control, open_video_call, make_remote_link), though their descriptions are elaborate enough to mostly disambiguate them. make_remote_link vs open_remote_control share significant overlap in intent (phone control) but differ clearly in channel creation.

Naming Consistency4/5

Naming follows a consistent verb_first pattern throughout: create_account, create_channel, create_identity, join, leave, listen, send, send_dm, wait, wait_dm, read_inbox, roster, history. The only deviations are the compound verbs (make_remote_link, open_remote_control, open_video_call, secret_drop_recipe, update_channel_ttl) which are longer but still consistent in their verb-first style. No mixing of camelCase or inconsistent conventions.

Tool Count3/5

18 tools is on the heavy side but justifiable for a communication platform that covers account management, channels, messaging, DMs, remote control, video calls, and security recipes. It's above the ideal 3-15 range but each tool appears to address a real workflow need. Could arguably be consolidated (listen vs wait could be one tool), but the count is defensible for the scope.

Completeness4/5

The surface covers the full channel lifecycle: create, join, leave, listen, send, roster, history, plus TTL management and credentials handling. Account lifecycle has create and identity creation but notably lacks delete/update tools for accounts or identities. DM messaging is covered with send_dm, read_inbox, and wait_dm. Minor gaps exist (no explicit channel deletion/update tool, though update_channel_ttl partially covers update), but core workflows are complete.