# Keap MCP Server A comprehensive Model Context Protocol (MCP) server for Keap (formerly Infusionsoft) - providing AI-powered access to contact management, sales pipeline, marketing automation, e-commerce, and more. ## ๐Ÿš€ Features - **111 MCP Tools** across 14 categories - **20 React Apps** with dark theme UI matching Keap brand - Full OAuth 2.0 PKCE authentication flow - Type-safe API client with comprehensive error handling - Real-time data synchronization - Webhook support for automation ## ๐Ÿ“ฆ Installation ```bash npm install @mcpengine/keap ``` ## ๐Ÿ”ง Configuration Create a `.env` file: ```env KEAP_CLIENT_ID=your_client_id KEAP_CLIENT_SECRET=your_client_secret KEAP_REDIRECT_URI=http://localhost:3000/callback KEAP_ACCESS_TOKEN=your_access_token KEAP_REFRESH_TOKEN=your_refresh_token ``` ## ๐Ÿ› ๏ธ MCP Tools (111 Total) ### Contacts (19 tools) Core contact management and CRM functionality. - `keap_create_contact` - Create a new contact with email, name, phone, address, tags, custom fields - `keap_get_contact` - Retrieve a contact by ID with all details - `keap_update_contact` - Update an existing contact - `keap_delete_contact` - Delete a contact permanently - `keap_list_contacts` - List contacts with pagination and filtering - `keap_search_contacts` - Search contacts by email, name, phone - `keap_merge_contacts` - Merge duplicate contacts - `keap_apply_tag_to_contact` - Apply a tag to a contact - `keap_remove_tag_from_contact` - Remove a tag from a contact - `keap_get_contact_tags` - Get all tags applied to a contact - `keap_get_contact_emails` - Get email addresses for a contact - `keap_create_contact_email` - Add a new email address to a contact - `keap_delete_contact_email` - Remove an email address from a contact - `keap_get_contact_credit_cards` - Get saved credit cards for a contact - `keap_create_contact_credit_card` - Add a credit card to a contact - `keap_get_contact_custom_fields` - Get custom field values for a contact - `keap_update_contact_custom_field` - Update a custom field value - `keap_list_contact_notes` - List all notes for a contact - `keap_get_contact_model` - Get the contact data model schema ### E-Commerce (15 tools) Product catalog, orders, transactions, and subscriptions. - `keap_create_product` - Create a new product in the catalog - `keap_get_product` - Get product details by ID - `keap_update_product` - Update product information - `keap_delete_product` - Delete a product - `keap_list_products` - List all products with filtering - `keap_create_order` - Create a new order for a contact - `keap_get_order` - Get order details by ID - `keap_delete_order` - Delete an order - `keap_list_orders` - List orders with filtering - `keap_list_order_transactions` - Get all transactions for an order - `keap_get_transaction` - Get transaction details - `keap_list_transactions` - List all transactions - `keap_create_subscription` - Create a recurring subscription - `keap_get_subscription` - Get subscription details - `keap_list_subscriptions` - List all subscriptions ### Opportunities (9 tools) Sales pipeline and opportunity management. - `keap_create_opportunity` - Create a new sales opportunity - `keap_get_opportunity` - Get opportunity details - `keap_update_opportunity` - Update opportunity information - `keap_delete_opportunity` - Delete an opportunity - `keap_list_opportunities` - List opportunities with filtering - `keap_list_opportunity_stage_pipeline` - Get all pipeline stages - `keap_get_opportunity_stage_pipeline` - Get details for a specific stage - `keap_update_opportunity_stage` - Move opportunity to different stage - `keap_get_opportunity_model` - Get opportunity data model schema ### Affiliates (9 tools) Affiliate program management and tracking. - `keap_create_affiliate` - Create a new affiliate account - `keap_get_affiliate` - Get affiliate details - `keap_list_affiliates` - List all affiliates - `keap_get_affiliate_clawbacks` - Get commission clawbacks for an affiliate - `keap_get_affiliate_commissions` - Get commissions earned - `keap_get_affiliate_payments` - Get payment history - `keap_get_affiliate_redirect_links` - Get tracking links - `keap_get_affiliate_summary` - Get affiliate performance summary - `keap_list_commissions` - List all commissions ### Tasks (8 tools) Task and activity management. - `keap_create_task` - Create a new task - `keap_get_task` - Get task details - `keap_update_task` - Update task information - `keap_delete_task` - Delete a task - `keap_list_tasks` - List tasks with filtering - `keap_search_tasks` - Search tasks by title or description - `keap_complete_task` - Mark a task as completed - `keap_get_task_model` - Get task data model schema ### Campaigns (7 tools) Marketing campaign and sequence management. - `keap_list_campaigns` - List all campaigns - `keap_get_campaign` - Get campaign details - `keap_add_contact_to_campaign` - Add a contact to a campaign - `keap_remove_contact_from_campaign` - Remove a contact from a campaign - `keap_get_campaign_sequences` - Get all sequences in a campaign - `keap_add_contact_to_sequence` - Add contact to a specific sequence - `keap_remove_contact_from_sequence` - Remove contact from sequence ### Emails (7 tools) Email sending, templates, and opt-in management. - `keap_send_email` - Send an email to contacts - `keap_get_email` - Get email details - `keap_list_emails` - List sent emails - `keap_create_email_template` - Create a new email template - `keap_list_email_templates` - List all email templates - `keap_opt_in_contact` - Opt-in a contact for email marketing - `keap_opt_out_contact` - Opt-out a contact from emails ### Appointments (6 tools) Appointment scheduling and calendar management. - `keap_create_appointment` - Create a new appointment - `keap_get_appointment` - Get appointment details - `keap_update_appointment` - Update appointment information - `keap_delete_appointment` - Delete an appointment - `keap_list_appointments` - List appointments with filtering - `keap_get_appointment_model` - Get appointment data model schema ### Automations (6 tools) Webhook and automation configuration. - `keap_create_hook` - Create a new webhook - `keap_list_hooks` - List all webhooks - `keap_delete_hook` - Delete a webhook - `keap_verify_hook` - Verify webhook configuration - `keap_update_hook` - Update webhook settings - `keap_list_hook_event_types` - Get available webhook event types ### Notes (6 tools) Contact and opportunity notes. - `keap_create_note` - Create a new note - `keap_get_note` - Get note details - `keap_update_note` - Update note content - `keap_delete_note` - Delete a note - `keap_list_notes` - List notes with filtering - `keap_get_note_model` - Get note data model schema ### Companies (5 tools) Company/organization management. - `keap_create_company` - Create a new company - `keap_get_company` - Get company details - `keap_update_company` - Update company information - `keap_list_companies` - List companies with filtering - `keap_get_company_contacts` - Get all contacts for a company ### Settings (5 tools) Account settings and configuration. - `keap_get_account_profile` - Get account profile information - `keap_update_account_profile` - Update account settings - `keap_list_users` - List all users in the account - `keap_get_application_configuration` - Get app configuration - `keap_list_custom_fields` - List all custom field definitions ### Tags (5 tools) Tag and category management. - `keap_create_tag` - Create a new tag - `keap_get_tag` - Get tag details - `keap_list_tags` - List all tags - `keap_create_tag_category` - Create a tag category - `keap_list_tag_categories` - List all tag categories ### Files (4 tools) File upload and management. - `keap_upload_file` - Upload a file - `keap_get_file` - Get file details and download URL - `keap_delete_file` - Delete a file - `keap_list_files` - List all uploaded files ## ๐ŸŽจ React Apps (20 Total) All apps feature dark theme styling with Keap's orange/amber brand accents and VSCode-style UI. ### Core Apps 1. **Contact Dashboard** (`src/ui/react-app/src/apps/contact-dashboard/`) - Overview of contact metrics and recent contacts - Quick search and filter functionality - Contact creation and editing 2. **Contact Detail** (`src/ui/react-app/src/apps/contact-detail/`) - Full contact profile with all fields - Tag management - Email and phone history - Custom field editor 3. **Contact Grid** (`src/ui/react-app/src/apps/contact-grid/`) - Sortable, filterable contact list - Bulk actions (tag, delete, export) - Advanced search 4. **Deal Detail** (`src/ui/react-app/src/apps/deal-detail/`) - Opportunity/deal full details - Stage progression tracking - Activity timeline 5. **Pipeline Kanban** (`src/ui/react-app/src/apps/pipeline-kanban/`) - Drag-and-drop deal pipeline - Stage-based organization - Deal value summaries per stage ### Campaign & Marketing 6. **Campaign Dashboard** (`src/ui/react-app/src/apps/campaign-dashboard/`) - Campaign performance metrics - Active campaigns list - Contact enrollment stats 7. **Campaign Detail** (`src/ui/react-app/src/apps/campaign-detail/`) - Campaign sequence viewer - Contact progress tracking - Enrollment/removal management 8. **Email Composer** (`src/ui/react-app/src/apps/email-composer/`) - Rich text email editor - Template selector - Merge field insertion - Send to contacts or lists 9. **Automation Builder** (`src/ui/react-app/src/apps/automation-builder/`) - Webhook management - Event type configuration - Automation triggers ### Calendar & Tasks 10. **Appointment Calendar** (`src/ui/react-app/src/apps/appointment-calendar/`) - Calendar view of appointments - Create/edit appointments - Contact association 11. **Task Manager** (`src/ui/react-app/src/apps/task-manager/`) - Task list with filtering - Task creation and assignment - Completion tracking ### E-Commerce 12. **Order Dashboard** (`src/ui/react-app/src/apps/order-dashboard/`) - Order overview and metrics - Recent orders list - Revenue summaries 13. **Order Detail** (`src/ui/react-app/src/apps/order-detail/`) - Full order information - Transaction history - Payment status 14. **Product Catalog** (`src/ui/react-app/src/apps/product-catalog/`) - Product list with images - Product creation and editing - Pricing and inventory management 15. **Subscription Manager** (`src/ui/react-app/src/apps/subscription-manager/`) - Active subscriptions list - Subscription creation - Billing cycle tracking ### Organization & Settings 16. **Tag Manager** (`src/ui/react-app/src/apps/tag-manager/`) - Tag list and creation - Category management - Tag application stats 17. **Analytics Dashboard** (`src/ui/react-app/src/apps/analytics-dashboard/`) - Business metrics overview - Contact growth charts - Revenue analytics 18. **Affiliate Dashboard** (`src/ui/react-app/src/apps/affiliate-dashboard/`) - Affiliate performance - Commission tracking - Payment history 19. **File Browser** (`src/ui/react-app/src/apps/file-browser/`) - Uploaded files list - File upload interface - Download and delete actions 20. **Settings Panel** (`src/ui/react-app/src/apps/settings-panel/`) - Account profile - User management - Custom field configuration ## ๐Ÿ—๏ธ Architecture ``` servers/keap/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ clients/ โ”‚ โ”‚ โ””โ”€โ”€ keap.ts # OAuth 2.0 client with auto-refresh โ”‚ โ”œโ”€โ”€ tools/ # 14 tool files, 111 tools total โ”‚ โ”‚ โ”œโ”€โ”€ affiliates-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ appointments-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ automations-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ campaigns-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ companies-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ contacts-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ ecommerce-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ emails-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ files-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ notes-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ opportunities-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ settings-tools.ts โ”‚ โ”‚ โ”œโ”€โ”€ tags-tools.ts โ”‚ โ”‚ โ””โ”€โ”€ tasks-tools.ts โ”‚ โ”œโ”€โ”€ types/ โ”‚ โ”‚ โ”œโ”€โ”€ keap.ts # Type definitions โ”‚ โ”‚ โ””โ”€โ”€ index.ts โ”‚ โ”œโ”€โ”€ ui/ โ”‚ โ”‚ โ””โ”€โ”€ react-app/ โ”‚ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ apps/ # 20 React applications โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ hooks/ # Shared React hooks โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ styles/ # Dark theme CSS โ”‚ โ”‚ โ”œโ”€โ”€ package.json โ”‚ โ”‚ โ”œโ”€โ”€ tsconfig.json โ”‚ โ”‚ โ””โ”€โ”€ build-all.js โ”‚ โ”œโ”€โ”€ server.ts # MCP server implementation โ”‚ โ””โ”€โ”€ main.ts # Entry point โ”œโ”€โ”€ dist/ # Compiled output โ”œโ”€โ”€ package.json โ”œโ”€โ”€ tsconfig.json โ””โ”€โ”€ README.md ``` ## ๐ŸŽฏ Usage ### As MCP Server Add to your MCP client configuration: ```json { "mcpServers": { "keap": { "command": "npx", "args": ["-y", "@mcpengine/keap"], "env": { "KEAP_CLIENT_ID": "your_client_id", "KEAP_CLIENT_SECRET": "your_client_secret", "KEAP_ACCESS_TOKEN": "your_access_token", "KEAP_REFRESH_TOKEN": "your_refresh_token" } } } } ``` ### Building React Apps ```bash cd src/ui/react-app npm install npm run build ``` Individual app builds are output to `dist/{app-name}/`. ## ๐Ÿ” Authentication The server uses OAuth 2.0 PKCE flow: 1. Set `KEAP_CLIENT_ID` and `KEAP_CLIENT_SECRET` in `.env` 2. Run the OAuth flow to get initial tokens 3. Tokens are auto-refreshed when expired 4. Refresh token is persisted for long-term access ## ๐Ÿ“Š Data Models All tools that create or update resources include a corresponding `get_*_model` tool that returns the schema, validation rules, and field definitions. Example: ```typescript // Get contact model to understand required fields const model = await callTool('keap_get_contact_model'); // Create contact with proper fields const contact = await callTool('keap_create_contact', { given_name: 'John', family_name: 'Doe', email: 'john@example.com', opt_in_reason: 'Website signup' }); ``` ## ๐Ÿšฆ Rate Limits Keap API has rate limits: - 150 requests per second per account - Daily request quotas based on plan The client includes automatic retry with exponential backoff for rate limit errors. ## ๐Ÿงช Testing ```bash npm test ``` ## ๐Ÿ“ Development ```bash # Install dependencies npm install # Run in development mode npm run dev # Build TypeScript npm run build # Type check npx tsc --noEmit ``` ## ๐Ÿค Contributing Contributions welcome! Please ensure: - All TypeScript code type-checks without errors - React apps maintain dark theme consistency - New tools include proper input schemas and descriptions - README is updated for new functionality ## ๐Ÿ“„ License MIT ## ๐Ÿ”— Links - [Keap API Documentation](https://developer.keap.com/docs/) - [MCP Protocol Specification](https://modelcontextprotocol.io/) - [MCPEngine GitHub](https://github.com/BusyBee3333/mcpengine) --- **Built with โค๏ธ by MCPEngine** *Keap is a registered trademark of Keap Inc. This is an unofficial community project.*