Connect a client

Orderable speaks MCP over stdio for local clients and Streamable HTTP for hosted ones.

Claude Desktop

Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "orderable": {
      "command": "node",
      "args": ["/absolute/path/to/OrderAble/dist/cli.js", "serve", "--stdio"],
      "env": {
        "ORDERABLE_ADAPTER": "file",
        "ORDERABLE_MENU": "/absolute/path/to/menu.yaml",
        "ORDERABLE_DB": "/absolute/path/to/orderable.db"
      }
    }
  }
}

Claude Code

claude mcp add orderable -e ORDERABLE_ADAPTER=mock -- node /absolute/path/to/OrderAble/dist/cli.js serve --stdio

Over HTTP

ORDERABLE_TOKEN=change-me node dist/cli.js serve --http --port 3333
claude mcp add --transport http orderable http://127.0.0.1:3333/mcp \
  --header "Authorization: Bearer change-me"

HTTP always needs a token. Without ORDERABLE_TOKEN one is generated and printed. GET /health reports version, adapter and dry-run state.

URL-only clients

Some clients, like connector settings screens, take only a URL. Put the token in the path: https://your-host/mcp/<token>. Treat that URL like a password.

Try the public demo

claude mcp add --transport http orderable-demo https://orderable-mcp.vercel.app/api/mcp \
  --header "Authorization: Bearer orderable-demo"

Or the URL form: https://orderable-mcp.vercel.app/api/mcp/orderable-demo. Fictional businesses, DRY_RUN on.

Call a tool from here

This sends real requests to the demo endpoint.

Nearest first, open now, and whether each delivers to you.
POST /api/mcp · tools/call · Streamable HTTP
Endpointhttps://your-deployment.vercel.app/api/mcp
Claude Codeclaude mcp add --transport http orderable-demo https://your-deployment.vercel.app/api/mcp --header "Authorization: Bearer orderable-demo"

Environment

ORDERABLE_ADAPTERfile (default), mock, or square (experimental)
ORDERABLE_MENUPath to menu.yaml
ORDERABLE_DBSQLite file for quotes, orders and idempotency keys
DRY_RUNfalse to actually send orders to the merchant
ORDERABLE_TOKENBearer token for HTTP