Terminal49 MCP Server
Use the Terminal49 MCP server to let Claude or Cursor answer questions with live container and shipment data—without writing custom glue code.TL;DR – Get Started in 5 Minutes
Get your API token
Go to the Terminal49 dashboard → Settings → API Tokens and create a
T49_API_TOKEN.Paste this config (Claude Desktop)
Edit
~/Library/Application Support/Claude/claude_desktop_config.json:Cursor IDE config
Cursor IDE config
Need test container numbers? See Test Numbers for containers you can use during development.
Transports
| Transport | Endpoint | Best For |
|---|---|---|
| HTTP (streamable) | POST /api/mcp or POST /mcp | Serverless, short-lived requests |
| SSE (stateful) | GET /sse?sessionId=<id> then POST /sse?sessionId=<id> | Long-running, chatty sessions (dev tools, IDEs) |
- Header:
Authorization: Bearer <T49_API_TOKEN> - Or set
T49_API_TOKENenvironment variable when self-hosting
Tools Reference
search_container
Find containers by container number, BL, booking, or your own reference. This is the fastest way to locate containers.
Parameters
query(string, required) – container number, BL, booking, or reference
Example MCP request
Example MCP request
Example response
Example response
- “Find this container and tell me where it is”
- “Show all containers with reference PO-12345”
track_container
Start tracking a new container. Creates a tracking request and returns container details.
Parameters
containerNumber(string, required) – e.g.,CAIU1234567scac(string, optional) – shipping line code, e.g.,MAEUfor MaerskbookingNumber(string, optional) – if tracking by booking/BLrefNumbers(string[], optional) – your reference numbers
Example MCP request
Example MCP request
- “Track container CAIU1234567 with Maersk”
- “Start tracking this new shipment”
get_container
Get detailed container information with flexible data loading. Choose what to include based on your question.
Parameters
id(uuid, required) – Terminal49 container UUIDinclude(string[], optional) – what to load:shipment– routing, BOL, line, ref numbers (lightweight)pod_terminal– terminal name, location (lightweight)transport_events– full event history (heavy, 50-100 events)
Example MCP request
Example MCP request
Example response (mapped)
Example response (mapped)
- “What’s the status of this container?”
- “Is it available for pickup? Any holds?”
- “When does demurrage start?”
get_container_transport_events
Get the full event timeline for a container’s journey.
Parameters
id(uuid, required) – Terminal49 container UUID
Example response
Example response
- “Show me the journey timeline”
- “What happened to this container?”
- “How long was the rail portion?”
get_shipment_details
Get shipment-level information including routing, BOL, and all containers.
Parameters
id(uuid, required) – Terminal49 shipment UUIDinclude_containers(boolean, optional) – include container list (default: true)
- “Tell me about this shipment”
- “What containers are on this BL?”
- “Show me the routing”
get_supported_shipping_lines
List carriers supported by Terminal49 with their SCAC codes.
Parameters
search(string, optional) – filter by name or SCAC
- “What carriers do you support?”
- “What’s the SCAC code for CMA CGM?”
get_container_route
Get detailed multi-leg routing with vessel itinerary.
Parameters
id(uuid, required) – Terminal49 container UUID
- “What’s the routing for this container?”
- “Which transshipment ports?”
- “What vessel is it on?”
Prompts Reference
Prompts are pre-built workflows that guide the AI through multi-step analysis.track-shipment
Quick container tracking with optional carrier specification.
Arguments
container_number(string, required) – e.g.,CAIU1234567carrier(string, optional) – SCAC code, e.g.,MAEU
“Using Terminal49, track container CAIU1234567 and show me its current status, location, and ETA.”
check-demurrage
Analyze demurrage/detention risk for a container.
Arguments
container_id(uuid, required) – fromsearch_containerorget_container
“Using Terminal49, check demurrage risk for container CAIU1234567 and explain which fees apply and when.”
analyze-delays
Identify delays and root causes in a container’s journey.
Arguments
container_id(uuid, required) – Container UUID
“Using Terminal49, analyze delays for container CAIU1234567 and tell me what caused them.”
Resources Reference
Resources provide static or dynamic data that AI clients can read.| Resource URI | Description |
|---|---|
terminal49://container/{id} | Container data in markdown format |
terminal49://docs/milestone-glossary | Event/milestone reference documentation |
Example resources/read request
Example resources/read request
Not Yet Supported
These Terminal49 API capabilities are available via the SDK but not yet exposed as MCP tools:| API | Description | Workaround |
|---|---|---|
list_containers | List containers with filters | Use search_container |
list_shipments | List shipments with filters | Use search_container |
update_shipment | Update shipment ref numbers/tags | Use REST API |
stop_tracking | Stop tracking a shipment | Use REST API |
resume_tracking | Resume tracking a shipment | Use REST API |
raw_events | Get raw EDI event data | Use REST API |
refresh_container | Force refresh container data | Use REST API |
| Webhooks | Real-time event notifications | Configure via dashboard |
If you ask your MCP client to “list all my shipments” or “stop tracking this shipment”, it won’t work via MCP alone. Use the REST API or SDK directly for these operations.
Related Guides
- MCP Server Quickstart – Full setup, local dev, deployment
- Rate Limiting – Same limits apply to MCP
- Test Numbers – Containers for testing
- Webhooks – Real-time updates (use with MCP for best results)