Ghost MCP
Ghost MCP
A Model Context Protocol server that gives Claude, Gemini, and any other MCP-compatible AI full access to your Ghost CMS via the Ghost Admin API.
Documentation languages: English · Français · Español
Features
47 tools across 10 resource types — posts, members, users, tags, tiers, offers, newsletters, invites, roles, and webhooks
7 MCP resources — fetch any Ghost entity by URI (e.g.
post://abc123)2 built-in prompts —
summarize-postandcontent-auditTyped error handling — Ghost API errors are caught and surfaced as clean messages, not raw stack traces
Full tool descriptions — every tool includes a plain-English description and per-parameter hints so the LLM understands exactly what to pass
Zero
anytypes — proper TypeScript interfaces throughout
Quick start
1. Prerequisites
Node.js >= 18
A Ghost site with Admin API access (Ghost Pro or self-hosted)
2. Get your Ghost credentials
In your Ghost Admin dashboard, go to Settings → Integrations
Click Add custom integration, give it a name (e.g. "MCP")
Copy the Admin API Key — it looks like
id:secret
3. Pick your AI client
No cloning or building required. Every integration below uses npx @antoinefamibelle/ghost-mcp to run the server on demand.
Client integrations
Claude Desktop
The recommended integration. MCP is a native feature of Claude Desktop.
Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ghost": {
"command": "npx",
"args": ["-y", "@antoinefamibelle/ghost-mcp"],
"env": {
"GHOST_API_URL": "https://yourblog.com",
"GHOST_ADMIN_API_KEY": "your_id:your_secret",
"GHOST_API_VERSION": "v5.0"
}
}
}
}Restart Claude Desktop. A hammer icon will appear in the chat input indicating all 47 tools are available.
Claude Code (CLI)
Run this once in your terminal — Claude Code will persist the server across sessions:
claude mcp add ghost \
--command npx \
--args "-y,@antoinefamibelle/ghost-mcp" \
-e GHOST_API_URL=https://yourblog.com \
-e GHOST_ADMIN_API_KEY=your_id:your_secretOr add it manually to .claude/mcp.json in your project using the same JSON shape as Claude Desktop above.
Gemini CLI
Google's Gemini CLI supports MCP servers natively.
Config file: ~/.gemini/settings.json
{
"mcpServers": {
"ghost": {
"command": "npx",
"args": ["-y", "@antoinefamibelle/ghost-mcp"],
"env": {
"GHOST_API_URL": "https://yourblog.com",
"GHOST_ADMIN_API_KEY": "your_id:your_secret",
"GHOST_API_VERSION": "v5.0"
}
}
}
}Start a session with gemini and the Ghost tools will be available automatically.
ChatGPT
ChatGPT does not support MCP. OpenAI uses a separate plugin/GPT Actions system based on OpenAPI specs. There is no direct integration path — you would need to wrap this server in an HTTP REST layer to use it with ChatGPT.
Other MCP-compatible clients
Any client that speaks the MCP stdio transport can run this server. The command is always:
npx -y @antoinefamibelle/ghost-mcpwith GHOST_API_URL and GHOST_ADMIN_API_KEY set in the environment.
Tools reference
Posts (5 tools)
Tool | Description |
| List posts with filters, pagination, and sorting |
| Fetch a single post by ID or slug |
| Create a new post (draft or published) |
| Update an existing post |
| Permanently delete a post |
Members (5 tools)
Tool | Description |
| List members with filters |
| Fetch a single member by ID or email |
| Add a new member |
| Update a member's details or subscriptions |
| Remove a member |
Users (4 tools)
Tool | Description |
| List staff users |
| Fetch a single user by ID, email, or slug |
| Update a user's profile |
| Delete a staff user |
Tags (5 tools)
Tool | Description |
| List all tags |
| Fetch a single tag by ID or slug |
| Create a new tag |
| Update a tag |
| Delete a tag |
Tiers (5 tools)
Tool | Description |
| List membership tiers |
| Fetch a single tier |
| Create a paid tier |
| Update a tier |
| Delete a tier |
Offers (5 tools)
Tool | Description |
| List promotional offers |
| Fetch an offer by ID or code |
| Create a discount or trial offer |
| Update an offer's display text |
| Delete an offer |
Newsletters (5 tools)
Tool | Description |
| List newsletters |
| Fetch a single newsletter |
| Create a new newsletter |
| Update newsletter settings |
| Delete a newsletter |
Invites (3 tools)
Tool | Description |
| List pending staff invitations |
| Send a staff invitation |
| Cancel an invitation |
Roles (2 tools)
Tool | Description |
| List available roles |
| Fetch a single role by ID or name |
Webhooks (5 tools)
Tool | Description |
| List configured webhooks |
| Fetch a single webhook |
| Create a new webhook |
| Update a webhook |
| Delete a webhook |
MCP Resources
Access Ghost entities directly by URI:
URI pattern | Returns |
| Full post object including tags and authors |
| Staff user with roles |
| Member with labels and subscriptions |
| Tier with pricing details |
| Promotional offer details |
| Newsletter configuration |
| Site settings and metadata |
Built-in prompts
summarize-post
Fetches a Ghost post and asks the LLM to write a concise 2-3 sentence summary.
Parameter: postId — the Ghost post ID
content-audit
Fetches recent posts and asks the LLM to audit them for title quality, tagging consistency, publishing cadence, author diversity, and content strategy.
Parameters:
limit— number of posts to include (default: 10)status— post status to filter by:published|draft|scheduled(default:published)
Environment variables
Variable | Required | Default | Description |
| Yes | — | Your Ghost site URL, e.g. |
| Yes | — | Admin API key in |
| No |
| Ghost API version |
See docs/en/configuration.md for full details.
Documentation
Document | Contents |
Environment variables, Claude Desktop setup, troubleshooting | |
Complete tool reference with all parameters | |
MCP resource URI reference | |
Build, test, and extend the server |
License
MIT