I set up a Contentful space using Claude Code and MCP. Here’s what I learned in 45 minutes.
Zero UI clicks. Claude Code talked to Contentful through MCP and built six content types in 45 minutes. Cost $1.77.
I've spent years advising people on Contentful implementations. I've sat through dozens of content modeling workshops. I thought I knew this stuff cold.
Then I tried to set it up myself, from scratch, using Claude Code and MCP, and learned more in 45 minutes than I expected.
Here's what actually happened.
What I was trying to do
I'm building fieldnotes-ai.com, a personal journal documenting what happens when content infrastructure meets AI. A Contentful insider building her own Contentful space, learning the tools she talks about for a living from the practitioner side for the first time.
The goal: use Claude Code (https://docs.anthropic.com/en/docs/claude-code), Anthropic's terminal-based AI coding tool, to set up my entire Contentful content model without clicking through the UI once. Claude Code would talk directly to Contentful via MCP (https://modelcontextprotocol.io/), Model Context Protocol, an open standard that lets AI tools connect to external APIs through natural language. The bridge between the two is the official Contentful MCP Server (https://github.com/contentful/mcp-server), which connects Claude Code to the Contentful Management API.
Why Contentful for this? Partly because I know it deeply. But mostly because structured content is exactly what a project like this needs. Field Notes have titles, slugs, categories, publication dates, related tools. Tools have names, vendors, URLs, categories. These aren't blobs of HTML. They're structured entries with relationships between them. That's what Contentful is built for.
What Claude Code actually is
Claude Code runs in your terminal. You type to it like you'd message a colleague, and it executes real commands on your machine and in connected systems. It's not autocomplete. It's closer to having a technical collaborator who can read your files, run code, and when connected via MCP, talk directly to external services.
The first thing it told me when I opened an empty folder: "The directory is empty. Would you like me to scaffold a project?" That set the tone for everything that followed. It asks, then acts.
What MCP actually feels like in practice
I'd read about MCP. I'd even presented on it internally at Contentful. But watching it work is different from understanding it conceptually.
I typed: "Create a content type called fieldNote with these fields..." and Claude Code called the Contentful Management API directly, in real time, field by field. I watched it happen in the terminal. No UI clicks. No form filling. The content type appeared in my Contentful space while I was still reading the output.
That's when it clicked for me why MCP matters. Not as a technical protocol, but as an experience. The distance between intention and execution collapsed. I described what I wanted in plain English, and it happened in a real external system.
And honestly, this is a moment for Contentful's Management API too. The fact that an AI tool can create content types, set validations, configure field appearances, and publish entries through a clean API with no human touching the UI? That's the headless architecture paying off in a way nobody planned for when those APIs were first designed. MCP is new. The Contentful API that makes it work has been battle-tested for years.
The six content types
Here's what Claude Code built in that 45-minute session:
fieldNote: the journal entries. Title, slug, body (Rich Text), entry number, category (Learning, Building, Testing, Observing), published date, reading time, related tools reference, SEO reference, featured flag.
tool: the things I use. Name, slug, description, category, vendor, URL, status (Active, Testing, Retired), sort order.
globalSettings: site-wide configuration. Site name, domain, logo, primary navigation references, social link references, copyright, default SEO metadata reference.
seo: standalone SEO metadata. OG title, description, image, type, robots directives, sitemap inclusion. Referenced by both globalSettings (site defaults) and individual Field Notes (page overrides).
navigationItem: label, URL, external link flag, new tab flag.
socialLink: platform (X, LinkedIn, GitHub, YouTube), URL, handle.
Six content types. All interconnected through Contentful's reference fields. The seo type is standalone and referenced from multiple places, which is the pattern Contentful's own documentation recommends (https://www.contentful.com/help/content-modeling-patterns/) for reusable metadata. I set it up this way because it's what I'd recommend to any SI partner. Might as well practice what I preach.
The embarrassing part
After setting everything up, I ran a health check and saw this:
CONTENTFUL_MANAGEMENT_ACCESS_TOKEN=YOUR_CMA_TOKEN_HERE
SPACE_ID=YOUR_SPACE_ID_HERE
Years of advising partners on Contentful implementations. Day one of my own project. Placeholder credentials sitting right there in the config.
I didn't assume Claude had my credentials. I just... didn't see them as variables. I saw a command. I ran a command. YOUR_CMA_TOKEN_HERE looked perfectly reasonable to me at the time.
This is a new kind of mistake. When AI generates the command and you're focused on the outcome, your brain stops reading the details and starts trusting the flow. You watch the terminal, you see things happening, and you skip the part where you verify what's actually in the config. It's not carelessness exactly. It's a new failure mode that comes from the speed and confidence of AI-assisted workflows.
The fix was simple: go to Contentful Settings, generate a real CMA token, swap the placeholder. Two minutes. But the lesson is worth more than the fix.
What it actually cost
After the session I ran ccusage (https://github.com/yohasebe/ccusage) to see exactly what Claude Code consumed:
npx ccusage@latest session --since 2026-03-02
2.2 million tokens. $1.77.
92% were cache reads. Efficient by default, not by my configuration. It also showed a subagents session I never created. Claude Code had automatically spun up background agents, routing cheaper tasks to Haiku 4.5. I didn't ask for this. It just happened.
One caveat: the $1.77 is only the terminal work. The thinking (design decisions, content modeling, writing this note) happened in Claude.ai and is bundled into my Max plan. The execution was measurable. The thinking wasn't. That split between thinking and doing, with only the doing being trackable, is its own interesting observation about how AI work gets accounted for.
What's next
The content model is live. Six content types, properly structured with references and validations, created without opening the Contentful UI once. This Field Note is the first piece of real content going into it.
The whole experience confirmed something I tell SI partners all the time: Contentful's content modeling is the part that matters most. Get the structure right and everything downstream (rendering, querying, scaling, even AI integration via MCP) gets easier. Get it wrong and you're fighting your own content model forever.
Next: building the site in v0 and deploying to Vercel. That'll be Field Note #002.