Skip to main content
Glama

Content Creation MCP Server

by preangelleo

🚀 Ghost Blog Management MCP Server

Transform your Ghost CMS workflow with AI-powered content management directly from Claude Desktop.

This MCP server brings the full power of Ghost Blog Smart API to Claude, enabling you to create AI-enhanced blog posts, generate stunning feature images, and manage multiple Ghost blogs - all through natural conversation.

✨ Why This MCP Server?

🎯 Multi-Blog Management

Manage unlimited Ghost blogs from a single MCP server. Switch between blogs dynamically by providing credentials, perfect for agencies and content creators managing multiple properties.

🤖 AI-First Content Creation

  • Smart Create: Transform rough notes into polished blog posts with Google Gemini
  • Dual Image Generation: Choose between ultra-fast Flux (3-7s) or professional Imagen (10-15s)
  • Auto Enhancement: Generate titles, excerpts, and tags automatically
  • Multi-language Support: Create content in any language

📝 Support for Posts AND Pages

Create both blog posts and static pages (About, Contact, etc.) with the new post_type parameter support.

🔐 Enterprise-Grade Security

  • GitHub OAuth authentication with flexible access control
  • Private mode: Restrict to specific GitHub users
  • Public mode: Allow all authenticated GitHub users
  • Three-level credential priority system
  • HMAC-signed session management
  • No hardcoded secrets

🏗️ Architecture

🛠️ Complete Tool Suite (13 Tools)

ToolDescriptionAI Features
ghost_health_checkCheck API status and health-
ghost_api_infoGet API capabilities and version-
ghost_create_postCreate posts/pages with optional AI images🎨 Flux/Imagen
ghost_smart_createTransform ideas into complete posts🤖 Gemini + 🎨
ghost_get_postsList posts with filters-
ghost_advanced_searchSearch posts by text, tags, dates-
ghost_get_post_detailsGet complete post information-
ghost_update_postUpdate post content/metadata-
ghost_update_post_imageGenerate new AI feature image🎨 Flux/Imagen
ghost_delete_postDelete posts permanently-
ghost_posts_summaryAnalytics and statistics-
ghost_batch_get_detailsEfficient batch operations-
ghost_search_by_dateFind posts by date patterns-

🚀 Quick Start

Prerequisites

  1. Ghost Blog with Admin API access
  2. Ghost Blog Smart API deployed (Instructions)
  3. Cloudflare account (free tier works)
  4. GitHub account for OAuth

Step 1: Deploy Ghost Blog Smart API

# Quick start with Docker docker run -d -p 5000:5000 \ -e GHOST_ADMIN_API_KEY=your_ghost_key \ -e GHOST_API_URL=https://your-blog.com \ -e GEMINI_API_KEY=your_gemini_key \ -e REPLICATE_API_TOKEN=your_replicate_token \ --name ghost-blog-api \ betashow/ghost-blog-smart-api

Step 2: Clone and Configure

git clone https://github.com/preangelleo/ghost-blog-management-mcp.git cd ghost-blog-management-mcp npm install

Step 3: Setup GitHub OAuth

Create a GitHub OAuth App:

  • Application name: Ghost Blog Management
  • Homepage URL: http://localhost:8792
  • Callback URL: http://localhost:8792/callback

Step 4: Configure Environment

cp .dev.vars.example .dev.vars

Edit .dev.vars:

GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret COOKIE_ENCRYPTION_KEY=your_api_key # Must match Ghost Blog Smart API

Step 5: Configure Authorization

Choose your access control mode in .dev.vars:

Option 1: Private Mode (Recommended for production)

# Only specific GitHub users can access AUTHORIZED_USERS=your-github-username # For multiple users: AUTHORIZED_USERS=user1,user2,user3

Option 2: Public Mode

# All authenticated GitHub users can access AUTHORIZED_USERS= # Or simply don't set the variable

Update the Ghost Blog API URL in src/tools/ghost-blog-tools.ts if needed:

// Line 6: Your Ghost Blog Smart API URL const API_BASE_URL = 'http://localhost:5000'; // or your production URL

Step 6: Start Development Server

npm run dev # Server runs at http://localhost:8792

Step 7: Configure Claude Desktop

Add to Claude Desktop settings:

{ "mcpServers": { "ghost-blog": { "command": "npx", "args": ["mcp-remote", "http://localhost:8792/mcp"], "env": {} } } }

💡 Advanced Features

🎯 Three-Level Credential System

Perfect for managing multiple blogs:

Level 1: Dynamic Selection (Highest Priority)
// Pass credentials directly in tool parameters await ghost_create_post({ title: "My Post", content: "Content here", ghost_admin_api_key: "blog2_key", // Override default ghost_api_url: "https://blog2.com" // Override default })
Level 2: Worker Configuration
# Set for entire Worker deployment wrangler secret put CUSTOM_GHOST_ADMIN_API_KEY wrangler secret put CUSTOM_GHOST_API_URL
Level 3: Backend Defaults

Uses Ghost Blog Smart API's configured blog - no additional setup needed.

📄 Posts vs Pages Support

// Create a blog post (default) await ghost_create_post({ title: "Blog Post Title", content: "Blog content...", post_type: "post" // Optional, this is default }) // Create a static page await ghost_create_post({ title: "About Us", content: "Company information...", post_type: "page" // Creates a page instead of post })

🎨 AI Image Generation Options

// Ultra-fast generation with Flux (3-7 seconds) await ghost_create_post({ title: "My Post", content: "Content", use_generated_feature_image: true, prefer_flux: true }) // Professional quality with Imagen (10-15 seconds) await ghost_create_post({ title: "My Post", content: "Content", use_generated_feature_image: true, prefer_imagen: true })

🌟 Usage Examples in Claude

Create AI-Enhanced Content

"Use ghost_smart_create to write a blog post about 'The Future of Remote Work in 2025' with a professional tone"

Manage Multiple Blogs

"Get the Animagent blog credentials from my-credentials database, then use ghost_create_post to publish a new announcement there"

Batch Operations

"Use ghost_advanced_search to find all posts tagged 'technology', then use ghost_batch_get_details to get their full content"

Update with AI Images

"Use ghost_update_post_image on post ID abc123 to generate a new feature image using Imagen"

🚀 Production Deployment

Deploy to Cloudflare Workers

# Login to Cloudflare wrangler login # Create KV namespace for OAuth wrangler kv namespace create "OAUTH_KV" # Add the namespace_id to wrangler.jsonc # Deploy to production npm run deploy # Set production secrets wrangler secret put GITHUB_CLIENT_ID wrangler secret put GITHUB_CLIENT_SECRET wrangler secret put COOKIE_ENCRYPTION_KEY # Optional: Set authorization control # For private mode (specific users only): wrangler secret put AUTHORIZED_USERS # Enter: "user1,user2,user3" # For public mode (all GitHub users), don't set this or set empty # Optional: Set custom Ghost blog (Level 2) wrangler secret put CUSTOM_GHOST_ADMIN_API_KEY wrangler secret put CUSTOM_GHOST_API_URL

Update Claude Desktop for Production

{ "mcpServers": { "ghost-blog": { "command": "npx", "args": ["mcp-remote", "https://your-worker.workers.dev/mcp"], "env": {} } } }

📊 Performance Metrics

OperationTypical TimeMax Time
Create post (no image)2-5s10s
Create post (with Flux)8-15s30s
Create post (with Imagen)15-25s45s
Smart create (AI content)10-20s60s
Update post1-2s5s
Search/List<1s3s
Batch operations2-5s15s

Note: All operations have a 5-minute timeout to ensure reliability

🔒 Security Features

  • GitHub OAuth 2.0: Industry-standard authentication
  • Flexible Access Control:
    • Private Mode: Restrict to specific GitHub users
    • Public Mode: Allow all authenticated GitHub users
  • Signed Cookies: HMAC-SHA256 session security
  • Environment Variables: No hardcoded secrets
  • API Key Protection: Separate keys for each service
  • Test Mode: Safe experimentation with is_test: true

🔍 Troubleshooting

Common Issues

IssueSolution
"Ghost Blog Smart API not reachable"Verify Docker container is running: docker ps
"Unauthorized access"Check AUTHORIZED_USERS environment variable - add your GitHub username or leave empty for public
"API key mismatch"Ensure COOKIE_ENCRYPTION_KEY matches Ghost Blog Smart
"Tools not appearing in Claude"Restart Claude Desktop after configuration
"Timeout errors"API has 5-minute default timeout, check network

Debug Commands

# Check development logs npm run dev # Production logs wrangler tail # Test Ghost Blog Smart API curl http://localhost:5000/health # Test authentication open http://localhost:8792/authorize

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

📚 Documentation

📄 License

MIT License - see LICENSE file for details

🙏 Acknowledgments

  • Anthropic for Model Context Protocol
  • Ghost for the amazing CMS platform
  • Cloudflare for Workers infrastructure
  • Google for Gemini AI and Imagen
  • Replicate for Flux image generation

📞 Support


Built with ❤️ by leowang.net

Transform your content creation workflow with AI-powered Ghost CMS management

Get StartedDocumentationSupport

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    Integrates with the Ghost Admin API to allow programmatic management of Ghost CMS features, including posts, pages, tags, authors, members, and image uploads, providing efficient content management capabilities.
    Last updated -
    2
    2
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    An implementation of the Model Context Protocol Server that allows AI clients like Cursor or Claude Desktop to manage Ghost CMS blogs by exposing capabilities like creating posts, adding tags, and uploading images.
    Last updated -
    2
    MIT License
  • -
    security
    A
    license
    -
    quality
    A server that enables integration between Claude Desktop and WordPress, allowing for AI-assisted blogging through a Message Control Protocol implementation.
    Last updated -
    MIT License
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables management of Ghost blog content (posts, pages, and tags) through Claude, supporting both SSE and stdio transports.
    Last updated -
    1

View all related MCP servers

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/preangelleo/content-creation-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server