Model Context Protocol server for Terminal49's Container Tracking API
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"terminal49": {
"command": "npx",
"args": ["-y", "@terminal49/mcp"],
"env": {
"T49_API_TOKEN": "your_token_here"
}
}
}
}Get your API token: https://app.terminal49.com/developers/api-keys
- Click "Deploy" button above
- Add environment variable:
T49_API_TOKEN=your_token_here - Your MCP server will be at:
https://your-deployment.vercel.app/api/mcp
Track container TCLU1234567 on Maersk
Check demurrage for container MSCU9876543
Analyze delays for booking MAEU12345678
Search for bill of lading 123456789
| Tool | Description |
|---|---|
search_container |
Find containers by number, BL, booking, or reference |
track_container |
Start tracking a container with carrier code |
get_container |
Get detailed container information |
get_shipment_details |
Get complete shipment routing and containers |
get_container_transport_events |
Get full event timeline |
get_container_route |
Get vessel routing with ETAs |
get_supported_shipping_lines |
List 40+ supported carriers |
list_containers |
Browse all tracked containers |
list_shipments |
Browse all shipments |
list_tracking_requests |
Browse tracking requests |
Pre-built workflows for common tasks:
- track-shipment - Quick container tracking
- check-demurrage - Demurrage/detention analysis
- analyze-delays - Journey delay identification
Full docs: packages/mcp/README.md
Topics:
- Installation & Setup
- Tool Reference
- Local Development
- API Examples
- Deployment Guide
/
├── api/mcp.ts # Vercel HTTP endpoint
├── packages/mcp/ # MCP server package
│ ├── src/
│ │ ├── tools/ # 10 MCP tools
│ │ ├── prompts/ # 3 workflow prompts
│ │ └── resources/ # Dynamic resources
│ └── README.md # Full documentation
The MCP package consumes published @terminal49/sdk by default.
Stack:
- Model Context Protocol SDK v1.29.0
- Terminal49 TypeScript SDK v0.2.0
- Sentry MCP Monitoring via
@sentry/nodev10.55.0 whenSENTRY_DSNis configured - TypeScript
- Vercel Serverless Functions
- Terminal49 JSON:API
- Node.js 24.x
- Terminal49 API token
# Install dependencies
npm install
cd packages/mcp
T49_SDK_SOURCE=published npm run sdk:setup
# Optional: switch to local SDK build for development
# T49_SDK_SOURCE=local npm run sdk:setup
# Run MCP server locally (stdio)
npm run dev
# Run tests
npm test
# Build
npm run buildnpx @modelcontextprotocol/inspector packages/mcp/dist/index.jsSupported Endpoints:
- ✅ Container Search
- ✅ Container Tracking
- ✅ Shipment Details
- ✅ Transport Events
- ✅ Container Routes
- ✅ Shipping Lines
- ✅ Tracking Requests
Features:
- Type-safe OpenAPI client
- JSON:API deserialization
- Automatic retries
- Token authentication
- Flexible data loading
Automatic:
Push to main branch → auto-deploys
Manual:
vercel deploy --prodEnvironment Variables:
T49_API_TOKEN- Your Terminal49 API token (required)T49_API_BASE_URL- Optional (defaults to https://api.terminal49.com)SENTRY_DSN- Optional; enables Sentry MCP MonitoringSENTRY_TRACES_SAMPLE_RATE- Optional trace sample rate (1.0by default)SENTRY_MCP_RECORD_INPUTS/SENTRY_MCP_RECORD_OUTPUTS- Optional; disabled by default to avoid storing shipment/customer payloads in Sentry
See Quick Start above.
MIT
- Issues: GitHub Issues
- Email: support@terminal49.com
- Slack: Terminal49 Community
Built with 🍑 by Terminal49