UK Logistics (buy Royal Mail + more labels + tracking via Shippo)
Server Details
UK shipping labels for AI agents: buy Royal Mail Tracked and more, track and refund via Shippo.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 3 of 3 tools scored.
Each tool serves a unique purpose: create labels, track shipments, and request refunds. There is no functional overlap between them.
All tool names follow a consistent imperative verb_noun pattern: create_shipment, query_tracking, refund_label.
Three tools are perfectly scoped for a logistics server focused on purchasing, tracking, and refunding labels. The count is neither too few nor excessive.
Core workflows (create, track, refund) are covered. Missing a way to list past shipments or get rates without purchasing, but the essential operations are present.
Available Tools
3 toolscreate_shipmentAInspect
Create a United Kingdom shipping label via Shippo — pass a to_address, from_address and parcel (dimensions in CENTIMETRES, weight in GRAMS by default), and the server fetches carrier rates, buys the CHEAPEST rate by default (or the carrier/service you specify), and returns the shipment_id, transaction_id, tracking_number, printable label_url and the price paid (GBP). Recommended carrier: Royal Mail Tracked 24/48 via the Shippo master account — no Royal Mail contract or merchant account needed — so an agent can print a Royal Mail label with no merchant courier account. Bring your own Shippo API token via header x-shippo-token: free TEST tokens (prefix shippo_test_…) run the full flow end-to-end at no cost (sign up free, no card, at apps.goshippo.com/join); production tokens (prefix shippo_live_…) buy real labels. The token prefix auto-selects the environment. weight is always required. Owner policy headers gate the label price before any purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Parcel width in CENTIMETRES. | |
| height | No | Parcel height in CENTIMETRES. | |
| length | No | Parcel length in CENTIMETRES (cm) by default. Provide length+width+height together. | |
| to_zip | Yes | Recipient postcode (e.g. "SW1A 1AA"). Required. | |
| weight | Yes | Parcel weight in GRAMS (g) by default. Required. Use mass_unit to change (kg/oz/lb). | |
| carrier | No | Optional: restrict to a carrier (e.g. "Royal Mail"). Default: cheapest across all available carriers. | |
| service | No | Optional: restrict to a service level name or token (e.g. "Tracked 24/48"). Default: cheapest. | |
| to_city | Yes | Recipient town / city. | |
| to_name | Yes | Recipient full name. | |
| from_zip | Yes | Sender postcode. Required. | |
| to_email | No | Optional recipient email. | |
| to_phone | No | Optional recipient phone (some carriers/services require it). | |
| to_state | No | Optional recipient county (county is optional for United Kingdom addresses). | |
| from_city | Yes | Sender town / city. | |
| from_name | Yes | Sender full name. | |
| mass_unit | No | Weight unit: g (default), kg, oz or lb. | |
| from_phone | No | Optional sender phone. | |
| from_state | No | Optional sender county. | |
| to_country | No | Recipient ISO country code. Default GB. | |
| to_street1 | Yes | Recipient street address line 1. | |
| to_street2 | No | Optional recipient street address line 2 (flat/unit). | |
| from_country | No | Sender ISO country code. Default GB. | |
| from_street1 | Yes | Sender street address line 1. | |
| from_street2 | No | Optional sender street address line 2. | |
| distance_unit | No | Dimension unit: cm (default), m, in or ft. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it buys the cheapest rate by default, the token prefix auto-selects environment (test vs production), and owner policy headers gate label price. This goes beyond the annotations (which already indicate non-read-only, non-destructive) and provides essential operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but well-structured, with key information front-loaded. It is slightly long but every sentence adds value (e.g., unit reminders, token prefix logic). Could be tightened, but remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 25 parameters and no output schema, the description lists the exact return fields (shipment_id, transaction_id, tracking_number, label_url, price) and explains the flow end-to-end, including environment switching and owner policy headers. This is comprehensive for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters. The tool description adds value by emphasizing units (CENTIMETRES, GRAMS by default), the optional carrier/service restrictions, and the environment token prefix. This supplements the schema without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a United Kingdom shipping label via Shippo' and details the complete flow: passing addresses and parcel, fetching rates, buying cheapest rate, and returning specific fields. It clearly distinguishes from sibling tools (query_tracking, refund_label) which are different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong usage context: it's for UK shipping labels via Shippo, recommends Royal Mail Tracked 24/48, and explains the Shippo token setup. It does not explicitly state when not to use or list alternatives, but the guidance is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_trackingARead-onlyInspect
Track a United Kingdom shipment by its tracking_number (the one create_shipment returned, or any carrier tracking number) plus its carrier. Returns the current status with a plain-English hint. Status values (Shippo enum): UNKNOWN, PRE_TRANSIT (label made, not yet picked up), TRANSIT, DELIVERED, RETURNED, FAILURE. Raw carrier scan details are always included. carrier defaults to "royal_mail"; for TEST tokens use carrier="shippo" with mock numbers SHIPPO_TRANSIT / SHIPPO_DELIVERED. Safe to call anytime.
| Name | Required | Description | Default |
|---|---|---|---|
| carrier | No | Carrier token for the lookup (e.g. "royal_mail", "usps", or "shippo" for TEST mock numbers). Default "royal_mail". | |
| tracking_number | Yes | The tracking number to look up (from create_shipment or a carrier). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, openWorldHint), describes return format (status, plain-English hint, raw carrier scans), status enum values, safe to call anytime, and default carrier behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences, front-loaded with main purpose and inputs, then return format and test usage. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool (2 params, no output schema), description covers all necessary aspects: usage, parameters, output, safe calling, and test mode. Complete and self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds value by clarifying tracking_number source and carrier defaults/test usage, exceeding schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Track' and resource 'shipment', specifies UK, and distinguishes from siblings (create_shipment, refund_label).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (for tracking), provides test vs production guidance with mock numbers, but does not explicitly state when not to use. However, sibling tools make alternatives clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_labelAIdempotentInspect
Request a refund for a United Kingdom shipping label bought via create_shipment, by its transaction_id. Refund is only possible for UNUSED labels that were never scanned by the carrier; already-shipped labels cannot be refunded. Returns refund_status: QUEUED / PENDING (accepted, carrier still processing — most common), SUCCESS (money returned), or ERROR (not eligible, e.g. already scanned). Carriers can take time to move QUEUED/PENDING → SUCCESS.
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_id | Yes | The transaction_id returned by create_shipment (the bought label to refund). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides detailed behavioral context beyond annotations: possible refund_status values (QUEUED, PENDING, SUCCESS, ERROR), the meaning of each, and the time delay for carrier processing. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler. First sentence states purpose and input, second gives crucial condition, third explains return values and behavior. Front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, no output schema, but with explanation of return statuses and eligibility condition, the description covers all necessary context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'transaction_id', and the description only restates that it comes from create_shipment. No additional semantic value added beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'request a refund', the resource 'United Kingdom shipping label', and ties it to 'create_shipment' and 'transaction_id'. It distinguishes itself from siblings 'create_shipment' and 'query_tracking' by the refund action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: only for UNUSED labels never scanned by the carrier, and when not: already-shipped labels cannot be refunded. Does not name an alternative for already-shipped labels, but the condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!