Skip to main content
Glama
README.md
# Ghost MCP

An MCP (Model Context Protocol) server for interacting with Ghost CMS blogs through AI assistants.

[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://workspace.github.io/ghost-mcp/)
[![npm](https://img.shields.io/npm/v/@ryukimin/ghost-mcp)](https://www.npmjs.com/package/@ryukimin/ghost-mcp)

> **Full documentation**: [https://workspace.github.io/ghost-mcp/](https://workspace.github.io/ghost-mcp/)

## Quick Start

### Local (stdio)

Add to your Claude Desktop `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "ghost": {
      "command": "npx",
      "args": ["-y", "@ryukimin/ghost-mcp"],
      "env": {
        "GHOST_URL": "https://your-blog.ghost.io",
        "GHOST_CONTENT_API_KEY": "your-content-api-key",
        "GHOST_ADMIN_API_KEY": "your-admin-id:your-admin-secret"
      }
    }
  }
}
```

Config file location:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

### Remote (Docker)

```bash
docker compose up -d
```

See [Remote Setup](https://workspace.github.io/ghost-mcp/docs/remote-setup) for the full guide.

## Features

- **Content API** (read-only): Browse and read posts, pages, tags, and authors (8 tools)
- **Admin API** (full CRUD): Create, update, and delete posts, pages, tags, members, newsletters, tiers, offers, webhooks, and more (46 tools)
- **Dual transport**: stdio for local, Streamable HTTP for remote deployment
- **OAuth 2.1**: Secure per-user authentication for remote mode

## Getting API Keys

1. In Ghost Admin, go to **Settings > Integrations**
2. Create a new Custom Integration
3. Copy the **Content API Key** for read-only access
4. Copy the **Admin API Key** for full access (`id:secret` format)

## Development

```bash
npm install        # Install dependencies
npm run build      # Build TypeScript
npm start          # Run stdio server
npm run start:sse  # Run HTTP/SSE server
npm test           # Run tests
npm run lint       # Lint code
```

## Documentation

- [Getting Started](https://workspace.github.io/ghost-mcp/docs/getting-started)
- [Remote Setup](https://workspace.github.io/ghost-mcp/docs/remote-setup)
- [Tools Reference](https://workspace.github.io/ghost-mcp/docs/tools/content-api)
- [Usage Examples](https://workspace.github.io/ghost-mcp/docs/examples/content-api-examples)
- [NQL Filter Reference](https://workspace.github.io/ghost-mcp/docs/nql-reference)

## License

ISC

TDQS

A4.7/5.0

Scored across 8 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessUnresponsive