MCP Integration
Connect AI assistants like Claude, Cursor, and other MCP-compatible tools to Waldium. Generate, schedule, and publish AI blog posts directly from your AI workflow.
The Waldium MCP server requires authentication. You'll need an API key from your dashboard under Settings » API Keys.
What is MCP?
Model Context Protocol (MCP) is an open standard for connecting AI applications to external systems. Think of it like a USB-C port for AI applications. With MCP, AI assistants can interact with Waldium directly, enabling you to create and manage blog content without leaving your AI workflow.
Quick Start
Step 1: Get your MCP server URL
Your Waldium MCP server URL is:
https://mcp.waldium.com/mcp/waldium-mcp
Step 2: Configure your MCP client
Add the Waldium server to your MCP client configuration:
MCP Configuration
{
"mcpServers": {
"waldium": {
"url": "https://mcp.waldium.com/mcp/waldium-mcp"
}
}
}
Step 3: Authenticate
When you first connect, you'll be prompted to authenticate with your Waldium account using OAuth. This securely links your AI assistant to your Waldium site.
Available Tools
The Waldium MCP server provides the following tools for AI assistants:
- Name
waldium_generate_post- Description
Generate an AI-powered blog post with customizable topic, style, tone, length, and target audience.
- Name
waldium_create_post- Description
Create a new blog post with title, content, category, tags, and status.
- Name
waldium_get_post- Description
Retrieve a single blog post by ID.
- Name
waldium_update_post_status- Description
Change a post's status to DRAFT or PUBLISHED.
- Name
waldium_delete_post- Description
Delete a blog post by ID.
- Name
waldium_create_knowledge- Description
Upload a file to your knowledge base (PDF, text, markdown, CSV, Word docs).
- Name
waldium_delete_knowledge- Description
Remove a file from your knowledge base.
Use Cases
Here are common ways to use the Waldium MCP integration:
Generate Technical Documentation
"Write a technical guide explaining how to integrate our REST API
with authentication examples and error handling"
The AI will call waldium_generate_post with your topic and parameters to create a complete blog post.
Create Engineering Blog Posts
"Write a blog post about how we migrated from PostgreSQL to
CockroachDB, targeting senior engineers"
Knowledge-Enhanced Technical Writing
"Generate API documentation for our webhook endpoints using
the OpenAPI spec I uploaded"
With useKnowledge: true, the AI incorporates your uploaded reference materials for more accurate, brand-aligned content.
Tool Reference
Generate Post
Generate an AI-powered blog post with full customization options.
- Name
topic- Type
- string
- Description
The topic or subject for the blog post.
- Name
style- Type
- string
- Description
Writing style:
professional,casual,technical,creative,academic, ormixed. Default:professional.
- Name
tone- Type
- string
- Description
Content tone:
informative,persuasive,conversational, orauthoritative. Default:informative.
- Name
length- Type
- string
- Description
Post length:
short,medium, orlong. Default:medium.
- Name
targetAudience- Type
- string
- Description
Target audience description (e.g., "web developers and tech enthusiasts").
- Name
model- Type
- string
- Description
AI model to use:
gpt-5,gpt-5-mini,gpt-5-nano,gpt-4.1,gpt-4.1-mini, orgpt-4.1-nano. Default:gpt-5-nano.
- Name
useKnowledge- Type
- boolean
- Description
Whether to use knowledge base for content enhancement. Default:
false.
- Name
selectedFileIds- Type
- array
- Description
Array of knowledge file IDs to use for context.
- Name
isDraft- Type
- boolean
- Description
Whether to create the post as a draft. Default:
false.
Example request
{
"topic": "Building REST APIs with Node.js",
"style": "technical",
"tone": "informative",
"length": "medium",
"targetAudience": "backend developers",
"model": "gpt-5-nano",
"isDraft": true
}
Create Post
Create a new blog post with manual content.
- Name
title- Type
- string
- Description
The post title.
- Name
content- Type
- string
- Description
HTML or Markdown content for the post body.
- Name
description- Type
- string
- Description
Short description or excerpt (max 1000 characters).
- Name
category- Type
- string
- Description
Post category (max 100 characters).
- Name
tags- Type
- array
- Description
Array of tags (max 20 tags, each max 50 characters).
- Name
status- Type
- string
- Description
Post status:
DRAFTorPUBLISHED. Default:DRAFT.
- Name
authorId- Type
- string
- Description
UUID of the author to attribute the post to.
Example request
{
"title": "How to Build a REST API",
"content": "# Introduction\n\nThis guide covers...",
"description": "A comprehensive guide to REST APIs",
"category": "Engineering",
"tags": ["api", "tutorial", "backend"],
"status": "DRAFT"
}
Update Post Status
Change a post's visibility status.
- Name
id- Type
- string
- Description
The unique identifier of the post (UUID).
- Name
status- Type
- string
- Description
New status:
DRAFTorPUBLISHED.
Example request
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "PUBLISHED"
}
Important Notes
- Authentication: All endpoints require Bearer token authentication via API key or OAuth
- Post IDs: Post IDs are UUIDs. Validate format before operations
- Status values: Use
DRAFT(hidden) orPUBLISHED(public) - Knowledge uploads: Maximum 10MB per file. Supported formats: PDF, TXT, MD, CSV, DOC, DOCX
- Rate limiting: Respect 429 responses with exponential backoff
- AI generation time: Typically 10-30 seconds depending on length and model
Troubleshooting
Connection Issues
If you're having trouble connecting:
- Verify your API key is valid in your dashboard
- Check that your MCP client supports OAuth 2.0 authentication
- Ensure you're using the correct server URL:
https://mcp.waldium.com/mcp/waldium-mcp
Generation Failures
If post generation fails:
- Check that the topic is clear and descriptive
- Verify your account has available generation credits
- Try a different AI model (e.g., switch from
gpt-5togpt-5-nano)
Knowledge Base Issues
If knowledge-enhanced generation isn't working:
- Confirm files are uploaded and processed (check Knowledge Base in dashboard)
- Verify
useKnowledge: trueis set in your request - Check that
selectedFileIdscontains valid file UUIDs