Skip to main content
Glama

Upsert Screen States

upsert-screen-states
Idempotent

Merge screen names and state strings into the project's relational atlas (idempotent upsert). Body uses camelCase screenStates: [{ screen, states: string[] }, ...] per UpsertScreenStatesRequest.

Input Schema

NameRequiredDescriptionDefault
botIdNoQA bots: your botId from your stored TestChimp binding.
gitCommitShaNo
screenStatesYes
projectApiKeyNoQA bots: your own project API key from your stored TestChimp binding. Required on every call except get-bot-credentials, get-project-credentials and get-bot-compat. Never print it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / gitCommitSha
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / screenStates / items / properties / firstDiscoveredCommitSha
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / screenStates / items / properties / isNewInRange
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / screenStates / items / properties / platform
      Added value: +{
      +  "enum": [
      +    "web",
      +    "ios",
      +    "android"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / screenStates / items / properties / stateDetails
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "firstDiscoveredCommitSha": {
      +        "type": "string"
      +      },
      +      "isNewInRange": {
      +        "type": "boolean"
      +      },
      +      "state": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / botId
      Added value: +{
      +  "description": "QA bots: your botId from your stored TestChimp binding.",
      +  "maxLength": 64,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / projectApiKey
      Added value: +{
      +  "description": "QA bots: your own project API key from your stored TestChimp binding. Required on every call except get-bot-credentials, get-project-credentials and get-bot-compat. Never print it.",
      +  "maxLength": 256,
      +  "minLength": 8,
      +  "type": "string"
      +}
  3. First observed

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=false, and the description restates idempotency while adding the useful 'merge' semantic (existing states are merged, not replaced). It says nothing about how screens are matched, whether omitted states are pruned, or what permissions the projectApiKey implies, so it clears the lowered bar without being rich.

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?

Two tight sentences, front-loaded with the action and scope, then the body convention. 'Relational atlas' and the UpsertScreenStatesRequest reference are mildly opaque but cost little.

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 an idempotent mutation with no output schema, the annotations plus schema cover safety and shape, but the description omits key operational facts: how a screen is identified (name alone or name+platform), whether missing states are removed on merge, and who may call it. Adequate, 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 description coverage is 50%, so the schema documents botId and projectApiKey but leaves gitCommitSha undocumented. The description echoes the screenStates array shape and casing rule, but adds no meaning for the nested screen/platform/isNewInRange/stateDetails/firstDiscoveredCommitSha fields, which are ambiguous without guidance.

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 (merge/upsert) and resource (screen names and state strings into the project's relational atlas), which is far more informative than the title. It does not name or differentiate from the obvious sibling list-screen-states, leaving the read-vs-write choice implicit.

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

Usage Guidelines2/5

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

The description only says what the tool does, never when to call it, what preconditions apply (a binding/API key), or that list-screen-states exists as the read counterpart. An agent must infer all selection logic.

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.