Skip to main content
This guide covers everything you need to connect an MCP client to Terminal49’s container tracking data.
Just want to get started fast? See the per-tool setup guides for Claude, Claude Code, ChatGPT, Cursor, Microsoft Copilot, and VS Code, or the MCP Overview for a 5-minute setup.

Prerequisites

Before you begin, make sure you have:

Terminal49 account

You sign in with your Terminal49 credentials during the OAuth flow — no API key needed

API key (optional)

Only needed for clients without OAuth support or the local stdio server — create one in the developer portal

Node.js 24.x

Required if running the MCP server locally

MCP client

Claude, ChatGPT, Cursor, Microsoft Copilot, VS Code, or any MCP-compatible client
Technical Details:
  • MCP SDK: @modelcontextprotocol/sdk ^1.29.0
  • TypeScript SDK: @terminal49/sdk 0.3.0
  • Sentry MCP Monitoring: @sentry/node ^10.55.0 (optional)
  • Runtime: Node.js 24.x

Transports

Authentication: OAuth 2.1 (recommended) or API key.
  • OAuth 2.1 – no API key needed. Add https://mcp.terminal49.com to your client; it discovers the authorization server (https://auth.terminal49.com) via protected resource metadata, registers itself with Dynamic Client Registration, and opens your browser so you can sign in with your Terminal49 credentials. Tokens are stored and refreshed by the client.
  • API key – for clients that can’t run a browser OAuth flow, pass Authorization: Token YOUR_API_KEY. Use the Token scheme for API keys; the Bearer scheme is used for OAuth access tokens, which OAuth clients obtain automatically.
Only the local stdio server reads the T49_API_TOKEN environment variable instead of a header.
For hosted production usage, connect to https://mcp.terminal49.com — the root origin is the canonical connector URL and OAuth resource identifier.

Observability

The MCP server supports optional Sentry MCP Monitoring. Set SENTRY_DSN to capture MCP server connections, tool executions, resource access, prompts, performance spans, and errors in Sentry.
SENTRY_MCP_RECORD_INPUTS and SENTRY_MCP_RECORD_OUTPUTS are disabled by default because MCP payloads can include shipment identifiers, references, and customer data. Enable them only if your Sentry project is approved for that data.

Configure your MCP client

Most clients connect with just the server URL and a browser sign-in — no API key. Follow the guide for your tool: The manual configurations below use an API key instead. Use them for clients or environments where the browser OAuth flow isn’t practical.
claude.ai and Claude Desktop cannot send a static API-key header — they always authenticate through the OAuth connector flow. Follow the Claude setup guide to connect them. For API-key-based local development in Claude Desktop, use the local stdio server below instead.

Cursor IDE (manual, API key)

Add to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):

Local stdio (development)

For local development without a hosted server:
Build the MCP server first: cd packages/mcp && npm install && T49_SDK_SOURCE=published npm run sdk:setup && npm run build
Use published SDK by default:
Use local SDK build during development:

Test your setup

Once configured, verify everything works:
1

Restart your MCP client

Close and reopen Claude Desktop or Cursor to load the new config.
2

Ask Claude to list tools

“List the tools available in the Terminal49 MCP server.”
Claude should respond with a list of 10 tools including search_container, track_container, and list tools.
3

Search for a test container

“Using the Terminal49 MCP server, search for container TCLU1234567 and summarize its status.”
If configured correctly, Claude will call search_container and return container details.
4

Try a multi-step query

“Using Terminal49, find container CAIU1234567, check its demurrage risk, and tell me if I need to pick it up urgently.”
Claude should chain multiple tools together to answer.
Need test container numbers? See Test Numbers for containers you can use during development.

Troubleshooting

If using the hosted server, check your Terminal49 dashboard for API logs.If running locally:

MCP capabilities

Tools

Prompts

Resources

For detailed examples and response formats, see MCP Overview → Tools Reference.

SDK usage

The TypeScript SDK provides the same capabilities as MCP tools, plus additional APIs not yet exposed via MCP.

Response formats

Raw format:
Mapped format:

Deployment

Vercel (production)

The vercel.json configures the MCP server (excerpt):

Environment variables


Testing locally