エンジニアリング//13 読了時間

AIを使って自社ブログを執筆する方法 — Better i18n MCP Contentの実践

Eray Gündoğmuş
共有

このブログ記事は、ブラウザを一度も開かずに執筆・翻訳・公開されました。CMSダッシュボードもなし。WYSIWYGエディタもなし。翻訳ファイル間のコピー&ペーストもなし。

あなたが今読んでいるすべての文章は、@better-i18n/mcp-content — AIコーディングアシスタントを完全なコンテンツ管理システムに変える私たちのMCP(Model Context Protocol)サーバー — を通じて作成されました。私たちはこれを自社ブログの管理に使用しており、この記事ではその仕組みを詳しく説明します。

MCP Contentとは?

MCPは、AIアシスタント(Claude、Cursor、Windsurfなど)が標準化されたツール呼び出しを通じて外部サービスと連携できるオープンプロトコルです。AIのためのAPIと考えると分かりやすいですが、RESTエンドポイントの代わりに、AIエージェントが自律的に発見・理解・使用できるツールが提供されます。

@better-i18n/mcp-content はコンテンツ管理のためのMCPサーバーです。以下のツールを提供します:

  • コンテンツモデル — 構造化されたコンテンツタイプの定義(ブログ記事、変更履歴エントリ、ドキュメントページ)
  • エントリ — コンテンツエントリの作成・更新・翻訳・公開
  • フィールド — タイプ付きカスタムフィールド(テキスト、数値、真偽値、日付、リレーション、メディア)
  • 翻訳 — フィールドごとのローカライゼーションを持つ多言語コンテンツ
  • 公開 — バージョン履歴を持つ下書き/公開ワークフロー

このサーバーをAIアシスタントに接続すると、アシスタントは自然言語でコンテンツパイプライン全体を管理できるようになります。ローカライゼーションと国際化の世界に不慣れなチームには、これらのワークフローの基礎となる概念についてソフトウェアローカライゼーションの基礎ガイドが参考になります。

セットアップ

ランディングサイトのブログ向けにMCP Contentを設定した方法を紹介します:

1. MCPサーバーのインストール

// .claude/mcp.json (またはAIアシスタントのMCP設定ファイル)
{
  "mcpServers": {
    "better-i18n-content": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/better-i18n-content-mcp@latest"],
      "env": {
        "BETTER_I18N_API_KEY": "your-api-key"
      }
    }
  }
}

セットアップはこれだけです。設定するデータベースも、記述するスキーマファイルも、構築するデプロイパイプラインも不要です。

2. コンテンツモデルの定義

Claudeにブログ記事モデルの作成を依頼しました:

「author(usersへのリレーション)、category(blog-categoriesへのリレーション)、featured(真偽値)、read_time(数値)フィールドを持つblog-postsコンテンツモデルを作成してください。」

裏側では、Claudeが createContentModeladdField ツールを呼び出してスキーマを構築しました。モデルは数秒で準備できました。

3. コンテンツの執筆

ここが面白いところです。CMSダッシュボードを開いてフォームフィールドを埋める代わりに、やりたいことを説明するだけです:

「Better i18nをCrowdinやLokalisと比較するブログ記事を書いてください。競合他社が優れている点も正直に認めてください。ローカライゼーションプラットフォームを評価している開発者向けの内容にしてください。」

Claudeが完全なMarkdownコンテンツを記述し、メタデータ(author、category、タグ、読了時間)を設定し、createContentEntry を呼び出して保存します。ターミナルで出力を確認し、必要に応じて修正を依頼し、承認します。

4. 翻訳

「比較ブログ記事をトルコ語、ドイツ語、フランス語に翻訳してください。」

Claudeがソースコンテンツを読み取り、各フィールド(タイトル、本文、抜粋)を翻訳し、翻訳内容とともに updateContentEntry を呼び出します。用語集の用語は自動的に尊重されます — ブランド名は翻訳されず、技術用語は承認済みの翻訳が使用されます。

