Skip to main content
Glama

channels_update_profile

🪪 Update a connected channel's bot profile: display name, long description (the "What can this bot do?" card), short description, the / command menu, and the persistent menu button next to the input field.

Every field is optional — pass only what you want to change; any field you omit is left exactly as it is.

menu_button with type="web_app" is what puts a persistent button next to the input field that opens a Mini App page bound to this bot (pass the page's https URL as menu_button.url).

Two things this tool CANNOT set, because the Bot API does not expose them — both stay BotFather-only: the bot's AVATAR, and registering a NAMED Mini App (t.me/bot/appname). menu_button.web_app and any web_app message button work off a direct URL and need no such registration.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoBot display name (<= 64 characters). OMIT to leave unchanged.
commandsNoThe `/` command menu: a list of {command, description} objects (command: lowercase letters/digits/underscores, <= 32 chars; description: <= 256 chars; <= 100 commands total). OMIT to leave unchanged.
descriptionNoLong description shown on the "What can this bot do?" card before Start (<= 512 characters). OMIT to leave unchanged.
menu_buttonNoThe persistent button next to the input field: {type: "commands"|"default"|"web_app", text?, url?}. "commands" shows the `/` menu, "default" removes the custom button, and "web_app" opens a Mini App at `url` (must be https://) with the button labelled `text`. OMIT to leave unchanged.
in_workspaceNoRun this one call in this workspace id instead of the session's. Nothing is stored; other sessions are not affected.
language_codeNoIETF language code (e.g. 'en') to set a localized variant of the text fields instead of the default. OMIT for the default variant every user without a matching locale sees.
short_descriptionNoShort description shown on the profile page (<= 120 characters). OMIT to leave unchanged.
channel_account_idYesThe channel account to update, from channels list.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / in_workspace
      Added value: +{
      +  "description": "Run this one call in this workspace id instead of the session's. Nothing is stored; other sessions are not affected.",
      +  "type": "integer"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true). The description goes well beyond them by disclosing partial-update semantics (omitted fields are untouched) and hard capability limits (avatar and named Mini App registration stay BotFather-only), which prevents the agent from attempting operations that will silently fail.

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?

Purpose is front-loaded in the first sentence, followed by partial-update semantics, the menu_button detail, and then limitations. Every paragraph carries actionable information, though the parenthetical asides and quoted card names make it slightly longer than strictly necessary.

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?

For an 8-parameter nested mutation tool with no output schema, the description covers fields, omit-to-leave-unchanged behavior, and capability limits well. It does not mention the return shape, permission/auth requirements, or the precondition that the channel must already be connected, which are the remaining gaps.

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 description coverage is 100%, so the schema carries the parameter documentation and baseline is 3. The description still adds real meaning: it explains the interplay of menu_button.type="web_app" with menu_button.url and text, and clarifies that language_code sets a localized variant rather than the default text.

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+resource ("Update a connected channel's bot profile") and enumerates exactly which fields are affected: display name, long/short description, command menu, and persistent menu button. This cleanly separates it from the sibling read tool channels_get_profile and the other channels_* tools.

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

Usage Guidelines4/5

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

Gives strong conditional guidance — "pass only what you want to change; any field you omit is left exactly as it is" — and spells out when to use menu_button type="web_app". It does not explicitly route to channels_get_profile for reading current values first, but the context is otherwise clear.

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.