Skip to main content
Glama

Nopaque TotalPath

Draft Mission Test Config Change

draftMissionTestConfigChange
Read-onlyIdempotent

Check a CHANGE to a saved mission-test config without saving it. Takes the config id and only the fields to change (same as the update body; null clears description, tags, maxDurationSecs, backgroundNoise, advancedParams or language). Returns the full config as it would be after the change, changes (only fields whose value would differ, with before and after), problems (every failed check at once) and version (the config's current updatedAt). Nothing is saved or changed, so it is safe to call repeatedly. Use when: the user wants to edit a test and you want to show what would change before they save it. Returns 404 if the config does not exist in your workspace. Saving is a separate step the user takes in the app.

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": {
      "id": "<id>"
    },
    "name": "draftMissionTestConfigChange"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesMission test config identifier.
nameNo
tagsNoLowercase kebab-case tag list (1-32 chars per tag, max 10 tags). Pass `null` to clear all tags (DDB REMOVE — same sentinel pattern as `description: null`). Pass `[]` to clear (handler normalises empty array to null before persisting). Omit the key to leave existing tags unchanged.
sectorNo
missionNo
voiceIdNoTelnyx voice id for the call, from the operator-enabled catalogue (`GET /testing/voices`). Omit to use the configured default voice.
languageNoThe call language. Pass `null` to clear it (DDB REMOVE — same sentinel pattern as `advancedParams`), which reverts the config to English. Omit the key to leave the current value unchanged.
profileIdNo
acceptanceNo
descriptionNoPass `null` to clear the description attribute (DDB REMOVE). Omit the key to leave the current value unchanged.
phoneNumberNo
advancedParamsNoPer-call turn-detection overrides. Pass `null` to clear it (DDB REMOVE — same sentinel pattern as `description: null`), which reverts the config to mission-tester's env-var defaults. Omit the key to leave the current value unchanged. This is OpenAPI 3.1.0, so the nullable branch is expressed with `anyOf` + `type: 'null'` rather than the 3.0 `nullable` keyword (AJV ignores `nullable` under 3.1 — memory `feedback_ajv_openapi_nullable`).
carrierRouteIdNoBring-your-own-carrier (invite-only): the carrier route this config's runs dial through. Pass `null` to clear it, so runs dial over nopaque's network again. Omit the key to leave the current value unchanged. Changing `phoneNumber` alone re-checks the new number against the route already saved.
backgroundNoiseNoCaller background noise played under the call. Pass `null` to remove it (no noise), or omit the key to leave the current value unchanged.
maxDurationSecsNoPer-call duration cap in seconds. Pass `null` to clear it (DDB REMOVE — same sentinel pattern as `description: null`), which reverts the config to the server default for its mission kind. Omit the key to leave the current value unchanged. The null branch is declared with `anyOf` + `type: 'null'` for the same reason `advancedParams` below is — see the note there.

Output Schema

NameRequiredDescriptionDefault
configYesThe full stored config as it would be after the change. Its `updatedAt` is the current one; a real save would set a new one.
changesYesOnly the fields whose value would differ from the stored one.
versionYesThe stored config's current `updatedAt`. Pass it as `expectedUpdatedAt` when saving the change, so a save is refused if the config changed in between.
problemsYesEvery check that failed. Empty when the change could be saved as sent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds real substance: nothing is persisted, repeat calls are safe, the response returns the post-change config plus a `changes` diff with before/after, `problems` aggregates every failed check, and `version` maps to the config's current updatedAt. The 404-on-missing-config behavior is also disclosed.

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?

Front-loaded with the dry-run purpose, then response shape, then usage guidance and the 404 caveat — a sensible order with no filler sentences. It is dense and packed into one long paragraph, which slightly hurts scannability but wastes no words.

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

Completeness4/5

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

For a 15-parameter mutation-preview tool it covers the essentials: partial-update semantics, null-as-clear, return payload, error case, and the no-persistence guarantee. Some field-level meaning (name, sector, mission, acceptance) is left to the schema, but an output schema exists so return values need not be spelled out further.

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 coverage is 60%, and the description compensates with the crucial partial-update contract ('only the fields to change, same as the update body') and enumerates which fields treat `null` as a clear (description, tags, maxDurationSecs, backgroundNoise, advancedParams, language). It does not add meaning for name, sector, mission, profileId, acceptance or phoneNumber beyond the schema, which keeps it below a 5.

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 and resource: 'Check a CHANGE to a saved mission-test config without saving it.' The dry-run framing immediately separates it from draftMissionTestConfig (create), getMissionTestConfig (read) and the update path, without needing to open a schema.

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?

Gives an explicit trigger ('the user wants to edit a test and you want to show what would change before they save it'), states the boundary that saving is a separate in-app step, and notes the 404 case for configs outside the workspace. An agent knows both when to call it and what it must not assume it does.

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.