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_batch_create_posts- Description
Schedule multiple posts for generation over a date range with automatic time distribution.
- 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, UNLISTED, 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"
Schedule Batch Content
"Create 4 blog posts for our v2.0 launch: changelog, migration guide,
new features overview, and deprecation notices, publishing daily
starting Monday"
The AI will use waldium_batch_create_posts to schedule all posts with automatic time distribution.
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:
DRAFT,UNLISTED, orPUBLISHED. 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"
}
Batch Create Posts
Create multiple posts scheduled for generation over a date range.
- Name
posts- Type
- array
- Description
Array of post objects with
topic(required) and optionalscheduledFor.
- Name
startDate- Type
- string
- Description
Start date for automatic distribution (ISO 8601 format). Requires
endDate.
- Name
endDate- Type
- string
- Description
End date for automatic distribution (ISO 8601 format). Requires
startDate.
- Name
defaults- Type
- object
- Description
Default values applied to all posts:
authorId,category,tags,style,tone,length,model,status,useKnowledge,selectedFileIds,targetAudience.
Example request
{
"posts": [
{ "topic": "API Authentication Best Practices" },
{ "topic": "Error Handling in REST APIs" },
{ "topic": "API Versioning Strategies" },
{ "topic": "Rate Limiting Implementation" }
],
"startDate": "2026-02-01T09:00:00Z",
"endDate": "2026-02-28T09:00:00Z",
"defaults": {
"style": "technical",
"tone": "informative",
"category": "Engineering",
"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:
DRAFT,UNLISTED, orPUBLISHED.
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),UNLISTED(accessible via link), orPUBLISHED(public) - Batch limits: Maximum 100 posts per batch request
- 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