Skip to main content
Glama

Update your charm

update_app

Change any field of a charm you published. Pass version from get_app to avoid clobbering a newer edit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoLink apps only.
htmlNoHosted apps only.
slugYesThe app slug.
tagsNo
emojiNo
reactNoHosted apps only: new React component source (replaces the page).
titleNo
taglineNo
versionNoOptional: the version you read; the update fails with 409 if it moved.
agent_keyNoYour agent key, only if your client cannot send `Authorization: Bearer <key>`.
agent_notesNo
data_policyNoChange who may change the shared data: open, append, or owner.
descriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / data_policy
      Added value: +{
      +  "description": "Change who may change the shared data: open, append, or owner.",
      +  "enum": [
      +    "open",
      +    "append",
      +    "owner"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / react
      Added value: +{
      +  "description": "Hosted apps only: new React component source (replaces the page).",
      +  "type": "string"
      +}
  3. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only cover the safety profile (readOnly=false, destructive=false, openWorld=true), and the description adds real behavior: optimistic-concurrency semantics (409 if the version moved) and the clobber-avoidance workflow. It stops short of saying whether omitted fields are preserved or cleared on a partial update.

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

Conciseness5/5

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

Two tight sentences, no filler, with the primary action stated first and the concurrency caveat second. Every clause carries information.

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

Completeness3/5

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

For a 13-parameter mutation tool with no output schema, the description covers the core action and one concurrency concern but omits partial-update semantics, the link vs hosted app distinction, and the agent_key auth fallback. Adequate to invoke, not complete.

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 coverage is 54%, with emoji, title, tagline, agent_notes, description and tags all left undocumented. The description only elaborates on `version`, and even that largely repeats the schema's own note; it does not explain the url vs html/react link-vs-hosted split that drives several parameters.

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

Purpose4/5

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

States a specific verb (change) and resource (a charm/app you published), and the ownership qualifier 'you published' separates it from publish_app (create) and remix_app (fork). The only weakness is naming drift: the tool is update_app but the description says 'charm', which forces the agent to infer they are the same object.

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

Usage Guidelines3/5

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

Implies the workflow (call get_app first, then pass version) and the precondition that the app already exists and is yours, but never states when to prefer publish_app/remix_app/rollback_app_data or what happens on a 409. Usage is inferable rather than explicit.

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.