Blogger専用MCPサーバーによる既存記事の更新

公開日: 2026年7月27日

AIエージェント Blogger テック・効率化 運用管理

Blogger APIとGCS、そしてMCPサーバーを組み合わせることで、「画像付きの新規投稿」をAIエディタからシームレスに行う仕組みは実現可能です。しかし、実際のブログ運用では「投稿して終わり」ではありません。

誤字脱字の修正、情報のアップデート、リライトなど、「既存記事の更新」が必ず発生します。今回は、システムに「履歴(ステート)」を持たせることで、AIが自律的に過去記事を認識し、上書き修正できるようになる仕組みを解説します。

JSONの履歴ファイルを通じてAIが過去記事を認識し、リライトしているイメージ図

【ソースコードの公開について】

本MCPサーバーのコードは、以下のGitHubリポジトリで公開しています。

👉 https://github.com/tai1mo/blogger-cli-mcp

はじめに:一方通行の自動投稿が抱える「修正の壁」

従来の自動投稿スクリプトの多くは「新規投稿」しかできませんでした。そのため、投稿後に少しでも修正したい箇所が見つかると、わざわざBloggerの管理画面(Web UI)を開いて手作業で直す必要がありました。

また、AIエディタから操作する場合、「投稿済みのどの記事が、手元のどのMarkdownファイルに該当するのか」をAIが知る術がありませんでした。

投稿履歴の自動保存機能(post_history.json)

この問題を解決するために、「投稿履歴の自動保存機能」をシステムに組み込みます。

新規投稿が成功した際、自動的にローカルに post_history.json という履歴ファイルを生成・保存するようにロジックを改修します。

保存される情報:

  • post_id: Bloggerが発行する一意の記事ID(キーとして使用)
  • title, labels, status: 記事のメタデータ
  • published_url: 公開された記事のURL
  • local_file_path: ローカル環境での元原稿のパス
  • updated_at: 最終更新日時

このファイルをGit等でバージョン管理することで、複数PC間やAIエディタ間で「どの記事がいつ投稿されたか」という状態(ステート)を共有できるようになります。

既存記事の更新用モジュール(Blogger_update.py)

履歴から post_id が分かるようになったので、既存記事を更新するための専用スクリプト blogger_update.py を作成します。新規投稿とあえてファイルを分けることで、単一責任原則を保ち保守性を高めています。

HTTP PATCHメソッドによる部分更新

更新には、Blogger API v3 の patch メソッドを利用します。全文を置換する update ではなく patch を使うことで、「タイトルだけ」「本文だけ」「ラベルだけ」といった部分更新が可能になり、通信量と副作用を最小限に抑えられます。

もちろん、更新が成功すると自動的に post_history.jsonupdated_at や内容が上書き同期されます。

MCPサーバーへの統合と「AIの記憶」

最後に、この更新機能をMCPサーバー(Blogger_mcp_server.py)に新ツール update_blogger_post として追加統合します。

これが本システムの大きな利点です。

履歴ファイル(JSON)が存在することで、ClaudeなどのAIは「自分が過去に投稿した記事のリストとID」を記憶している状態になります。

そのため、エディタのチャット画面で、

「前回投稿したあの記事の、ツールの使い方の部分を少しリライトして上書きしておいて」

と指示するだけで、AIが自動的に post_history.json から該当記事の post_id を見つけ出し、修正ツールを呼び出してBloggerを更新してくれるようになります。

まとめ

Bloggerの管理画面を開くことなく、AI環境で執筆・画像処理・投稿・修正までの全ライフサイクルが完結するシステムは、極めて効率的なブログ運用基盤になると考えています。AIエディタと履歴管理(JSON)、そしてMCPサーバーを組み合わせることで、過去記事のリライトさえもシームレスに行うことが可能になります。

このアーキテクチャはBloggerに限らず、他のプラットフォームの自動化にも応用できるアプローチです。ぜひ自身のブログ運営にも取り入れてみてください。

QooQ Dot designed by tai1/Original theme designed by QooQ