Ghost CMS Admin & Newsletter MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port to run the server on (default: 8765). | |
| TRANSPORT | No | Transport protocol (default: streamable-http). Options: streamable-http, sse, stdio. | |
| MCP_AUTH_TOKEN | No | Optional bearer token for securing the MCP endpoint. | |
| GHOST_ADMIN_API_KEY | Yes | Your Ghost Admin API key in the format id:secret. | |
| GHOST_ADMIN_API_URL | Yes | The base URL of your Ghost Admin API (e.g., https://blog.yourdomain.com). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ghost_get_site_infoA | Get full site metadata, settings, title, timezone, version, and navigation structure. |
| ghost_test_connectionA | Verify authentication and connection to the self-hosted Ghost CMS instance. |
| ghost_list_postsC | List and search blog posts & newsletters from Ghost CMS with filtering, pagination, and sorting. |
| ghost_get_postA | Get full details and content of a single Ghost post by its ID or Slug. |
| ghost_create_postC | Create a new blog post or newsletter draft in Ghost CMS. |
| ghost_update_postB | Update an existing post in Ghost CMS by ID. |
| ghost_delete_postA | Delete a post permanently from Ghost CMS by ID. |
| ghost_publish_and_send_newsletterB | Publish a draft post and immediately broadcast it as an email newsletter to subscribers. |
| ghost_list_pagesA | List static pages in Ghost CMS (e.g. About, Contact, Privacy Policy, Landing pages). |
| ghost_get_pageA | Get full details and content of a static Ghost page by ID or Slug. |
| ghost_create_pageB | Create a new static page in Ghost CMS. |
| ghost_update_pageC | Update an existing static page in Ghost CMS. |
| ghost_delete_pageA | Delete a static page permanently by ID. |
| ghost_list_newslettersA | List all email newsletters configured on the Ghost CMS publication. |
| ghost_get_newsletterA | Get detailed configuration and stats for a specific newsletter by ID. |
| ghost_create_newsletterC | Create a new email newsletter channel for the Ghost publication. |
| ghost_update_newsletterB | Update configuration of an existing newsletter by ID. |
| ghost_list_membersB | List, search, and filter members/subscribers of the Ghost publication. |
| ghost_get_memberA | Get detailed profile, subscription tiers, and email history for a member by ID. |
| ghost_create_memberB | Add a new member or subscriber to Ghost CMS. |
| ghost_update_memberB | Update an existing member's information, labels, or subscription status. |
| ghost_delete_memberB | Permanently delete a member from Ghost CMS. |
| ghost_add_member_labelsB | Append one or more labels to an existing member for segmentation. |
| ghost_list_tagsA | List all tags (public and internal #tags) used across Ghost posts. |
| ghost_get_tagB | Get full details for a tag by ID or slug. |
| ghost_create_tagC | Create a new tag (public or internal starting with #). |
| ghost_update_tagB | Update an existing tag in Ghost CMS. |
| ghost_delete_tagA | Delete a tag permanently from Ghost CMS. |
| ghost_list_tiersA | List all membership and subscription tiers (Free, Paid, Monthly/Yearly pricing, Benefits). |
| ghost_list_offersA | List all active discount offers and promotional codes in Ghost CMS. |
| ghost_upload_imageB | Upload an image to Ghost CMS from a local file path, a web URL, or base64 string. Returns the public Ghost image URL for feature images or inline content. |
| ghost_list_webhooksA | List all configured webhooks in Ghost CMS. |
| ghost_create_webhookA | Create a new webhook in Ghost CMS for event notifications (e.g. 'post.published', 'member.added'). |
| ghost_delete_webhookB | Delete a webhook by ID from Ghost CMS. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| draft-blog-post | Prompt template for generating a structured, engaging, SEO-optimized blog post ready for Ghost CMS. |
| draft-newsletter | Prompt template for writing an engaging newsletter edition to broadcast to Ghost subscribers. |
| ghost-content-audit | Prompt template to analyze recent posts and member growth to recommend an editorial calendar. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ghost-site-info | Site configuration, title, description, and settings |
| ghost-newsletters | List of all active and archived newsletters with subscriber counts |
| ghost-tiers | Available subscription and membership tiers |
| ghost-recent-posts | The 10 most recent published posts from the publication |
| ghost-members-summary | Recent member signups and status overview |
TDQS
Scored across 34 tools
Each tool targets a distinct resource and action (e.g., list_posts vs get_post, create_member vs update_member). The combination of noun (post, page, tag, member, newsletter, webhook) and verb (list, get, create, update, delete) makes each tool's purpose immediately clear, with no overlapping or ambiguous tools.
All tools follow a uniform 'ghost_<verb>_<noun>' pattern in snake_case. Verbs are consistently action-oriented (list, get, create, update, delete) and nouns correspond to specific entities, with only a few compound verbs like 'publish_and_send' that still adhere to the overall pattern.
With 34 tools, the server covers a broad domain (posts, pages, tags, members, newsletters, webhooks, offers, tiers, images, site info). While higher than the typical 3-15 range, it is justified by the number of entities and their CRUD needs, so it remains reasonable and each tool serves a distinct purpose.
The tool surface covers full lifecycle operations for most core entities (posts, pages, tags, members, webhooks) and provides listing for auxiliary entities like offers and tiers. Minor gaps exist (e.g., no delete for newsletters, no update for webhooks), but these are edge cases and do not block primary workflows.