{
  "markdown": "<p align=\"center\">\n  <img src=\"https://smklog.com/assets/icon-192.png\" width=\"88\" alt=\"SMKlog\">\n</p>\n\n<h1 align=\"center\">SMKlog Parcel Shipping Rates — MCP Server</h1>\n\n<p align=\"center\">\n  Live USPS, UPS, FedEx and DHL Express rates for a parcel sent from the US &mdash; domestic, or to Canada, the UK, Germany or Australia &mdash; described in plain words.<br>\n  No scale. No account. No API key.\n</p>\n\n<p align=\"center\">\n  <code>https://quote-api.smklog.com/mcp</code> · streamable-http · MCP 2026-07-28, 2025-06-18, 2025-03-26\n</p>\n\n<p align=\"center\">\n  <a href=\"https://glama.ai/mcp/servers/smklog/parcel-shipping-rates-mcp\"><img src=\"https://glama.ai/mcp/servers/smklog/parcel-shipping-rates-mcp/badges/score.svg\" alt=\"Glama score\"></a>\n  <a href=\"https://github.com/smklog/parcel-shipping-rates-mcp/actions/workflows/test.yml\"><img src=\"https://github.com/smklog/parcel-shipping-rates-mcp/actions/workflows/test.yml/badge.svg\" alt=\"test\"></a>\n  <a href=\"https://smithery.ai/servers/smklog/parcel-shipping-rates\"><img src=\"https://img.shields.io/badge/Smithery-smklog%2Fparcel--shipping--rates-a855f7\" alt=\"Listed on Smithery\"></a>\n  <a href=\"https://registry.modelcontextprotocol.io/v0/servers?search=smklog\"><img src=\"https://img.shields.io/badge/MCP%20registry-com.smklog%2Fparcel--shipping--rates-1f6feb\" alt=\"In the official MCP registry\"></a>\n  <a href=\"https://github.com/smklog/parcel-shipping-rates-mcp/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"MIT license\"></a>\n</p>\n\n---\n\nMost shipping APIs want a box: length, width, height, weight. People don't have\nthat — they have a thing on the table and a ZIP code to send it to. This server\ntakes the thing.\n\nDescribe **\"a full-size acoustic guitar in its hard case\"** and it estimates the\npacked carton, prices it live across three carriers, and hands back services you\ncan actually buy — with the checkout total and the carrier's own cost side by\nside, so you can always show a person both numbers.\n\n## What you can ask your assistant\n\n- *\"How much to ship a 12 lb box from 07922 to 90011?\"*\n- *\"What would it cost to send a full-size acoustic guitar in a hard case from New Jersey to Los Angeles?\"*\n- *\"Compare USPS, UPS and FedEx for a 5 lb box, Newark to Chicago — which is cheapest and which is fastest?\"*\n- *\"Price a 24 × 18 × 12 in box at 22 lb going to 33101, then give me a link to buy the label.\"*\n- *\"Where is my package? Tracking 9400111899561234567890.\"*\n- *\"Did they pay for that label yet? Here is the session id you gave me.\"*\n- *\"What has a 5 lb box to Denver cost over the last few months?\"*\n- *\"I have a pallet of ceramic tile going from Hoboken to Miami — can you get me a quote?\"*\n\nThat last one is not a parcel, and the server says so rather than guessing: it\nreturns a task handle, a person prices the freight, and the answer comes back\nwhen you poll it.\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| **`get_parcel_quote`** | Live rates for one parcel from a US origin, domestic or to Canada, the UK, Germany or Australia, across USPS, UPS and FedEx, plus DHL Express to Germany and Australia. Plain-words description → estimated packed box; or pass exact dimensions and weight to skip the estimate. Returns up to five purchasable services with the checkout total (SMKlog fee inside), the carrier's counter price beside it where one is published, and the delivery window. |\n| **`create_checkout_link`** | Prices the shipment and returns a payment session: the amount, a handoff URL that opens the SMKlog checkout prefilled with this shipment, and a `session_id`. The human confirms the contents certification and the carrier-adjustment consent there and pays on Stripe. |\n| **`get_checkout_status`** | Where a payment session stands: `awaiting_checkout`, `checkout_started`, `paid`, `label_ready` (with the tracking number), `delivered` or `refunded`. Read from the order record, so it costs no carrier call and never carries names, addresses or emails. Sessions answer for 30 days. |\n| **`track_parcel`** | Delivery status, scan events and the carrier's estimated delivery date for a shipment whose label was bought on smklog.com. Not a universal tracker for arbitrary numbers. |\n| **`get_price_index`** | The monthly SMKlog parcel price index: six common boxes (1–20 lb) from Newark, NJ to five US cities, repriced through the same live pipeline that prices real shipments. Reading it spends no quote allowance. |\n\n## Things worth knowing before you wire it in\n\n**A quote is a real carrier call and costs real money to produce.** Call\n`get_parcel_quote` once per shipment, not once per variation you are curious\nabout. The server is rate limited per client and will say so plainly rather than\nsilently degrading.\n\n**Origin is the United States.** Domestic lanes and US-origin exports. A lane\nthat starts somewhere else is out of scope, and the server will tell you instead\nof inventing a number.\n\n**Prices are checkout totals with the SMKlog fee inside.** The fee is itemized\nonly on the checkout receipt; what comes back beside a rate is the carrier's own\ncounter price for the same parcel, where one is published — what the person\nwould pay walking into the carrier's counter instead. The total is what they pay.\n\n**Oversized, palletized and multi-piece freight is priced by a person.** Declare\nthe `io.modelcontextprotocol/tasks` extension and `get_parcel_quote` returns a\ntask handle for those; poll it with `tasks/get`.\n\n**Nothing here buys a label on its own.** `create_checkout_link` produces a URL;\na human completes the purchase, certifies the contents and consents to carrier\nadjustments. An agent cannot spend someone's money through this server.\n\n## Connect\n\n```json\n{\n  \"mcpServers\": {\n    \"smklog\": {\n      \"type\": \"http\",\n      \"url\": \"https://quote-api.smklog.com/mcp\"\n    }\n  }\n}\n```\n\nNo key, no OAuth, no signup. Quoting, tracking and the price index are all open.\n\n### Over stdio\n\nFor a client that only launches local commands — Claude Desktop, Cursor, an\nMCP inspector, a Docker-based runner — this repository is a thin stdio bridge\nto the same endpoint. No dependencies, no build step, no keys:\n\n```json\n{\n  \"mcpServers\": {\n    \"smklog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"github:smklog/parcel-shipping-rates-mcp\"]\n    }\n  }\n}\n```\n\nOr with Docker:\n\n```sh\ndocker build -t smklog-parcel-shipping-rates-mcp https://github.com/smklog/parcel-shipping-rates-mcp.git\ndocker run -i --rm smklog-parcel-shipping-rates-mcp\n```\n\nThe bridge forwards every JSON-RPC message to `https://quote-api.smklog.com/mcp`\nand writes the answer back, one JSON object per line. It also mirrors the\n2026-07-28 routing envelope into HTTP headers (`MCP-Protocol-Version`,\n`Mcp-Method`, `Mcp-Name`) and, on the legacy path, sends the version\n`initialize` negotiated, so both protocol eras work through it. If the endpoint cannot be\nreached it still answers `initialize` and `tools/list` from the snapshot shipped\nhere (`initialize.json`, `tools.json`), so you can see what is offered; tool\ncalls need the network. `npm test` drives it end to end.\n\nAlso installable from [Smithery](https://smithery.ai/servers/smklog/parcel-shipping-rates)\nand listed in the [official MCP registry](https://registry.modelcontextprotocol.io/v0/servers?search=smklog)\nas `com.smklog/parcel-shipping-rates`.\n\nOther ways in, if MCP is not your transport:\n[OpenAPI](https://quote-api.smklog.com/openapi.json) ·\n[A2A agent card](https://quote-api.smklog.com/.well-known/agent-card.json) ·\n[API docs](https://smklog.com/api) ·\n[llms.txt](https://smklog.com/llms.txt)\n\n## Who runs it\n\n[SMKlog](https://smklog.com) sells US shipping labels. The same pricing pipeline\nthat answers this server answers the website — there is no separate \"API rate\".\nQuestions, bugs and odd results: **info@smklog.com**.\n",
  "bytes": 7804,
  "sha": "231c38877c1786a63e2e2e1f800bcc78aa235c8e08b96bd3311171821b01af84",
  "repo_slug": "smklog/parcel-shipping-rates-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_smklog_parcel_shipping_rates_25031ea4/readme"
}