Skip to main content
Glama
YC GraphQL MCP

YC GraphQL MCP

by arthurcolle

yc_prepare_application_update

Idempotent

Prepares a safe preview of exact application text-field updates by checking expected values and showing a before/after diff without sending any mutation.

Instructions

Read the application and live edit form, then preview an exact text-field update with a durable receipt and before/after diff. Checks expectedValue when supplied; financial answers are protected by default. No mutation is sent. Requires --allow-mutations.

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": {
      "appUuid": "<appUuid>",
      "updateKind": "<updateKind>",
      "changes": "<changes>",
      "idempotencyKey": "<idempotencyKey>"
    },
    "name": "yc_prepare_application_update"
  }
}

Input Schema

NameRequiredDescriptionDefault
appUuidYes
changesYes
updateKindYes
idempotencyKeyYes
allowFinancialChangesNo

Output Schema

NameRequiredDescriptionDefault
okYes
dataNo
errorNo
untrustedContentYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, so the safety bar is lower, yet the description still adds real behavior: expectedValue is checked when supplied, financial answers are protected by default, nothing is mutated, and a durable receipt plus diff is produced. The 'Requires --allow-mutations' line is confusing because no such parameter exists in the schema (the closest is allowFinancialChanges), and it sits in tension with 'No mutation is sent' even though the receipt write justifies readOnlyHint=false.

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?

Four short sentences, front-loaded with the core action and followed by safety facts, with no filler. The stray CLI flag reference costs a little clarity but the structure is otherwise tight.

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?

An output schema exists, so return-value explanation is not required, and the description covers the preview/no-mutation contract, concurrency check, and financial protection. For a 5-parameter mutation-adjacent tool it still leaves the updateKind modes and idempotencyKey unexplained, and the mismatched --allow-mutations flag leaves the agent unsure which parameter to set.

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 0%, so the description carries the burden, and it explains expectedValue semantics and the financial-protection default behind allowFinancialChanges. It says nothing about the four updateKind enum values, idempotencyKey, or appUuid, so several parameters remain undocumented in both places.

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 and resource: read the application and live edit form, then preview an exact text-field update, with a receipt and before/after diff. The word 'preview' plus the sibling name yc_commit_application_update makes the prepare/commit split inferable, though no sibling is named explicitly.

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 tool is the pre-commit step ('preview', 'no mutation is sent') and gives one precondition ('Requires --allow-mutations'), but never says explicitly when to call this versus yc_commit_application_update or yc_verify_application_update. The stated precondition is also a CLI flag rather than any of the tool's actual parameters, which weakens its routing value.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.