- Fix all MCPEngine → MCPEngage references (keep mcpengine.pages.dev) - Rewrite README with Keap-specific power moves - Add 5 real CRM + marketing automation use cases - Accurate tool count: 8 tools (verified from source) - Contact/opportunity/task/tag-focused example prompts - Real Keap/Infusionsoft API documentation URLs - Platform-specific auth details (OAuth2 access token) - Fix .env.example: KEAP_API_KEY → KEAP_ACCESS_TOKEN (match source) - Update package.json author to MCPEngage
11 KiB
🚀 Don't want to self-host? Join the waitlist for our fully managed solution →
Zero setup. Zero maintenance. Just connect and automate.
🚀 Keap MCP Server — 2026 Complete Version
💡 What This Unlocks
This MCP server gives AI direct access to your entire Keap workspace. Instead of clicking through interfaces, you just tell it what you need — and Claude becomes your intelligent CRM & marketing automation assistant.
Keap (formerly Infusionsoft) is a powerful CRM and marketing automation platform built for small businesses. This MCP server lets Claude manage your contacts, opportunities, tasks, and tags with natural language — bridging sales and marketing seamlessly.
🎯 CRM & Marketing Automation Power Moves — Keap Edition
Real workflows you can automate with natural language:
-
📧 Smart Contact Segmentation — "Find all contacts added this month with 'webinar' tag, no recent tasks, and email addresses ending in @gmail.com — create personalized follow-up tasks for each"
-
💼 Opportunity Pipeline Management — "List all opportunities in 'Proposal' stage for >10 days, calculate total value, and create reminder tasks for sales team members"
-
🏷️ Tag-Based Intelligence — "Show me all contacts tagged 'hot-lead' but without an opportunity, create opportunities for those with email domains matching our target industries, and assign them round-robin"
-
✅ Task Automation & Follow-up — "Pull all incomplete tasks from last week, reassign overdue ones to managers, and create 'check-in' tasks for today"
-
📊 Contact Enrichment & Cleanup — "Find all contacts without a phone number or company name, flag them with 'needs-enrichment' tag, and generate a CSV for our data team to complete"
🔗 The Real Power: Combining Tools
AI can chain multiple Keap operations together intelligently:
- Query contacts → Filter by tags → Create opportunities → Assign tasks → Track completion
- Search contacts → Analyze custom fields → Segment by behavior → Tag strategically → Trigger campaigns
- List tasks → Identify patterns → Bulk update → Generate reports → Notify team
📦 What's Inside
8 powerful API tools covering core Keap CRM and automation operations:
- Contact Management —
list_contacts,get_contact,create_contact,update_contact - Opportunity/Deal Pipeline —
list_opportunities - Task Management —
list_tasks,create_task - Tagging & Segmentation —
list_tags
All with proper error handling, OAuth2 authentication, and TypeScript types.
🚀 Quick Start
Option 1: Claude Desktop (Local)
-
Clone and build:
git clone https://github.com/BusyBee3333/Keap-MCP-2026-Complete.git cd keap-mcp-2026-complete npm install npm run build -
Get your Keap OAuth2 access token:
- Create an app in Keap Developer Portal
- Complete OAuth2 flow to get an access token
- Or use a Personal Access Token (PAT) if available for your plan
-
Configure Claude Desktop:
On macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonOn Windows:
%APPDATA%\Claude\claude_desktop_config.json{ "mcpServers": { "keap": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/keap-mcp-2026-complete/dist/index.js"], "env": { "KEAP_ACCESS_TOKEN": "your-oauth2-access-token" } } } } -
Restart Claude Desktop — Keap tools will appear in Claude's context
Option 2: Deploy to Railway
- Click the button above
- Set
KEAP_ACCESS_TOKENin Railway dashboard - Use the Railway URL as your MCP server endpoint
Option 3: Docker
docker build -t keap-mcp .
docker run -p 3000:3000 \
-e KEAP_ACCESS_TOKEN=your-token \
keap-mcp
🔐 Authentication
Keap uses OAuth2 Bearer Token authentication.
How to get your access token:
Option A: OAuth2 Flow (Recommended)
- Create a developer account at Keap Developer Portal
- Register a new application
- Note your Client ID and Client Secret
- Implement OAuth2 authorization code flow
- Exchange authorization code for access token
- Use the access token in your MCP server config
Option B: Personal Access Token (PAT)
- Log into Keap
- Navigate to Settings → Application Settings (if available on your plan)
- Generate a Personal Access Token
- Copy the token and use it as
KEAP_ACCESS_TOKEN
Security: Access tokens expire and need refresh. For production use, implement token refresh logic using your refresh token.
Documentation:
The MCP server automatically includes your token in the Authorization: Bearer header.
🎯 Example Prompts
Once connected to Claude, use natural language to control Keap:
Contact Management
- "Show me all contacts created in the last 7 days"
- "Create a new contact: Mike Chen, mike@startup.io, phone +1-555-0199, company 'StartupCo'"
- "Update contact 12345 with job title 'VP of Sales' and add custom field 'Industry' = 'SaaS'"
- "List all contacts with email domain @enterprise.com and no recent activity"
- "Find contacts tagged 'newsletter-subscriber' and show their engagement history"
Opportunity Pipeline
- "Show me all open opportunities assigned to user 5"
- "List opportunities in 'Negotiation' stage worth more than $20k"
- "Calculate total pipeline value by stage and user"
- "Find opportunities created >60 days ago still in 'Discovery' stage"
Task Management
- "List all my incomplete tasks sorted by due date"
- "Create a task: 'Follow up with Acme Corp' for contact 789, due tomorrow, priority 4"
- "Show overdue tasks across the entire team"
- "Create follow-up tasks for all contacts who attended last week's webinar"
Tagging & Segmentation
- "List all available tags in my Keap account"
- "Show me contacts with both 'hot-lead' and 'enterprise' tags"
- "Find all tags in the 'Lead Source' category"
- "Identify contacts with >3 tags who haven't been contacted in 30 days"
Advanced Workflows
- "Find contacts without opportunities, filter for those with 'decision-maker' tag, create demo opportunities for each"
- "Pull all contacts from webinar tag, create personalized follow-up tasks, schedule for next 3 business days round-robin"
- "Generate a contact enrichment report: contacts missing phone, company, or job title fields"
🛠️ Development
Prerequisites
- Node.js 18+
- npm or yarn
- Keap account with API access
- OAuth2 app registered in Keap Developer Portal
Setup
git clone https://github.com/BusyBee3333/Keap-MCP-2026-Complete.git
cd keap-mcp-2026-complete
npm install
cp .env.example .env
# Edit .env and add your KEAP_ACCESS_TOKEN
npm run build
npm start
Testing
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage report
Project Structure
keap-mcp-2026-complete/
├── src/
│ └── index.ts # Main server with 8 tool definitions
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
├── .env.example # Template for environment variables
└── README.md # This file
🐛 Troubleshooting
"Authentication failed" / "Unauthorized"
- Verify your access token is valid and not expired
- OAuth2 tokens expire — you may need to refresh your token
- Check that your app has the necessary scopes/permissions
- PATs have different permissions than OAuth tokens
"Tools not appearing in Claude"
- Restart Claude Desktop completely (Quit → Reopen)
- Verify the path in
claude_desktop_config.jsonis absolute - Confirm
dist/index.jsexists afternpm run build - Check Claude Desktop logs:
tail -f ~/Library/Logs/Claude/mcp*.log(macOS)
"Rate limit exceeded"
- Keap enforces rate limits (typically 1000 requests/day for some plans)
- Higher-tier plans have increased limits
- Add delays between bulk operations
- Check Keap API limits
"Invalid contact_id / opportunity_id"
- Keap IDs are numeric integers
- Use
list_*commands first to get valid IDs - Contact IDs, Opportunity IDs, Task IDs, Tag IDs are all separate
"Custom field not found"
- Custom fields use numeric IDs, not names
- Get custom field IDs from Keap Admin or via API
- Custom field values must match field type (text, dropdown, number, etc.)
Token refresh required
- OAuth2 access tokens expire (typically after 24 hours)
- Implement refresh token logic in production
- See Keap OAuth refresh docs
📖 Resources
- Keap API Documentation — Official REST API reference
- Keap Developer Portal — Register apps and manage OAuth
- Keap Help Center — CRM and automation best practices
- Keap Campaign Builder — Visual automation workflows
- MCP Protocol Specification — Learn about MCP
- Claude Desktop Documentation — Setup and usage
🤝 Contributing
Contributions are welcome! Please:
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-tool) - Add tests for new tools
- Commit your changes (
git commit -m 'Add amazing tool') - Push to the branch (
git push origin feature/amazing-tool) - Open a Pull Request
Ideas for Contributions
- Implement OAuth2 token refresh logic
- Add email campaign management tools
- Create tag application/removal helpers
- Add company/organization management
- Build custom field mapping utilities
- Implement note and appointment management
- Add webhook integration for real-time triggers
📄 License
MIT License - see LICENSE for details
🙏 Credits
Built by MCPEngage — AI infrastructure for business software.
Want more MCP servers? Check out our full catalog covering 30+ business platforms including Close, Pipedrive, HubSpot, Salesforce, and more.
Questions? Open an issue or join our Discord community.