# 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) 1. **Contact Dashboard** - Contact list with metrics and search 2. **Contact Detail** - Comprehensive contact profile view 3. **Contact Grid** - Data grid with filtering and bulk actions 4. **Contact Timeline** - Activity timeline and interaction history 5. **Company Dashboard** - Company overview and metrics 6. **Company Detail** - Detailed company information 7. **Company Grid** - Companies data grid with search 8. **Deal Dashboard** - Sales pipeline overview 9. **Deal Detail** - Opportunity details and stage tracking 10. **Pipeline Kanban** - Visual drag-and-drop pipeline management 11. **Pipeline Funnel** - Conversion funnel visualization 12. **Task Manager** - Task list with priorities and due dates 13. **Appointment Calendar** - Calendar view with scheduling 14. **Campaign Dashboard** - Campaign performance metrics 15. **Campaign Detail** - Campaign sequence and analytics 16. **Email Composer** - Rich email composition interface 17. **Tag Manager** - Tag organization and bulk tagging 18. **Automation Dashboard** - Campaign builder overview 19. **Product Catalog** - E-commerce product management 20. **Order Dashboard** - Order tracking and fulfillment 21. **Order Detail** - Detailed order information 22. **Revenue Dashboard** - Revenue analytics and reporting ## Installation ```bash npm install @mcpengine/keap ``` ## Configuration ### Environment Variables ```bash KEAP_API_KEY=your_personal_access_token ``` ### Personal Access Token Setup 1. Log in to your Keap account 2. Navigate to **Admin** → **Settings** → **Application** 3. Click on **API** tab 4. Generate a new **Personal Access Token** 5. Copy the token and use it as `KEAP_API_KEY` ### MCP Settings (Claude Desktop) Add to your `claude_desktop_config.json`: ```json { "mcpServers": { "keap": { "command": "npx", "args": ["-y", "@mcpengine/keap"], "env": { "KEAP_API_KEY": "your_personal_access_token" } } } } ``` ## Usage Examples ### Create a Contact ```typescript { "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 ```typescript { "tool": "keap_search_contacts", "arguments": { "email": "john@example.com", "given_name": "John", "order": "email", "limit": 50 } } ``` ### Create an Opportunity ```typescript { "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 ```typescript { "tool": "keap_move_opportunity_stage", "arguments": { "opportunity_id": 98765, "stage_id": 790, "notes": "Proposal sent, awaiting review" } } ``` ### Tag Contacts ```typescript { "tool": "keap_apply_tags_to_contacts", "arguments": { "contact_ids": [123, 456, 789], "tag_ids": [10, 20] } } ``` ### Send Email ```typescript { "tool": "keap_send_email", "arguments": { "contact_ids": [12345], "subject": "Welcome to our service!", "html_content": "
Thank you for joining us.
", "text_content": "Welcome! Thank you for joining us." } } ``` ### Create a Product ```typescript { "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 ```typescript { "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 contact - `keap_get_contact` - Get contact by ID - `keap_update_contact` - Update contact details - `keap_delete_contact` - Delete contact - `keap_list_contacts` - List all contacts (paginated) - `keap_search_contacts` - Search contacts by criteria - `keap_get_contact_emails` - Get contact's email addresses - `keap_create_contact_email` - Add email to contact - `keap_update_contact_email` - Update email address - `keap_delete_contact_email` - Remove email address - `keap_apply_tags_to_contact` - Tag a single contact - `keap_remove_tags_from_contact` - Remove tags from contact - `keap_get_contact_tags` - List contact's tags - `keap_merge_contacts` - Merge duplicate contacts - `keap_apply_tags_to_contacts` - Bulk tag multiple contacts - `keap_remove_tags_from_contacts` - Bulk remove tags - `keap_get_contact_opt_status` - Check email opt-in status - `keap_opt_in_contact` - Opt in contact for emails - `keap_opt_out_contact` - Opt out contact from emails ### Company Tools (5 tools) - `keap_create_company` - Create new company - `keap_get_company` - Get company by ID - `keap_update_company` - Update company details - `keap_list_companies` - List all companies (paginated) - `keap_search_companies` - Search companies by criteria ### Opportunity Tools (9 tools) - `keap_create_opportunity` - Create new opportunity - `keap_get_opportunity` - Get opportunity by ID - `keap_update_opportunity` - Update opportunity details - `keap_list_opportunities` - List opportunities (paginated) - `keap_search_opportunities` - Search opportunities by criteria - `keap_move_opportunity_stage` - Move opportunity to new stage - `keap_get_opportunity_pipeline` - Get pipeline stages - `keap_bulk_update_opportunities` - Update multiple opportunities - `keap_get_opportunity_stage_details` - Get stage information ### Task Tools (8 tools) - `keap_create_task` - Create new task - `keap_get_task` - Get task by ID - `keap_update_task` - Update task details - `keap_delete_task` - Delete task - `keap_list_tasks` - List tasks (paginated) - `keap_search_tasks` - Search tasks by criteria - `keap_complete_task` - Mark task as complete - `keap_bulk_update_tasks` - Update multiple tasks ### Appointment Tools (6 tools) - `keap_create_appointment` - Create new appointment - `keap_get_appointment` - Get appointment by ID - `keap_update_appointment` - Update appointment details - `keap_delete_appointment` - Delete appointment - `keap_list_appointments` - List appointments (paginated) - `keap_search_appointments` - Search appointments by criteria ### Campaign Tools (7 tools) - `keap_create_campaign` - Create new campaign - `keap_get_campaign` - Get campaign by ID - `keap_list_campaigns` - List campaigns (paginated) - `keap_add_contact_to_campaign` - Add contact to campaign sequence - `keap_remove_contact_from_campaign` - Remove contact from campaign - `keap_get_campaign_sequence` - Get campaign sequence details - `keap_get_campaign_achievements` - Get campaign completion data ### Tag Tools (5 tools) - `keap_create_tag` - Create new tag - `keap_get_tag` - Get tag by ID - `keap_list_tags` - List all tags - `keap_create_tag_category` - Create tag category - `keap_list_tag_categories` - List tag categories ### Note Tools (6 tools) - `keap_create_note` - Create new note - `keap_get_note` - Get note by ID - `keap_update_note` - Update note content - `keap_delete_note` - Delete note - `keap_list_notes` - List notes (paginated) - `keap_search_notes` - Search notes by criteria ### Email Tools (7 tools) - `keap_send_email` - Send email to contacts - `keap_create_email_template` - Create email template - `keap_get_email_template` - Get template by ID - `keap_list_email_templates` - List email templates - `keap_send_template_email` - Send templated email - `keap_get_email_stats` - Get email sending statistics - `keap_check_email_deliverability` - Check email configuration ### File Tools (4 tools) - `keap_upload_file` - Upload file to Keap - `keap_get_file` - Download file by ID - `keap_list_files` - List uploaded files - `keap_delete_file` - Delete file ### E-commerce Tools (15 tools) - `keap_create_product` - Create new product - `keap_get_product` - Get product by ID - `keap_update_product` - Update product details - `keap_delete_product` - Delete product - `keap_list_products` - List products (paginated) - `keap_create_order` - Create new order - `keap_get_order` - Get order by ID - `keap_update_order` - Update order details - `keap_list_orders` - List orders (paginated) - `keap_create_subscription` - Create recurring subscription - `keap_get_subscription` - Get subscription by ID - `keap_cancel_subscription` - Cancel subscription - `keap_create_payment` - Record payment - `keap_refund_payment` - Process refund - `keap_get_transaction_history` - Get payment history ### Automation Tools (6 tools) - `keap_create_campaign_sequence` - Create automation sequence - `keap_get_campaign_sequence` - Get sequence details - `keap_update_campaign_sequence` - Update sequence - `keap_create_campaign_goal` - Create campaign goal - `keap_get_campaign_goals` - List campaign goals - `keap_trigger_link_click` - Trigger link-based automation ### Settings Tools (5 tools) - `keap_get_account_info` - Get account information - `keap_list_users` - List account users - `keap_get_user` - Get user details - `keap_list_custom_fields` - List custom fields - `keap_create_custom_field` - Create custom field ### Affiliate Tools (9 tools) - `keap_create_affiliate` - Create affiliate account - `keap_get_affiliate` - Get affiliate by ID - `keap_list_affiliates` - List affiliates (paginated) - `keap_update_affiliate` - Update affiliate details - `keap_get_affiliate_commissions` - Get commission history - `keap_create_affiliate_payout` - Create payout - `keap_create_affiliate_clawback` - Reverse commission - `keap_get_affiliate_summary` - Get performance summary - `keap_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: ```json { "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 ```bash git clone https://github.com/BusyBee3333/mcpengine cd mcpengine/servers/keap npm install npm run build ``` ### Run in development mode ```bash npm run dev ``` ### Type checking ```bash npx tsc --noEmit ``` ### Build React apps ```bash cd src/ui/react-app npm install npm run build ``` ## Best Practices ### Contact Management 1. **Use tags effectively**: Organize contacts with meaningful tags for segmentation 2. **Custom fields**: Leverage custom fields for industry-specific data 3. **Merge duplicates**: Regularly use `keap_merge_contacts` to maintain data quality 4. **Opt-in compliance**: Always check opt status before sending marketing emails ### Sales Pipeline 1. **Consistent stage moves**: Use `keap_move_opportunity_stage` to track progression 2. **Revenue tracking**: Keep projected revenue updated for accurate forecasting 3. **Pipeline hygiene**: Regularly review and close stale opportunities ### Automation 1. **Campaign sequences**: Build automated follow-up sequences for lead nurturing 2. **Goal tracking**: Set clear goals to measure campaign effectiveness 3. **Link triggers**: Use link-based triggers for behavior-based automation ### E-commerce 1. **Product catalog**: Maintain accurate SKUs and pricing 2. **Order tracking**: Use order IDs consistently across systems 3. **Subscription management**: Monitor subscription status and renewal dates 4. **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 ```bash # 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: 1. Reduce concurrent request volume 2. Implement longer delays between operations 3. Consider upgrading your Keap plan for higher limits ### Contact Not Found Ensure contact IDs are valid: ```typescript // 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: 1. **Authentication**: Replace legacy keys with Personal Access Tokens 2. **Endpoints**: Update from XML-RPC to REST API patterns 3. **Data format**: Convert XML structures to JSON 4. **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 - [Keap API Documentation](https://developer.keap.com/docs/rest/) - [Keap Developer Portal](https://keys.developer.keap.com/) - [Model Context Protocol](https://modelcontextprotocol.io) - [MCPEngine Repository](https://github.com/BusyBee3333/mcpengine) ## 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