apc-mcp
apc-mcp
Book, label, track and cancel APC Overnight parcels from any MCP-compatible AI such as Claude, Cursor, or Windsurf.
Built against the APC Overnight New Horizon API v3 (Integration Guide Edition 2.0.5).
What it does
Exposes six tools to any AI that speaks MCP:
Tool | What it does |
| Create a consignment. Returns the 22-digit WayBill. |
| Book many shipments at once and get back a single merged PDF of every label, ready to print. |
| Save a shipping label to disk. PDF, ZPL (thermal printers) or PNG. |
| Current status and full tracking history. |
| Cancel a consignment before it's manifested. |
| Every APC service this MCP supports, with ProductCodes. |
Under the hood it talks to https://apc.hypaship.com/api/3.0 using your APC account credentials.
Related MCP server: royalmail-mcp
Example prompts
Once the MCP is installed in your AI client, you can say things like:
"Book a next-day collection from our warehouse to Alex Taylor, 45 High Street, Manchester M1 1AA, 15 kg, 1 parcel, reference INV-4412."
"Book a Saturday 12:00 delivery to this address, then give me the label as a PDF."
"Track all APC consignments from this week. Which ones haven't been delivered yet?"
"Print labels for these five waybills as ZPL so I can send them to the thermal printer."
"Here are ten orders — book them all on APC next-day and give me one PDF I can print." (AI calls
book_batch_and_labeland returns the path to a merged PDF.)
"Cancel waybill 2018041910099660000599. The customer cancelled the order."
"What's the cheapest APC service that arrives before noon tomorrow?" (AI calls
list_servicesand reasons)
The AI handles address parsing, service selection and error recovery. You handle the business decisions.
Workflow ideas for businesses
Plugged into any AI agent, this MCP can automate real shipping operations:
Daily order fulfilment. Every morning, your AI reads new orders from your ecommerce platform, books each one with APC at the right service level, and posts tracking numbers back to the customer.
Thermal-printer workflows. Get labels as ZPL and pipe them straight to Zebra, Rollo or similar printers without any PDF conversion step.
Same-day cut-off triage. Before the APC cut-off, your AI checks which orders still qualify for next-day-by-10am versus standard next-day, and books the fastest available service for each.
Bulk manifests. Hand your AI a spreadsheet of hundreds of consignments. It books them all, groups labels into one document per depot, and flags any that failed validation.
Multi-carrier picking. Installed alongside royalmail-mcp, your AI compares APC and Royal Mail at booking time and picks the cheapest or fastest option per destination.
Customer service triage. When a customer asks where their parcel is, your AI calls
track_shipment, summarises the latest scan in plain English, and drafts a reply.
Compatibility
Works with any MCP client that supports stdio transport:
Claude Desktop
Cursor
Windsurf
Claude Code
Zed
ChatGPT, Smithery and other remote-only MCP clients need an HTTP transport, which isn't included yet. If that matters to you, open an issue so I can prioritise it.
Install
npm install -g apc-mcpOr run without installing:
npx apc-mcpConfiguration
Your APC credentials are the same ones you use to log into the APC portal:
APC_USERNAME=your-apc-account-email@example.com
APC_PASSWORD=your-apc-account-password
APC_BASE_URL=https://apc.hypaship.com/api/3.0Either in a .env file next to the server, or via your MCP client's config (see below).
Use https://apc-training.hypaship.com/api/3.0 while testing. APC provides a training endpoint that won't charge your account or send real parcels.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apc": {
"command": "npx",
"args": ["-y", "apc-mcp"],
"env": {
"APC_USERNAME": "your-email@example.com",
"APC_PASSWORD": "your-password"
}
}
}
}Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"apc": {
"command": "npx",
"args": ["-y", "apc-mcp"],
"env": {
"APC_USERNAME": "your-email@example.com",
"APC_PASSWORD": "your-password"
}
}
}
}Supported services
A selection of the most common codes — run list_services for the full catalogue of 60+ ProductCodes covering every APC product type.
Key | APC service | ProductCode |
| Next Day Parcel by 16:00 (standard) |
|
| Next Day Parcel by 12:00 |
|
| Next Day Parcel by 10:00 |
|
| Next Day Parcel by 09:00 |
|
| 2-5 Day Parcel (economy) |
|
| Saturday Parcel by 12:00 |
|
| Next Day Lightweight by 16:00 |
|
| Next Day Courier Pack by 16:00 |
|
| Next Day Mail Pack by 16:00 |
|
| Next Day Liquid Product by 16:00 |
|
| Next Day Limited Quantity by 16:00 |
|
| Next Day Non-Conveyable by 16:00 |
|
| Next Day Excess Parcel by 16:00 |
|
| 2-5 Day Road Service to Ireland |
|
| 2nd Class Mail (Whistl) |
|
Plus 45 more, including all 09:00 / 10:00 / 12:00 variants of each product type, every Saturday variant, and 2-5 day economy versions of lightweight, courier-pack, mail-pack, liquid and non-conveyable.
You can pass either the friendly key (next-day) or the raw ProductCode (ND16). Both work. Which services your account can use depends on your APC contract — confirm with your depot for unusual codes.
Notes
get_labelretries automatically for up to ~15 seconds while APC generates the label, so you normally don't need to pause betweenbook_shipmentandget_label.cancel_shipmentonly works before the parcel is manifested. Once it's been collected by APC, you have to cancel via the APC portal.Label formats:
PDFfor standard printers,ZPLfor Zebra or Rollo thermal printers,PNGfor on-screen display.
Account-specific service availability
Not every ProductCode is enabled on every APC account. Timed services (09:00, 10:00), 2-5 day economy (TDAY) and specialised products (Liquid, Limited Quantity, Non-Conveyable) are often add-ons you have to ask your depot to enable.
If you see these responses, it's an account or routing issue — not a bug in this MCP:
228 NO Services available— the requested service isn't enabled on your account for that collection/delivery postcode pair.119 ProductCode (XXXX) is not one of the possible options— that code isn't on your contract at all.
Call your APC depot or the CMS Team (01922 702587) to have extra services enabled.
Multi-piece consignments
When numberOfPieces > 1, the MCP automatically splits totalWeightKg evenly across the parcels and sends one Item entry per piece (APC requires NumberOfPieces to match the number of items). If you need different weights or dimensions per parcel, pass a full items array — the MCP will use it verbatim.
Security
Your APC username and password grant full access to your account. Treat them like a password.
Never commit
.envto git. The.gitignorein this repo already excludes it.Don't paste credentials into chat messages or shared documents.
Rotate them in the APC portal if ever exposed.
Privacy & data handling
This MCP runs entirely on your machine. No customer data, credentials or API traffic flows through any server owned or operated by the author.
The data path is:
Shipping details you give your AI assistant go to your AI provider (e.g. Anthropic, if you're using Claude) under your account.
Booking requests go to APC Overnight using your APC credentials.
Labels are saved to your local disk at
~/Downloads/parcel-toolkit/(overridable via thePARCEL_TOOLKIT_LABELS_DIRenv var).
If you're using this in a UK business, you are the data controller under UK GDPR. Practical recommendations:
Use Claude Team, Claude Enterprise, or the Claude API directly — not consumer Claude.ai — so a Data Processing Agreement with Anthropic is in place. On consumer tiers, turn off "Help improve Claude" in Privacy settings at minimum.
List Anthropic and APC Overnight as subprocessors in your privacy policy, the same way you would list a payment provider or email service.
Avoid using this tool for special-category data (health, biometric, children's data) without additional legal review.
This software is provided as-is under the MIT licence. The author is not a data processor and takes no responsibility for your compliance obligations — those sit with you as the data controller.
Contributing
Issues and pull requests are welcome at github.com/catrinmdonnelly/apc-mcp. If APC changes their API, or you hit an edge case on your account type, please open an issue with the request body you sent and the response you got (scrub credentials first).
Companion MCP
For Royal Mail Click & Drop, see royalmail-mcp.
Disclaimer
This project is not affiliated with, endorsed by, or sponsored by APC Overnight Ltd. "APC Overnight" and "New Horizon" are trademarks of their respective owners. Use at your own risk.
Licence
MIT. See LICENSE.
Available Tools
6 toolsbook_batch_and_labelA
Book multiple APC shipments at once and return a single merged PDF containing every label, ready to print. Use this when the user pastes a list of orders/addresses. All shipments share the same service, collection date and sender. Saves the merged PDF to ~/Downloads/parcel-toolkit/ (overridable via PARCEL_TOOLKIT_LABELS_DIR).
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | APC delivery service for every shipment in this batch (e.g. "next-day", "next-day-1200", "ND16"). Call list_services for the full catalogue. | |
| collectionDate | Yes | Collection date for every shipment. YYYY-MM-DD or DD/MM/YYYY | |
| readyAt | No | Time goods will be ready HH:MM (default 09:00) | |
| closedAt | No | Time business closes HH:MM (default 17:00) | |
| sender | Yes | Sender / collection address. Same for every shipment in the batch. | |
| shipments | Yes | Array of shipments to book. Each entry is one consignment with its own recipient, weight and pieces. | |
| labelFormat | No | Label format for individual labels. PDF recommended — merged output is always PDF regardless. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool saves the merged PDF to a specific directory ('~/Downloads/parcel-toolkit/') and that this can be overridden via an environment variable. It implies booking occurs. However, it does not mention API calls, authorization needs, or error handling, slightly reducing transparency.
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 three sentences: first states purpose and outcome, second gives usage context, third adds shared properties and output path. It is front-loaded, concise, and every sentence adds value without fluff.
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 the tool's complexity (7 parameters, nested objects, no output schema), the description explains the output as a merged PDF and its save location. However, it does not specify the return value of the tool (e.g., success message or file path) or cover booking confirmations, leaving some gaps 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 description coverage is 100%, so baseline is 3. The description adds that all shipments share the same service, collection date, and sender, which is already captured in schema descriptions. The batch context is provided but does not significantly enhance parameter understanding beyond the 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 tool's action ('Book multiple APC shipments at once') and its outcome ('return a single merged PDF containing every label, ready to print'). It also distinguishes from sibling tools like 'book_shipment' by specifying batch behavior and usage when pasting a list of addresses. The verb 'book' and resource 'APC shipments' are specific.
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 a clear usage hint: 'Use this when the user pastes a list of orders/addresses.' It also notes that all shipments share the same service, collection date, and sender, indicating constraints. However, it does not explicitly name alternative tools or state when not to use it, missing some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_shipmentA
Book a parcel delivery with APC Overnight. Returns a 22-digit waybill used for label retrieval and tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | APC delivery service. Pass a friendly key (e.g. "next-day", "saturday-1200", "courier-pack", "liquid-0900", "ireland-road") or the raw ProductCode (e.g. "ND16", "NS12", "CP16", "LP09", "ROAD"). Call list_services for the full catalogue. Defaults to ND16 (standard next day by 16:00) if omitted. | |
| collectionDate | Yes | Collection date. YYYY-MM-DD or DD/MM/YYYY | |
| readyAt | No | Time goods will be ready HH:MM (default 09:00) | |
| closedAt | No | Time business closes HH:MM (default 17:00) | |
| numberOfPieces | Yes | Number of parcels/items in this consignment | |
| totalWeightKg | Yes | Total weight in kg | |
| itemType | No | Type of goods being sent | PARCEL |
| goodsValue | No | Declared value in GBP | |
| goodsDescription | No | Brief description of goods | |
| sender | Yes | Sender / collection address | |
| recipient | Yes | Recipient / delivery address | |
| reference | No | Your internal order or job reference |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates that the tool returns a waybill, implying a write operation, but does not disclose other behavioral traits such as required permissions, cost implications, or whether the booking is immediate or asynchronous. With no annotations, the description falls short of fully informing the agent.
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 extremely concise (two sentences) and front-loaded with the essential action and outcome. Every word earns its place, with no fluff or irrelevant details.
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 the complexity (12 parameters, nested objects, no output schema), the description is minimal. It does not explain error conditions, prerequisites, or how the output waybill relates to other tools. However, the rich schema descriptions partially compensate, making it adequate but not fully complete.
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?
The schema covers all 12 parameters with descriptions, hitting 100% coverage. The tool description adds no extra semantic value beyond what is in the schema, so the baseline of 3 is appropriate.
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 action ('Book a parcel delivery'), the carrier ('APC Overnight'), and the output ('22-digit waybill'). This distinctly sets it apart from sibling tools like cancel_shipment or list_services, which have different purposes.
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?
No explicit when-to-use or when-not-to-use guidance is provided. While the sibling names (e.g., book_batch_and_label) hint at alternatives, the description does not clarify when to choose this tool over others. The reference to list_services in the schema helps, but the description itself lacks context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_shipmentA
Cancel an APC Overnight consignment. Must be done before the parcel is collected/manifested.
| Name | Required | Description | Default |
|---|---|---|---|
| waybill | Yes | The 22-digit WayBill number to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes the timing constraint but omits potential side effects, irreversibility, or confirmation 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 sentences, no wasted words. First sentence defines purpose, second adds critical timing constraint. Front-loaded and efficient.
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 the tool's simplicity (1 param, no output schema, no annotations), the description adequately covers core purpose and constraint. Could elaborate on post-cancellation behavior but not essential.
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 the description repeats the schema's indication of a 22-digit waybill. No additional semantic value beyond the 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?
Clearly states the verb 'cancel' and the resource 'APC Overnight consignment'. Distinguishes from sibling tools which focus on booking, labeling, listing, or tracking.
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 (before collection/manifest). Does not mention alternatives, but siblings are distinct enough that no further guidance is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_labelA
Get the shipping label for a booked APC consignment and save it to disk. Call any time after book_shipment — APC typically needs 3-5 seconds to generate, which this tool polls for automatically. Returns the local file path. Default save location is ~/Downloads/parcel-toolkit/, overridable via the PARCEL_TOOLKIT_LABELS_DIR env var.
| Name | Required | Description | Default |
|---|---|---|---|
| waybill | Yes | The 22-digit WayBill number returned when booking (or from a previously booked consignment). | |
| format | No | Label format. PDF for standard printers, ZPL for thermal (Zebra/Rollo), PNG for previews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond the schema: it polls for the label, saves to disk, returns a local file path, and has a configurable save directory via environment variable. This is valuable as no annotations are provided. However, it does not mention potential side effects or errors on the remote system.
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 four sentences long, with the primary action stated first ('Get the shipping label...'). Every sentence adds necessary information: purpose, timing/behavior, return value, and configuration. No redundant or vague language.
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 the tool has only two parameters and no output schema, the description covers the essential aspects: what it does, when to use it, what it returns (file path), and how to configure save location. It lacks explicit error handling or timeout behavior, but is otherwise complete for a simple retrieval tool.
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?
The input schema already provides descriptions for both parameters (waybill and format). The description adds context about the waybill source ('returned when booking') and explains the default save location and env var override, which are not in the schema. This adds practical value beyond the schema fields.
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 tool 'Get the shipping label for a booked APC consignment and save it to disk', specifying the exact resource (APC consignment label) and action (get and save). It distinguishes itself from siblings like book_shipment (booking) and track_shipment (tracking) by focusing on label retrieval after booking.
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 explains when to call ('after book_shipment'), mentions a 3-5 second delay that is automatically polled, and indicates the output is saved to a specific location. While it provides clear context, it does not explicitly state alternatives or when not to use, such as using book_batch_and_label for batch operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesA
List every APC Overnight delivery service with friendly key, label and ProductCode. Service availability depends on your APC account and routing — confirm with your depot before relying on an unusual service.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It correctly notes that service availability depends on account and routing, advising confirmation with the depot, which adds important behavioral context beyond a simple list.
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 sentences, front-loaded with the main purpose, no unnecessary words, and the caveat is efficiently included.
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?
For a zero-parameter, no-output-schema tool, the description covers the essential return fields (key, label, ProductCode) and the critical caveat about availability, making it complete 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?
The tool has no parameters, so baseline is 4. The description adds no additional parameter information, but none is needed.
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 action 'List' and the resource 'every APC Overnight delivery service', and it distinguishes from sibling tools that perform different actions like booking or tracking.
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 implies that this tool should be used to retrieve available services before booking, but it does not explicitly state when to use it versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_shipmentB
Get the current status and tracking history for an APC Overnight consignment.
| Name | Required | Description | Default |
|---|---|---|---|
| waybill | Yes | The 22-digit WayBill number |
TDQS
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 does not disclose authentication needs, rate limits, or what happens with invalid waybills. Only states it returns status and history.
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 a single, concise sentence with no filler. It is front-loaded with the action and entity, making it quickly understandable.
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?
For a simple lookup tool with one parameter and no output schema, the description is sufficient. It conveys the purpose and what it returns (status and tracking history). Could be enhanced by mentioning the output format, but not essential.
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 the schema already describes the 'waybill' parameter as 'The 22-digit WayBill number'. The description adds no additional meaning beyond what the schema provides, so baseline 3 applies.
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 tool gets current status and tracking history for an APC Overnight consignment. It uses a specific verb and resource, and distinguishes from sibling tools (booking, canceling, labeling).
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or context signals. The description simply states what it does.
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. Dates show when Glama detected each change.
6 tool updates
v0.2.0- First observed
book_batch_and_label - First observed
book_shipment - First observed
cancel_shipment - First observed
get_label - First observed
list_services - First observed
track_shipment
TDQS
Each tool serves a unique purpose: batch booking, single booking, cancellation, label retrieval, service listing, and tracking. There is no overlap or ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., book_shipment, get_label, list_services). No deviations or mixed conventions.
Six tools is well-scoped for an APC parcel delivery MCP server. It covers all essential operations without being too few or excessive.
The set includes booking (single and batch), cancellation, label retrieval, service listing, and tracking. No obvious gaps; it covers the full lifecycle for APC shipments.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Furgonetka MCP Server is an extension for LLMs (such as Claude) that integrates AI assistants with Poland's most popular courier brokerage platform. The server enables models to interact directly with services from various couriers (including InPost, DPD, DHL, UPS, and Poczta Polska) through a single, unified interface. With this integration, your AI stops just "writing about logistics" and starts actually managing it.
MCP server for EasyPost — rate shipments, buy & refund labels, track packages, verify addresses.
The first MCP server for physical mail: send postcards and letters, manage lists and campaigns.
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with ShipEngine's shipping API, allowing users to manage shipments, labels, carriers, and other shipping operations through natural language commands.-
- AlicenseAqualityDmaintenanceConnect any MCP-compatible AI to Royal Mail shipping. This server exposes five tools that let Claude, Cursor or any MCP client book orders, fetch postage labels, track shipments and cancel bookings through the official Click & Drop API.5323MIT
- AlicenseAqualityCmaintenanceMCP server for tracking Japanese logistics carriers (Yamato, Sagawa, Japan Post) via mock or AfterShip adapter. Enables AI agents to query shipment status and history in natural language.3MIT
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets any AI agent buy shipping labels worldwide via AfterShip Shipping, using the merchant's own carrier accounts.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/catrinmdonnelly/apc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server