- Core architecture from zen-mcp-server - OpenRouter and Gemini provider configuration - Content variant generator tool (first marketing tool) - Chat tool for marketing strategy - Version and model listing tools - Configuration system with .env support - Logging infrastructure - Ready for Claude Desktop integration
20 KiB
Zen-Marketing MCP Server - Implementation Plan
Project Overview
A specialized MCP server for Claude Desktop focused on marketing workflows, derived from the Zen MCP Server codebase. Designed for solo marketing professionals working in technical B2B content, particularly HVAC/technical education and software marketing.
Target User Profile: Marketing professional managing:
- Technical newsletters with guest contributors
- Multi-platform social media campaigns
- Educational content with SEO optimization
- A/B testing and content variation generation
- WordPress content management with internal linking
- Brand voice consistency across channels
Core Principles
- Variation at Scale: Generate 5-20 variations of content for A/B testing
- Platform Intelligence: Understand character limits, tone, and best practices per platform
- Technical Accuracy: Verify facts via web search before publishing
- Voice Preservation: Maintain authentic voices (guest authors, brand persona)
- Cross-Platform Integration: Connect content across blog, social, email, video
- Style Enforcement: Apply specific writing guidelines automatically
Planned Tools
1. contentvariant (Simple Tool)
Purpose: Rapid generation of multiple content variations for testing
Real-world use case from project memory:
- "Generate 15 email subject line variations testing different angles: technical curiosity, contrarian statements, FOMO, educational value"
- "Create 10 LinkedIn post variations of this announcement, mixing lengths and hooks"
Key features:
- Generate 5-20 variations in one call
- Specify variation dimensions (tone, length, hook, CTA placement)
- Fast model (gemini-flash) for speed
- Output formatted for easy copy-paste testing
Parameters:
content(str): Base content to varyvariation_count(int): Number of variations (default 10)variation_types(list): Types to vary - "tone", "length", "hook", "structure", "cta"platform(str): Target platform for contextconstraints(str): Character limits, style requirements
Model: gemini-flash (fast, cost-effective for bulk generation) Temperature: 0.8 (creative variation while maintaining message)
2. platformadapt (Simple Tool)
Purpose: Adapt single content piece across multiple social platforms
Real-world use case from project memory:
- "Take this blog post intro and create versions for LinkedIn (1300 chars), Twitter (280 chars), Instagram caption (2200 chars), Facebook (500 chars), and Bluesky (300 chars)"
Key features:
- Single source → multiple platform versions
- Respects character limits automatically
- Platform-specific best practices (hashtags, tone, formatting)
- Preserves core message across adaptations
Parameters:
source_content(str): Original contentsource_platform(str): Where content originatedtarget_platforms(list): ["linkedin", "twitter", "instagram", "facebook", "bluesky"]preserve_urls(bool): Keep links intact vs. adaptbrand_voice(str): Voice guidelines to maintain
Model: minimax/minimax-m2 (creative adaptations) Temperature: 0.7
3. subjectlines (Simple Tool)
Purpose: Specialized tool for email subject line generation with angle testing
Real-world use case from project memory:
- "Generate subject lines testing: technical curiosity hook, contrarian/provocative angle, knowledge gap emphasis, urgency/timeliness, insider knowledge positioning"
Key features:
- Generates 15-25 subject lines by default
- Groups by psychological angle/hook
- Includes A/B testing rationale for each
- Character count validation (under 60 chars optimal)
- Emoji suggestions (optional)
Parameters:
email_topic(str): Main topic/contenttarget_audience(str): Who receives thisangles_to_test(list): Psychological hooks to exploreinclude_emoji(bool): Add emoji optionspreview_text(str): Optional - generate matching preview text
Model: gemini-flash (fast generation, creative but focused) Temperature: 0.8
4. styleguide (Workflow Tool)
Purpose: Enforce specific writing guidelines and polish content
Real-world use case from project memory:
- "Check this content for: em-dashes (remove), 'This isn't X, it's Y' constructions (rewrite), semantic variety in paragraph structure, direct affirmative statements instead of negations"
Key features:
- Multi-step workflow: detection → flagging → rewriting → validation
- Tracks style violations with severity
- Provides before/after comparisons
- Custom rule definitions
Workflow steps:
- Analyze content for style violations
- Flag issues with line numbers and severity
- Generate corrected version
- Validate improvements
Parameters:
content(str): Content to checkrules(list): Style rules to enforcerewrite_violations(bool): Auto-fix vs. flag onlypreserve_technical_terms(bool): Don't change HVAC/technical terminology
Common rules (from project memory):
- No em-dashes (use periods or semicolons)
- No "This isn't X, it's Y" constructions
- Direct affirmative statements over negations
- Semantic variety in paragraph openings
- No clichéd structures
- Concrete metrics over abstract claims
Model: gemini-2.5-pro (analytical precision) Temperature: 0.3 (consistency enforcement)
5. seooptimize (Workflow Tool)
Purpose: Comprehensive SEO optimization for WordPress content
Real-world use case from project memory:
- "Create SEO title under 60 chars, excerpt under 156 chars, suggest 5-7 WordPress tags, internal linking opportunities to foundational content"
Workflow steps:
- Analyze content for primary keywords and topics
- Generate SEO title (under 60 chars)
- Create meta description/excerpt (under 156 chars)
- Suggest WordPress tags (5-10)
- Identify internal linking opportunities
- Validate character limits and keyword density
Parameters:
content(str): Full article contentexisting_tags(list): Current WordPress tag librarytarget_keywords(list): Keywords to optimize forinternal_links_context(str): Description of site structure for linkingplatform(str): "wordpress" (default), "ghost", "medium"
Model: gemini-2.5-pro (analytical, search-aware) Temperature: 0.4 Web search: Enabled for keyword research
6. guestedit (Workflow Tool)
Purpose: Edit guest content while preserving author expertise and voice
Real-world use case from project memory:
- "Edit this guest article on PCB components: preserve technical authority, add key takeaways section, suggest internal links to foundational content, enhance educational flow, maintain expert's voice"
Workflow steps:
- Analyze guest author's voice and technical expertise level
- Identify areas needing clarification vs. areas to preserve
- Generate educational enhancements (key takeaways, callouts)
- Suggest internal linking without fabricating URLs
- Validate technical accuracy via web search
- Present edits with rationale
Parameters:
guest_content(str): Original articleauthor_name(str): Guest author for voice referenceexpertise_level(str): "expert", "practitioner", "educator"enhancements_needed(list): ["key_takeaways", "internal_links", "clarity", "seo"]site_context(str): Description of broader content ecosystemverify_technical(bool): Use web search for fact-checking
Model: gemini-2.5-pro (analytical + creative balance) Temperature: 0.5 Web search: Enabled for technical verification
7. linkstrategy (Workflow Tool)
Purpose: Internal linking and cross-platform content integration strategy
Real-world use case from project memory:
- "Find opportunities to link this advanced PCB article to foundational HVAC knowledge. Connect blog with related podcast episode, Instagram post, and YouTube video from our content database."
Workflow steps:
- Analyze content topics and technical depth
- Identify prerequisite concepts needing internal links
- Search for related content across platforms (blog, podcast, video, social)
- Generate linking strategy with anchor text suggestions
- Validate URLs against actual content (no fabrication)
- Create cross-platform promotion plan
Parameters:
primary_content(str): Main piece to link from/tocontent_type(str): "blog", "newsletter", "social_post"available_platforms(list): ["blog", "podcast", "youtube", "instagram"]technical_depth(str): "foundational", "intermediate", "advanced"verify_links(bool): Validate URLs exist before suggesting
Model: gemini-2.5-pro (analytical, relationship mapping) Temperature: 0.4 Web search: Enabled for content discovery
8. factcheck (Simple Tool)
Purpose: Quick technical fact verification via web search
Real-world use case from project memory:
- "Verify these technical claims about voltage regulation chains in HVAC PCBs"
- "Check if this White-Rodgers universal control model number and compatibility claims are accurate"
Key features:
- Web search-powered verification
- Cites sources for each claim
- Flags unsupported or questionable statements
- Quick turnaround for pre-publish checks
Parameters:
content(str): Content with claims to verifytechnical_domain(str): "hvac", "software", "general"claim_type(str): "product_specs", "technical_process", "statistics", "general"confidence_threshold(str): "high_confidence_only", "balanced", "comprehensive"
Model: gemini-2.5-pro (search-augmented, analytical) Temperature: 0.2 (precision for facts) Web search: Required (core functionality)
9. voiceanalysis (Workflow Tool)
Purpose: Extract and codify brand/author voice for consistency
Real-world use case from project memory:
- "Analyze these 10 pieces of Gary McCreadie's content to extract voice patterns, then check if this new draft matches his authentic teaching voice"
Workflow steps:
- Analyze sample content for voice characteristics
- Extract patterns: sentence structure, vocabulary, tone markers
- Create voice profile with examples
- Compare new content against profile
- Flag inconsistencies with suggested rewrites
- Track confidence in voice matching
Parameters:
sample_content(list): 5-15 pieces showing authentic voiceauthor_name(str): Voice owner for referencenew_content(str): Content to validate against voicevoice_aspects(list): ["tone", "vocabulary", "structure", "educational_style"]generate_profile(bool): Create reusable voice profile
Model: gemini-2.5-pro (pattern analysis) Temperature: 0.3
10. campaignmap (Workflow Tool)
Purpose: Map content campaign across multiple touchpoints
Real-world use case from project memory:
- "Plan content campaign for measureQuick National Championship: social teaser posts, email sequence, on-site promotion, post-event follow-up, blog recap with internal links"
Workflow steps:
- Define campaign goals and timeline
- Map content across platforms and stages (awareness → consideration → action → retention)
- Create content calendar with dependencies
- Generate messaging for each touchpoint
- Plan cross-promotion and internal linking
- Set success metrics per channel
Parameters:
campaign_goal(str): Primary objectivetimeline_days(int): Campaign durationplatforms(list): Channels to usecontent_pillars(list): Key messages to reinforcetarget_audience(str): Audience descriptionexisting_assets(list): Content to repurpose
Model: gemini-2.5-pro (strategic planning) Temperature: 0.6
Tool Architecture
Simple Tools (3)
Fast, single-shot interactions for rapid iteration:
contentvariant- Bulk variation generationplatformadapt- Cross-platform adaptationsubjectlines- Email subject line testingfactcheck- Quick verification
Workflow Tools (6)
Multi-step systematic processes:
styleguide- Style enforcement workflowseooptimize- Comprehensive SEO processguestedit- Guest content editing workflowlinkstrategy- Internal linking analysisvoiceanalysis- Voice extraction and validationcampaignmap- Multi-touch campaign planning
Keep from Original Zen
chat- General brainstormingthinkdeep- Deep strategic thinkingplanner- Project planning
Model Assignment Strategy
Primary Models:
- minimax/minimax-m2: Creative content generation (contentvariant, platformadapt)
- google/gemini-2.5-pro: Analytical and strategic work (seooptimize, guestedit, linkstrategy, voiceanalysis, campaignmap, styleguide, factcheck)
- google/gemini-flash: Fast bulk generation (subjectlines)
Fallback Chain:
- Configured provider (minimax or gemini)
- OpenRouter (if API key present)
- Error (no fallback to Anthropic to avoid confusion)
Configuration Defaults
{
"mcpServers": {
"zen-marketing": {
"command": "/home/ben/mcp/zen-marketing/.venv/bin/python",
"args": ["/home/ben/mcp/zen-marketing/server.py"],
"env": {
"OPENROUTER_API_KEY": "your-key",
"DEFAULT_MODEL": "gemini-2.5-pro",
"FAST_MODEL": "gemini-flash",
"CREATIVE_MODEL": "minimax-m2",
"DISABLED_TOOLS": "analyze,refactor,testgen,secaudit,docgen,tracer,precommit,codereview,debug,consensus,challenge",
"ENABLE_WEB_SEARCH": "true",
"LOG_LEVEL": "INFO"
}
}
}
}
Tool Temperature Defaults
| Tool | Temperature | Rationale |
|---|---|---|
| contentvariant | 0.8 | High creativity for diverse variations |
| platformadapt | 0.7 | Creative while maintaining message |
| subjectlines | 0.8 | Explore diverse psychological angles |
| styleguide | 0.3 | Precision for consistency |
| seooptimize | 0.4 | Balanced analytical + creative |
| guestedit | 0.5 | Balance preservation + enhancement |
| linkstrategy | 0.4 | Analytical relationship mapping |
| factcheck | 0.2 | Precision for accuracy |
| voiceanalysis | 0.3 | Pattern recognition precision |
| campaignmap | 0.6 | Strategic creativity |
Differences from Zen Code
What's Different
- Content-first: Tools designed for writing, not coding
- Variation generation: Built-in support for A/B testing at scale
- Platform awareness: Character limits, formatting, best practices per channel
- Voice preservation: Tools explicitly maintain author authenticity
- SEO native: WordPress-specific optimization built in
- Verification emphasis: Web search for fact-checking integrated
- No code tools: Remove debug, codereview, precommit, refactor, testgen, secaudit, tracer
What's Kept
- Conversation continuity:
continuation_idacross tools - Multi-model orchestration: Different models for different tasks
- Workflow architecture: Multi-step systematic processes
- File handling: Attach content files, brand guidelines
- Image support: Analyze screenshots, brand assets
- Thinking modes: Control depth vs. cost
- Web search: Current information access
What's Enhanced
- Bulk operations: Generate 5-20 variations in one call
- Style enforcement: Custom writing rules
- Cross-platform thinking: Native multi-channel workflows
- Technical verification: Domain-specific fact-checking
Implementation Phases
Phase 1: Foundation (Week 1)
- Fork Zen MCP Server codebase
- Remove code-specific tools
- Configure minimax and gemini providers
- Update system prompts for marketing context
- Basic testing with chat tool
Phase 2: Simple Tools (Week 2)
- Implement
contentvariant - Implement
platformadapt - Implement
subjectlines - Implement
factcheck - Test variation generation workflows
Phase 3: Workflow Tools (Week 3-4)
- Implement
styleguide - Implement
seooptimize - Implement
guestedit - Implement
linkstrategy - Test multi-step workflows
Phase 4: Advanced Features (Week 5)
- Implement
voiceanalysis - Implement
campaignmap - Add voice profile storage
- Test complex campaign workflows
Phase 5: Polish & Documentation (Week 6)
- User documentation
- Example workflows
- Configuration guide
- Testing with real project memories
Success Metrics
- Variation Quality: Can generate 10+ usable subject lines in one call
- Platform Accuracy: Respects character limits and formatting rules
- Voice Consistency: Successfully preserves guest author expertise
- SEO Effectiveness: Generated titles/descriptions pass WordPress SEO checks
- Cross-platform Integration: Correctly maps content across blog/social/email
- Fact Accuracy: Catches technical errors before publication
- Speed: Simple tools respond in <10 seconds, workflow tools in <30 seconds
File Structure
zen-marketing/
├── server.py # Main MCP server (adapted from zen)
├── config.py # Marketing-specific configuration
├── PLAN.md # This file
├── CLAUDE.md # Development guide
├── README.md # User documentation
├── requirements.txt # Python dependencies
├── .env.example # Environment template
├── run-server.sh # Setup and run script
├── tools/
│ ├── contentvariant.py # Bulk variation generation
│ ├── platformadapt.py # Cross-platform adaptation
│ ├── subjectlines.py # Email subject lines
│ ├── styleguide.py # Writing style enforcement
│ ├── seooptimize.py # WordPress SEO workflow
│ ├── guestedit.py # Guest content editing
│ ├── linkstrategy.py # Internal linking strategy
│ ├── factcheck.py # Technical verification
│ ├── voiceanalysis.py # Voice extraction/validation
│ ├── campaignmap.py # Campaign planning
│ └── shared/ # Shared utilities from zen
├── providers/
│ ├── gemini.py # Google Gemini provider
│ ├── minimax.py # Minimax provider (NEW)
│ ├── openrouter.py # OpenRouter fallback
│ └── registry.py # Provider registration
├── systemprompts/
│ ├── contentvariant_prompt.py
│ ├── platformadapt_prompt.py
│ ├── subjectlines_prompt.py
│ ├── styleguide_prompt.py
│ ├── seooptimize_prompt.py
│ ├── guestedit_prompt.py
│ ├── linkstrategy_prompt.py
│ ├── factcheck_prompt.py
│ ├── voiceanalysis_prompt.py
│ └── campaignmap_prompt.py
└── tests/
├── test_contentvariant.py
├── test_platformadapt.py
└── ...
Development Priorities
High Priority (Essential)
contentvariant- Most used feature from project memoriessubjectlines- Specific workflow mentioned multiple timesplatformadapt- Core multi-channel needstyleguide- Explicit writing rules enforcementfactcheck- Technical accuracy verification
Medium Priority (Important)
seooptimize- WordPress-specific SEO needsguestedit- Guest content workflowlinkstrategy- Internal linking mentioned frequently
Lower Priority (Nice to Have)
voiceanalysis- Advanced voice preservationcampaignmap- Strategic planning (can use planner tool initially)
Next Steps
- Create CLAUDE.md with development guide for zen-marketing
- Start new session in ~/mcp/zen-marketing/ directory
- Begin Phase 1 implementation:
- Copy core architecture from zen-mcp-server
- Configure minimax provider
- Remove code-specific tools
- Test with basic chat functionality
- Implement Phase 2 simple tools starting with
contentvariant