Cascabel Ship-it
by Derwinruiz
README.md
# Cascabel Ship-it: MCP shipping connector for Claude and ChatGPT
> ⚠️ **DEMO ONLY, NOT A REAL SHIPPING SERVICE.** Every price, carrier, duty figure, QR code and tracking event is simulated. No labels are bought, nothing is shipped and no money moves. **Do not enter real personal data** (names, addresses, phone numbers) in the public demo. Partner names show who *would* handle each leg; they are examples, not endorsements or partnerships.
Ship something by talking to your AI assistant: *"Ship these sneakers to Ana in Aruba."* The connector works out the item, route and landed cost (shipping + duty + tax), asks only for what's missing, and hands the user a one-tap checkout. Then it tracks the parcel and owns any problem.
## Status
- **v0.5.0-mock**, phase 1 of the build plan. All bugs in the fix plan are fixed, and phase A of the global plan (any country) is done.
- Known bugs and their fix plan: [`docs/BUGFIX-PLAN.md`](docs/BUGFIX-PLAN.md).
- Plan to ship between any two countries: [`docs/GLOBAL-SHIPPING-PLAN.md`](docs/GLOBAL-SHIPPING-PLAN.md). The demo quotes between any two countries (ISO codes), in the sender's local currency. Detailed simulated partners (postal, air, drop-off points) exist for NL, DE, FR, ES, BE, IT, GB, US, CA and AW; every other lane gets a simulated worldwide express quote. Sanctioned destinations are refused. Country data lives in [`src/data/countries.ts`](src/data/countries.ts); demo exchange rates are illustrative, not live.
## How it works
- **MCP endpoint (demo):** `https://cascabel-ship-mcp.cascabel-loi.workers.dev/mcp` (Streamable HTTP, no auth)
- **Tools:** `create_shipment_draft`, `get_quotes`, `update_shipment`, `create_booking`, `pay_in_chat`, `get_shipment_status`, `report_problem`
- **Web pages:** `/c/<draft_id>?k=<key>` checkout → confirmation with drop-off QR or pickup window · `/t/<draft_id>?k=<key>` tracking. Each shipment has secret link keys; a shipment is only visible to the chat session that created it.
- **Asks only:** sender name + address, recipient name + delivery address (when missing); a map pin works where addresses have no house number. Recipient email or phone is optional. No sign-in.
- **Rule:** nothing is paid or booked until a person confirms, in the chat's own Yes/No prompt or with one tap on the checkout page.
### Try it in Claude
Settings → Connectors → Add custom connector → paste the MCP URL.
## Develop
Runs on Cloudflare Workers + Durable Objects (Agents SDK `McpAgent`).
```sh
npm install
npm run dev # local server via wrangler
npm run typecheck
npm run deploy # deploys to your own Cloudflare account
```
## Contributing
Issues and pull requests are welcome, especially for anything in `docs/BUGFIX-PLAN.md` or country coverage in `docs/GLOBAL-SHIPPING-PLAN.md`. Please report security problems privately via GitHub's "Report a vulnerability" rather than in a public issue.
## License
[MIT](LICENSE)
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues