ゴーストMCPサーバー
Ghost Admin APIと統合されたモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、投稿管理、ページ管理、メンバー管理など、Ghost CMSの機能へのプログラムによるアクセスを可能にします。
特徴
- 投稿管理(作成、閲覧、更新、削除、検索)
- ページ管理(作成、読み取り、更新、削除)
- タグ管理
- 著者管理
- メンバー管理(作成、読み取り、更新、削除、検索)
- 画像アップロードサポート
前提条件
- Node.js(v18以上を推奨)
- Ghost CMSインスタンス
- Ghost Admin APIキー
インストール
npm を使用してパッケージをインストールします。
npm install @mtane0412/ghost-mcp-server
構成
- Ghost 管理ダッシュボードの「設定」>「統合」で、新しいカスタム統合を作成します。
- 次の環境変数を設定します。
# macOS/Linux
export GHOST_URL="https://your-ghost-blog.com"
export GHOST_ADMIN_API_KEY="your_admin_api_key"
# Windows (PowerShell)
$env:GHOST_URL="https://your-ghost-blog.com"
$env:GHOST_ADMIN_API_KEY="your_admin_api_key"
あるいは、 .env
ファイルを作成することもできます。
GHOST_URL=https://your-ghost-blog.com
GHOST_ADMIN_API_KEY=your_admin_api_key
使用法
インストール後、次のコマンドでサーバーを起動します。
npx @mtane0412/ghost-mcp-server
利用可能なツール
get_posts
ブログ投稿のリストを取得します。
入力:
{
"limit": "number", // Optional: Number of posts to retrieve (1-100, default: 10)
"page": "number" // Optional: Page number (default: 1)
}
取得投稿
ID で特定の投稿を取得します。
入力:
{
"id": "string" // Required: Post ID
}
検索投稿
投稿を検索します。
入力:
{
"query": "string", // Required: Search query
"limit": "number" // Optional: Number of posts to retrieve (1-100, default: 10)
}
投稿を作成
新しい投稿を作成します。
入力:
{
"title": "string", // Required: Post title
"html": "string", // Optional: HTML content
"lexical": "string", // Optional: Lexical content
"status": "string", // Optional: Post status (published/draft/scheduled)
"visibility": "string" // Optional: Visibility level (public/members/paid/tiers)
}
更新投稿
既存の投稿を更新します。
入力:
{
"id": "string", // Required: Post ID
"title": "string", // Optional: Post title
"html": "string", // Optional: HTML content
"lexical": "string", // Optional: Lexical content
"status": "string" // Optional: Post status
}
投稿を削除
投稿を削除します。
入力:
{
"id": "string" // Required: Post ID
}
get_pages
ページのリストを取得します。
入力:
{
"limit": "number", // Optional: Number of pages to retrieve (1-100, default: 10)
"page": "number", // Optional: Page number (default: 1)
"order": "string", // Optional: Sort order
"formats": ["string"], // Optional: Content formats (html/mobiledoc/lexical)
"include": ["string"] // Optional: Related data to include (authors/tags)
}
get_members
メンバーのリストを取得します。
入力:
{
"limit": "number", // Optional: Number of members to retrieve (1-100, default: 10)
"page": "number", // Optional: Page number (default: 1)
"order": "string", // Optional: Sort order
"include": ["string"] // Optional: Related data to include (labels/newsletters)
}
検索メンバー
メンバーを検索します。
入力:
{
"query": "string", // Required: Search query
"limit": "number", // Optional: Number of members to retrieve (1-100, default: 10)
"include": ["string"] // Optional: Related data to include (labels/newsletters)
}
アップロード画像
画像をアップロードします。
入力:
{
"file": "string", // Required: Base64 encoded image data
"purpose": "string" // Optional: Image purpose (image/profile_image/icon)
}
デバッグ
MCPサーバーはstdio経由で通信するため、デバッグが困難になる場合があります。パッケージスクリプトとして提供されているMCP Inspectorの使用をお勧めします。
インスペクターは、ブラウザでデバッグ ツールにアクセスするための URL を提供します。
ライセンス
MITライセンス