Skip to main content
Glama

Server Details

Let Claude or another MCP-compatible AI check your balance, look up orders, and send letters on your behalf

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct action, but create_letter_order (without confirmed) and preview_letter_price both return a price, creating minor functional overlap. Descriptions clarify the distinction, but an agent might briefly confuse which to call for a quote.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (create_letter_order, get_balance, get_order, list_orders, preview_letter_price). The convention is predictable throughout.

Tool Count5/5

Five tools are well-scoped for a letter ordering service: price preview, order creation, balance check, and order retrieval. Each tool earns its place without redundancy or bloat.

Completeness3/5

The core workflow (preview, create, list, get, balance) is covered, but there is no tool to cancel, refund, or update an order. Since creation spends real money and cannot be undone, this is a notable gap for an ordering system.

Available Tools

5 tools
create_letter_orderCreate and pay for a letter orderAInspect

Creates a letter order and immediately debits the customer's balance to pay for it - this spends real money and cannot be undone. Call it WITHOUT confirmed:true first: it will only return the price, without charging or creating anything. Only after the price has been shown to the human and they've agreed to it, call it again with confirmed: true and expectedTotalPence set to the exact totalPence you were quoted. If the recomputed price no longer matches expectedTotalPence, the order is rejected so you cannot accidentally confirm a stale price.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoNumber of content pages (excludes the address page).
colourNoPrint in colour instead of black & white.
contentNoPlain-text letter body. Required unless contentUploadPath is supplied.
confirmedNoSet to true only after the customer has explicitly agreed to the previewed price.
senderNameNo
doubleSidedNoPrint double-sided (duplex).
senderLine1No
serviceClassYesRoyal Mail service to send with. Domestic: SECOND_CLASS, FIRST_CLASS, SECOND_CLASS_SIGNED, SIGNED_FOR, SPECIAL_DELIVERY, TRACKED_48, TRACKED_24. International: INTERNATIONAL_STANDARD, INTERNATIONAL_TRACKED, INTERNATIONAL_TRACKED_SIGNED.
recipientCityYes
recipientNameYes
recipientLine1Yes
recipientLine2No
senderPostcodeNo
recipientCountryNoISO 3166-1 alpha-2 country code, e.g. GB, US, FR.GB
contentUploadPathNoPath returned by the customer's own upload flow (POST /api/v1/uploads/request-url) for a pre-uploaded PDF/DOCX. The MCP server cannot upload files itself.
recipientPostcodeYes
expectedTotalPenceNoThe totalPence you were quoted when confirmed is true. Required to actually place the order.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so: it warns this spends real money, cannot be undone, that the preview call charges and creates nothing, and that a mismatched expectedTotalPence causes rejection. This is exactly the safety context an agent needs for an irreversible financial mutation.

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 irreversible-charge warning is front-loaded, followed by the two-step call sequence in logical order. Every sentence adds a distinct operational constraint with no filler.

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 17-param irreversible mutation tool with no annotations and no output schema, the description supplies the critical missing context: the danger profile, the preview-then-confirm workflow, and the anti-stale-price guard. Nothing essential for correct invocation is absent.

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 description coverage is only 53% across 17 parameters, so the description must add value, and it does for the two highest-stakes params: confirmed (only after human agreement) and expectedTotalPence (set to the exact quoted total, required to place the order). It does not explain the recipient/sender/serviceClass fields, but the enum and per-field schema descriptions cover much of that.

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 (creates a letter order) plus the consequential side effect (immediately debits the customer's balance). It also distinguishes itself from the sibling preview_letter_price by explaining that calling without confirmed:true acts as a price-only preview.

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 two-call protocol: first without confirmed:true to fetch the price, then with confirmed:true and expectedTotalPence after the human agrees. It states the precondition (human agreement) and the rejection condition (stale price), leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceGet account balanceAInspect

Returns the customer's current prepaid balance used to pay for letters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations present, the description carries the full behavioral burden. The verb 'Returns' implies a read-only operation and the description states what value comes back, but it says nothing about authentication needs, account scoping, currency, or how a zero/missing balance is represented.

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?

A single front-loaded sentence with no filler; the purpose and the meaning of the returned value are both stated in one pass.

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?

Given no parameters, no annotations, and no output schema, the description adequately explains what is retrieved. It could go slightly further by describing the shape of the returned balance (amount/currency) or scoping to the authenticated customer, but it is complete enough to call correctly.

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 tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter surface for the description to clarify, and it correctly avoids inventing any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (Returns) and a specific resource (customer's current prepaid balance), and adds the semantic context that it funds letters. It does not explicitly contrast with any sibling, but none of the siblings (create_letter_order, get_order, list_orders, preview_letter_price) overlap with balance lookup, so differentiation is largely unnecessary.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and no mention of alternatives. An agent knows what the tool returns but not under what circumstances it should be chosen, though the narrow scope makes misuse unlikely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_orderGet a letter orderBInspect

Fetches one of this customer's letter orders by ID, including its current status.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses tenant scoping ('this customer's') and that status is part of the payload, but says nothing about authorization requirements, not-found/error behavior, or freshness of the status. Adequate but incomplete for an unannotated tool.

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?

A single front-loaded sentence with no filler; the verb, scope, and return content all appear immediately. Nothing could be removed without losing information.

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

Completeness3/5

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

For a one-parameter read tool with no output schema and no annotations, the description covers the basic contract but omits not-found behavior, permission requirements, and any indication of what else the order object contains. Minimum viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter 'id' has no format or example in the schema. The description only restates the parameter name with 'by ID', adding no format, source, or validity information, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetches) and resource (letter order) plus scope ('this customer's') and the key return field (current status). It does not explicitly differentiate itself from the sibling list_orders, which is the closest ambiguous alternative, so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'by ID' implies the usage context (single-record lookup when an ID is known) versus list_orders, but there is no explicit when-to-use or when-not-to-use guidance and no mention of prerequisites. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_ordersList letter ordersCInspect

Lists this customer's letter orders, most recent first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the sort order (most recent first), but says nothing about pagination behavior, result size limits, permissions, or what the returned records contain.

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?

A single front-loaded sentence with zero filler; the scoping and ordering facts come first. It is efficient, though its brevity partly reflects missing content rather than disciplined compression.

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

Completeness2/5

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

For a list tool with two undocumented paging parameters, no annotations, and no output schema, the description should cover pagination and result shape. It leaves the agent without guidance on how many orders come back or how to page.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description mentions neither limit nor offset. The schema carries defaults and min/max bounds, but the meaning of these paging parameters and how to use them is documented nowhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (lists... letter orders) and adds useful scope ('this customer's') plus default ordering ('most recent first'). It is distinguishable from get_order (singular fetch) by implication, but never names the sibling or explicitly contrasts with it.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no mention of alternatives like get_order for a single order, and no note on when not to use it. Usage is only inferable from the verb 'Lists'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_letter_pricePreview letter priceAInspect

Calculates the exact price of a letter WITHOUT creating an order or charging anything. Always call this (or create_letter_order without confirming) before create_letter_order, and show the price to the user before sending money.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoNumber of content pages (excludes the address page).
colourNoPrint in colour instead of black & white.
contentNoPlain-text letter body. Required unless contentUploadPath is supplied.
senderNameNo
doubleSidedNoPrint double-sided (duplex).
senderLine1No
serviceClassYesRoyal Mail service to send with. Domestic: SECOND_CLASS, FIRST_CLASS, SECOND_CLASS_SIGNED, SIGNED_FOR, SPECIAL_DELIVERY, TRACKED_48, TRACKED_24. International: INTERNATIONAL_STANDARD, INTERNATIONAL_TRACKED, INTERNATIONAL_TRACKED_SIGNED.
recipientCityYes
recipientNameYes
recipientLine1Yes
recipientLine2No
senderPostcodeNo
recipientCountryNoISO 3166-1 alpha-2 country code, e.g. GB, US, FR.GB
contentUploadPathNoPath returned by the customer's own upload flow (POST /api/v1/uploads/request-url) for a pre-uploaded PDF/DOCX. The MCP server cannot upload files itself.
recipientPostcodeYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose the critical trait: no order is created and nothing is charged. That is the highest-value behavioral fact for a pricing tool. It stops short of disclosing auth/permission needs, address-validation failure modes, or rate limits, so it is strong but not complete.

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?

Two sentences, no waste, and the most decision-relevant fact (no order, no charge) is front-loaded. The workflow instruction follows in a single tight sentence.

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

Completeness3/5

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

For a 15-parameter tool with no annotations and no output schema, the description covers the safety profile and workflow but says nothing about the parameters or the shape of the returned price. It is adequate for choosing and sequencing the tool but thin on invocation detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 47% across 15 parameters, and the description adds no parameter meaning at all. It says nothing about serviceClass, the required recipient fields, content vs contentUploadPath, or the pages/colour/doubleSided pricing inputs, so it fails to compensate for the coverage 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 ('Calculates the exact price of a letter') and immediately scopes it as a non-mutating preview, which cleanly separates it from create_letter_order. An agent can pick it out of the sibling list without reading either 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 imperative workflow: always call this (or create_letter_order without confirming) before create_letter_order, and show the price to the user before sending money. It names the alternative path and the ordering condition, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcreate_letter_order
    • First observedget_balance
    • First observedget_order
    • First observedlist_orders
    • First observedpreview_letter_price

Publisher details

Operator
Spark Labs FZ LLC
Vendor relationship
Not applicable
Trust center
Unknown
Restrictions
Credits availability

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    22 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources