Claude Code website builder workflows: the MCP server, or a pulled project
Claude Code can work with Anticode two ways. Add the remote MCP server and it gets the same tools a chat assistant has: projects, quoted builds, changes, previews and publishing. Or pull a project into a folder with the Anticode CLI and let Claude Code edit the spec file like any other code, then push. Pick by whether you want builds or file edits.
Route one: the MCP server
One command registers the server. Claude Code's MCP documentation describes --transport http for remote servers:
claude mcp add --transport http anticode https://anticode.dev/mcp- Then run
/mcpinside Claude Code, pickanticodeand finish the sign-in in your browser. Anticode's consent page lets you approve read and write, or read-only.
Claude Code stores the OAuth tokens and refreshes them itself; Clear authentication in the /mcp menu revokes them. For headless use, such as a script or CI job, make a personal token on anticode.dev/mcp instead (read-only or read-and-write, shown once) and pass it as a header:
The command becomes claude mcp add --transport http anticode https://anticode.dev/mcp --header "Authorization: Bearer <your token>", with your token in place of the angle brackets.
Mind the scope. By default the server is saved for the current project only, in your own ~/.claude.json. With --scope project it goes into .mcp.json at the repository root, which is meant to be committed. Never put a raw token there: Claude Code expands ${VAR} in headers, so write Bearer ${ANTICODE_TOKEN} and keep the value in your environment. Tokens start with ac_mcp_, which makes them easy to find with a secret scanner if one slips into a commit.
What the tools are good for in a terminal
The MCP tools suit work that needs Anticode's servers: running a model build after get_build_quote shows the cost, requesting a change in words, checking analytics, listing form submissions (labelled as untrusted content), and publishing behind the security gate. They can't upload or delete files, delete projects or touch billing. A terminal can't draw the in-chat page preview, so there preview_project comes back as a text summary; open index.html from a pulled folder, or the builder, to look at the page.
Route two: a pulled project and AGENTS.md
If you'd rather Claude Code edit files it can see, use the Anticode CLI, a single Node script with no dependencies:
anticode loginsigns in with a device code you approve in the browser; the CLI never sees your password and stores a token with owner-only permissions.anticode pull "Harbour Bakery"writes a folder withspec.json(the build spec),index.html(the page as it ships, rendered locally with Anticode's own design engine) andanticode.json(which project and version the folder holds).- Ask Claude Code to change
spec.json: reorder sections, rewrite the FAQ, switch the theme. Openindex.htmlto check. anticode pushuploads the spec and re-renders the page. If the project changed in Anticode since you pulled, the push is refused rather than overwriting it.anticode publishpushes and publishes; the server's security gate still decides.
For agents that call the API directly, Anticode publishes /AGENTS.md. It explains the open project format, anticode.json, described by a JSON Schema at /schema/project.v1.json: read with GET /api/projects/{id}/format, edit only what you need, write the whole file back with the version you read, and on 409 version_conflict re-apply the edit to the fresh copy instead of overwriting. Its rules are worth putting in front of Claude Code as they are: keep edits small, never put HTML, scripts or secrets in text fields, and don't publish unless asked.
Which route when
| You want to… | Use |
|---|---|
| Run a model build or a change described in words | MCP server |
| Edit copy, order or theme and review the diff | CLI and spec.json |
| Read submissions or analytics | MCP server |
| Keep project changes in your own Git history | CLI folder |
| Publish | Either; both go through the server's gate |
Whichever you use, an open builder redraws when the project changes and offers an undo, and version history keeps your most recent saves (up to a number set by your plan) to restore.
Limits
- The CLI doesn't build. It edits and publishes; model builds go through the builder or the MCP server.
spec.jsonis capped at 32 KB, and text in it is always escaped, so markup typed into a field shows literally.- Markup changes don't stick. Neither route lets an agent add raw HTML or scripts to a published page.
- Your email must be confirmed before anything publishes.
Troubleshooting
/mcpshows the server as needing authentication- Select it and complete the browser sign-in, or check the header token hasn't been revoked.
- A header token is rejected
- Claude Code doesn't fall back to OAuth when you set
Authorizationyourself. Remove the header to use OAuth, or make a new token. anticode pushreports a version conflict- Save your
spec.json, pull again and re-apply the edit.
More detail: the CLI, the anticode.json format, and editing a website locally with the CLI. For a balanced view of when Claude Code alone is the better tool, read Anticode vs Claude Code.
Questions people ask
Can I use both routes on the same project?
Yes. Versions keep them honest: a stale write is refused rather than overwriting the other route's change.
Does the MCP token work with the REST API?
No. MCP tokens only work at /mcp. The CLI's own token, from anticode login, works on the API and also at /mcp.
Will Claude Code spend my build allowance?
Only through a quoted build. A build needs a fresh quote id, and the tool tells the agent to show you the cost first.