Skip to main content
Glama

Change an app

update_app
Destructive

Change a saved app: its name, scenarios, limits, notes, test logins, store password, allowed origins. Only the fields you pass change; "" clears a field (for store_password: removes the stored one). test_email/test_password set or replace the default test user; test_accounts adds or updates named ones by label; remove_test_accounts deletes test accounts by label, "default" included. Passwords are write-only: stored encrypted, never returned (list_apps says has_password). When a verdict says a sign-in or the store password failed, set it here.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "app_id": "<app_id>"
    },
    "name": "update_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoWhat the team calls the app, shown instead of its address (at most 60 characters); "" clears it
teamNoAct in another of your teams, by its name or id (whoami lists them). Omitted: the key's own team
notesNoReplaces the notes; "" clears them
app_idYesApp id from list_apps or create_app
limitsNoThe rules of what a check may never do, one per line (list_apps has them as `rules`). A new line adds a rule. Every rule already in place must be in the text — only a person removes a rule, on the app's Rules tab; a text that leaves one out changes nothing
resumeNotrue resumes a paused app
worriesNoWhat worries the person most about this app, in their words, shown first on the Rules tab; every check answers it in the verdict's first line. "" clears it
scenariosNoAdds scenarios, one per line (or one per sentence), each watched from the next check; one the app already has is kept as it is. Only a person stops watching one, on the app's Journeys tab. "" clears the app's older free-text scenarios
merge_gateNoWhat fails the commit's CheckMyApp check on GitHub: critical (default — a Broken verdict or a critical journey that did not hold), new_p0_p1 (a P0/P1 finding new on this build), none (never — it only informs)
test_emailNoThe default test user's sign-in email
webhook_urlNoAn https address that receives each check of a watched app as JSON, signed once a person sets the secret on the app's Rules tab; "" removes it
test_recordsNo"never" stops checks creating test records on the live app. Only a person allows them, on the app's Rules tab
pause_becauseNoPauses every check that runs by itself, deploys included. Pass what the person said, word for word; it is shown beside the pause. Pause only when they asked. A check you start still runs
session_loginNoWebsite apps only. A session login: one more login of the app, under this label ("" = "session") — the person whose sign-in the app uses signs in once, as the app's test user (Google, a magic link, anything), in their own browser on the app's sign-in page in CheckMyApp. A scenario uses it when it names it (add_scenario login); a check uses it for everything only when the app has no other login. A label renames it; null removes it
test_accountsNoAdds each named test user, or updates the one already stored under that label. Others are kept
test_passwordNoThe default test user's password; sets or replaces the stored one. Write-only: stored encrypted, never returned (list_apps says has_password)
way_in_neededNoUndoes way_in_not_needed: the next check asks for this way in again
store_passwordNoNew store password of a password-protected store. Stored encrypted and never returned; "" removes it
allowed_originsNoReplaces the app's allowed origins; [] clears them
test_totp_secretNoFor a login whose app asks for a code from an authenticator app: the secret shown under the QR code when 2FA was set up, or the otpauth:// address in it. The check types {{TEST_TOTP}} codes from it. Write-only (list_apps says has_authenticator); "" removes it
slack_webhook_urlNoThe Slack incoming webhook this app's breaks and fixes post to, https://hooks.slack.com/…; "" removes it
way_in_not_neededNoA provider from list_apps offered_ways_in, when the person said its test users never sign in that way. Checks stop asking for it
remove_test_accountsNoLabels of test accounts to delete, "default" included (its email and password)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations, the description discloses many behavioral details: only supplied fields change, empty strings clear values, store_password removal semantics, test-account add/update/delete behavior by label, write-only encrypted passwords, limits rules that cannot be removed via text, and pause behavior. This is rich context that materially helps an agent understand the destructive and open-world effects.

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?

The definition is front-loaded with the core purpose and keeps the important behavioral rules compactly stated. It is dense and somewhat paragraph-heavy for 23 parameters, but every clause carries operational meaning and there is little wasted text.

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?

Given a complex 23-parameter mutation tool with no output schema and rich schema-level descriptions, the description covers the highest-risk global semantics: partial updates, clearing fields, write-only secrets, deletion behavior, and human-only limit removal. The remaining per-field details are fully documented in the schema, so the definition is complete enough for correct invocation.

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 baseline is 3. The description still adds cross-parameter semantics not captured by individual schema fields, especially the global partial-update rule, the meaning of empty strings, and the grouping of test-login and password behaviors. It does not need to re-explain every schema parameter, but it usefully frames how they interact.

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?

The description opens with a specific verb and resource, "Change a saved app," and enumerates the configurable areas (name, scenarios, limits, notes, test logins, store password, allowed origins). It is clear what the tool does, but it does not explicitly distinguish scenario changes from sibling tools add_scenario and update_scenario, so it falls short of full sibling differentiation.

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?

It gives a concrete usage trigger: "When a verdict says a sign-in or the store password failed, set it here." It also establishes the important partial-update model ("Only the fields you pass change"). It does not state when not to use this tool or compare it against scenario-specific siblings, so it is clear but not exhaustive.

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.