Skip to main content
Glama

Create a channel

create_channel
Idempotent

Create a channel on an agent: a cron or heartbeat channel that wakes it on a schedule, a webhook channel that lets callers outside Valet reach it, or an mcp channel that serves it as an MCP server. The channel starts the agent's work; what the agent does when it fires is the prompt file channels/.md in its source. A webhook is signed by a secret you choose, because this never returns a secret value: set it with set_env_vars on the agent first, then pass its name as secret_name. A webhook without secret_name is refused. Creating a channel that already exists with the same kind and settings reports it and changes nothing; different settings are refused, so destroy it first. Slack and Telegram need a browser, so for them this gives the step to take and creates nothing. Requires connecting a Valet account.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesRequired. The agent's name.
channelYesRequired. The new channel's name: lowercase letters, digits, and hyphens.
org_nameNoThe Valet organization the agent belongs to. Omit to use the organization the account joined first.
scheduleNoFor cron, a schedule such as 'weekdays at 9:00am' or 'every 30 minutes' or a five-field cron expression. For heartbeat, an interval between 30s and 24h such as '15m'. Not used by other kinds.
timezoneNoFor cron, an IANA timezone such as America/New_York. Omit for UTC.
secret_nameNoRequired for webhook. The name of an environment variable on this agent that holds the signing secret, set first with set_env_vars. Not used by other kinds.
channel_kindYesRequired. One of cron, heartbeat, webhook, mcp, slack, or telegram, from list_catalog_channels. Slack and Telegram give the step to take instead of creating anything.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only give the generic safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false); the description goes well beyond by describing the precise idempotent contract ('same kind and settings reports it and changes nothing; different settings are refused'), the no-op behavior for Slack/Telegram, and the fact that it never returns a secret value.

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

Conciseness4/5

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

Front-loaded with purpose and kind enumeration, then prerequisites and edge cases. It is dense with several long sentences but nearly every clause carries actionable information; only minor tightening is possible.

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 multi-kind, no-output-schema creation tool, the description covers the variants, prerequisite ordering (set_env_vars before secret_name), conflict handling, secret handling, and the browser-required fallback. An agent has everything needed to call it correctly or divert to the right sibling.

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 the baseline is 3, but the description adds operational meaning by tying parameters to workflows: secret_name must reference an env var set via set_env_vars first, and channel_kind values govern branching behavior. 'A webhook without secret_name is refused' restates the schema's 'Required for webhook' but reinforces the failure mode.

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?

States a specific verb and resource ('Create a channel on an agent') and enumerates the channel kinds (cron, heartbeat, webhook, mcp, slack, telegram) with what each does. This clearly distinguishes it from siblings like list_channels, destroy_channel, and attach_channel.

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?

Explicitly states when each channel kind applies and the prerequisites ('set it with set_env_vars on the agent first', 'Requires connecting a Valet account'). It also names the alternative path for conflicts: 'destroy it first' before recreating with different settings.

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