Keap MCP Server
Complete Model Context Protocol server for Keap (formerly Infusionsoft) with 111 tools and 22 React apps.
Features
🛠️ Comprehensive Tool Coverage (111 tools)
- Contacts: Full CRUD, search, tagging, custom fields, bulk operations, merge, email opt status
- Companies: CRUD, search, company-contact associations
- Opportunities: Complete sales pipeline (CRUD, stages, stage moves, search, bulk operations)
- Tasks: CRUD, completion tracking, search, bulk updates
- Appointments: CRUD, scheduling, calendar integration, search
- Campaigns: CRUD, sequence management, contact additions, achievement tracking
- Tags: CRUD, category management, contact tagging/untagging, bulk operations
- Notes: CRUD, contact/opportunity associations, search
- Emails: Send transactional and marketing emails, templates, tracking, opt status
- Files: Upload, retrieve, associate with contacts/companies
- E-commerce: Products, orders, subscriptions, payments, refunds, transaction history
- Automations: Campaign builder sequences, goal tracking, link triggers
- Settings: Account info, user management, custom fields, settings configuration
- Affiliates: Program management, commissions, payouts, clawbacks, summaries
🎨 MCP Apps (22 React Apps)
- Contact Dashboard - Contact list with metrics and search
- Contact Detail - Comprehensive contact profile view
- Contact Grid - Data grid with filtering and bulk actions
- Contact Timeline - Activity timeline and interaction history
- Company Dashboard - Company overview and metrics
- Company Detail - Detailed company information
- Company Grid - Companies data grid with search
- Deal Dashboard - Sales pipeline overview
- Deal Detail - Opportunity details and stage tracking
- Pipeline Kanban - Visual drag-and-drop pipeline management
- Pipeline Funnel - Conversion funnel visualization
- Task Manager - Task list with priorities and due dates
- Appointment Calendar - Calendar view with scheduling
- Campaign Dashboard - Campaign performance metrics
- Campaign Detail - Campaign sequence and analytics
- Email Composer - Rich email composition interface
- Tag Manager - Tag organization and bulk tagging
- Automation Dashboard - Campaign builder overview
- Product Catalog - E-commerce product management
- Order Dashboard - Order tracking and fulfillment
- Order Detail - Detailed order information
- Revenue Dashboard - Revenue analytics and reporting
Installation
npm install @mcpengine/keap
Configuration
Environment Variables
KEAP_API_KEY=your_personal_access_token
Personal Access Token Setup
- Log in to your Keap account
- Navigate to Admin → Settings → Application
- Click on API tab
- Generate a new Personal Access Token
- Copy the token and use it as
KEAP_API_KEY
MCP Settings (Claude Desktop)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"keap": {
"command": "npx",
"args": ["-y", "@mcpengine/keap"],
"env": {
"KEAP_API_KEY": "your_personal_access_token"
}
}
}
}
Usage Examples
Create a Contact
{
"tool": "keap_create_contact",
"arguments": {
"given_name": "John",
"family_name": "Doe",
"email": "john.doe@example.com",
"phone": "555-0123",
"company_name": "Acme Corp",
"job_title": "CTO",
"tag_ids": [123, 456]
}
}
Search Contacts
{
"tool": "keap_search_contacts",
"arguments": {
"email": "john@example.com",
"given_name": "John",
"order": "email",
"limit": 50
}
}
Create an Opportunity
{
"tool": "keap_create_opportunity",
"arguments": {
"title": "New Website Project",
"contact_id": 12345,
"stage_id": 789,
"projected_revenue": 15000,
"opportunity_notes": "Interested in complete redesign"
}
}
Move Opportunity Stage
{
"tool": "keap_move_opportunity_stage",
"arguments": {
"opportunity_id": 98765,
"stage_id": 790,
"notes": "Proposal sent, awaiting review"
}
}
Tag Contacts
{
"tool": "keap_apply_tags_to_contacts",
"arguments": {
"contact_ids": [123, 456, 789],
"tag_ids": [10, 20]
}
}
Send Email
{
"tool": "keap_send_email",
"arguments": {
"contact_ids": [12345],
"subject": "Welcome to our service!",
"html_content": "<h1>Welcome!</h1><p>Thank you for joining us.</p>",
"text_content": "Welcome! Thank you for joining us."
}
}
Create a Product
{
"tool": "keap_create_product",
"arguments": {
"product_name": "Premium Subscription",
"product_price": 99.99,
"product_desc": "Monthly premium access",
"sku": "PREM-001",
"status": 1
}
}
Create an Order
{
"tool": "keap_create_order",
"arguments": {
"contact_id": 12345,
"order_items": [
{
"product_id": 456,
"quantity": 2,
"price": 99.99
}
],
"order_title": "Q1 Subscription"
}
}
Tool Reference
Contact Tools (19 tools)
keap_create_contact- Create new contactkeap_get_contact- Get contact by IDkeap_update_contact- Update contact detailskeap_delete_contact- Delete contactkeap_list_contacts- List all contacts (paginated)keap_search_contacts- Search contacts by criteriakeap_get_contact_emails- Get contact's email addresseskeap_create_contact_email- Add email to contactkeap_update_contact_email- Update email addresskeap_delete_contact_email- Remove email addresskeap_apply_tags_to_contact- Tag a single contactkeap_remove_tags_from_contact- Remove tags from contactkeap_get_contact_tags- List contact's tagskeap_merge_contacts- Merge duplicate contactskeap_apply_tags_to_contacts- Bulk tag multiple contactskeap_remove_tags_from_contacts- Bulk remove tagskeap_get_contact_opt_status- Check email opt-in statuskeap_opt_in_contact- Opt in contact for emailskeap_opt_out_contact- Opt out contact from emails
Company Tools (5 tools)
keap_create_company- Create new companykeap_get_company- Get company by IDkeap_update_company- Update company detailskeap_list_companies- List all companies (paginated)keap_search_companies- Search companies by criteria
Opportunity Tools (9 tools)
keap_create_opportunity- Create new opportunitykeap_get_opportunity- Get opportunity by IDkeap_update_opportunity- Update opportunity detailskeap_list_opportunities- List opportunities (paginated)keap_search_opportunities- Search opportunities by criteriakeap_move_opportunity_stage- Move opportunity to new stagekeap_get_opportunity_pipeline- Get pipeline stageskeap_bulk_update_opportunities- Update multiple opportunitieskeap_get_opportunity_stage_details- Get stage information
Task Tools (8 tools)
keap_create_task- Create new taskkeap_get_task- Get task by IDkeap_update_task- Update task detailskeap_delete_task- Delete taskkeap_list_tasks- List tasks (paginated)keap_search_tasks- Search tasks by criteriakeap_complete_task- Mark task as completekeap_bulk_update_tasks- Update multiple tasks
Appointment Tools (6 tools)
keap_create_appointment- Create new appointmentkeap_get_appointment- Get appointment by IDkeap_update_appointment- Update appointment detailskeap_delete_appointment- Delete appointmentkeap_list_appointments- List appointments (paginated)keap_search_appointments- Search appointments by criteria
Campaign Tools (7 tools)
keap_create_campaign- Create new campaignkeap_get_campaign- Get campaign by IDkeap_list_campaigns- List campaigns (paginated)keap_add_contact_to_campaign- Add contact to campaign sequencekeap_remove_contact_from_campaign- Remove contact from campaignkeap_get_campaign_sequence- Get campaign sequence detailskeap_get_campaign_achievements- Get campaign completion data
Tag Tools (5 tools)
keap_create_tag- Create new tagkeap_get_tag- Get tag by IDkeap_list_tags- List all tagskeap_create_tag_category- Create tag categorykeap_list_tag_categories- List tag categories
Note Tools (6 tools)
keap_create_note- Create new notekeap_get_note- Get note by IDkeap_update_note- Update note contentkeap_delete_note- Delete notekeap_list_notes- List notes (paginated)keap_search_notes- Search notes by criteria
Email Tools (7 tools)
keap_send_email- Send email to contactskeap_create_email_template- Create email templatekeap_get_email_template- Get template by IDkeap_list_email_templates- List email templateskeap_send_template_email- Send templated emailkeap_get_email_stats- Get email sending statisticskeap_check_email_deliverability- Check email configuration
File Tools (4 tools)
keap_upload_file- Upload file to Keapkeap_get_file- Download file by IDkeap_list_files- List uploaded fileskeap_delete_file- Delete file
E-commerce Tools (15 tools)
keap_create_product- Create new productkeap_get_product- Get product by IDkeap_update_product- Update product detailskeap_delete_product- Delete productkeap_list_products- List products (paginated)keap_create_order- Create new orderkeap_get_order- Get order by IDkeap_update_order- Update order detailskeap_list_orders- List orders (paginated)keap_create_subscription- Create recurring subscriptionkeap_get_subscription- Get subscription by IDkeap_cancel_subscription- Cancel subscriptionkeap_create_payment- Record paymentkeap_refund_payment- Process refundkeap_get_transaction_history- Get payment history
Automation Tools (6 tools)
keap_create_campaign_sequence- Create automation sequencekeap_get_campaign_sequence- Get sequence detailskeap_update_campaign_sequence- Update sequencekeap_create_campaign_goal- Create campaign goalkeap_get_campaign_goals- List campaign goalskeap_trigger_link_click- Trigger link-based automation
Settings Tools (5 tools)
keap_get_account_info- Get account informationkeap_list_users- List account userskeap_get_user- Get user detailskeap_list_custom_fields- List custom fieldskeap_create_custom_field- Create custom field
Affiliate Tools (9 tools)
keap_create_affiliate- Create affiliate accountkeap_get_affiliate- Get affiliate by IDkeap_list_affiliates- List affiliates (paginated)keap_update_affiliate- Update affiliate detailskeap_get_affiliate_commissions- Get commission historykeap_create_affiliate_payout- Create payoutkeap_create_affiliate_clawback- Reverse commissionkeap_get_affiliate_summary- Get performance summarykeap_search_affiliates- Search affiliates by criteria
Architecture
src/
├── server.ts # MCP server setup
├── main.ts # Entry point
├── clients/
│ └── keap.ts # Keap API client (REST API, rate limiting, error handling)
├── tools/ # Tool definitions (14 files)
│ ├── contacts-tools.ts
│ ├── companies-tools.ts
│ ├── opportunities-tools.ts
│ ├── tasks-tools.ts
│ ├── appointments-tools.ts
│ ├── campaigns-tools.ts
│ ├── tags-tools.ts
│ ├── notes-tools.ts
│ ├── emails-tools.ts
│ ├── files-tools.ts
│ ├── ecommerce-tools.ts
│ ├── automations-tools.ts
│ ├── settings-tools.ts
│ └── affiliates-tools.ts
├── types/
│ └── index.ts # TypeScript interfaces
└── ui/
└── react-app/ # MCP Apps (22 apps)
├── contact-dashboard/
├── contact-detail/
├── contact-grid/
├── contact-timeline/
├── company-dashboard/
├── company-detail/
├── company-grid/
├── deal-dashboard/
├── deal-detail/
├── pipeline-kanban/
├── pipeline-funnel/
├── task-manager/
├── appointment-calendar/
├── campaign-dashboard/
├── campaign-detail/
├── email-composer/
├── tag-manager/
├── automation-dashboard/
├── product-catalog/
├── order-dashboard/
├── order-detail/
└── revenue-dashboard/
API Coverage
- ✅ Contacts API (complete)
- ✅ Companies API (complete)
- ✅ Opportunities API (complete)
- ✅ Tasks API (complete)
- ✅ Appointments API (complete)
- ✅ Campaigns API (complete)
- ✅ Tags API (complete)
- ✅ Notes API (complete)
- ✅ Emails API (complete)
- ✅ Files API (complete)
- ✅ E-commerce API (complete - products, orders, subscriptions, payments)
- ✅ Automations API (campaign sequences, goals, triggers)
- ✅ Settings API (account info, users, custom fields)
- ✅ Affiliates API (complete)
Rate Limiting
The Keap API enforces rate limits:
- Burst limit: 10 requests per second
- Daily limit: 10,000 requests per day (may vary by plan)
The MCP client automatically handles rate limiting with:
- Exponential backoff on 429 responses
- Request queuing
- Automatic retry logic
Error Handling
All tools provide comprehensive error messages:
{
"isError": true,
"content": [
{
"type": "text",
"text": "Error: Contact not found (ID: 12345)"
}
]
}
Common error scenarios:
- Invalid authentication (401)
- Rate limit exceeded (429)
- Resource not found (404)
- Validation errors (400)
- Server errors (500)
Development
Build from source
git clone https://github.com/BusyBee3333/mcpengine
cd mcpengine/servers/keap
npm install
npm run build
Run in development mode
npm run dev
Type checking
npx tsc --noEmit
Build React apps
cd src/ui/react-app
npm install
npm run build
Best Practices
Contact Management
- Use tags effectively: Organize contacts with meaningful tags for segmentation
- Custom fields: Leverage custom fields for industry-specific data
- Merge duplicates: Regularly use
keap_merge_contactsto maintain data quality - Opt-in compliance: Always check opt status before sending marketing emails
Sales Pipeline
- Consistent stage moves: Use
keap_move_opportunity_stageto track progression - Revenue tracking: Keep projected revenue updated for accurate forecasting
- Pipeline hygiene: Regularly review and close stale opportunities
Automation
- Campaign sequences: Build automated follow-up sequences for lead nurturing
- Goal tracking: Set clear goals to measure campaign effectiveness
- Link triggers: Use link-based triggers for behavior-based automation
E-commerce
- Product catalog: Maintain accurate SKUs and pricing
- Order tracking: Use order IDs consistently across systems
- Subscription management: Monitor subscription status and renewal dates
- Payment reconciliation: Regular transaction history reviews
Keap Plans & Features
Different Keap plans provide varying API capabilities:
- Lite: Basic contact and email tools
- Pro: Full CRM, sales pipeline, and automation
- Max: E-commerce, advanced automations, affiliate management
- Max Classic: Legacy features, additional e-commerce capabilities
Ensure your plan supports the features you intend to use via the API.
Troubleshooting
Authentication Issues
# Verify your API key
curl -H "X-Keap-API-Key: YOUR_API_KEY" https://api.infusionsoft.com/crm/rest/v1/account/profile
Rate Limiting
If you encounter frequent rate limits:
- Reduce concurrent request volume
- Implement longer delays between operations
- Consider upgrading your Keap plan for higher limits
Contact Not Found
Ensure contact IDs are valid:
// First search for the contact
const result = await keap_search_contacts({
email: "user@example.com"
});
// Then use the returned ID
Migration from Infusionsoft XML-RPC
If migrating from the legacy XML-RPC API:
- Authentication: Replace legacy keys with Personal Access Tokens
- Endpoints: Update from XML-RPC to REST API patterns
- Data format: Convert XML structures to JSON
- Field mappings: Review custom field IDs (may have changed)
License
MIT
Support
For issues and feature requests, please visit: https://github.com/BusyBee3333/mcpengine/issues
Related
Changelog
Version 1.0.0
- Initial release
- 111 tools across 14 categories
- 22 React apps for visual interfaces
- Full Keap REST API coverage
- Rate limiting and error handling
- Comprehensive TypeScript types