Skip to main content
Glama
robsoncoelho

Ghost + Contentful MCP

by robsoncoelho
README.md
# Ghost + Contentful MCP

An MCP (Model Context Protocol) server that lets AI assistants search across multiple CMS platforms — **Ghost** and **Contentful** — from a single interface.

## What it does

This server exposes five search tools over the MCP stdio transport:

| Tool | Source | Searches across |
|---|---|---|
| `search_blog_posts` | Ghost | Post title, excerpt, and body |
| `search_blog_pages` | Ghost | Page title and body |
| `search_learn_pages` | Contentful | Learn page title, meta fields, and rich-text body |
| `search_case_studies` | Contentful | Company name, overview, quote, use case, impact, and body |
| `search_events` | Contentful | Internal event pages and event cards (title, description, agenda) |

Each tool accepts a `query` string and returns matching results with contextual snippets highlighting where the match was found.

## Setup

1. Install dependencies:

```bash
yarn install
```

2. Create a `.env` file with your API credentials:

```
GHOST_CONTENT_ENDPOINT=https://your-ghost-instance.com/ghost/api/content
GHOST_API_KEY=your-ghost-content-api-key
CONTENTFUL_SPACE_ID=your-contentful-space-id
CONTENTFUL_ACCESS_TOKEN=your-contentful-access-token
```

3. Run the server:

```bash
yarn start
```

## MCP client configuration

Add the server to your MCP client config (e.g. Claude Desktop):

```json
{
  "mcpServers": {
    "cms-search": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/mcp-cms-search/index.ts"]
    }
  }
}
```

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct content type (learn pages, case studies, events, blog posts, blog pages), and the descriptions clearly specify the fields searched. There is no ambiguity between Contentful and Ghost entities.

Naming Consistency5/5

All tool names follow the exact same verb_noun pattern: 'search_' followed by a specific content type. This is perfectly consistent and predictable.

Tool Count5/5

The server has 5 tools, well within the ideal 3-15 range. Each tool covers a distinct searchable content type, so every tool earns its place without redundancy or bloat.

Completeness4/5

The tool surface is entirely search-focused, covering the apparent primary content types across both CMSs. Minor gaps exist, such as no ability to fetch a single content item by ID or search across all content types at once, but these are not critical for a search-oriented server.

Maintenance

ActivityInactive
ResponsivenessNo issues