ghost-mcp
by MFYDev
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.
What is ghost-mcp
Ghost MCP Server
A Model Context Protocol (MCP) server for interacting with Ghost CMS through LLM interfaces like Claude. This server provides secure and comprehensive access to your Ghost blog, leveraging JWT authentication and a rich set of MCP tools for managing posts, users, members, tiers, offers, and newsletters.
Features
- Secure JWT Authentication for Ghost Admin API requests
- Comprehensive entity access including posts, users, members, tiers, offers, and newsletters
- Advanced search functionality with both fuzzy and exact matching options
- Detailed, human-readable output for Ghost entities
- Robust error handling using custom
GhostError
exceptions - Integrated logging support via MCP context for enhanced troubleshooting
Installation
Installing via Smithery
To install Ghost MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @MFYDev/ghost-mcp --client claude
Manual Installation
# Clone repository
git clone [email protected]/mfydev/ghost-mcp.git
cd ghost-mcp
# Create virtual environment and install
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
Requirements
- Python โฅ 3.12
- Running Ghost instance with Admin API access (v5.x+ recommended)
- Node.js (for testing with MCP Inspector)
Usage
Environment Variables
GHOST_API_URL=https://yourblog.com # Your Ghost Admin API URL
GHOST_STAFF_API_KEY=your_staff_api_key # Your Ghost Staff API key
Usage with MCP Clients
To use this with MCP clients, for instance, Claude Desktop, add the following to your claude_desktop_config.json
:
{
"mcpServers": {
"ghost": {
"command": "/Users/username/.local/bin/uv",
"args": [
"--directory",
"/path/to/ghost-mcp",
"run",
"src/main.py"
],
"env": {
"GHOST_API_URL": "your_ghost_api_url",
"GHOST_STAFF_API_KEY": "your_staff_api_key"
}
}
}
}
Testing with MCP Inspector
GHOST_API_URL=your_ghost_api_url GHOST_STAFF_API_KEY=your_staff_api_key npx @modelcontextprotocol/inspector uv --directory /path/to/ghost-mcp run src/main.py
Available Tools
Ghost MCP now provides a single unified tool that provides access to all Ghost CMS functionality:
Main Tool
ghost
: Central tool for accessing all Ghost CMS functionality
Using the Ghost Tool
The ghost tool accepts two main parameters:
action
: The specific Ghost operation to performparams
: A dictionary of parameters for the specified action
Example usage:
# List posts
ghost(action="list_posts", params={"format": "text", "page": 1, "limit": 15})
# Search posts by title
ghost(action="search_posts_by_title", params={"query": "Welcome", "exact": False})
# Create a post
ghost(action="create_post", params={
"post_data": {
"title": "New Post via MCP",
"status": "draft",
"lexical": "{\"root\":{\"children\":[{\"children\":[{\"detail\":0,\"format\":0,\"mode\":\"normal\",\"style\":\"\",\"text\":\"Hello World\",\"type\":\"text\",\"version\":1}],\"direction\":\"ltr\",\"format\":\"\",\"indent\":0,\"type\":\"paragraph\",\"version\":1}],\"direction\":\"ltr\",\"format\":\"\",\"indent\":0,\"type\":\"root\",\"version\":1}}"
}
})
Available Actions
The ghost tool supports all the same actions as before, but now through a unified interface:
Posts Actions
list_posts
: List blog posts with paginationsearch_posts_by_title
: Search for posts by titleread_post
: Retrieve full content of a specific postcreate_post
: Create a new postupdate_post
: Update a specific postdelete_post
: Delete a specific postbatchly_update_posts
: Update multiple posts in a single request
Tags Actions
browse_tags
: List all tagsread_tag
: Retrieve specific tag informationcreate_tag
: Create a new tagupdate_tag
: Update an existing tagdelete_tag
: Delete a specific tag
Users Actions
list_roles
: List all available rolescreate_invite
: Create a new user invitationlist_users
: List all usersread_user
: Get details of a specific userdelete_user
: Delete a specific user
Members Actions
list_members
: List membersread_member
: Retrieve specific member informationcreate_member
: Create a new memberupdate_member
: Update an existing member
Tiers Actions
list_tiers
: List all membership tiersread_tier
: Retrieve specific tier informationcreate_tier
: Create a new tierupdate_tier
: Update an existing tier
Offers Actions
list_offers
: List promotional offersread_offer
: Get specific offer informationcreate_offer
: Create a new offerupdate_offer
: Update an existing offer
Newsletters Actions
list_newsletters
: List all newslettersread_newsletter
: Retrieve specific newsletter informationcreate_newsletter
: Create a new newsletterupdate_newsletter
: Update an existing newsletter
Webhooks Actions
create_webhook
: Create a new webhookupdate_webhook
: Update an existing webhookdelete_webhook
: Delete a specific webhook
Available Resources
All resources follow the URI pattern: [type]://[id]
user://{user_id}
: User profiles and rolesmember://{member_id}
: Member details and subscriptionstier://{tier_id}
: Tier configurationsoffer://{offer_id}
: Offer detailsnewsletter://{newsletter_id}
: Newsletter settingspost://{post_id}
: Post content and metadatablog://info
: General blog information
Error Handling
Ghost MCP Server employs a custom GhostError
exception to handle API communication errors and processing issues. This ensures clear and descriptive error messages to assist with troubleshooting.
Contributing
- Fork repository
- Create feature branch
- Commit changes
- Create pull request
License
MIT
Leave a Comment
Comments section will be available soon. Stay tuned!
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
Ableton Live MCP Server
MCP Server implementation for Ableton Live OSC control
Airbnb MCP Server
AI Agent Marketplace Index Search MCP Server
MCP Server for AI Agent Marketplace Index from DeepNLP
Algorand MCP Implementation
Algorand Model Context Protocol (Server & Client)
mcp-server-apache-airflow
pypi.org/project/mcp-server-apache-airflow/
airtable-mcp-server
๐๏ธ๐ค Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases
Airtable MCP Server
Search, create and update Airtable bases, tables, fields, and records using Claude Desktop and MCP (Model Context Protocol) clients
Alphavantage MCP Server
A MCP server for the stock market data API, Alphavantage API.
Amadeus MCP Server
Amadeus MCP(Model Context Protocol) Server
Anki MCP Server
An MCP server for Anki
Submit Your MCP Server
Share your MCP server with the community
Submit Now