Ghost MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GHOST_URL | Yes | The URL of your Ghost blog (e.g., https://your-blog.ghost.io) | |
| GHOST_ADMIN_API_KEY | No | Your Ghost Admin API key (id:secret format) for full CRUD access | |
| GHOST_CONTENT_API_KEY | Yes | Your Ghost Content API key for read-only access |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| content_browse_postsA | Browse published posts from Ghost Content API (read-only, public content). TIP: Use "fields" param (e.g., "id,title,slug,published_at,excerpt") to reduce response size. Omit html field unless content is needed. USE CASE:
NOTE: Only returns published posts visible to the public. For drafts, scheduled, or all posts, use admin_browse_posts instead. FILTER EXAMPLES:
RETURNS: Array of posts with pagination metadata (page, pages, total). |
| content_read_postA | Read a single published post by ID or slug (read-only, public content). USE CASE:
IDENTIFIER: Provide either 'id' OR 'slug', not both. NOTE: Only returns published posts visible to the public. For drafts or scheduled posts, use admin_read_post instead. RETURNS: Single post object with requested fields and related data (tags, authors). |
| content_browse_pagesA | Browse published pages from Ghost Content API (read-only, public content). TIP: Use "fields" param (e.g., "id,title,slug,published_at,excerpt") to reduce response size. Omit html field unless content is needed. USE CASE:
NOTE: Only returns published pages visible to the public. Pages are static content NOT shown in RSS feeds or blog listings. For drafts or all pages, use admin_browse_pages instead. RETURNS: Array of pages with pagination metadata (page, pages, total). |
| content_read_pageA | Read a single published page by ID or slug (read-only, public content). USE CASE:
IDENTIFIER: Provide either 'id' OR 'slug', not both. NOTE: Only returns published pages visible to the public. For drafts or scheduled pages, use admin_read_page instead. RETURNS: Single page object with requested fields and related data. |
| content_browse_tagsA | Browse public tags from Ghost Content API (read-only). USE CASE:
INCLUDE OPTIONS:
NOTE: Only returns public tags (not internal tags starting with #). For all tags including internal, use admin_browse_tags instead. RETURNS: Array of tags with metadata and optional post counts. |
| content_read_tagA | Read a single public tag by ID or slug (read-only). USE CASE:
IDENTIFIER: Provide either 'id' OR 'slug', not both. NOTE: Only returns public tags visible on the website. For internal tags, use admin_read_tag instead. RETURNS: Single tag object with metadata and optional post count. |
| content_browse_authorsA | Browse public authors from Ghost Content API (read-only). USE CASE:
INCLUDE OPTIONS:
NOTE: Only authors with at least one published post are returned. For all staff users (including those without posts), use admin_browse_users instead. RETURNS: Array of authors with bio, social links, and optional post counts. |
| content_read_authorA | Read a single public author by ID or slug (read-only). USE CASE:
IDENTIFIER: Provide either 'id' OR 'slug', not both. NOTE: Only returns authors with published posts. For staff users without published posts, use admin_read_user instead. RETURNS: Single author object with bio, social links, and optional post count. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a unique combination of resource (author, page, post, tag) and operation (browse or read), with no overlapping functionality. Descriptions clearly differentiate between list and single retrieval.
All tools follow a consistent `content_{browse|read}_{resource}` pattern, using snake_case and a clear verb-noun structure. The naming is predictable and uniform across the entire surface.
8 tools is ideal for a focused read-only public content API covering four resources with list and single retrieval. Each tool serves a distinct purpose without being excessive or insufficient.
The tool set fully covers the domain of public content access: all four primary resources (authors, pages, posts, tags) have both browse and read operations. There are no obvious gaps for the intended use cases.