Skip to main content
Glama

advance_test_outbound_mail

Advance a test_mode outbound mail record one lifecycle step and queue the matching webhook. submitted becomes ready with simulated pages/envelope photos; ready becomes mailed with carrier, dispatch method, receipt photo, and tracking when the selected service includes tracking; mailed becomes delivered.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mail_idYesUUID of the test_mode outbound mail record to advance.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYesAdvanced sandbox outbound mail job and webhook status.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / result / properties / outbound_mail / properties / cost_breakdown / description
      Previous value: -"Authoritative cost components. For color jobs, color_printing_per_page_cents is the total color-page printing price (70 cents by published default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by published default)."New value: +"Authoritative cost components. For color jobs, color_printing_per_page_cents is the total color-page printing price (70 cents by published default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by published default). For a below-formula First-Class quote, first_class_baseline_adjustment_cents is the amount added to reach the published $2.00 one-page baseline and is separate from postage_cents."
  2. Changed1 schema field changed
    • addedOutput schema / properties / result / properties / outbound_mail / properties / cost_breakdown
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Authoritative cost components. For color jobs, color_printing_per_page_cents is the total color-page printing price (70 cents by published default), while color_surcharge_per_page_cents is the additive upgrade only (30 cents by published default).",
      +  "type": "object"
      +}
  3. Changed7 schema fields changed
    • addedOutput schema / properties / result / properties / outbound_mail / properties / human_review
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Human-readable review payload for CLI/chat confirmation: send-to address, return address, mail class, document preview URL, cost, safeguards, and next step.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_city
      Added value: +{
      +  "description": "Recipient city.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_country
      Added value: +{
      +  "description": "Recipient country code.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_line1
      Added value: +{
      +  "description": "Recipient street address line 1.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_line2
      Added value: +{
      +  "description": "Recipient street address line 2.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_state
      Added value: +{
      +  "description": "Recipient state.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_zip
      Added value: +{
      +  "description": "Recipient ZIP code.",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / result / properties / outbound_mail / properties / document_preview_url
      Added value: +{
      +  "description": "Authenticated dashboard URL a human can click to visually verify the submitted source document.",
      +  "format": "uri",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  5. Changed6 schema fields changed
    • addedOutput schema / properties / result / properties / outbound_mail / properties / carrier_delivery_failed
      Added value: +{
      +  "description": "True only when status=failed because a mailed/tracked carrier item later failed delivery.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / delivered_at
      Added value: +{
      +  "description": "Timestamp when delivery was confirmed, if available.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / error_message
      Added value: +{
      +  "description": "Failure reason when status is failed and a reason is available.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / failure_source
      Added value: +{
      +  "description": "fedex_tracking when FedEx Track reported the carrier delivery failure; null otherwise.",
      +  "enum": [
      +    "fedex_tracking",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / failure_stage
      Added value: +{
      +  "description": "carrier_delivery for carrier delivery failures; null for submission or fulfillment failures.",
      +  "enum": [
      +    "carrier_delivery",
      +    null
      +  ],
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / mailed_at
      Added value: +{
      +  "description": "Timestamp when the item entered the carrier/mail stream.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  6. Changed2 schema fields changed
    • changedOutput schema / properties / result / properties / outbound_mail / properties / recipient_name / description
      Previous value: -"Recipient name."New value: +"Recipient name, or null when the mail is addressed to a company only."
    • changedOutput schema / properties / result / properties / outbound_mail / properties / recipient_name / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  7. Changed1 schema field changed
    • addedOutput schema / properties / result / properties / outbound_mail / properties / recipient_company
      Added value: +{
      +  "description": "Optional recipient company or organization line.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  8. Changed7 schema fields changed
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_city
      Added value: +{
      +  "description": "Return address city.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_company
      Added value: +{
      +  "description": "Optional company or organization line for the return address.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_line1
      Added value: +{
      +  "description": "Return address street line 1.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_line2
      Added value: +{
      +  "description": "Return address street line 2.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_name
      Added value: +{
      +  "description": "Return address name.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_state
      Added value: +{
      +  "description": "Return address state.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / result / properties / outbound_mail / properties / return_zip
      Added value: +{
      +  "description": "Return address ZIP.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  9. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "result": {
      +      "additionalProperties": true,
      +      "description": "Advanced sandbox outbound mail job and webhook status.",
      +      "properties": {
      +        "message": {
      +          "description": "Lifecycle transition and webhook status.",
      +          "type": "string"
      +        },
      +        "outbound_mail": {
      +          "additionalProperties": true,
      +          "description": "Outbound postal mail job summary.",
      +          "properties": {
      +            "carrier": {
      +              "description": "Carrier name when available.",
      +              "type": "string"
      +            },
      +            "cost_cents": {
      +              "description": "Charged cost in cents, or 0 for sandbox/test records.",
      +              "type": "integer"
      +            },
      +            "created_at": {
      +              "description": "Creation timestamp.",
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            "id": {
      +              "description": "Outbound mail job UUID.",
      +              "format": "uuid",
      +              "type": "string"
      +            },
      +            "mail_class": {
      +              "description": "Selected postal or carrier service.",
      +              "type": "string"
      +            },
      +            "page_count": {
      +              "description": "Number of printed pages.",
      +              "type": "integer"
      +            },
      +            "recipient_name": {
      +              "description": "Recipient name.",
      +              "type": "string"
      +            },
      +            "status": {
      +              "description": "Current mail lifecycle status.",
      +              "type": "string"
      +            },
      +            "test_mode": {
      +              "description": "Whether this is a sandbox/test mail record.",
      +              "type": "boolean"
      +            },
      +            "tracking_number": {
      +              "description": "Carrier tracking number when available.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "outbound_mail",
      +        "message"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "type": "object"
      +}
  10. Added

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the mutation (advance one lifecycle step), the side effect (queue matching webhook), and the simulated data added at each transition (pages/envelope photos, carrier, dispatch method, receipt photo, tracking conditionally). It does not specify behavior on a terminal state or repeated calls, but annotations already mark it as non-read-only and non-idempotent, and the description adds meaningful detail beyond those flags.

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 dense sentence that front-loads the action and then lists the deterministic state transitions without filler or repeated schema information. Every clause earns its place by describing what happens at each lifecycle stage.

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 one-parameter stateful test tool, the description covers all lifecycle transitions and the main side effect, and an output schema exists to define the return shape. It omits error handling for invalid states or non-test_mode records, but those are secondary concerns when selecting and invoking the tool correctly.

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 100%, with mail_id already documented as 'UUID of the test_mode outbound mail record to advance.' The description reinforces the same conceptual framing and adds lifecycle context, but it does not add new parameter-level details or syntax, so the baseline score of 3 applies.

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 specific verb ('advance'), a specific resource ('test_mode outbound mail record'), and enumerates exact lifecycle transitions (submitted→ready→mailed→delivered). It also discloses the side effect of queueing a matching webhook, which clearly distinguishes it from sibling tools like send_outbound_mail or cancel_outbound_mail.

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

Usage Guidelines4/5

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

The description clearly scopes the tool to test_mode records and defines the state-transition behavior, so an agent can infer when it should be used rather than creation or cancellation tools. It does not explicitly name alternatives or say 'do not use for production mail,' but the test_mode qualifier and sibling names provide adequate directional 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