AI Assistant & MCP
Connecting ShipWave to Claude Desktop and Cursor
Use ShipWave as an MCP server so your local AI agent can run shipping operations directly.
What is MCP?
The Model Context Protocol (MCP) is an open standard that lets AI agents talk to external tools. ShipWave ships a full MCP server, so any MCP-compatible client — Claude Desktop, Cursor, Cline, Zed, and others — can use ShipWave's tools the same way Ask ShipWave does. This means you can ask Claude in your editor to "create a return label for order #12345" and it will hit the same audited endpoints.
Two ways to connect
ShipWave's MCP server runs over HTTP with Server-Sent Events at
If your client speaks HTTP MCP natively — Cursor, Claude.ai custom integrations, and most current clients do — point it at that URL with an
If your client only speaks stdio, as Claude Desktop does, you need a small local bridge that forwards JSON-RPC frames over HTTPS. ShipWave ships one at
https://shipwave.app/api/mcp/sse.If your client speaks HTTP MCP natively — Cursor, Claude.ai custom integrations, and most current clients do — point it at that URL with an
Authorization: Bearer header and you are done. There is nothing to install.If your client only speaks stdio, as Claude Desktop does, you need a small local bridge that forwards JSON-RPC frames over HTTPS. ShipWave ships one at
mcp-servers/shipwave-stdio in the ShipWave repository, published under the package name @shipwave/mcp-stdio. It is not on the public npm registry yet, so install it from source rather than with npx: clone or download the directory, run npm install and then npm link inside it, which puts a shipwave-mcp binary on your PATH. If you would like it on npm, tell support and we will prioritise it.Create a scoped API key
Go to Admin → Settings → API Keys and click Create key. Give it a descriptive name (e.g. "Claude Desktop on Eric's laptop") and pick scopes. For a typical agent setup,
read:orders, read:shipments, read:inventory, write:labels, and write:returns cover the common operations without granting full write access. See API scopes explained for the full list.Claude Desktop config
Claude Desktop uses the stdio transport, so install the bridge first as described above. Then open Claude Desktop's settings file (
You can also put the key in
~/Library/Application Support/Claude/claude_desktop_config.json on macOS) and add:{ "mcpServers": { "shipwave": { "command": "shipwave-mcp", "env": { "SHIPWAVE_API_KEY": "sw_live_..." } } } }You can also put the key in
~/.config/shipwave/mcp.env as SHIPWAVE_API_KEY=sw_live_... instead of inlining it. Restart Claude Desktop. You should see a hammer icon in the chat input indicating MCP tools are loaded. Type "what can ShipWave do?" to see the tool list.Cursor config
Cursor speaks HTTP and SSE natively, so it needs no local bridge at all. Open Settings → Features → MCP → Add new MCP server and add:
Hit save. Cursor's agent mode can now call ShipWave tools from any chat.
{ "mcpServers": { "shipwave": { "url": "https://shipwave.app/api/mcp/sse", "headers": { "Authorization": "Bearer sw_live_..." } } } }Hit save. Cursor's agent mode can now call ShipWave tools from any chat.
Example prompts
Once connected, try prompts like:
- "Create a return label for order #12345 using the cheapest USPS rate."
- "List all orders shipped to California in the last 7 days that are still in-transit."
- "Void the unused label on shipment SHP-2026-04-1842."
- "Bulk-update the Amazon listing for SKU LEVY-BATTERY-36V to price $129.99."
FAQs
Does the stdio bridge send my API key anywhere besides ShipWave?
No. It has no business logic. It reads JSON-RPC frames from stdin, forwards each one to https://shipwave.app/api/mcp/messages using the key you set in your environment, and writes the response back to stdout. The full source is the file you installed, so you can read it end to end before you run it.
Can I rotate the key without reinstalling?
Yes. Update the env var, or the Authorization header on an HTTP client, in your MCP client config and restart the client. Old keys can be revoked from Admin → Settings → API Keys.
How do I check the connection is working before wiring up a client?
Run the bridge directly and ask it for the tool list: echo the JSON-RPC frame {"jsonrpc":"2.0","id":1,"method":"tools/list"} into it with SHIPWAVE_API_KEY set. It should return a JSON-RPC frame listing every tool your key has scopes for. A 401 means the key is invalid, revoked or expired; a 403 means the key is valid but lacks the scope the tool requires, which you can add in Admin → Settings → API Keys.
Do MCP calls count against my daily AI budget?
They count against the daily budget of the user who owns the API key. Per-tool rate limits also apply — see <a href="/help/ai-budget-and-limits">AI budgets and rate limits</a>.
Is there an HTTP MCP endpoint for hosted agents?
Yes, and it is the recommended path. Point any HTTP-capable MCP client, such as a Claude.ai custom integration or Cursor, at https://shipwave.app/api/mcp/sse with an Authorization: Bearer header carrying your sw_live_ key. Messages post to https://shipwave.app/api/mcp/messages. The same scopes apply, and no local install is needed.
More in AI Assistant & MCP
- Ask ShipWave: the in-dashboard AI assistant
Run natural-language queries against your orders, shipments, returns, and inventory without leaving the dashboard.
- API scopes explained
Lock down what each API key and agent can do with ShipWave's granular scope system.
- The Rule Recommender
Nightly AI analyst that watches your shipping patterns and surfaces automation rule suggestions you can accept in one click.
- AI budgets and rate limits
How daily budgets, per-tool rate limits, and the audit log keep AI usage predictable and safe.