AI に相談しながら記事の下書き執筆が可能な Movable Type 用の MCP サーバを作ってみた

Claude Desktop など、MCP に対応した AI ツールと Movable Type を連携させ、AI 生成記事の下書き作成や編集を行うための MCP サーバを作ってみたという話。AI に相談しながらブログ記事を作成し Movable Type の下書き記事として保存したり、保存した下書き記事を AI に修正してもらったりすることができます。

この記事は 「Movable Type Advent Calendar 2025」 1 日目の記事です。

今年も Advent Calendar の時期になりました。1 年が経つの早い。今年は 1 日目の記事を担当させていただきます。

さて、今回は厳密には Movable Type というより MCP (Model Context Protocol) サーバの話なんですけども、Claude Desktop など、MCP に対応した AI ツールと Movable Type (Data API) を連携させ、AI 生成記事の下書き作成や編集を行うための MCP サーバを作ってみたという話を書いてみたいと思います。

今回公開した MCP サーバの GitHub リポジトリは下記。

詳しくは README.md を読んでもらえればわかるんですが、この MCP サーバは、Movable Type の Data API を Claude Desktop など、MCP 対応 AI ツールから利用可能にするものです。この MCP サーバを使用することで、AI に相談しながらブログ記事を作成し Movable Type の下書き記事として保存したり、保存した下書き記事を AI に修正してもらったりすることができます。

上記、GitHub リポジトリからもソースコードが取得できますが、npm でも公開しているため、npm i mcp-movabletype-writer もしくは npx コマンドでも導入可能です。

mcp-movabletype-writer の特徴

mcp-movabletype-writer は、Movable Type Data API を AI から利用可能にするいくつかのツールを提供します。大まかに以下のようなことが可能になります。なお、具体的な導入方法と使い方については後述する 「簡単な導入方法と使い方」 セクションを確認してください。

  • Movable Type からブログの一覧を取得
  • Movable Type に保存されている下書きステータスの記事一覧や指定した下書き記事の内容の取得
  • 指定した内容を下書き記事として Movable Type に保存 (保存先のブログ ID を指定可能)

この MCP サーバが扱えるのは 「下書き」 ステータスの記事のみです。安全のため以下のことはできないようになっています。

  • 記事の削除 (下書き記事 / 公開記事問わず、記事の削除は不可)
  • 下書き記事を公開すること
  • 公開済みの記事を編集したり下書きにしたりすること

つまり、記事の 「下書き」 を AI と共同で作ることに特化した MCP サーバです。

私もここ最近はブログや会社サイトのコラムなんかを書くとき、さすがにゼロから AI に原稿を書かせるなんてことはしないですけども、ある程度自分で全体構成とか、草案的なものを書いた後で AI に読んでもらって、誤字脱字、あるいは文章的におかしい部分がないかをチェックしてもらったり、文章がわかりにくくなっていたり理解しにくい部分の指摘やリライト案、加筆した方がよい点などについてアドバイスをしてもらって、それを参考に原稿を修正するという手順をとっています。

つまり AI に文章の校正をやってもらってるわけですが、ある程度まとまったところで Movable Type に下書きとして保存しておく作業を簡単にできるようにしようということで、今回の MCP サーバを作ってみたと。

なので、目的が 「AI と共同で下書き記事を作って、CMS (Movable Type) に保存する作業を効率化する」 ということになります。AI 生成記事をバンバン量産して自動で公開しようとか、そういう目的ではないですし、そういう AI の使い方について私、個人的に嫌いですので、そういうものを期待しないでください。

簡単な導入方法と使い方

前提条件として以下が必要です。

  • Node.js 22.7.5 以上(LTS 推奨)
  • Movable Type 7 r.53xx 以上(Data API 有効化済み)

Movable Type 側で Data API が有効になっている必要があります。また、設定に必要な Data API エンドポイント URL (要するに mt-data-api.cgi の場所) や 「Web サービスパスワード」 などは事前に確認して置いてください。

詳しくは mcp-movabletype-writer/README.ja.md を見ていただければよいのですが、npx を使用して最も簡単に導入するなら以下のように Claude Desktop の設定ファイル (claude_desktop_config.json) に追加してください。

{
  "mcpServers": {
    "movabletype-writer": {
      "command": "npx",
      "args": [
        "mcp-movabletype-writer"
      ],
      "env": {
        "MT_API_URL": "https://example.com/your_mt_path/mt-data-api.cgi",
        "MT_USERNAME": "your_username",
        "MT_PASSWORD": "your_webservice_password",
        "MT_API_VERSION": "5",
        "MT_CLIENT_ID": "mcp-movabletype-writer",
        "MT_REMEMBER": "1"
      }
    }
  }
}
  • MT_API_URLmt-data-api.cgi の URL を指定します。
  • MT_USERNAME は Movable Type にログインするユーザー名を指定します。
  • MT_PASSWORD は Movable Type にログインするユーザーのパスワードですが、ログインパスワードではなく、ユーザー情報の編集画面から取得できる 「Web サービスパスワード」 を指定します。
  • MT_API_VERSION には利用する Movable Type Data API のバージョン番号(例: 5, 6 など)を設定してください。Data API v4 以降でしか動作確認していません。
  • MT_CLIENT_ID はアプリケーション固有の任意のキーを指定します。例えば mcp-movabletype-writer のように識別しやすい、アルファベット、(_)アンダースコア、(-)ダッシュ、で構成された任意の文字列を指定できます。
  • MT_REMEMBER は認証時の remember パラメータ(0 or 1)です。デフォルト値 1 のままの場合、サインアウトするまでセッションを維持できます。通常は 1 で OK。明示的に短命なトークンを使いたいときのみ 0 にしてください。

設定が間違っていなければ、Claude Desktop の MCP サーバ項目に、以下のように読み込まれると思います (画像は npx を使わず、ローカルでビルドしたファイルを指定しています)。

Claude Desktop の「設定」→「開発者」から「ローカル MCP サーバー」を確認します。設定が正しければ一覧に「mcp-movabletype-writer」が表示され、ステータスが「running」になります。

設定が正しく完了したら、Claude Desktop から以下のように聞いてみてください。

利用可能なブログの一覧を取得して

すると、MCP サーバが提供する list_sites ツールを AI が使用して、ブログの一覧 (ブログ名とブログ ID) を表示してくれます。

その後、AI と壁打ちしながら記事を作成し、原稿がある程度できたら、

作った原稿をブログ ID 1 に保存して

などとお願いすれば、指定したブログに、原稿が 「下書き」 として保存されます。保存した記事は、同じ会話の中であれば、

さっきの記事の○○の部分を○○に修正して

あるいは、

さっきの記事の文末に○○のセクションを追加して

のようにお願いすれば修正、加筆、あるいはタイトル、タグ、カテゴリなどを指定して追加したり、修正することもできます。

ブログ一覧を出してもらったときのように 「ブログID 1 の記事一覧を取得して」などとお願いすれば下書きステータスになっている記事の一覧が帰ってきますので、その記事の ID を指定して、

記事 ID 123 の文末に○○のセクションを追加して

などとお願いし、修正や加筆を行うことも可能です。

ということで、もし使えそうならご利用いただければ幸いです。

関連エントリー

過去に Movable Type Advent Calendar で書いた記事。

記事をここまで御覧頂きありがとうございます。
この記事が気に入ったらサポートしてみませんか?