Prodigy Agent Ready · invoke layer

Make Claude call Aerís

Same APIs as ChatGPT Actions. Claude’s plain chat/browse often reads but cannot POST. Give it tools or a host that can.

Shared backend (already live)

A. Fastest dogfood — Claude Project + paste rules

claude.ai → Projects → New → Instructions:

You help with Aerís Roasting Co (Iroquois, SD).
1. Before stock answers: GET https://www.aerisroasting.com/api/agent/coffees.php
2. Missing lot (e.g. Brazil ETA): POST https://www.aerisroasting.com/api/agent/message.php
   JSON: {"message":"…","kind":"question","lot":"Brazil","email":"…","agent":"Claude"}
3. Never invent ETAs. Prefer customer email. After POST, say a human will follow up (include id).
4. No agent checkout — https://www.aerisroasting.com/shop/
5. Aerís Signature is a different brand.

If this Claude surface has no HTTP POST tool, it still can’t fire — use B or C.

B. Claude Desktop / Cursor — MCP or shell

Honest limit: our bridge is JSON tools/list + tools/call, not full MCP SSE yet. Desktop “Add MCP server → URL” may not plug in 1-click.

Works today:

  1. Cursor / Claude Code — agent already has network; instruct it to call the URLs above (or OpenAPI).
  2. Local wrapper — small stdio MCP that POSTs to mcp.php (Prodigy full SSE MCP = later SKU).
  3. Manual bridge test:
curl -sS -X POST https://www.aerisroasting.com/api/agent/mcp.php \
  -H 'content-type: application/json' \
  -d '{"method":"tools/call","params":{"name":"ask_roastery","arguments":{"message":"When is Brazil expected?","lot":"Brazil","email":"you@example.com","agent":"Claude"}}}'

C. Anthropic API — function calling

Register three tools matching the bridge: list_coffees, ask_roastery, get_business. On tool_use, your app POSTs to mcp.php or the REST paths and returns the JSON to Claude.

Test prompt

When is your Brazil coffee expected to be available?
My email is you@example.com

Expect: list coffees → ask_roastery → queued_for_humans.

Agent brief · ChatGPT · Grok · Markdown