ChartMogul
Revenue and growth insights
- Category
- Data & Analytics
- Primary Subcategory
- Self-Serve BI & Conversational Analytics
Integration details
Description
ChartMogul’s MCP server gives AI assistants secure access to your subscription analytics and customer data. Analyze MRR, ARR, churn, retention, cohorts, subscriptions, revenue trends, and customer activity using natural language. Investigate business performance, identify growth opportunities, uncover churn drivers, explore customer relationships, and answer complex questions about your SaaS business. Built for founders and go-to-market, product, and finance teams, it turns ChartMogul data into actionable insights and faster decisions.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Self-Serve BI & Conversational Analytics
- Secondary Subcategories
- None listed
- Brand
- ChartMogul
- Access
- Account required
- First tracked
- 2026-06-24
- Tool count
- 77
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for ChartMogul
Get updates when ChartMogul’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Self-Serve BI & Conversational Analytics
View Category77 tools agents can invoke
Average Revenue Per Account trend over time. Returns monetary values in major units (decimal format).
Average Sale Price with summary statistics. Returns monetary values in major units (decimal format).
Your account’s own retention metrics (gross MRR, net MRR, customer) over time, for comparison against benchmarks.
account_retention_for_benchmarks
Industry benchmark comparisons for ARR growth rate, customer retention, and net and gross MRR retention, segmented by ARPA or ARR band.
benchmarks
Benchmark data freshness and time to reach ARR milestones.
benchmarks_metadata
Relative size of a benchmark segment: the approximate percentage of all benchmarked accounts in the selected segment (all companies, or an ARPA/ARR band). Percentages are rounded up to a multiple of 5 with a minimum of 10; all_companies always returns 100.
benchmarks_segmented
ChartMogul Filtering Language (CFL) syntax reference, used to build filter expressions for analytics tools. Additional reference for plan and plan group filters via the `cfl_reference_for_plan_filters` tool. Each filter is annotated with a `level` (customer or subscription): - Customer level: filters entire customers in or out of a report. - Subscription level: when used with customer reports, customers are included if any of their subscriptions match the filter.
cfl_reference
Returns the ChartMogul Filtering Language (CFL) reference scoped to plan and plan group filters. Use this reference when constructing CFL filter strings for analytics tools.
cfl_reference_for_plan_filters
Committed Monthly Recurring Revenue movements, showing recurring revenue including future committed changes. Returns monetary values in major units (decimal format).
Feed of Committed Monthly Recurring Revenue (CMRR) movements. Returns paginated CMRR movement records for a date range. For regular MRR movements, use MRR_movements. Returns monetary values in major units (decimal format).
CMRR_movements
Customer-level net and gross cash flow. For aggregate cash flow trends, use cash_flow_analytics.
cash_flow
Cash flow analytics: refunds, net/gross/non-recurring cash flow, successful payments, and failed transactions. Each has chart and data table views. For customer-level cashflow details, use cash_flow. Returns monetary values in major units (decimal format).
cash_flow_analytics
Cash flow summary statistics. For trend data, use cash_flow_analytics.
cash_flow_summary
Churn rate trends and data tables: customer churn rate, paid subscriber churn rate, net MRR churn rate, gross MRR churn rate, and quantity churn rate. Use this tool for churn rate charts and totals. For individual churned customer details, use churned_subscribers instead.
churn_summary
Detailed list of churned subscribers (paginated). By default (no `columns` property), each row returns: movement_type, the movement uuid, the net MRR movement group (net_mrr_movement, net_mrr_movement_in_account_currency, net_mrr_movement_in_primary_currency, net_arr_movement_in_account_currency, net_arr_movement_in_primary_currency, mrr_before_churn), date, account_currency, primary_currency, and a nested customer (name, id, friendly_id, country_name). Money is in major units (decimals); dates are ISO 8601 UTC. Movement amounts come in two currencies: `_in_account_currency` values are in the account's own currency, `_in_primary_currency` values in the customer's invoice currency; `account_currency` and `primary_currency` carry the two ISO codes. Pass `columns` to return the listed fields instead of the full default set; every row still includes the movement uuid and the customer's id and friendly_id. See the columns parameter for selectable fields. For churn rate trends, use churn_summary instead.
churned_subscribers
Per-customer conversion details for a specific cohort and target interval (paginated). By default (no `columns` property), each row returns: activity_type, description, date, the conversion movement money group (mrr_movement_account_currency, mrr_movement_primary_currency, arr_movement_account_currency, arr_movement_primary_currency), primary_currency_code, and a nested customer (id, name). Money is in major units (decimals); dates are ISO 8601 UTC. Movement amounts come in two currencies: `_account_currency` values are in the account's own currency, `_primary_currency` values in the customer's invoice currency; `primary_currency_code` carries the invoice currency's ISO code. Pass `columns` to return the listed fields instead of the full default set; every row still includes the customer's id and name. See the columns parameter for selectable fields. For cohort overview, use cohorts_summary.
cohorts
Cohort retention analytics: net MRR cohorts, quantity cohorts, customer cohorts, and non-subscriber-to-subscriber conversion cohorts. For non-subscriber to subscriber details, use cohorts.
cohorts_summary
Per-record currency fluctuation activities. For summary data, use currency_fluctuation_summary instead. Returns monetary values in major units (decimal format).
currency_fluctuation
Summary of exchange rate impact on MRR over time. Returns monetary values in major units (decimal format). For individual fluctuation activities, use currency_fluctuation.
currency_fluctuation_summary
Count of customers matching a given filter, without retrieving full customer records. Returns {active, total}: total is the number of customers matching the filter; active is the subset currently on an active or past-due paid subscription, and is 0 whenever the filter targets non-paying customers. For full customer list, use search_customers.
customer_count
Per-customer MRR movement details for both paying and free subscribers. Movement amounts come in two currencies: `_in_account_currency` values are in the account's own currency, `_in_primary_currency` values in the customer's invoice currency. For aggregate movement counts, use subscriber_movement_summary instead. For paying subscribers only, use paid_subscriber_movements.
free_and_paid_subscriber_movements
List of free trial customers (paginated). By default (no `columns` property), each row returns: uuid, customer_name, status, free_trial_started_at, and description (how the trial started). Money is in major units (decimals); dates are ISO 8601 UTC. Pass `columns` to choose the returned fields instead; see the columns parameter for selectable fields. For free trial count trends, use lead_and_trial_trends with the free_trials metric.
free_trial_customers
Returns metadata about the current ChartMogul account (the caller's tenant): currency, time zone, and data-handling settings. Always returns uuid, name, currency, time_zone, week_start_on. For callers with write-level analytics access, the response also includes additional data settings fields such as preferable_customer_name, churn_recognition, churn_when_zero_mrr, churn_formula, proximate_movement_reclassification. Auto-churn settings (auto_churn_subscription, past_due_days_before_auto_churn) are included only on accounts still using the legacy account-level auto-churn; on accounts using the newer per-connector auto-churn the equivalent settings live in tool `list_data_sources`.
get_current_account
Customer Lifetime Value analytics over time. Interval is always month (hardcoded by analytics API). Returns entries with date, arpa, ccr, value per row. value is the computed LTV in major currency units. ccr is the customer churn rate as a percentage (0-100). arpa is in major currency units (decimal format).
Lead and free trial count trends and data tables over time. For individual lead details, use leads. For individual free trial customer details, use free_trial_customers. For summary stats, use leads_and_free_trials_summary.
lead_and_trial_trends
Paginated list of individual lead and non-trial lead customers. By default (no `columns` property), each row returns: uuid, lead_created_at, free_trial_started_at, status, customer_name and subscriber_since. Money is in major units (decimals); dates are ISO 8601 UTC. Pass `columns` to choose the returned fields instead; see the columns parameter for selectable fields. For free trials, use free_trial_customers. For aggregate counts, use lead_and_trial_trends.
leads
Leads and free trials summary statistics. For trend data, use lead_and_trial_trends.
leads_and_free_trials_summary
List the team members in the current account with their role, status, and contact details. Each team member has id, auth_user_id, email, name, is_active, status, role (owner | admin | team_member | read_only | crm_only | lite), created_at. `id` is the platform user id — the value platform tools reference a user by, e.g. `list_opportunities`' `owner_ids` filter and its `owner_id` field. `auth_user_id` is the auth-level user identity — the value the analytics `owner` filter expects (CFL customer filtering, e.g. `search_customers`). Pagination: pass the cursor to fetch the next page when `has_more` is true.
list_account_team_members
List contacts for one or more customers. Requires customer_uuids. Default fields: uuid, first_name, last_name, email, title, phone, linked_in, customer_uuid, created_at. Opt-in extra_fields: customer_name, is_primary, twitter, note, external_id, customer_external_id, data_source_uuid, last_seen, custom (nested hash of the contact's custom attribute values). Pagination: pass the cursor to fetch the next page when has_more is true.
list_contacts
List custom attribute definitions on customer records, including name, type, and possible values for dropdown attributes. Returns: id, name, type, created_at, possible_values (for dropdown attributes). Useful for discovering attribute IDs and names before calling `search_custom_attributes` to look up values. Pagination: pass the cursor to fetch the next page when has_more is true.
list_customer_custom_attributes
List notes and call logs for one or more customers, filtered by type, author, and date. Requires customer_uuids. Each note has uuid, type (note or call), text, call_duration, created_at, author_name, author_email, customer_uuid, customer_name. Notes are sorted by created_at descending, then uuid descending. For full-text search inside note bodies, use `search_all`. Pagination: pass the cursor to fetch the next page when has_more is true.
list_customer_notes
List subscriptions for one or more customers, including plan, status, billing interval, and key dates. Requires customer_uuids. Default fields: uuid, external_id, customer_uuid, activation_number, plan_name, interval, interval_count, quantity, status, is_manual_subscription, service_period_end, created_at. Optional extra_fields: customer_name, subscription_set_uuid, renewal_at, due_at, data_source_uuid, current_subscription_type. activation_number starts at 1 and is incremented each time the subscription is churned and later re-activated. Pagination: pass the cursor to fetch the next page when has_more is true.
list_customer_subscriptions
List status changes, merges, and other events from the customer Activity feed. Requires customer_uuids. Each event has uuid, created_at, source, author_name, author_email, data_source_name, customer_uuid, customer_name, payload. The payload is a JSON object whose shape depends on the event (e.g. {"status": [old, new]}, {"lead_status": [old, new]}, {"merged_customer": {...}}). Events are sorted by created_at descending, then uuid descending. Pagination: pass the cursor to fetch the next page when has_more is true.
list_customer_timeline_events
List data sources (billing connector integrations like Stripe, Recurly, Chargebee, ImportApi) with optional filters. Returns all matching data sources as uuid, name, system, created_at, updated_at ordered by name. Pass `with_settings: true` to include the user-configurable settings that apply to each non-CRM connector: `invoice_handling`, `auto_churn_on`/`auto_churn_interval`, and (for Stripe and Chargebee) `connector_settings`. Each setting is emitted only when it applies to that connector, so a given row may include all, some, or none of them. CRM data sources return only the base fields.
list_data_sources
List emails for a customer, contact, or thread. Emails frequently reveal why a customer churned, downgraded, or changed their subscription — cancellation requests, complaints, billing disputes, and support threads — so read them when investigating churn, downgrades, or other subscription changes, or customer behaviour generally. To investigate several customers, call once per customer_uuid. At least one of uuids, customer_uuid, contact_uuid, or thread_uuid is required so the query is bounded. Combining customer_uuid and contact_uuid OR-merges the resulting contact set. Returns uuid, subject, from_addresses, to_addresses, cc_addresses, bcc_addresses, original_date, thread_uuid. Ordered by original_date desc, then uuid desc. Set include_body to true to also get the email content (body), plus linked_customers and linked_contacts, on every row — needed to read what was actually said. Pagination: pass the cursor to fetch the next page when has_more is true.
list_emails
List invoices by UUIDs, customer, or source. Default row carries uuid, external_id, invoice_date, due_date, currency, status, collection_method, data_source_uuid, customer_uuid, customer_external_id. Conditional scope rules guard against inefficient filters: (1) invoice_external_ids requires data_source_uuid (external_ids are only unique within a data source); (2) status / currency / invoiced_on_or_after / invoiced_on_or_before each require at least one of invoice_uuids, invoice_external_ids, customer_uuid; (3) validation_type='invalid' requires at least one of invoice_uuids, invoice_external_ids, customer_uuid, data_source_uuid. Opt-in response extensions via extra_field_groups (embedded line_items, embedded transactions, edit_history_summary, disabled_info, errors). All monetary fields in the response are in major units (e.g. 10.99, not 1099). Sort: created_at DESC, uuid DESC. Pagination: pass the cursor to fetch the next page when has_more is true.
list_invoices
List line items by UUIDs, invoice, or customer. Default row carries uuid, external_id, invoice_external_id, type, amount, quantity, discount_code, discount_amount, tax_amount, transaction_fees, account_code, plan_uuid, plan_external_id, transaction_fees_currency, discount_description, event_order, balance_transfer, plus parent-context fields invoice_uuid, customer_uuid, data_source_uuid, currency. Subscription rows additionally carry subscription_uuid, subscription_external_id, prorated, proration_type, service_period_start, service_period_end (+ subscription_set_external_id when present). Usage_based rows carry description, service_period_start, service_period_end (+ subscription_external_id, subscription_set_external_id when present). One_time and trial rows carry description. Conditional scope rules: (1) line_item_external_ids requires at least one of customer_uuid, data_source_uuid; (2) invoice_external_ids / subscription_external_id / plan_external_id each require data_source_uuid (uniqueness); (3) subscription_uuid / subscription_external_id / plan_uuid / plan_external_id each require at least one of line_item_uuids, line_item_external_ids, customer_uuid, invoice_uuids, invoice_external_ids (perf); (4) type each requires at least one of line_item_uuids, line_item_external_ids, customer_uuid, invoice_uuids, invoice_external_ids (perf); (5) validation_type='invalid' requires at least one of line_item_uuids, line_item_external_ids, customer_uuid, invoice_uuids, invoice_external_ids, data_source_uuid. Opt-in response extensions via extra_field_groups (edit_history_summary, disabled_info, errors). All monetary fields in the response are in major units (e.g. 10.99, not 1099). Sort: created_at DESC, uuid DESC. Pagination: pass the cursor to fetch the next page when has_more is true.
list_line_items
List open and closed opportunities across sales pipelines, with filters for stage, owner, forecast category, close date, and more. Default fields per row: uuid, amount (decimal, major units in the opportunity's currency), type, forecast_category, win_likelihood, estimated_close_date, stage_uuid, pipeline_uuid, owner_id, customer_uuid, currency. Optional extra_fields: stage_name, pipeline_name, owner_name, owner_email, customer_name, custom. Results are sorted by estimated_close_date ascending. Different rows may use different currencies — don't sum amount across rows. Pass the returned `cursor` to fetch the next page when `has_more` is true.
list_opportunities
List plan groups (collections of plans used for filtering), optionally including their plans. Returns uuid, name, plan ids, plans count, whether the group is shown as a filter in the UI, whether it is a smart auto-created group, created_at, updated_at. When include_plans is true, each group also contains a list of plans with uuid, name, external_id, interval_count, interval_unit, data_source_uuid, data_source_name, system, created_at. Pagination: pass the cursor to fetch the next page when has_more is true.
list_plan_groups
List subscription plans in the account, with filters for name, billing interval, data source, and more. Returns a list of plans with uuid, name, external_id, interval info, data source info, system, created_at. Pagination: pass the cursor to fetch the next page when has_more is true.
list_plans
ChartMogul reference catalogs: currencies, customer statuses, countries, US states, and geographic region groupings. Set `kind` to choose which: currencies (active ISO 4217 codes with name and sign), customer_statuses (customer status values: active, cancelled, past_due, new_lead, etc.), countries (ISO 3166-1 alpha-2 codes with name), us_states (US-XX subdivisions with name and abbreviation), world_regions (named multi-country groupings like EMEA / APAC / LATAM, each with its ISO-2 country list), us_regions (US sub-regions East / West / Midwest / South, each with its state list).
list_reference_data
List stages of a sales pipeline with opportunity counts, total pipeline MRR, and probability-weighted pipeline MRR per stage. Requires pipeline_uuid. Top-level fields: pipeline_name and the account's currency. All amounts are converted from each opportunity's native currency to the account's currency and are expressed in major units (decimal, two places). Fields per stage: uuid, name, category, default_win_likelihood, opportunity_count, total_pipeline_mrr, expected_pipeline_mrr, total_pipeline_one_time, created_at. `default_win_likelihood` is the stage's default (0–100); individual opportunities may override it. `total_pipeline_mrr` is the sum of monthly recurring revenue across every non-one-time opportunity in the stage — recurring and mrr-typed amounts count as-is, arr-typed amounts are divided by 12. `expected_pipeline_mrr` is the same sum but with each opportunity weighted by its own win_likelihood, giving the probability-adjusted forecast. `total_pipeline_one_time` sums non-recurring opportunities separately. No pagination — every stage of the pipeline is returned.
list_sales_pipeline_stages
List sales pipelines in the account. Returns uuid, name, created_at. No pagination. Use the returned `uuid` with `list_sales_pipeline_stages` to fetch a pipeline's stages and per-stage aggregates.
list_sales_pipelines
List user-saved charts, customer lists, and opportunity lists (excluding built-in/default items). Each item is a metric + URL parameters representing a custom view — not stored data. Returns: id, name, url, url_parameters, item_type (chart | customer_list | opportunity_list), metric_name, group_name, created_at (ISO8601). Ordered by name. Pagination: pass the cursor when has_more is true.
list_saved_charts_and_lists
List segments (saved customer filter groups) in the account. Each segment has uuid, name, is_auto_generated, created_at (ISO8601), and cfl — the segment's filter expression in CFL, usable directly as the `filters` param of the analytics tools (see cfl_reference); null when the segment has no filters. Pagination: pass the cursor to fetch the next page when has_more is true.
list_segments
List subscription events (subscription starts, upgrades, cancellations, etc.) by UUIDs, customer, or source. Default row carries id, external_id, data_source_uuid, customer_uuid, customer_external_id, subscription_external_id, subscription_set_external_id, plan_external_id, event_type, event_date, effective_date, event_order, currency, quantity, amount, tax_amount, discount_amount, invoice_external_id, retracted_event_id, reason. Opt-in response extensions via extra_field_groups (edit_history_summary, disabled_info, errors). Three conditional requirements guard inefficient filters: (1) filters external_id and customer_external_id require data_source_uuid; (2) filters plan_external_id, plan_uuid, subscription_external_id, event_types, effective_date_on_or_after, effective_date_on_or_before, event_date_on_or_after, and event_date_on_or_before each require customer_uuid or customer_external_id; (3) validation_type='invalid' requires customer_uuid, customer_external_id, or data_source_uuid. Monetary amounts in major units (e.g. 49.00, not 4900). Dates are in ISO 8601. Pagination: pass the cursor to fetch the next page when has_more is true.
list_subscription_events
List customer tags in the account, with customer counts. Returns id, name, customer_count, created_at, updated_at ordered by name. Note: customer_count may lag tagging changes by up to ~10 minutes. Pagination: pass the cursor to fetch the next page when has_more is true.
list_tags
List follow-up tasks assigned to customers or contacts, filtered by status, assignee, due date, and overdue state. Each task has uuid, description, due_at, completed_at, customer_uuid, customer_name, contact_uuid, contact_name, assignee_name, assignee_email. A task belongs to either a customer or a contact; the unused reference is null. Tasks are sorted by due_at ascending, then uuid ascending. Pagination: pass the cursor to fetch the next page when has_more is true.
list_tasks
List transactions (payments, refunds) by UUIDs, customer, or invoice. Default row carries uuid, external_id, invoice_external_id, type (payment/refund/open), date, result (successful/failed), amount, transaction_fees, transaction_fees_currency, plus parent-context fields invoice_uuid, invoice_currency (currency of the parent invoice's amount), customer_uuid, data_source_uuid. Conditional scope rules: (1) transaction_external_ids / invoice_external_ids each require data_source_uuid; (2) type / result / transacted_on_or_after / transacted_on_or_before each require at least one of transaction_uuids, transaction_external_ids, customer_uuid, invoice_uuids, invoice_external_ids; (3) validation_type='invalid' requires at least one of transaction_uuids, transaction_external_ids, customer_uuid, invoice_uuids, invoice_external_ids, data_source_uuid. Opt-in response extensions via extra_field_groups (edit_history_summary, disabled_info, errors). All monetary fields in the response are in major units (e.g. 10.99, not 1099). Pagination: pass the cursor to fetch the next page when has_more is true.
list_transactions
MRR and ARR trends, growth rates, and GROSS per-period movement totals (new business, expansion, contraction, churn, reactivation — each movement counted by type). This is the default source for "MRR movements" over a period (metric "mrr_data_table", matching the "MRR Movements" chart). Only use the net_MRR_summary tool, matching the "Net MRR Movements" chart, when the user explicitly asks for net movements; for per-customer movement rows use the net_MRR tool. Returns monetary values in major units (decimal format).
MRR_and_ARR
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are ChartMogul alternatives on ChatGPT?
As of 2026-09-28, ChartMogul competes with ADECI, Alteryx Insights, Answer Charts, Azadea One, Bark AI, BlazeSQL, Bloom Profit Analytics, Book Report, Cleverbridge, Coupler.io, DataAssist-IO, DATAHILL, Deepnote, Evidence Studio, Ezoic Analytics, Flourish, Fr8Labs Analytics, Fullmetrix, Hex, Hologrow, Keypup, Krewss BI, Menu Integrado, Metorik, Omni, Orion, OWOX Data Marts, Peaka, Perlucem.ai, Prism by Crossdeck, PublisherChamp, Sales Compass by Luzmo, Steep, Sweet Analytics, Tableau (MCP only; EOL soon), Tenzo, ThoughtSpot Spotter, ThoughtSpot SpotterCode, TitanSigma, VODER, Winnow, WisdomAI, WitCloud, XAPP Analyst in ChatGPT Self-Serve BI & Conversational Analytics, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.