New on the blog: Wheels + Claude: Building a Featu...
# wheels-dev
p
New on the blog: Wheels + Claude: Building a Feature via the stdio MCP 🔧 There are two ways to make an AI assistant useful inside a framework. The lazy one is a chat sidecar that generates snippets you paste. The good one is teaching the assistant the framework's own vocabulary -- and that's what Wheels 4.0 ships. The model doesn't write code; it decides which CLI command to run, and the framework generates everything exactly the way it always has. The whole MCP server is just
cli/lucli/Module.cfc
-- its public functions become tools by reflection. No port, no socket, no running dev server. The AI editor spawns
wheels mcp wheels
and speaks JSON-RPC 2.0 over stdio. What the post covers: • The reflection model: the CLI is the MCP server -- no second surface to drift • Setup with one
.mcp.json
snippet (no
wheels mcp setup
-- that command doesn't exist;
wheels mcp
just prints the config and writes nothing) • The 18-tool surface and exactly why
console
, `start`/`stop`,
new
, and friends are excluded • A worked example: shipping a commenting feature end-to-end through Claude Code -- generate, migrate, test • The deprecated
/wheels/mcp
HTTP endpoint and why stdio replaced it • A bit of template drift we found while writing the post (the OpenCode template still pointed at the old HTTP endpoint with a literal
{PORT}
) The tools advertise bare names --
generate
,
migrate
,
test
,
destroy
. Clients namespace them under the server, so Claude Code shows them as
mcp__wheels__generate
. <https://blog.wheels.dev/posts/wheels-claude-stdio-mcp>