Engineering

How We Use AI to Write Our Own Blog — Better i18n MCP Content in Action

Eray Gündoğmuş
Eray Gündoğmuş
·13 min read
Share
How We Use AI to Write Our Own Blog — Better i18n MCP Content in Action

This blog post was written, translated, and published without ever opening a browser. No CMS dashboard. No WYSIWYG editor. No copy-pasting between translation files.

Every word you are reading was created through @better-i18n/mcp-content — our MCP (Model Context Protocol) server that turns AI coding assistants into full content management systems. We use it to manage our own blog, and this article explains exactly how.

What Is MCP Content?

MCP is an open protocol that lets AI assistants (Claude, Cursor, Windsurf, and others) interact with external services through standardized tool calls. Think of it as APIs for AI — but instead of REST endpoints, you get tools that AI agents can discover, understand, and use autonomously.

@better-i18n/mcp-content is our MCP server for content management. It exposes tools for:

  • Content models — Define structured content types (blog posts, changelog entries, documentation pages)
  • Entries — Create, update, translate, and publish content entries
  • Fields — Custom fields with types (text, number, boolean, date, relation, media)
  • Translation — Multi-language content with per-field localization
  • Publishing — Draft/published workflow with version history

When you connect this server to your AI assistant, the assistant gains the ability to manage your entire content pipeline through natural language. For teams new to the localization and internationalization landscape, our guide on software localization fundamentals provides useful background on the concepts underlying these workflows.

The Setup

Here is how we configured MCP Content for our landing site blog:

1. Install the MCP Server

// .claude/mcp.json (or your AI assistant's MCP config)
{
  "mcpServers": {
    "better-i18n-content": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/better-i18n-content-mcp@latest"],
      "env": {
        "BETTER_I18N_API_KEY": "your-api-key"
      }
    }
  }
}

That is the entire setup. No database to configure, no schema files to write, no deployment pipeline to set up.

2. Define the Content Model

We asked Claude to create our blog post model:

"Create a blog-posts content model with author (relation to users), category (relation to blog-categories), featured (boolean), and read_time (number) fields."

Behind the scenes, Claude called createContentModel and addField tools to build the schema. The model was ready in seconds.

3. Write Content

This is where it gets interesting. Instead of opening a CMS dashboard and filling out form fields, we just describe what we want:

"Write a blog post comparing Better i18n with Crowdin and Lokalise. Make it honest — acknowledge where competitors are stronger. Target developers evaluating localization platforms."

Claude writes the full markdown content, sets the metadata (author, category, tags, read time), and calls createContentEntry to save it. We review the output in our terminal, request edits if needed, and approve.

4. Translate

"Translate the comparison blog post into Turkish, German, and French."

Claude reads the source content, translates each field (title, body, excerpt), and calls updateContentEntry with the translations. Glossary terms are respected automatically — brand names stay untranslated, technical terms use the approved translations.

5. Publish

"Publish all draft blog posts."

Claude calls bulkPublishEntries and every approved entry goes live. The content is available through our API immediately.

Why This Workflow Works

Speed

Writing a 2,000-word blog post through a traditional CMS involves:

  1. Open the CMS dashboard (5 seconds)
  2. Navigate to the content type (3 seconds)
  3. Click "New Entry" (2 seconds)
  4. Fill in metadata fields one by one (30 seconds)
  5. Write or paste content in a WYSIWYG editor (variable)
  6. Format headings, code blocks, tables (2-5 minutes)
  7. Save draft (2 seconds)
  8. Preview (5 seconds)
  9. Publish (3 seconds)

With MCP Content, the same process is:

  1. Describe what you want (10 seconds)
  2. Review the output (30 seconds)
  3. Say "publish" (2 seconds)

The AI handles metadata, formatting, and API calls. You focus on content direction and quality review.

Consistency

When a human fills out CMS forms, inconsistencies creep in. Tags are spelled differently across posts. Read times are estimated inconsistently. Excerpts vary in length and tone.

When an AI creates entries through a structured API, every field follows the same pattern. The AI calculates read time from word count. It generates excerpts that match the target length. It applies consistent tag formatting.

Translation Quality

Traditional content translation workflows involve:

  1. Export source content
  2. Send to translators (or run through a translation tool)
  3. Import translated content
  4. Review for formatting issues
  5. Fix broken markdown, missing links, wrong metadata

