Meridian Orders MCP
A read-only Model Context Protocol server that lets Claude look up orders, customers, statuses and split shipments in Meridian Display Co.'s order system, Plinth.
The company is fictional. This server was built for, and used at, a real print and display shop. Here it serves Meridian Display Co., the invented company behind meridian-ops-board and meridian-crm-mcp. Plinth, its API, its endpoint, method and field names, and every number in its reference are invented too; the engineering is the real server's.
What is worth reading
- A write-prevention failsafe (
mcp-server/src/lib/guard.ts). The API is one endpoint where a query parameter picks the action, so a read and a write differ by one string. Four independent layers make a write impossible to dispatch, even through the passthrough tools or from plain JavaScript. - A shared rate limiter (
mcp-server/src/lib/rateLimit.ts,mcp-server/src/rateLimiterDO.ts). The API allows 10 requests per 10 seconds across everyone. A pure scheduling function paces requests rather than failing them, backed by one Durable Object on Workers so the budget holds across every session. - Two runtimes, one core. The same tools run over stdio for local use and over HTTP on Cloudflare Workers for a shared, hosted server.
- A live-request gate. Nothing reaches production until
PLINTH_ALLOW_LIVE_REQUESTS=trueand a key are both set.
Layout
mcp-server/ the server (see its README)
docs/PLINTH-API.md the API reference the server is written againstSetup
There is no package.json at the repo root; the server manages its own
dependencies.
cd mcp-server
npm install
npm run dev # local stdio server