Blogger APIを使って自動投稿する仕組みを構築したものの、「画像処理」がネックになっているという悩みをお持ちではないでしょうか。
今回は、Google Cloud Storage (GCS) を活用し、Markdown記事内に書かれたローカル画像のアップロードから、HTMLのURL置換までをAIに全自動でやらせる仕組みの構築方法を解説します。

【ソースコードの公開について】
本MCPサーバーのコードは、以下のGitHubリポジトリで公開しています。
👉 https://github.com/tai1mo/blogger-cli-mcp
はじめに:Blogger APIにおける画像投稿の壁
Blogger API v3には、実は「画像ファイルを直接アップロードする専用のエンドポイント」が存在しません。そのため、プログラムから画像を投稿しようとする場合、「どこか別の場所に画像をホストし、その公開URLを取得してHTML内の タグに埋め込む」というアプローチが必須になります。
なぜGCS(Google Cloud Storage)を選ぶのか
外部ホスティング先としてGoogle DriveやGoogle Photosを使う方法もありますが、リンク切れや仕様変更、トークン管理の煩雑さといったリスクがつきまといます。
そこで今回は、Bloggerと同じGoogleのインフラであり、直リンク(HTTPでの直接配信)が公式にサポートされているGoogle Cloud Storage (GCS) を採用します。
【重要】GCSバケットの構築と無料枠(Always Free)の適用条件
GCSは従量課金ですが、「Always Free(無料枠)」の条件を満たせば、個人ブログの画像置き場として実質無料で運用可能です。
- ロケーション: 必ず「Region」の「us-central1(アイオワ)」「us-west1」「us-east1」のいずれかを指定してください。(※東京リージョンを選ぶと課金されます)
- ストレージクラス: Standard
- アクセス制御: 「均一(Uniform)」を選び、「公開アクセスの防止を適用する」のチェックは外します。(ブログ読者が見えるようにするため、後で
allUsersにStorage Object Viewer権限を付与します)
※想定外のアクセス急増に備え、「予算とアラート」で月額100円等のアラートを設定しておくことを強く推奨します。
認証方式の選定:OAuth(Blogger)とADC(GCS)の違い
ここで、本システムの認証アーキテクチャについて重要な整理をします。
- Blogger API: 個人アカウントのブログに代行投稿するため、「OAuth 2.0(
client_secret.json)」を使用します。 - GCS(今回): クラウドのインフラ(バケット)にアクセスするため、「サービスアカウントのJSONキー」を使うのが一般的ですが、昨今はセキュリティ(誤コミットによる漏洩や組織ポリシー制限)の観点から推奨されません。
そこで今回は、ADC(Application Default Credentials)という仕組みを採用します。ローカル環境(あなたのPC)のGoogle Cloud CLI(gcloud)にログイン状態を作っておくだけで、Pythonコード側にはパスワードやキーファイルを一切書かずに安全にアクセスできるモダンな手法です。
安全で簡単なADC認証の設定手順(JSONキー不要)
- ターミナルでgcloud CLIをインストールします(例:
brew install --cask google-cloud-sdk)。 gcloud initを実行し、対象のプロジェクトを選択します。gcloud auth application-default loginを実行します。
ブラウザが開いて認証を許可すると、ターミナルに Credentials saved to file... と表示されます。これで準備は完了です!
画像アップロード&置換MCPツールの実装
ADCのおかげで、Python側は storage.Client(project=project_id) と書くだけでセキュアにGCSを操作できます。
これを応用し、MCPサーバーに新たなツール replace_html_images_with_gcs を追加します。このツールは、AIが以下の処理を裏側で全自動で行うためのものです。
- HTML内の
タグのローカルパスを見つける。 - PythonのPillowライブラリを使って、WebP形式に変換し、長辺を最大1920pxにリサイズ(容量削減)。
- UUIDで一意のファイル名を生成し、GCSへアップロード。
- GCSの公開URLを取得し、HTMLの
src属性を書き換えて返す。
AIエディタのチャット画面で「記事をBloggerに投稿して」と指示するだけで、AIが自動的にこのツールを呼び出し、画像を一瞬で最適化・アップロードしてURLを置換した上で投稿してくれます。
まとめ
GCSとADC認証、そしてMCPを組み合わせることで、Bloggerにおける画像投稿の課題が解消できると考えています。安全かつシームレスに画像を処理できる仕組みを構築し、効率的なブログ運用を実現してください。
0 件のコメント:
コメントを投稿