Introducing Ghost-MCP: A Model Context Protocol Server for Ghost CMS
GitHub – MFYDev/ghost-mcp: A Model Context Protocol (MCP) server for interacting with Ghost CMS through LLM interfaces like Claude. Allow you to control your Ghost blog by simply asking Claude etc.
A Model Context Protocol (MCP) server for interacting with Ghost CMS through LLM interfaces like Claude. Allow you to control your Ghost blog by simply asking Claude etc. – MFYDev/ghost-mcp
GitHubMFYDev
Introduction & Motivation
When Anthropic introduced the Model Context Protocol (MCP), it opened up exciting new possibilities for integrating AI models like Claude with external systems. The protocol provides a standardized way for AI models to interact with data and functionality from any source, transforming them from isolated systems into powerful tools that can work directly with your applications and services.
Introducing the Model Context Protocol
The Model Context Protocol (MCP) is an open standard for connecting AI assistants to the systems where data lives, including content repositories, business tools, and development environments. Its aim is to help frontier models produce better, more relevant responses.
As someone who has been actively blogging and working with Ghost CMS, I noticed an interesting opportunity. Looking through the official MCP servers repository, I discovered that no one had yet implemented an MCP server for Ghost. This seemed like the perfect chance to contribute something valuable to both the Ghost and AI communities.
GitHub – modelcontextprotocol/servers: Model Context Protocol Servers
Model Context Protocol Servers. Contribute to modelcontextprotocol/servers development by creating an account on GitHub.
GitHubmodelcontextprotocol
The goal was clear: create a bridge between Claude and Ghost that would allow the AI to directly interact with all aspects of a Ghost blog. This meant not just reading and writing posts, but managing members, handling newsletters, working with tiers and offers – essentially providing programmatic access to everything you can do through Ghost’s Admin API.
Technical Implementation
The project’s architecture draws inspiration from two main sources: the Ghost Admin API documentation and the MCP Python SDK. By studying both, I was able to design a structure that maintains the elegance of the MCP protocol while providing comprehensive coverage of Ghost’s functionality.
Ghost Admin API Documentation
Manage content via Ghost’s Admin API, with secure role-based authentication. Read more on Ghost Docs 👉
Ghost – The Professional Publishing Platform
GitHub – modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients
The official Python SDK for Model Context Protocol servers and clients – modelcontextprotocol/python-sdk
GitHubmodelcontextprotocol
Here’s the complete project structure:
- Server Structure: The main server is built using FastMCP, providing a clean interface for defining resources and tools. The structure follows a modular design:
ghost-mcp/
├── README.md
├── ghost-admin-api.md # Local copy of Ghost API docs
├── mcp-python-sdk.md # MCP SDK reference
├── pyproject.toml # Project dependencies and metadata
├── uv.lock # Dependency lock file
└── src/
├── main.py # Entry point
└── ghost_mcp/
├── __init__.py
├── api.py # Ghost API interaction layer
├── config.py # Configuration management
├── exceptions.py # Custom error handling
├── models.py # Data models for Ghost resources
├── resources.py # MCP resource implementations
├── server.py # Main MCP server setup
└── tools/ # Individual tool implementations
├── __init__.py # Dynamically import everything
├── invites.py
├── members.py
├── newsletters.py
├── offers.py
├── posts.py
├── tags.py
├── roles.py
├── tiers.py
├── users.py
└── webhooks.py
The structure reflects several key design decisions:
- Clean Separation of Concerns: The project separates Ghost API interaction (
api.py
) from MCP protocol handling (server.py
), making it easier to maintain and update either aspect independently. - Modular Tool Organization: Each Ghost functionality area has its own module in the
tools/
directory, mirroring the organization of the Ghost Admin API