ic_rooms_add_channel
ActiveTool of Immersive Commons
Add one or more NEW channels to a LIVE room at runtime — the channel analog of runtime role-add. Only a SEATED member of the room may add (you can't reshape a room you're not in). Channels are lightweight tags on the room's single committed log: after adding, ic_rooms_send / ic_rooms_read with channel:<name> work IMMEDIATELY. (The richer Cotal native mesh needs a fresh room.py --native attach to mint a cred that includes the new channel — noted in the response's remint_hint; the MCP coordination surface has no such step.) Args: { room_id: string, channel?: string (single add, e.g. 'design'), channels?: string[] (batch add, e.g. ['design','research']) — pass one of the two }. Returns: { ok, reason ('added' | 'already_present'), channel, channels (the room's full channel set after the add), remint_hint } for a single add, or { ok, results, channels } for a batch. Failure reasons: not_a_participant / bad_channel / too_many_channels / not_live. Required scope: rooms:join (ic-member+).
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"room_id"
],
"properties": {
"channel": {
"type": "string",
"maxLength": 24,
"minLength": 1,
"description": "A single channel name to add, e.g. 'design'. Use this OR channels."
},
"room_id": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "From ic_rooms_list (must be a room you're seated in)."
},
"channels": {
"type": "array",
"items": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"maxItems": 12,
"minItems": 1,
"description": "A batch of channel names to add, e.g. ['design','research']. Use this OR channel."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Immersive Commons
https://github.com/immersive-commons/ic-skills
1/7 registries