ghost-content-mcp
Provides read-only tools for searching, summarizing, and retrieving posts, pages, and tags from a Ghost site via its Content API.
Optional companion that indexes READMEs of repositories linked in Ghost posts, surfacing repo content alongside articles.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ghost-content-mcpWhat are the most recent posts about productivity?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ghost-content-mcp
A read-only MCP server that turns any Ghost site into a semantic content-discovery source for AI assistants.
Point it at a Ghost site (URL + Content API key) and it exposes tools an LLM can call to search, summarize, and read that site's posts, pages, and tags β ranked by a hybrid of lexical (BM25) and local semantic embeddings. It's designed to power visitor-facing chatbots and RAG, not to manage the blog.
How this differs from other Ghost MCP servers. Most existing ones wrap the Admin API for content management (create/edit/delete posts, members, newsletters) β tools for the site owner. This one is the opposite: public, read-only, retrieval-focused. Its job is to answer "what does this site say about X?" well.
Features
π Hybrid search β Okapi BM25 (lexical) +
all-MiniLM-L6-v2embeddings (semantic), so natural-language questions match even without shared keywords. Runs fully locally (model bundled in the image, no external inference calls).π§ 9 tools β
search_all,search_posts,get_related_posts,get_site_summary,get_post,get_page,list_posts,list_pages,list_tags.βοΈ Zero-config identity β auto-detects the site's name/description/URL from Ghost's own
/settingsendpoint (override with env vars if you want).π Self-updating β in-memory index with a ~10-min TTL refresh; new content appears automatically. Optional internal
POST /refreshfor webhook-driven instant updates.π Optional GitHub companions β if a post links a repo you own, its README can be indexed and surfaced next to the article (off by default).
π
#noindexβ tag any post/page#noindexto keep it out of discovery search (still fetchable by direct slug).
Related MCP server: Knowledge Base MCP Server (Qdrant)
Quick start
cp .env.example .env # set GHOST_URL + GHOST_CONTENT_API_KEY
npm install
npm run build
npm startOr with Docker:
docker build -t ghost-content-mcp .
docker run -p 3000:3000 --env-file .env ghost-content-mcpOr with Docker Compose (see docker-compose.yml β includes a memory
cap and healthcheck):
cp .env.example .env # set GHOST_URL + GHOST_CONTENT_API_KEY
docker compose up -dThe MCP endpoint is POST /mcp (Streamable HTTP, stateless JSON). GET /health reports index
status.
Getting a Ghost Content API key
Ghost Admin β Settings β Integrations β Add custom integration β copy the Content API key. (Content keys are read-only and safe to use for a public endpoint.)
Connecting a client
Any MCP client that speaks Streamable HTTP. Example (Claude Desktop-style config):
{
"mcpServers": {
"ghost-content": { "url": "https://your-host/mcp" }
}
}Configuration
Env var | Required | Default | Notes |
| β |
| Your Ghost site URL |
| β | β | Content API key (read-only) |
|
| HTTP port | |
| from Ghost | Identity overrides | |
| β (off) | Comma-separated owner allowlist to enable repo companions | |
| β | Raises GitHub API rate limits | |
|
| Auto-refresh interval | |
| β | If set, | |
|
| Sentence-embedding model | |
|
| Lower = lower peak RAM during index build |
Tools
Tool | Purpose |
| Search posts + pages (+ repos) by keyword/question, ranked by relevance. Start here. |
| Same ranking, posts only. |
| "More like this" for a given post slug. |
| One-call overview: what the site is, topics, counts, recent posts, pages. |
| Full content as Markdown by slug. |
| Paginated listings (filter by tag/date, sort). |
| All public tags with post counts. |
Relevance is 0.5Β·BM25 + 0.5Β·cosine(embeddings), range 0β1. As a rule of thumb: β₯0.5 is a
strong match, 0.3β0.5 weak, <0.3 noise.
How updates work
The index rebuilds automatically every ~10 minutes (TTL); publishing in Ghost is enough. For
instant updates, wire a Ghost "post published/updated" webhook to the internal POST /refresh
(optionally guarded by REFRESH_TOKEN).
Notes
Requires glibc (Node
node:22-slim, not Alpine) β onnxruntime-node's native binding doesn't load on musl.The embedding model (~90 MB) is downloaded at image build time and bundled, so there are no network calls at runtime.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceA read-only MCP server that gives AI agents the web as compact, ranked, verified evidence β no API keys, no cloud retrieval, all models local.Last updated301MIT
- Flicense-qualityBmaintenanceRead-only MCP server with hybrid search combining dense semantic and sparse keyword retrieval via Qdrant, enabling document querying and fetching for ChatGPT Deep Research.Last updated
- Alicense-qualityCmaintenanceRead-only MCP server for accessing GitBook content, including spaces, pages, and search, through AI assistants.Last updated451MIT
- Alicense-qualityAmaintenanceRead-only local-first MCP server enabling AI assistants to semantically search private Markdown, PDF, and Tika-backed knowledge bases without data upload.Last updated43MIT
Related MCP Connectors
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/doradame/ghost-content-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server