MCP Content handles translation inline. The AI reads the source markdown, understands the structure (headings, code blocks, tables, links), and translates the text while preserving formatting. No export/import cycle. No broken markdown. For teams who want to understand the quality factors that make AI translations reliable, our post on context in translations covers how glossary enforcement and structured context contribute to accurate output.

Version Control

Every change through MCP Content is versioned. You can see who changed what, when, and why. The version history shows the full diff between versions — including translation changes.

This is the same audit trail you would expect from a Git-based workflow, but for content. No commits to manage, no merge conflicts to resolve.

The Technical Architecture

For the technically curious, here is how MCP Content works under the hood:

AI Assistant (Claude/Cursor)
    ↓ MCP Protocol (stdio/SSE)
MCP Content Server (@better-i18n/mcp-content)
    ↓ REST API
Better i18n Platform API
    ↓ Database
PostgreSQL (content, translations, versions)
    ↓ CDN
Cloudflare R2 + Workers (delivery)

Content Storage

Content is stored in PostgreSQL with a flexible schema:

  • Content models define the structure (fields, types, requirements)
  • Content entries hold the actual content with per-language translations
  • Custom field values are stored as JSONB, supporting any field type
  • Versions track every change with diff metadata

Delivery

Published content is served through Cloudflare Workers with edge caching. The SDK provides type-safe access to content entries with automatic locale resolution.

MCP Tools

The server exposes 15+ tools organized by domain:

Models: listContentModels, getContentModel, createContentModel, addField, updateField

Entries: listContentEntries, getContentEntry, createContentEntry, updateContentEntry, deleteContentEntry

Publishing: publishContentEntry, bulkPublishEntries, duplicateContentEntry

Each tool has a JSON Schema definition that tells the AI assistant exactly what parameters are available, what types they expect, and what the response looks like. The AI can discover and use these tools without any custom prompting.

Dogfooding in Practice

We have been using MCP Content for our own blog since February 2026. Here are the real numbers:

  • 6 blog posts created and published (including this one)
  • 14 languages supported across content
  • Zero time spent in a CMS dashboard
  • Average creation time: 3 minutes per post (including metadata and review)
  • Average translation time: 45 seconds per language per post

The workflow has fundamentally changed how we think about content. Instead of "I need to write a blog post" being a 2-hour task (write, format, upload, translate, publish), it is a 15-minute conversation with an AI assistant. If you want to see how this fits into a broader framework setup, our complete Next.js i18n guide for 2026 shows how to wire up CDN-delivered translations alongside your content pipeline.

Limitations and Honest Trade-offs

MCP Content is not for everyone. Here are the cases where a traditional CMS is still better:

Visual Content Editing

If your content relies heavily on visual layout — custom blocks, embedded widgets, drag-and-drop positioning — a traditional CMS with a visual editor is better. MCP Content works with markdown, which is great for text-heavy content but limited for visual-first workflows.

Non-Technical Content Teams

MCP Content requires an AI coding assistant (Claude Code, Cursor, etc.). If your content team does not use these tools, a traditional CMS with a web-based editor is more accessible.

Media-Heavy Content

Image uploads, video embeds, and asset management are simpler in a visual CMS. MCP Content supports media fields but relies on URLs rather than direct upload workflows.

Complex Approval Workflows

If you need multi-stage approval (writer → editor → reviewer → publisher) with role-based access, traditional CMS platforms have more mature workflow engines. MCP Content has draft/published states but not multi-stage approval.

What Comes Next

We are actively developing MCP Content based on our own usage and early adopter feedback:

  • Scheduled publishing — Set a publish date and the entry goes live automatically
  • Content relationships — Link entries across models (e.g., blog post → author → team)
  • Webhook notifications — Trigger rebuilds or notifications when content changes
  • Image optimization — Automatic resizing and format conversion for media fields
  • Content preview — Generate preview URLs for draft content

Before going to production with any content pipeline, it is worth running a thorough i18n testing pass to catch missing keys, broken pluralization rules, and formatting edge cases across all your target languages.

Try It Yourself

MCP Content is available today as part of Better i18n. If you are already using Better i18n for translations, content management is included at no extra cost.

# Add to your AI assistant's MCP configuration
npx @anthropic-ai/better-i18n-content-mcp@latest

Start with a simple content model — a changelog, a blog, or a documentation page. Let the AI create, translate, and publish your content. You might never open a CMS dashboard again.