README.md
Language Markdown1.9 KB47 lines
# Meridian Orders MCPA read-only [Model Context Protocol](https://modelcontextprotocol.io) serverthat lets Claude look up orders, customers, statuses and split shipments inMeridian Display Co.'s order system, Plinth.**The company is fictional.** This server was built for, and used at, a realprint and display shop. Here it serves **Meridian Display Co.**, the inventedcompany behind[meridian-ops-board](https://github.com/mattrguerra/meridian-ops-board) and[meridian-crm-mcp](https://github.com/mattrguerra/meridian-crm-mcp). Plinth,its API, its endpoint, method and field names, and every number in itsreference 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 isone endpoint where a query parameter picks the action, so a read and a writediffer by one string. Four independent layers make a write impossible todispatch, 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 10seconds across everyone. A pure scheduling function paces requests rather thanfailing them, backed by one Durable Object on Workers so the budget holdsacross every session.- **Two runtimes, one core.** The same tools run over stdio for local use andover HTTP on Cloudflare Workers for a shared, hosted server.- **A live-request gate.** Nothing reaches production until`PLINTH_ALLOW_LIVE_REQUESTS=true` and a key are both set.## Layout```mcp-server/ the server (see its README)docs/PLINTH-API.md the API reference the server is written against```## SetupThere is no `package.json` at the repo root; the server manages its owndependencies.```cd mcp-servernpm installnpm run dev # local stdio server```