# Zen-Marketing MCP Server - Setup Complete ## ✅ What's Been Done ### 1. Core Architecture ✓ - Copied essential files from zen-mcp-server - Adapted for marketing-focused workflows - Preserved conversation continuity, multi-model support, and file handling ### 2. Configuration ✓ - `config.py` - Marketing-specific configuration with temperature profiles - `.env.example` - Template for API keys and settings - Model configuration for: - `google/gemini-2.5-pro-latest` (analytical/strategic) - `google/gemini-2.5-flash-preview-09-2025` (fast generation) - `minimax/minimax-m2` (creative content) ### 3. Tools Implemented ✓ - **contentvariant** - Generate 5-25 content variations for A/B testing - **chat** - Marketing strategy and brainstorming - **listmodels** - Show available AI models - **version** - Server version and info ### 4. Infrastructure ✓ - `server.py` - Main MCP server with tool registration - Provider system (Gemini + OpenRouter) - Logging system (file + console) - `run-server.sh` - Setup and launch script ### 5. Git Repository ✓ - Initialized with clean commit history - Remote configured: `ssh://git@git.tealmaker.com:2222/ben/zen-marketing.git` - Ready to push when network accessible ## 📋 Next Steps ### 1. Push to Forgejo (Manual) ```bash cd ~/mcp/zen-marketing git push -u origin main ``` ### 2. Configure API Keys ```bash cd ~/mcp/zen-marketing cp .env.example .env # Edit .env with your API keys: # - OPENROUTER_API_KEY (for minimax and others) # - GEMINI_API_KEY (optional, for direct Gemini access) ``` ### 3. Test Locally ```bash cd ~/mcp/zen-marketing ./run-server.sh ``` ### 4. Configure Claude Desktop (MacBook) Add to `~/.claude.json`: ```json { "mcpServers": { "zen-marketing": { "command": "/path/to/zen-marketing/.venv/bin/python", "args": ["/path/to/zen-marketing/server.py"], "env": { "OPENROUTER_API_KEY": "your-key", "DEFAULT_MODEL": "google/gemini-2.5-pro-latest", "FAST_MODEL": "google/gemini-2.5-flash-preview-09-2025", "CREATIVE_MODEL": "minimax/minimax-m2", "ENABLE_WEB_SEARCH": "true", "LOG_LEVEL": "INFO" } } } } ``` Then restart Claude Desktop. ### 5. Test the contentvariant Tool In Claude Desktop: ``` Use zen-marketing contentvariant to generate 10 subject line variations for an HVAC newsletter about PCB diagnostics. Test angles: technical curiosity, contrarian, knowledge gap, urgency. ``` ## 🎯 Priority Tools to Implement Next Based on PLAN.md priority: 1. **subjectlines** - Specialized email subject line generator (High Priority) 2. **platformadapt** - Cross-platform content adaptation (High Priority) 3. **styleguide** - Writing style enforcement (High Priority) 4. **factcheck** - Technical verification (High Priority) 5. **seooptimize** - WordPress SEO workflow (Medium Priority) 6. **guestedit** - Guest content editing (Medium Priority) ## 📁 File Structure ``` zen-marketing/ ├── server.py # Main MCP server ├── config.py # Configuration ├── requirements.txt # Dependencies ├── .env.example # Environment template ├── run-server.sh # Setup script ├── tools/ │ ├── chat.py # Marketing chat │ ├── contentvariant.py # Variation generator ✨ NEW │ ├── listmodels.py # Model listing │ └── version.py # Version info ├── systemprompts/ │ ├── chat_prompt.py │ └── contentvariant_prompt.py ✨ NEW ├── providers/ # AI provider integrations ├── utils/ # Utilities └── logs/ # Log files ``` ## 🔧 Model Configuration **Default Model Strategy:** - **Gemini 2.5 Pro** - Analytical work (styleguide, seooptimize, guestedit) - **Gemini Flash** - Fast generation (subjectlines, quick variations) - **Minimax M2** - Creative content (contentvariant, platformadapt) All models accessible via OpenRouter with single API key. ## 📝 Testing Checklist - [ ] API keys configured in .env - [ ] Local test: `./run-server.sh` runs without errors - [ ] Claude Desktop can see zen-marketing server - [ ] contentvariant tool generates 10+ variations - [ ] Variations respect platform character limits - [ ] Chat tool responds with marketing context ## 🚀 Ready for Phase 2 The foundation is complete. Ready to implement the high-priority simple tools: - subjectlines - platformadapt - styleguide - factcheck All following the established patterns in contentvariant.py.