5. 公開

「すべての下書きブログ記事を公開してください。」

Claudeが bulkPublishEntries を呼び出し、承認されたすべてのエントリが公開されます。コンテンツはAPIを通じて即座に利用可能になります。

このワークフローが機能する理由

速度

従来のCMSで2,000語のブログ記事を執筆するには:

  1. CMSダッシュボードを開く(5秒)
  2. コンテンツタイプに移動する(3秒)
  3. 「新規エントリ」をクリックする(2秒)
  4. メタデータフィールドを一つずつ入力する(30秒)
  5. WYSIWYGエディタでコンテンツを書くか貼り付ける(変動)
  6. 見出し、コードブロック、テーブルを書式設定する(2〜5分)
  7. 下書きを保存する(2秒)
  8. プレビューする(5秒)
  9. 公開する(3秒)

MCP Contentを使えば、同じプロセスが:

  1. やりたいことを説明する(10秒)
  2. 出力を確認する(30秒)
  3. 「公開」と言う(2秒)

AIがメタデータ、書式設定、API呼び出しを処理します。あなたはコンテンツの方向性と品質レビューに集中できます。

一貫性

人間がCMSフォームを入力すると、不整合が生じます。タグが記事間で異なるスペルになります。読了時間の見積もりが一貫しません。抜粋の長さとトーンがばらばらになります。

AIが構造化APIを通じてエントリを作成すると、すべてのフィールドが同じパターンに従います。AIは単語数から読了時間を計算します。目標の長さに合った抜粋を生成します。一貫したタグ書式を適用します。

翻訳の品質

従来のコンテンツ翻訳ワークフローでは:

  1. ソースコンテンツをエクスポートする
  2. 翻訳者に送る(または翻訳ツールで処理する)
  3. 翻訳されたコンテンツをインポートする
  4. 書式の問題をレビューする
  5. 壊れたMarkdown、リンク切れ、間違ったメタデータを修正する

MCP Contentは翻訳をインラインで処理します。AIがソースMarkdownを読み取り、構造(見出し、コードブロック、テーブル、リンク)を理解し、書式を保持しながらテキストを翻訳します。エクスポート/インポートサイクルなし。壊れたMarkdownなし。AI翻訳の品質を高める要素を理解したいチームには、用語集の適用と構造化コンテキストが正確な出力にどう貢献するかを解説した翻訳におけるコンテキストの記事が参考になります。

バージョン管理

MCP Content経由のすべての変更はバージョン管理されます。誰が何を、いつ、なぜ変更したかを確認できます。バージョン履歴にはバージョン間の完全な差分 — 翻訳の変更を含む — が表示されます。

これはGitベースのワークフローで期待するのと同じ監査証跡ですが、コンテンツ向けです。管理するコミットも、解決するマージコンフリクトもありません。

技術アーキテクチャ

技術的に興味のある方のために、MCP Contentの内部動作を紹介します:

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)

コンテンツストレージ

コンテンツは柔軟なスキーマでPostgreSQLに保存されます:

  • コンテンツモデル — 構造を定義(フィールド、タイプ、要件)
  • コンテンツエントリ — 言語ごとの翻訳を持つ実際のコンテンツを保持
  • カスタムフィールド値 — JSONBとして保存され、あらゆるフィールドタイプをサポート
  • バージョン — 差分メタデータとともにすべての変更を追跡

デリバリー

公開されたコンテンツはエッジキャッシングを持つCloudflare Workersを通じて配信されます。SDKは自動ロケール解決による型安全なコンテンツエントリへのアクセスを提供します。

MCPツール

サーバーはドメインごとに整理された15以上のツールを提供します:

モデル: listContentModelsgetContentModelcreateContentModeladdFieldupdateField

エントリ: listContentEntriesgetContentEntrycreateContentEntryupdateContentEntrydeleteContentEntry

公開: publishContentEntrybulkPublishEntriesduplicateContentEntry

