usefulapi

Keap MCP server. List and create Keap contacts, companies, tasks, opportunities, orders, tags and campaigns.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://keap.usefulapi.io/mcp
  3. Authenticate with Keap when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "keap": {
      "url": "https://keap.usefulapi.io/mcp"
    }
  }
}
live20 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 20

ToolTypeWhat it does
keap_list_contactsread
List contacts
List contacts in the Keap CRM. Supports filtering, ordering, field selection, and cursor pagination (page_size / page_token). Keap: GET /contacts.
keap_get_contactread
Get contact
Get a single contact by id. Keap: GET /contacts/{contact_id}.
keap_list_companiesread
List companies
List companies in the Keap CRM. Supports filtering, ordering, field selection, and cursor pagination. Keap: GET /companies.
keap_get_companyread
Get company
Get a single company by id. Keap: GET /companies/{company_id}.
keap_list_opportunitiesread
List opportunities
List sales opportunities (deals) in the pipeline. Supports filtering, ordering, field selection, and cursor pagination. Keap: GET /opportunities.
keap_get_opportunityread
Get opportunity
Get a single opportunity by id. Keap: GET /opportunities/{opportunity_id}.
keap_list_tagsread
List tags
List tags defined in the account (used to segment contacts). Supports filtering, ordering, and cursor pagination. Keap: GET /tags.
keap_list_tasksread
List tasks
List tasks (follow-ups / to-dos). Supports filtering, ordering, and cursor pagination. Keap: GET /tasks.
keap_get_taskread
Get task
Get a single task by id. Keap: GET /tasks/{task_id}.
keap_list_subscriptionsread
List subscriptions
List recurring subscriptions / payment plans. Supports filtering, ordering, and cursor pagination. Keap: GET /subscriptions.
keap_list_ordersread
List orders
List e-commerce orders. Supports filtering, ordering, and cursor pagination. Keap: GET /orders.
keap_list_productsread
List products
List products in the catalog. Supports filtering, ordering, and cursor pagination. Keap: GET /products.
keap_list_campaignsread
List campaigns
List marketing campaigns (automation sequences). Supports filtering, ordering, and cursor pagination. Keap: GET /campaigns.
keap_list_affiliatesread
List affiliates
List referral-program affiliates. Supports filtering, ordering, and cursor pagination. Keap: GET /affiliates.
keap_create_contactwrite
Create contact
Create a new contact in the Keap CRM. Provide any of given_name, family_name, email_addresses, phone_numbers, company_id, plus an optional extra object of any other Keap fields. Keap: POST /contacts.
keap_update_contactwrite
Update contact
Update an existing contact by id. Provide any of given_name, family_name, email_addresses, phone_numbers, company_id, plus an optional extra object (only supplied fields change). Keap: PATCH /contacts/{contact_id}.
keap_create_taskwrite
Create task
Create a task (follow-up / to-do), optionally linked to a contact. Keap: POST /tasks.
keap_apply_tagwrite
Apply tag to contacts
Apply a tag to one or more contacts (segments them / can trigger automation). Keap: POST /tags/{tag_id}/contacts:applyTags.
keap_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter.
keap_upgrademeta
Upgrade to Pro (unlimited)
Subscribe to the Pro plan for UNLIMITED Keap tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Proper user$9/mo · $90/yrUnlimited

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.