Source

Meridian Orders MCP

A read-only MCP server that lets Claude look up orders, customers and statuses, with a four-layer write guard and a shared rate limiter on Cloudflare Workers. The company and its order system are fictional.

  • TypeScript
  • Model Context Protocol
  • Cloudflare Workers
Repository
mattrguerra/meridian-orders-mcp
Branch
main
Files
41 files · 9 folders
Languages
TypeScript 78% · JavaScript 22%
Visibility
Private on GitHub, published here in full

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=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

Setup

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