Good Inside is a parenting platform. In early 2026 it was launching week-by-week pregnancy and baby content: three articles a week for Baby, one a week for Pregnancy. The content itself was straightforward to produce; the publishing pipeline was not.
Each article went through the same seven-step process: write it in a Google Doc, recreate it manually in production WordPress with rich text formatting, pull it into staging, run a sync job in GitHub Actions, check rendering in the app, publish in production, then run the sync again. This took 30 to 40 minutes of hands-on work per article, plus roughly 16 minutes of sync wait time. The full process repeated for every subsequent edit, including minor corrections.
The content team had become the bottleneck for the launch. The original brief was to build CMS 2.0, a replacement content system with its own schemas and promotion workflow. We identified that a faster CMS alone would not remove the manual re-entry step, and scoped the MCP server as an addition to that work.
An MCP server, not an MCP client
Most implementations of MCP (Anthropic's Model Context Protocol) are clients connecting Claude to an existing system, such as Notion, Slack, or Figma. This project built a server instead, exposing Good Inside's CMS as a set of tools Claude can call directly. The server provides fourteen tools across four categories: reading CMS schemas, resolving topic and age-group reference IDs, handling media uploads, and validating and writing draft content.
Claude Skills sit on top of the tools: markdown files specifying how to convert one type of source material, a Google Doc table or a plain-text request, into one type of finished content, such as an article, a CONNECT deck, or a card set. The tools provide the capability; the skills provide the procedure.
How content is created
The workflow runs as a conversation. An editor provides a Google Doc or describes the content directly. Claude reads the source, resolves the relevant topic and age-group IDs, converts the text to HTML, uploads the cover image, validates the payload, corrects errors, and creates a draft. It returns a title, entity ID, and link for each item created.
A human reviews each draft in the standard CMS admin UI and promotes it through the existing pipeline. No content reaches production without human approval.
What it produced
Every entity the agent creates is stamped created_by: "mcp-agent", so the totals below are measured, not estimated. As of a late-August snapshot: 850 content entities created, 816 live in production. This is 100% of new decks, 97% of cards, and 68% of articles in CMS 2.0.
Counting only articles, which have a measured manual baseline, this removed an estimated 156 to 209 hours of editor time, approximately one month of a full-time editor's capacity. In one batch, 72 pregnancy articles were generated in minutes; the full set was validated and published within two hours.
Write access and safety controls
The write tool hardcodes the draft environment; there is no parameter to target staging or production. Validation runs as a separate tool from the write itself, so Claude can retry without leaving invalid data in the system. Every write is attributed to the agent. Promotion to production uses Good Inside's existing human-reviewed workflow. The agent can create draft content; only a person can publish it.
Authentication uses a standard OAuth2-with-PKCE flow against Ory. A user connects and signs in with their existing identity; no API keys are copied or entered manually.
What carries over to future engagements
The implementation is specific to Good Inside's schema and data model and cannot be reused directly by another client. What does transfer is the architecture: read-only discovery tools, a validation gate separate from the write path, a write tool scoped to drafts only, and human promotion as the final step. That pattern applies to any system where an AI agent writes into a system of record. The skills layer transfers more directly: a markdown file describing how to convert one source format into one content type is most of the remaining work, particularly for a CMS that already has its own MCP server.


















