Skip to main content
Glama

Submit one original ticket email

submit_ticket_email

Submits ONE original ticket-confirmation email (the complete RFC 822 message as saved from the inbox, base64-encoded, up to 2 MiB) exactly as the website’s upload does. Not a forward, screenshot, PDF or copy. Returns whether it is eligible, held or rejected, why, the bookings found and the email’s status as get_ticket_status shows it. If we can’t check an email yet (for example, its theater is new to us), we keep it for up to 7 days to finish checking it, then delete it. Never returns the email’s text, headers or addresses.

Input Schema

NameRequiredDescriptionDefault
filenameNo
raw_email_base64Yes

Output Schema

NameRequiredDescriptionDefault
statusYes
messageNo
bookingsYes
nextStepYes
errorCodeNo
processingYes
submissionIdYes
ticketStatusNo
recipientVerifiedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / ticketStatus / properties / note / properties / state / enum
      Previous value: -[
      -  "received",
      -  "setting_up",
      -  "ready",
      -  "verified",
      -  "needs_copy",
      -  "not_counted"
      -]New value: +[
      +  "received",
      +  "setting_up",
      +  "ready",
      +  "verified",
      +  "needs_copy",
      +  "pending_verification",
      +  "not_counted"
      +]
    • changedOutput schema / properties / ticketStatus / properties / state / enum
      Previous value: -[
      -  "received",
      -  "setting_up",
      -  "ready",
      -  "verified",
      -  "needs_copy",
      -  "not_counted"
      -]New value: +[
      +  "received",
      +  "setting_up",
      +  "ready",
      +  "verified",
      +  "needs_copy",
      +  "pending_verification",
      +  "not_counted"
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / ticketStatus
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "action": {
      +      "enum": [
      +        "confirm_inbox",
      +        "claim",
      +        "retry",
      +        "upload"
      +      ],
      +      "type": "string"
      +    },
      +    "filename": {
      +      "type": "string"
      +    },
      +    "note": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "createdAt": {
      +          "type": "string"
      +        },
      +        "state": {
      +          "enum": [
      +            "received",
      +            "setting_up",
      +            "ready",
      +            "verified",
      +            "needs_copy",
      +            "not_counted"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "createdAt"
      +      ],
      +      "type": "object"
      +    },
      +    "reason": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "enum": [
      +            "evidence.code",
      +            "evidence.reason",
      +            "ticket.reason"
      +          ],
      +          "type": "string"
      +        },
      +        "text": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "source",
      +        "code",
      +        "text"
      +      ],
      +      "type": "object"
      +    },
      +    "screeningAt": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "setupUntil": {
      +      "type": "string"
      +    },
      +    "state": {
      +      "enum": [
      +        "received",
      +        "setting_up",
      +        "ready",
      +        "verified",
      +        "needs_copy",
      +        "not_counted"
      +      ],
      +      "type": "string"
      +    },
      +    "submissionId": {
      +      "type": "string"
      +    },
      +    "submittedAt": {
      +      "type": "string"
      +    },
      +    "theater": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "tickets": {
      +      "type": "number"
      +    },
      +    "timezone": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "submissionId",
      +    "filename",
      +    "state",
      +    "theater",
      +    "submittedAt",
      +    "screeningAt",
      +    "timezone",
      +    "tickets"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing retention behavior (held up to 7 days, then deleted), the privacy contract (never returns email text, headers, or addresses), and the eligible/held/rejected outcome model. That is exactly the destructive-and-data-handling context an agent needs for a mutating upload tool.

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 sentences, front-loaded with what is accepted and the disqualifying formats, then return shape and retention. Dense but every sentence contributes; the negative-list sentence could be tightened slightly but is not wasteful.

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?

Despite an output schema being present, the description still summarizes the return categories and explicitly states what is never returned, closing the privacy question. For a two-parameter upload with side effects and a 7-day retention window, nothing an agent needs to call it 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?

With 0% schema description coverage, the description carries the load and does so: it explains that raw_email_base64 must be the complete RFC 822 message saved from the inbox and base64-encoded with a size ceiling. The optional 'filename' parameter is left unexplained, which is the only gap.

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 and resource (submit ONE original ticket-confirmation email) and pins down the payload format (complete RFC 822 message, base64, up to 2 MiB). The explicit negative list ('not a forward, screenshot, PDF or copy') sharply bounds what this tool accepts, making it distinguishable from sibling tools like request_inbox_check.

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?

Clearly establishes the context of use — you must have the original inbox message, not a derivative artifact — and points to get_ticket_status for the read path. It stops short of contrasting directly with request_inbox_check or confirm_inbox, so the sibling routing is implied rather than spelled out.

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