a-blog cms のMCPサーバーを作ってみました
この記事は Advent Calendar 2025 の25日目の記事となります。a-blog cms に関する25日分の記事が公開されていますので、ぜひご覧ください。
はじめに
こんにちは。a-blog cms を開発している伊藤です。
この記事では、2025 年秋に開催された a-blog cms Training Camp 2025 で発表した 「a-blog cms × MCP」 の内容を、アドベントカレンダー向けにまとめて紹介します。
最近は ChatGPT や Claude、Cursor など「AI と開発ツール」が急速に進化しています。特に 2024 年 11 月に公開された MCP(Model Context Protocol) は、CMS の世界にも大きな影響を与える新しい仕組みです。
今回、a-blog cms の GET API を利用した 専用 MCP サーバー(acms-mcp-server) を実装したので、内容・設定方法について、みていきます。
発表スライドも添付したので、よろしければご覧ください。
発表スライド
https://drive.google.com/file/d/1bnuSgKOMUQnXNijRbJRSbM8UC4Nr_MbJ/view?usp=sharing
MCPとは?
MCP は、AI と外部サービス(API・ファイルシステム等)をつなぐための 共通プロトコル です。
MCP のポイント
AIツールが共通して採用する “AI ツールの標準”
AI が外部 API を直接 “安全に” 使えるようになる
AI とサービスの間に “MCP サーバー” が入る構造
AI 側からは「自然言語」で指示するだけで API 呼び出しが可能
たとえば…
「最新のブログ記事を取ってきて」
「この記事の本文を取得して要約して」
「このモジュールの設定内容を見せて」
こんな曖昧な指示でも、AI が勝手に MCP ツールを選び、必要な API を叩いてくれます。
a-blog cms MCP Server について
a-blog cms の GET API を利用して、AIツールが a-blog cms の情報にアクセスできるようになります。GitHub、npmで MCP Serverを公開しています。
できること
今回の MCP サーバーで実装したツールは次の通りです。
キーワード検索(ページネーション対応)
エントリー詳細の取得
モジュール ID の一覧取得
モジュール ID の詳細取得
Twig(V2モジュール)のテンプレートスニペット取得
つまり、a-blog cms のコンテンツを AI から直接検索 & 活用できるようになります。
a-blog cms 側の準備
MCP サーバーを利用するには、a-blog cms 側 にいくつか準備が必要です。
APIキーの取得
管理画面 > コンフィグ > API設定 からV2のAPI機能を有効にして、APIキーをメモしておきます。
拡張アプリのインストール
標準のAPI機能だけだと、機能が足りないので、以下拡張アプリをダウンロード・設置してインストールします。
https://github.com/appleple/acms-mcp-module-api
インストール方法は、GitHubの README をご覧ください。
モジュールIDの作成
MCPサーバーからアクセスするための、APIを作るため、モジュールIDを作成します。
API | モジュール名 | モジュールID名 | 引数チェック |
|---|---|---|---|
記事検索API | V2_Entry_Summary | mcp_entry_summary | キーワード・ページ |
記事詳細API | V2_Entry_Body | mcp_entry_body | エントリーID |
モジュールID一覧API | V2_McpModuleApi_Index | mcp_modules | なし |
モジュールID詳細API | V2_McpModuleApi_Detail | mcp_module_detail | なし |
モジュールIDは、必ず「APIでの取得を許可」にチェックを入れてください。
AIツール側の準備
前提条件
acms-mcp-server は Node.js 製 の MCP サーバーです。そのため、Node.js がインストールされている必要があります。
インストールされていない場合は、公式サイトから導入してください。
インストール後、以下のコマンドでバージョンが表示されればOKです。
$ node -v
$ npm -vClaude Desktopの例
Claude Desktopを起動し設定 > 開発者 を開き、[設定を編集]ボタンを押すとclaude_desktop_config.json というファイルが開きます。
テキストエディタで開いて以下の内容に更新します。
ACMS_BASE, ACMS_X_API_KEY はご自身の環境のものに置き換えてください。
{
"mcpServers": {
"acms": {
"command": "npx",
"args": [
"-y",
"acms-mcp-server@beta",
],
"env": {
"ACMS_BASE": "a-blog cms のブログURL",
"ACMS_X_API_KEY": "メモしたAPIキー"
}
}
}
}Claude Desktop はアプリを再起動しないと反映されないため、JSON設定後アプリを再起動ください。
再起動後、コネクタの中に「acms」があれば成功です。
失敗する場合
もし MCP の登録に失敗する場合は、node へのパスが通っていない可能性があります。
特に nodenv などで Node.js を管理している環境では、この問題が発生しやすい ため注意が必要です。その場合は、利用している環境に合わせて、先ほどの JSON 設定に PATH を明示的に指定してください。
"env": {
"ACMS_BASE": "a-blog cms のブログURL",
"ACMS_X_API_KEY": "メモしたAPIキー"
"PATH": "/Users/xxxxxx/.nodenv/shims:/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin"
}Cursorエディタの例
プロジェクトディレクトリに.cursor/mcp.json を作成して、以下内容(JSON)をコピペします。
ACMS_BASE, ACMS_X_API_KEY はご自身の環境のものに置き換えてください。
{
"mcpServers": {
"acms": {
"command": "npx",
"args": [
"-y",
"acms-mcp-server@beta",
],
"env": {
"ACMS_BASE": "a-blog cms のブログURL",
"ACMS_X_API_KEY": "メモしたAPIキー"
}
}
}
}設定完了したら、右上の歯車から設定を開き、 Tools & MCP に acms が追加されていることを確認してください。
利用例
設定が完了したら、実際の利用例をみていきましょう。
1. CMSのコンテンツを参照してみる
Claude Desktop で CMSで登録されているエントリーの情報を検索します。
* MCPは siteテーマ の初期データが入っている環境に接続しています。
このサイトにある「セキュリティ」に関する記事をまとめて要約してMCPが自動で「セキュリティ」をキーワードにCMSに検索しにいき、記事を取得して、要約してまとめて一覧表示してくれることが確認できます。
他にも以下のような応用が考えられます。
セキュリティに関する内容が古い記事を探して?
セキュリティに関する内容が古くなっていそうな記事はどれ?
セキュリティの〇〇に関する内容を初心者にもわかりやすく説明して
ポイントは全コンテンツにアクセスするわけにはいかないので、キーワードで絞りこんで指示してあげることになります。
2. テンプレートをAIで実装してみる
次は、Cursorエディタを使用して、twigによるテンプレートを実装してみましょう。
* MCPは developテーマ に test_entry_summary モジュールIDを作成した環境に接続しています。
test.html.twigに、test_entry_summaryモジュールIDを使って、
・タイトル
・アイキャッチ画像
・概要文
を表示するテンプレートを作ってください。
Tailwind CSS を使って、カードレイアウトにしてください。MCPが自動的に、指定されたモジュールIDを検索しにいき、V2モジュールのスニペットを参照しながら、指定されたTailwind CSSでテンプレートを実装してくれました。
最後に
AI の進化は本当に速いです。
MCP の登場で CMS 開発・運用の在り方も大きく変わろうとしています。
a-blog cms も、この波に遅れないように、引き続きアップデート、開発を続けていきます。
この記事が、みなさんの AI 活用のヒントになれば嬉しいです。
ぜひ試してみてください!!







