Building Shopigent: what shipping a Shopify MCP app taught me
Shopigent started from a simple frustration: I wanted my own AI agents to run operations on my store — but handing an agent a raw Admin API key felt reckless. So I built the thing I wished existed: curated tools, human confirmation on destructive actions, and a full audit trail.
The three decisions that mattered
1. Curated tools, not API passthrough. It's tempting to expose the whole Admin GraphQL surface and let the agent figure it out. Don't. Agents burn tokens fighting cursors and mutation syntax, and every mistake is your merchant's problem. 51 well-shaped tools beat 500 raw endpoints.
2. The confirmation gate is the product. Every create/edit/delete/refund pauses for human approval in the dashboard. This one feature turns "scary AI access" into something a merchant can actually trust. Safety isn't a checkbox — it's the reason to exist.
3. Stateless confirmation tokens. Signed HMAC tokens instead of server-side pending state means the MCP server scales horizontally with zero shared cache. Boring tech, huge operational win.
What I'd do differently
Start the docs site earlier. I built the product first and the public story later — but reviewers, merchants, and even the agents themselves (via /llms.txt and the JSON content API) need that story to exist from day one.
The meta-lesson
I built Shopigent with AI agents — my own tooling runs through an agent that deploys, tests, and writes docs. Building agent tools while working agent-first is the tightest feedback loop I've found.