A secure, local-first Model Context Protocol (MCP) server for Kit.com (formerly ConvertKit) that enables AI assistants like Claude to create and manage email broadcasts, subscribers, and tags.
All email drafts are created, edited, and reviewed locally before sending to Kit.
- Create Local - Claude saves draft as .md file in your drafts folder
- Review & Edit - Open file, make changes, save (no approval needed)
- Approve - Tell Claude to publish when ready
- Send to Kit - After your approval, broadcast created in Kit
See LOCAL-DRAFTS.md for complete workflow documentation.
All write operations require explicit user approval - nothing happens without your confirmation.
- ✅ Drafts created locally first (instant, no approval)
- ✅ Edit and review before anything goes to Kit
- ✅ Approve or deny each operation individually
- ✅ Read-only operations work instantly (viewing data)
- ✅ Local-only - runs entirely on your machine
- ✅ Your API keys never leave your computer
See SECURITY.md for complete security documentation.
- 📧 Create Email Broadcasts - Draft and create email broadcasts (with approval)
- 📅 Schedule Emails - Schedule broadcasts for future delivery (with approval)
- 👥 Manage Subscribers - Add, update, and tag subscribers (with approval)
- 🏷️ Tag Management - Create and apply tags (with approval)
- 🎯 View Data - List broadcasts, subscribers, and tags (instant, no approval needed)
npm install
npm run build-
Get your Kit API credentials:
- Go to Kit Settings > Advanced > API & Webhooks
- Generate an API Secret
- Copy your API Key
-
Configure in Claude Desktop:
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"kit": {
"command": "node",
"args": ["/path/to/kit-mcp-server/dist/index.js"],
"env": {
"KIT_API_KEY": "your-api-key-here",
"KIT_API_SECRET": "your-api-secret-here"
}
}
}
}- Restart Claude Desktop
Once configured, you can interact with Kit through natural language in Claude:
- "List my recent broadcasts"
- "Show me all subscribers with the 'shopify-founders' tag"
- "List all my tags"
-
"Create a draft email about symptoms vs root causes"
- Claude will show you the preview
- You say "yes, go ahead" or "approve"
- Claude executes the approved operation
-
"Add john@example.com to my list"
- Preview shown
- You approve
- Subscriber added
- You ask Claude to do something (e.g., create an email)
- Claude shows you exactly what will happen
- You explicitly approve or deny
- Only then does it execute
Example:
You: "Create a draft email with subject 'Test' and content 'Hello World'"
Claude: "I've prepared this email broadcast:
- Subject: Test
- Content: Hello World
- Status: Draft (not sent)
Should I proceed with creating this draft?"
You: "Yes"
Claude: ✅ Draft created successfully!
# Install dependencies
npm install
# Build
npm run build
# Development mode (watch)
npm run devThis server uses the Kit API v4. Key endpoints:
- Broadcasts
- Subscribers
- Tags
- Forms
- Sequences
MIT
Originally created by Ohad Michaeli