April 9, 2026·7 min·Axint Team
Axint + Claude Code: the AI-native App Intents workflow.
How the MCP integration with Claude Code enables agents to scaffold, compile, and validate App Intents without touching Xcode.
The [MCP server](/blog/axint-mcp-one-click-install) exposes five tools. Claude Code calls them in sequence to scaffold, compile, and validate App Intents. Here's what the actual workflow looks like.
The loop
You ask Claude Code: "Create an App Intent for searching notes by tag."
Claude Code does this:
1. Calls axint_scaffold — creates a project with tsconfig.json and a starter file 2. Drafts a defineIntent() in intents.ts 3. Calls axint_validate — checks for errors before generating code 4. Calls axint_compile — emits Swift + plist + entitlements 5. Shows you the generated files for review
If validation fails at step 3, Claude Code reads the error (which includes the source location and a fix suggestion), edits the definition, and retries. The [validator](/blog/validator-architecture) reports errors in terms of the TypeScript source, so Claude Code knows exactly what to change.
Real conversation
``` You: Create a search intent that lets Siri search notes by tag and date range.
Claude Code:
Found existing intents.ts, adding SearchNotesByTag...
Validating... ✓ No errors
Compiling... ✓ Generated SearchNotesByTag.swift
>
Parameters: tag (String), startDate (Date), endDate (Date)
[Shows generated Swift]
You: Add a limit parameter for max results, default 10.
Claude Code:
Updating definition...
Validating... ✓
Recompiling... ✓ Added limit: Int (default: 10)
`
The whole exchange takes under a minute. No Xcode, no Swift knowledge, no context switching.
The tools in detail
**axint_scaffold** creates a clean project:
typescript await mcp.callTool("axint_scaffold", { name: "notes-intents", language: "typescript", includeTests: true, })
**axint_compile** does the heavy lifting:
typescript await mcp.callTool("axint_compile", { source: "intents.ts", output: "Generated/", format: "swift", })
**axint_validate** gives structured feedback:
typescript await mcp.callTool("axint_validate", { source: "intents.ts", json: true, })
Returns JSON with error codes, source locations, and suggestions — structured enough for Claude Code to act on programmatically.
**axint_list_templates** and **axint_template** let the agent browse starter templates and use them as scaffolding for common patterns.
What agents can't do yet
The MCP server runs locally — you need the Axint CLI installed. Axint Cloud (remote compilation without a Mac) is coming and will remove this requirement.
Agents also can't test intents yet. They can generate and validate, but can't invoke Siri or Shortcuts to verify the intent works end-to-end. That's the next frontier — and it'll probably require Apple to expose a testing API, not something we can solve alone.
For now, the loop is: agent writes, Axint validates and compiles, human reviews and tests. Good enough to be genuinely useful.