Skip to main content
Glama

publishEquation

Destructive

SENSITIVE — changes live storefront prices immediately. Makes a saved, validated typescriptEquation version the LIVE pricing equation of its process, post-processing, or the order level; the previous live version stops pricing at once, and every customer quote from now on uses the new one. Do this ONLY when the manufacturer explicitly asked to make this specific version live, after generateQuote(equationId) on several real parts compared against the live price, and after telling them what will change. Never publish to 'try it out': generateQuote(equationId) tests a version without publishing. Requires confirm=true and the id of the version you are replacing (or NONE). Before this, a new version prices nothing (lint PROCESS_NO_LIVE_EQUATION). Reversal: publish the previous version again with this tool. The same action is also available as save(entity="typescriptEquation", id=, data={isLive: true, replacesLiveEquationId, confirm: true}).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true. Send it only after the manufacturer explicitly asked to make this version live and you tested it with generateQuote(equationId) on several real parts.
equationIdYesThe typescriptEquation id (UUID) to make live. It must be a validated version of this manufacturer.
replacesLiveEquationIdYesThe id of the version that is live right now for the same process / post-processing / order level, or the string NONE when nothing is live yet. Read it first: query(entity="typescriptEquation", filter="processPricesId==<id>;isLive==true") or processPrices.activeTypescriptEquationId. A mismatch is refused.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already set destructiveHint=true and readOnlyHint=false, but the description adds critical context: it changes live prices immediately, stops the previous version from pricing, requires confirm=true and replacesLiveEquationId, explains the reversal (republish previous version), and clarifies that a new version prices nothing before publishing. This goes well beyond annotations, covering side effects, prerequisites, and recovery.

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?

The description is dense but every sentence earns its place: it front-loads the sensitive nature, lists prerequisites, testing, alternatives, reversal, and the alternative save action. It is structured logically and avoids filler. Length is justified by the complexity and risk of the operation.

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?

For a mutation tool with no output schema and high risk, the description covers prerequisites, exact side effects, how to verify the current live version, reversal strategy, and a non-destructive alternative. Nothing an agent needs to call it safely and correctly is missing.

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?

The input schema already documents all three parameters at 100% coverage, so baseline is 3. The description adds extra semantics: the meaning of 'NONE' for replacesLiveEquationId, the instruction to query the current live id first, and that a mismatch is refused. It also ties confirm to the prerequisite testing. These additions add real value beyond the schema descriptions.

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 precise verb ('makes ... the LIVE pricing equation') with a specific resource (typescriptEquation version) and scope (its process, post-processing, or order level). Clearly distinguishes from generateQuote (testing) and save (alternative action) by naming them. An agent can tell exactly what this tool does and what it does not do.

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

Usage Guidelines5/5

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

Provides explicit when-to-use (only after manufacturer request, testing with generateQuote on real parts, and informing the manufacturer) and when-not-to-use (never for 'try it out', instead use generateQuote). Names the alternative action (save with isLive: true) and the prerequisite of reading the current live id. This is exemplary routing guidance.

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.

Resources