← All integrations

Claude Code + MCP

The workflow behind this site: Claude Code connected to emdash's built-in MCP server.

Active ai mcp workflow

What it does

emdash ships with a built-in MCP (Model Context Protocol) server. Claude Code connects to it and gets ~33 tools for managing content, schema, media, taxonomies, menus, and revisions. Every page on this site was created, published, and maintained through those tool calls.

This isn't a novelty. It's how we actually work. Claude Code is part of our daily workflow at the agency, and emdash's MCP server means content management fits into the same conversation as code changes, deployments, and debugging.

What Claude Code can do

  • Content management. Create pages, write blog posts, update copy, publish and unpublish. The two-step workflow (create draft, then publish) maps cleanly to tool calls.
  • Schema management. Create collections, add fields, modify content types. Useful for scaffolding a new site or adding a feature like comments.
  • Media handling. Upload images, list media, update metadata. Gallery pages and blog post images managed through tool calls.
  • Taxonomy and menus. Create categories, manage navigation structure. All through the same MCP interface.
  • Revisions. List revision history, restore previous versions. A safety net when making content changes programmatically.

The workflow

A typical session looks like this:

  1. Open Claude Code in the project directory
  2. Discuss what needs to happen (new blog post, page update, bug fix)
  3. Claude writes code changes and manages content in the same conversation
  4. Deploy when ready

The content management and the code live in the same workflow. No context switching between an IDE and a CMS admin panel. No copy-pasting between tools.

Gotchas we've found

  • Two-step publish. content_create makes a draft. content_publish makes it live. Passing status: "published" on create doesn't actually create a live revision.
  • Updating published content. content_update on published items creates drafts that can't be republished cleanly. Delete and recreate instead.
  • Soft delete doesn't free slugs. Use content_permanent_delete after content_delete if you need to reuse a slug.
  • Portable Text links via MCP. Content with link annotations (markDefs) creates drafts that fail to publish. Add links through the admin panel or in Astro templates instead.
  • Astro entry ID vs database ID. post.id is a slug-based identifier. The actual database ULID is at post.data.id. Use the latter for API calls.

Who this is for

If you're already using Claude Code for development work and you're evaluating emdash, the MCP integration is the headline feature. It means your AI assistant isn't locked out of content management. The same tool that writes your components can also write your blog posts.

For agencies and freelancers who use AI tooling as part of their workflow, this is a real advantage over traditional CMS platforms where content is only accessible through a web UI or REST API wrappers.

Related posts