Ghost MCP
Enables AI assistants to manage Ghost CMS content including posts, members, users, tags, tiers, offers, newsletters, invites, roles, and webhooks via the Ghost Admin API.
README
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-audit - Typed 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.json - Windows:
%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_secret
Or 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-mcp
with GHOST_API_URL and GHOST_ADMIN_API_KEY set in the environment.
Tools reference
Posts (5 tools)
| Tool | Description |
|---|---|
posts_browse |
List posts with filters, pagination, and sorting |
posts_read |
Fetch a single post by ID or slug |
posts_add |
Create a new post (draft or published) |
posts_edit |
Update an existing post |
posts_delete |
Permanently delete a post |
Members (5 tools)
| Tool | Description |
|---|---|
members_browse |
List members with filters |
members_read |
Fetch a single member by ID or email |
members_add |
Add a new member |
members_edit |
Update a member's details or subscriptions |
members_delete |
Remove a member |
Users (4 tools)
| Tool | Description |
|---|---|
users_browse |
List staff users |
users_read |
Fetch a single user by ID, email, or slug |
users_edit |
Update a user's profile |
users_delete |
Delete a staff user |
Tags (5 tools)
| Tool | Description |
|---|---|
tags_browse |
List all tags |
tags_read |
Fetch a single tag by ID or slug |
tags_add |
Create a new tag |
tags_edit |
Update a tag |
tags_delete |
Delete a tag |
Tiers (5 tools)
| Tool | Description |
|---|---|
tiers_browse |
List membership tiers |
tiers_read |
Fetch a single tier |
tiers_add |
Create a paid tier |
tiers_edit |
Update a tier |
tiers_delete |
Delete a tier |
Offers (5 tools)
| Tool | Description |
|---|---|
offers_browse |
List promotional offers |
offers_read |
Fetch an offer by ID or code |
offers_add |
Create a discount or trial offer |
offers_edit |
Update an offer's display text |
offers_delete |
Delete an offer |
Newsletters (5 tools)
| Tool | Description |
|---|---|
newsletters_browse |
List newsletters |
newsletters_read |
Fetch a single newsletter |
newsletters_add |
Create a new newsletter |
newsletters_edit |
Update newsletter settings |
newsletters_delete |
Delete a newsletter |
Invites (3 tools)
| Tool | Description |
|---|---|
invites_browse |
List pending staff invitations |
invites_add |
Send a staff invitation |
invites_delete |
Cancel an invitation |
Roles (2 tools)
| Tool | Description |
|---|---|
roles_browse |
List available roles |
roles_read |
Fetch a single role by ID or name |
Webhooks (5 tools)
| Tool | Description |
|---|---|
webhooks_browse |
List configured webhooks |
webhooks_read |
Fetch a single webhook |
webhooks_add |
Create a new webhook |
webhooks_edit |
Update a webhook |
webhooks_delete |
Delete a webhook |
MCP Resources
Access Ghost entities directly by URI:
| URI pattern | Returns |
|---|---|
post://{post_id} |
Full post object including tags and authors |
user://{user_id} |
Staff user with roles |
member://{member_id} |
Member with labels and subscriptions |
tier://{tier_id} |
Tier with pricing details |
offer://{offer_id} |
Promotional offer details |
newsletter://{newsletter_id} |
Newsletter configuration |
blog://info |
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 |
|---|---|---|---|
GHOST_API_URL |
Yes | — | Your Ghost site URL, e.g. https://yourblog.com |
GHOST_ADMIN_API_KEY |
Yes | — | Admin API key in id:secret format |
GHOST_API_VERSION |
No | v5.0 |
Ghost API version |
See docs/en/configuration.md for full details.
Documentation
| Document | Contents |
|---|---|
| docs/en/configuration.md | Environment variables, Claude Desktop setup, troubleshooting |
| docs/en/tools.md | Complete tool reference with all parameters |
| docs/en/resources.md | MCP resource URI reference |
| docs/en/development.md | Build, test, and extend the server |
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.