MCP Server
Customerscore.io exposes a Model Context Protocol (MCP) server so AI assistants such as Claude, ChatGPT, Gemini, or Cursor can work with your customer data directly — health and fit scores, churn analytics, segments, properties, and alerts — without you writing any API calls.
Ask about customer health, churn trends, upcoming renewals, or your most at-risk accounts, and the assistant answers using live data from your account.
Setup instructions live in the per-client guides: Claude, ChatGPT, Gemini, and other MCP clients.
Available tools
| Category | Tools |
|---|---|
| Customers | list_customers, get_customer_detail, get_customer_notes, get_customer_main_stats, get_customer_ai_summary |
| Contacts | list_contacts, get_contact_detail, get_contact_main_stats |
| Scoring & churn | get_scoring_history, get_churn_analytics, get_lost_mrr |
| Analytics & insights | get_insights, get_mrr_trend_by_health, get_statistics_overview, aggregate_property |
| Segments | list_segments, create_segment |
| Properties & tags | list_properties, get_property_values, list_tags |
| Alerts | list_alerts, create_alert |
All tools are read-only except create_segment and create_alert, which write new segments and smart alerts to your account. Both only add new items — the server can never edit or delete existing data.
list_customers is the workhorse: it covers free-text lookup by name or email (via its search parameter), cohort filters (churn risk, health score, tags, custom properties), churned customers, upcoming renewals, and trending customers via health-score-change sorting. Its properties parameter adds chosen custom property values to every row, so the assistant does not have to open each customer.
aggregate_property answers totals, averages, minimums, maximums and counts in one call — for example total MRR of a segment, average health score per plan, or the sum of deals across one company's contacts — over exactly the same set of customers or contacts the list tools would return, optionally grouped by a property or (for contacts) by company.
The contact tools cover the individual people at your customer companies. list_contacts lists the contacts of one company (via its customerId parameter) or searches across all of them, with filters on health score, tags, and contact properties. Contacts carry only a health score — fit score, churn risk, and MRR exist at the company level only. create_segment can also create contact segments.
Contact tools return current contacts by default. A contact becomes a former contact when it is missing from your last few contact imports or when its company churned — it says nothing about product usage. Pass isChurned: true to list_contacts, get_contact_main_stats, or aggregate_property to work with former contacts instead.
Most customer tools work with the internal numeric customer ID. If you only
know a name or email, the assistant resolves it with the search parameter of
list_customers first.
Example prompts
Once connected, you can ask your assistant things like:
- "Which customers are at risk of churning in the next 30 days?"
- "Show me the customers with the biggest health score drop this month."
- "How much MRR did we lose to churn in the last quarter, month by month?"
- "List customers renewing in the next 30 days with a health score under 50."
- "Who are the contacts at Acme, and which of them have a declining health score?"
- "What is the total number of deals across Acme's contacts?"
- "Create a segment for customers with a Fit Score above 70 and a Health Score below 0."
- "Set up an alert that emails me when any customer's churn risk hits 4 or more."
Security & data handling
- All traffic is HTTPS.
- Claude connections use OAuth 2.1 with PKCE — access tokens are short-lived and scoped to a single account, and you can revoke them at any time by removing the connector.
- Token connections are scoped to the account the API token belongs to.
- The server only reads and writes data inside your Customerscore.io account; it never calls external services.
Error responses
| Status | Meaning |
|---|---|
401 | Missing or invalid credentials (token clients) or expired OAuth access token |
403 | Invalid API token |
406 | Content-Type is not application/json |
490 | Scoring is not configured for the account — finish setup in the application |
491 | Account is blocked |
Rate limits are shared with the REST API — see API Introduction.