petal-components-mcp
An MCP server that exposes petal_components — the Shadcn-style component library for Phoenix LiveView — to AI coding assistants (Claude Code, Cursor, Windsurf, etc).
Without this, AI agents writing HEEx invent raw Tailwind soup and never reach for pc_* components. With it, the AI gets the full schema for every component on demand — attrs, slots, defaults, allowed values, usage examples — and writes idiomatic petal_components markup by default.
Install (Claude Code)
Then in any Phoenix project, ask the AI to build something. It'll call list_components and get_component to ground its output in real petal_components schemas.
Available tools
list_components — every component in the library with a one-line summary
get_component — full schema (attrs, slots, defaults, values, docs) + HEEx usage example
Coming soon: search_components (natural-language match) and generate_pattern (composed blocks like form-in-card, modal-with-form, dashboard skeletons).
How it works
The MCP server is a thin TypeScript service that bundles a JSON snapshot of every component in petal_components. The JSON is generated by a Mix task that introspects Phoenix.Component.__components__/0 on every loaded PetalComponents.* module — so the schemas are always in sync with the actual library, no manual duplication.
Running locally
The extraction is self-contained — scripts/extract/ is a tiny Mix project that pulls petal_components from Hex, introspects every Phoenix.Component.__components__/0, and writes src/schemas.json. No need for a local petal_components clone.
To use a local server with Claude Code:
Deploy (Fly.io)
The MCP server is hosted at mcp.petal.build on Fly.io as a standalone app.
First-time setup
After step 3, Fly prints the DNS records you need. Add a CNAME at the petal.build DNS provider:
Then fly certs check mcp.petal.build will go green once propagation hits.
Subsequent deploys
Syncing after a new petal_components release on Hex
The /healthz endpoint reports the bundled version, so you can confirm a deploy went out:
Background
This is the artifact for bet 002 — testing whether AI coding assistants become the dominant install/discovery channel for Phoenix UI tooling. See the bet for hypothesis, metrics, and kill criteria.
License
MIT.