Ghost Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Ghost Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Unofficial MCP server for Ghost CMS. Not affiliated with Ghost Foundation.
Manage posts, pages, tags and images through any MCP-compatible client (Claude Code, Claude Desktop, Cursor, OpenCode, etc.).
uvx ghost-cms-mcpOr install with pip:
pip install ghost-cms-mcpYou need a Ghost Admin API key. Get it from your Ghost Admin panel:
id:secret)claude mcp add ghost \
-e GHOST_URL=https://your-blog.com \
-e GHOST_ADMIN_KEY=your-id:your-secret \
-- uvx ghost-cms-mcpOr add to your project's .mcp.json:
{
"mcpServers": {
"ghost": {
"command": "uvx",
"args": ["ghost-cms-mcp"],
"env": {
"GHOST_URL": "https://your-blog.com",
"GHOST_ADMIN_KEY": "your-id:your-secret"
}
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"ghost": {
"command": "uvx",
"args": ["ghost-cms-mcp"],
"env": {
"GHOST_URL": "https://your-blog.com",
"GHOST_ADMIN_KEY": "your-id:your-secret"
}
}
}
}Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"ghost": {
"command": "uvx",
"args": ["ghost-cms-mcp"],
"env": {
"GHOST_URL": "https://your-blog.com",
"GHOST_ADMIN_KEY": "your-id:your-secret"
}
}
}
}ghost-cms-mcp --url https://your-blog.com --key "your-id:your-secret"Environment variables take priority over CLI arguments.
By default all tools are enabled. You can control which tools are available using presets or manual selection.
| Preset | Tools | Description |
|---|---|---|
all | posts, pages, tags, images | All tools (default) |
writer | posts, tags, images | For authors: write, tag, upload images |
content | posts, pages, tags, images | All content tools |
readonly | posts, pages, tags, images | Only list/get operations, no create/update/delete |
Configure via env variable or CLI argument:
{
"mcpServers": {
"ghost": {
"command": "uvx",
"args": ["ghost-cms-mcp"],
"env": {
"GHOST_URL": "https://your-blog.com",
"GHOST_ADMIN_KEY": "your-id:your-secret",
"GHOST_PRESET": "writer"
}
}
}
}Or via CLI:
ghost-cms-mcp --url https://your-blog.com --key "id:secret" --preset readonlyEnable only specific tool groups:
{
"env": {
"GHOST_URL": "https://your-blog.com",
"GHOST_ADMIN_KEY": "your-id:your-secret",
"GHOST_TOOLS": "posts,tags"
}
}Or via CLI:
ghost-cms-mcp --url https://your-blog.com --key "id:secret" --tools posts,tagsAvailable groups: posts, pages, tags, images
GHOST_TOOLS / --tools takes priority over GHOST_PRESET / --preset.
ghost_list_posts — list posts with filtering by status and tagghost_get_post — get post by ID or slugghost_create_post — create post from Markdownghost_update_post — update post fields (title, content, tags, SEO metadata, etc.)ghost_delete_post — delete postghost_publish_post — publish a draftghost_unpublish_post — revert to draftghost_list_pages — list pagesghost_get_page — get page by ID or slugghost_create_page — create page from Markdownghost_update_page — update page fieldsghost_delete_page — delete pageghost_list_tags — list all tagsghost_create_tag — create a new tagghost_delete_tag — delete tagghost_upload_image — upload image and get URLghost_site_info — get site metadata (title, version, etc.)git clone https://github.com/matveev-pavel/ghost-mcp.git
cd ghost-mcp
uv sync --dev
uv run pytestMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.