mirror of
https://github.com/jlengrand/ghost-mcp.git
synced 2026-03-10 08:21:19 +00:00
This PR adds a badge for the [Ghost MCP Server](https://glama.ai/mcp/servers/vor63xn7ky) server listing in Glama MCP server directory. <a href="https://glama.ai/mcp/servers/vor63xn7ky"><img width="380" height="200" src="https://glama.ai/mcp/servers/vor63xn7ky/badge" alt="Ghost Server MCP server" /></a> Glama performs regular codebase and documentation checks to: * Confirm that the MCP server is working as expected * Confirm that there are no obvious security issues with dependencies of the server * Extract server characteristics such as tools, resources, prompts, and required parameters. This badge helps your users to quickly asses that the MCP server is safe, server capabilities, and instructions for installing the server.
5.9 KiB
5.9 KiB
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
GhostErrorexceptions - 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 git@github.com/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 Claude Desktop
To use this with 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
Posts Management
list_posts: List blog posts with pagination (supports both text and JSON formats)search_posts_by_title: Search for posts by title using exact or fuzzy matchingread_post: Retrieve full content of a specific post in HTML or plaintext formatscreate_post: Create a new post with specified content and metadataupdate_post: Update a specific post with new content and metadatadelete_post: Delete a specific postbatchly_update_posts: Update multiple posts in a single request
Tags Management
browse_tags: List all tags associated with the blogread_tag: Retrieve detailed information about a specific tagcreate_tag: Create a new tag with specified detailsupdate_tag: Update an existing tag with new informationdelete_tag: Delete a specific tag
Users Management
list_roles: List all available rolescreate_invite: Create a new user invitation email and role_idlist_users: List all users with detailed role informationread_user: Get comprehensive details of a specific userupdate_user: Update an existing user's information (Please note: Ghost has not implemented the ability to update user roles via the API even though they include it in the API documentation)delete_user: Delete a specific user
Members Management
list_members: List members with subscription and newsletter detailsread_member: Retrieve detailed information for a specific member, including subscriptionscreate_member: Create a new member with specified detailsupdate_member: Update an existing member's information
Tiers Management
list_tiers: List all available membership tiersread_tier: Retrieve detailed information about a specific tier, including benefits and pricingcreate_tier: Create a new membership tier with specified detailsupdate_tier: Update an existing tier with new information
Offers Management
list_offers: List promotional offers with relevant detailsread_offer: Get detailed information on a specific offercreate_offer: Create a new promotional offer with specified detailsupdate_offer: Update an existing offer with new information
Newsletters Management
list_newsletters: List all newsletters associated with the blogread_newsletter: Retrieve detailed settings and information for a specific newslettercreate_newsletter: Create a new newsletter with specified detailsupdate_newsletter: Update an existing newsletter with new information
Webhooks Management
create_webhook: Create a new webhook with specified detailsupdate_webhook: Update an existing webhook with new informationdelete_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