各ツールにはJSON Schemaの定義があり、AIアシスタントに利用可能なパラメータ、期待するタイプ、レスポンスの内容を正確に伝えます。AIはカスタムプロンプトなしでこれらのツールを発見して使用できます。

実際のドッグフーディング

私たちは2026年2月から自社ブログにMCP Contentを使用しています。実際の数字を紹介します:

  • 6件のブログ記事 を作成・公開(この記事を含む)
  • 14言語 のコンテンツをサポート
  • CMSダッシュボードで過ごした時間 ゼロ
  • 平均作成時間: 記事あたり3分(メタデータとレビューを含む)
  • 平均翻訳時間: 言語・記事あたり45秒

このワークフローは、コンテンツに対する考え方を根本的に変えました。「ブログ記事を書く必要がある」が2時間のタスク(執筆、書式設定、アップロード、翻訳、公開)だったものが、AIアシスタントとの15分の会話になりました。これをより広いフレームワーク設定の中でどう活用するかを知りたい方には、コンテンツパイプラインと並行してCDN配信翻訳を接続する方法を示したNext.js i18n完全ガイド 2026が参考になります。

制限と正直なトレードオフ

MCP Contentはすべての人に適しているわけではありません。従来のCMSがまだ優れているケースを紹介します:

ビジュアルコンテンツ編集

コンテンツがビジュアルレイアウトに大きく依存している場合 — カスタムブロック、埋め込みウィジェット、ドラッグ&ドロップの配置 — ビジュアルエディタを持つ従来のCMSが優れています。MCP ContentはMarkdownで動作し、テキスト中心のコンテンツには最適ですが、ビジュアルファーストのワークフローには限界があります。

非技術系コンテンツチーム

MCP ContentはAIコーディングアシスタント(Claude Code、Cursorなど)が必要です。コンテンツチームがこれらのツールを使用していない場合、Webベースのエディタを持つ従来のCMSの方がアクセスしやすいです。

メディア中心のコンテンツ

画像のアップロード、動画の埋め込み、アセット管理はビジュアルCMSの方が簡単です。MCP Contentはメディアフィールドをサポートしていますが、直接アップロードワークフローではなくURLに依存しています。

複雑な承認ワークフロー

ロールベースのアクセス制御を持つ多段階承認(ライター → エディター → レビュアー → パブリッシャー)が必要な場合、従来のCMSプラットフォームの方が成熟したワークフローエンジンを持っています。MCP Contentには下書き/公開状態がありますが、多段階承認はありません。

今後の展開

私たちは自社の使用状況とアーリーアダプターのフィードバックに基づいてMCP Contentを積極的に開発中です:

  • スケジュール公開 — 公開日を設定すると、エントリが自動的に公開されます
  • コンテンツリレーションシップ — モデル間でエントリをリンク(例:ブログ記事 → 著者 → チーム)
  • Webhookによる通知 — コンテンツが変更されたときにリビルドや通知をトリガー
  • 画像最適化 — メディアフィールドの自動リサイズとフォーマット変換
  • コンテンツプレビュー — 下書きコンテンツのプレビューURLを生成

コンテンツパイプラインを本番環境に持ち込む前に、ターゲット言語全体にわたるキーの欠落、複数形化ルールの破損、書式エッジケースを検出するための徹底的なi18nテストを実施する価値があります。

試してみてください

MCP ContentはBetter i18nの一部として現在利用可能です。すでにBetter i18nを翻訳に使用している場合、コンテンツ管理は追加コストなしで含まれています。

# AIアシスタントのMCP設定に追加する
npx @anthropic-ai/better-i18n-content-mcp@latest

シンプルなコンテンツモデルから始めましょう — 変更履歴、ブログ、またはドキュメントページ。AIにコンテンツの作成、翻訳、公開をさせてみてください。二度とCMSダッシュボードを開かなくなるかもしれません。


関連リソース

Comments

Loading comments...