Skip to main content
Glama

dry_run_endpoint

Read-only

Validate an endpoint document without writing it. Returns either {ok: true, resolved: } or {ok: false, errors: {...}}. Pass endpointId to dry-run a PATCH against an existing endpoint; omit it to dry-run a create. Supply sample and/or answerSample to also run each target's mapping against a real payload and see what it produces, which field came from which node, and every rule that failed with the value that broke it. No DB write, no queue entry, no billing, and the payload is never sent anywhere.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sampleNoOptional: a request payload, shaped as one a caller would actually send, passed as JSON rather than as a string containing JSON. Every target carrying an outgoingMapping is evaluated against it and the verdict is attached to that target as outgoingMappingEvaluation.
lineKeyYesThe line key.
endpointYesEndpoint document (for create dry-run) or PATCH body (when endpointId is supplied).
endpointIdNoOptional: dry-run a PATCH against this endpoint UUID.
answerSampleNoOptional: an answer payload, shaped as one a target would actually return. Drives answerMapping the same way, as answerMappingEvaluation. It cannot be inferred from sample — the two travel in opposite directions.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint=true annotation, the description explicitly discloses 'No DB write, no queue entry, no billing, and the payload is never sent anywhere.' It also clearly states the safety of the operation. The description aligns with and reinforces the annotations without contradiction.

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 a single compact paragraph that front-loads the core purpose, then systematically covers the optional behaviors and ends with safety guarantees. Every sentence adds unique information; no filler or repetition. For a tool with 5 params and heavy nesting, this is exceptionally tight.

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?

The description is complete despite no output schema. It explains the return shape, the two modes, and how the optional samples affect results. The complex endpoint schema is fully documented in the input schema, so the description only needs to cover behavioral glue, which it does thoroughly. Nothing an agent needs to call this 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?

Schema coverage is 100% with each parameter described. The description adds value beyond the schema by explaining the conceptual roles: sample drives outgoingMappingEvaluation, answerSample drives answerMappingEvaluation, and that they cannot be inferred from each other ('the two travel in opposite directions'). It also explains the create-vs-PATCH semantic of endpointId. Only minor gap: no examples of actual values, but the schema covers field detail.

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?

The description states a clear verb ('Validate'), a specific resource ('an endpoint document'), and explicitly contrasts with writing. It immediately distinguishes create vs PATCH via endpointId and shows the dual return shape ({ok:true,...} or {ok:false,...}). This fully disambiguates it from siblings like create_endpoint or update_endpoint.

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 guidance: 'Pass endpointId to dry-run a PATCH against an existing endpoint; omit it to dry-run a create.' Also explains when to supply sample and/or answerSample and what each does. Though no alternative tool is named, the instructions fully cover the decision points for this tool.

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.

TDQS

A3.6/5.0
Disambiguation3/5

Most tools target distinct resources and the descriptions are unusually explicit, but the billing cluster (change_plan/cancel_subscription and the many add-on actions) plus the preview/diff tools overlap and could cause mis-selection. config_diff, dry_run_endpoint, and preview_line_draft all read as 'preview what will change' at first glance despite different scopes.

Naming Consistency4/5

The overwhelming majority follow a clean snake_case verb_noun pattern: create_*, get_*, list_*, set_*, update_*, delete_*. It is only held back by a few naming outliers such as config_diff and default_endpoint_template, which break the verb-first convention.

Tool Count1/5

78 tools is an extreme mismatch for an MCP server surface, even accounting for the broad management/relay domain. Such a large surface will overwhelm model context and make tool selection materially harder; this would be better split into focused servers for configuration, data-plane operations, and billing.

Completeness4/5

The tool surface is very thorough: projects, lines, endpoints, credentials, keys, configs/drafts, DLQ, requests, metrics, audit, team, and billing are all represented. Only minor gaps exist, such as no direct single-line get/update and the intentional inability to widen the outbound allowlist or lift archive protection via API.

Resources