MCP Hub
Back to servers

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.

glama
Updated
May 11, 2026

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 promptssummarize-post and content-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 any types — 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

  1. In your Ghost Admin dashboard, go to Settings → Integrations
  2. Click Add custom integration, give it a name (e.g. "MCP")
  3. 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)

ToolDescription
posts_browseList posts with filters, pagination, and sorting
posts_readFetch a single post by ID or slug
posts_addCreate a new post (draft or published)
posts_editUpdate an existing post
posts_deletePermanently delete a post

Members (5 tools)

ToolDescription
members_browseList members with filters
members_readFetch a single member by ID or email
members_addAdd a new member
members_editUpdate a member's details or subscriptions
members_deleteRemove a member

Users (4 tools)

ToolDescription
users_browseList staff users
users_readFetch a single user by ID, email, or slug
users_editUpdate a user's profile
users_deleteDelete a staff user

Tags (5 tools)

ToolDescription
tags_browseList all tags
tags_readFetch a single tag by ID or slug
tags_addCreate a new tag
tags_editUpdate a tag
tags_deleteDelete a tag

Tiers (5 tools)

ToolDescription
tiers_browseList membership tiers
tiers_readFetch a single tier
tiers_addCreate a paid tier
tiers_editUpdate a tier
tiers_deleteDelete a tier

Offers (5 tools)

ToolDescription
offers_browseList promotional offers
offers_readFetch an offer by ID or code
offers_addCreate a discount or trial offer
offers_editUpdate an offer's display text
offers_deleteDelete an offer

Newsletters (5 tools)

ToolDescription
newsletters_browseList newsletters
newsletters_readFetch a single newsletter
newsletters_addCreate a new newsletter
newsletters_editUpdate newsletter settings
newsletters_deleteDelete a newsletter

Invites (3 tools)

ToolDescription
invites_browseList pending staff invitations
invites_addSend a staff invitation
invites_deleteCancel an invitation

Roles (2 tools)

ToolDescription
roles_browseList available roles
roles_readFetch a single role by ID or name

Webhooks (5 tools)

ToolDescription
webhooks_browseList configured webhooks
webhooks_readFetch a single webhook
webhooks_addCreate a new webhook
webhooks_editUpdate a webhook
webhooks_deleteDelete a webhook

MCP Resources

Access Ghost entities directly by URI:

URI patternReturns
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://infoSite 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

VariableRequiredDefaultDescription
GHOST_API_URLYesYour Ghost site URL, e.g. https://yourblog.com
GHOST_ADMIN_API_KEYYesAdmin API key in id:secret format
GHOST_API_VERSIONNov5.0Ghost API version

See docs/en/configuration.md for full details.


Documentation

DocumentContents
docs/en/configuration.mdEnvironment variables, Claude Desktop setup, troubleshooting
docs/en/tools.mdComplete tool reference with all parameters
docs/en/resources.mdMCP resource URI reference
docs/en/development.mdBuild, test, and extend the server

License

MIT

Reviews

No reviews yet

Sign in to write a review