MCP server
Connect your agent to the migration itself.
Graftport runs an MCP server. Point Claude Code, Cursor, Windsurf or Copilot at it and the source schema, the Shopify target schema, live sample rows and the mapping history all become tools the agent can call. It reads your client's real data instead of guessing at field names, and every costly step still waits for your approval.
MCP server, first-class context
Source schema, Shopify target schema, sample rows and mapping history are exposed as MCP tools. The agent reads your actual data instead of guessing at field names.
Requirements in, mappings out
Forward the client's brief verbatim. The agent drafts an expression per field, evaluates each one against real rows, and flags what it could not resolve.
Agent writes, you approve
Connect, map and dry-run are cheap and reversible. Load is gated on a human confirm, every time.
Versioned, and in your repo
Whatever the agent publishes becomes a version you can read, diff and roll back. Mappings live as files, so you review them in a pull request like any other client deliverable.
Prefer to script it yourself? The same operations are available in the Graftport CLI, which is what the MCP server runs underneath.
AI migration FAQ
The questions agencies ask first.
Something not covered? hello@graftport.com reaches a person, not a queue.
Which AI coding agents can drive Graftport?
Anything that speaks MCP or has a shell tool. The MCP server exposes the source schema, sample rows, mappings and runs as tools; the CLI exposes the same actions as JSON-on-stdout commands. Claude Code, Cursor, Windsurf, GitHub Copilot Workspace, Aider, and any custom agent all work.
What can the agent actually do without me approving?
The agent can read every source row, list and inspect mappings, run validation, run dry-runs against a sandbox, and publish new mapping versions. It cannot push a real load, cancel a run, or retry a record on its own — those are explicitly human-gated and exit with a distinct code if the gate is declined.
Will the agent rack up Shopify API bills overnight?
No. Loading to Shopify costs platform credits and Shopify API calls per record, so every cost-incurring command blocks for an interactive yes/no with a live cost estimate printed to stderr. The bundled skill forbids the agent from passing --yes on gated commands. The agent composes the command and stops; you press enter.
How does the skill get into my agent?
Run graftport skill install once per machine. It auto-detects which agents are present and writes the right file: Claude Code and Claude Desktop get ~/.claude/skills/graftport-migration-engineer/, Windsurf gets a block merged into ~/.codeium/windsurf/memories/global_rules.md. For Cursor User Rules, Copilot per-repo instructions, or AGENTS.md, run graftport skill > skill.md and paste it in by hand.
Is the AI rewriting my source data?
No. Source-side credentials are read-only and Graftport never writes back to your source store, regardless of who is driving. The agent edits JSONata mapping expressions only, and every publish is a new immutable version you can roll back with one click.
Does this replace the wizard in the app?
No. The wizard at app.graftport.com is still where you create the migration, connect the source and destination, and choose resource templates. The agent takes over once the migration exists — investigating source data, tuning JSONata mappings, triaging load failures, and judging when the migration is ready.
What about per-row data leaving the platform?
Whatever your coding agent's privacy posture is, that is the posture for the source row samples it sees while drafting a mapping. The tools stream samples to your agent; your agent decides what to send to its model. Graftport itself sends rows only to your Graftport tenant.