Connectors · Accounting & finance
ChartMogul MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to ChartMogul and the rest of your systems. It gives your agent 106 ChartMogul actions (41 reads, 47 writes and 18 that wait for a confirmation) and holds the ChartMogul credential itself, so the agent never does. It paces ChartMogul's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "chartmogul.contacts.list", intent: "check which ChartMogul account is connected"}# List Contacts · read · 1 upstream call- 106actionsin one signed file
- 41readlook, never change
- 47writecreate and update
- 18wait for a yesdestructive, confirmed first
Set up
Connect ChartMogul in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect ChartMogul.
Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
api_keyChartMogul API key (Profile > API keys)
account { op: "connections.requirements", service: "chartmogul" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "chartmogul.contacts.list" }# list contacts · read · 1 upstream callcheck { action: "chartmogul.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
ChartMogul at a glance
- Sign-in
- Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
api_key- Limits we pace to
- 40 calls a second, per connection
- API covered
- ChartMogul REST API v1
api.chartmogul.com - Built from
- ChartMogul's documentation, read 23 October 2026dev.chartmogul.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 41 of 41 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 4, so ask can line ChartMogul up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in ChartMogul.
106 actions in 27 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 41readlook, never change
- 47writecreate and update
- 18destructivewait for a confirmation
Invoices
92 read · 6 write · 1 destructive
List Invoices · Retrieve an Invoice · Update an Invoice · Delete an Invoice
Metrics
99 read · 0 write · 0 destructive
All key metrics · Average Revenue Per Account (ARPA) · ARR · Average Sale Price (ASP)
Customers
83 read · 3 write · 2 destructive
List Customers · Create a Customer · Retrieve a Customer · Update a Customer
Line items
71 read · 5 write · 1 destructive
Create a Line Item · Update a Line Item · Retrieve a Line Item · Delete a Line Item
Transactions
71 read · 5 write · 1 destructive
Create a Transaction · Retrieve a Transaction · Update a Transaction · Delete a Transaction
Contacts
62 read · 2 write · 2 destructive
List Contacts · Create a Contact · Retrieve a Contact · Update a Contact
Customer notes
52 read · 2 write · 1 destructive
List Notes and Call Logs · Create a Note or Call Log · Update a Note or Call Log · Delete a Note or Call Log
Opportunities
52 read · 2 write · 1 destructive
Create an Opportunity · List Opportunities · Retrieve an Opportunity · Update an Opportunity
19 more areas · 50 actions
- Plan groups 5
- Plans 5
- Subscription events 5
- Tasks 5
- Customer custom attributes 4
- Data sources 4
- Subscription custom attributes 4
- Customer tags 3
- Activities exports 2
- Customer invoices 2
- Json imports 2
- Subscriptions 2
- Account 1
- Activities 1
- Customer activities 1
- Customer attributes 1
- Customer contacts 1
- Customer subscriptions 1
- Plan group plans 1
Top actions
The ChartMogul API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 41 of ChartMogul's 41 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
chartmogul.contacts.listList Contacts | Returns a list of all contact objects in your ChartMogul account. | read | crm.contact.list177 connectors |
chartmogul.customers.listList Customers | Returns a list of all customer objects in your ChartMogul account. | read | crm.company.list162 connectors |
chartmogul.contacts.createCreate a Contact | Creates a contact object in ChartMogul under a specified customer within the selected data_source. | write | crm.contact.create161 connectors |
chartmogul.customers.createCreate a Customer | Creates a customer object in ChartMogul under the specified data_source. | write | crm.company.create142 connectors |
chartmogul.contacts.deleteDelete a Contact | Deletes the specified contact object and all associated data. | destructive | crm.contact.delete147 connectors |
chartmogul.customer_notes.listList Notes and Call Logs | Returns a list of all note objects for your whole account or a specific customer. | read | crm.company_note.list14 connectors |
chartmogul.tasks.listList Tasks | Lists task objects in your ChartMogul account. | read | work.task.list122 connectors |
chartmogul.customer_notes.createCreate a Note or Call Log | Creates a note object with a note or call type under a specified customer. | write | crm.company_note.create18 connectors |
chartmogul.invoices.listList Invoices | Returns a list of invoice objects created using the API in your ChartMogul account. | read | finance.invoice.list101 connectors |
chartmogul.tasks.createCreate a Task | Creates a task object for a specified team member. | write | work.task.create127 connectors |
chartmogul.invoices.getRetrieve an Invoice | Retrieves an invoice object from your ChartMogul account. | read | finance.invoice.get102 connectors |
chartmogul.opportunities.createCreate an Opportunity | Creates an opportunity object for a specified customer in ChartMogul. | write | crm.deal.create43 connectors |
Try it
Prompts to paste into Claude.
Each one names the ChartMogul actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which ChartMogul tasks are overdue, and who owns each one?
calls
chartmogul.tasks.list - Writewrite
Create a Contact in ChartMogul. Show me exactly what you will send before you save it.
calls
chartmogul.contacts.create - Across systemsread
Which ChartMogul companies have invoices in ConnectWise PSA, and how many each?
calls
chartmogul.customers.listconnectwise_manage.invoices.list
Across your systems
ChartMogul, joined to the rest of your business.
One ask fetches from ChartMogul and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which ChartMogul companies have invoices in ConnectWise PSA, and how many each?
chartmogul.customers.list+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAWhich ChartMogul companies have tickets in HubSpot CRM, and how many each?
chartmogul.customers.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227crm.contact 192work.task 105crm.company_note 3ask { intent: "which ChartMogul companies have invoices in ConnectWise PSA, and how many each", steps: [ { action: "chartmogul.customers.list", as: "co", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "co", right: "inv", on: "crm.company", group_by: "co.name", select: ["co.name", "count(inv.id) as invoices"] } } ]}Governance for ChartMogul
Destructive actions wait for a yes.
18 ChartMogul actions are destructive. These are all of them:
- Delete a Contact
chartmogul.contacts.delete - Delete a Customer
chartmogul.customers.delete - Merge Contacts
chartmogul.contacts.merge - Merge Customers
chartmogul.customers.merge - Delete a Note or Call Log
chartmogul.customer_notes.delete - Delete an Invoice
chartmogul.invoices.delete - Delete a Task
chartmogul.tasks.delete - Delete an Opportunity
chartmogul.opportunities.delete - Delete a Transaction
chartmogul.transactions.delete - Delete a Line Item
chartmogul.line_items.delete - Delete a Plan
chartmogul.plans.delete - Delete a Subscription Event
chartmogul.subscription_events.delete - Delete a Plan Group
chartmogul.plan_groups.delete - Delete a Source
chartmogul.data_sources.delete - Remove Tags from a Customer
chartmogul.customer_tags.delete - Delete All Customer’s Invoices
chartmogul.customer_invoices.delete_all - Remove Custom Attributes from a Customer
chartmogul.customer_custom_attributes.delete - Remove Custom Attributes from a Subscription
chartmogul.subscription_custom_attributes.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a Contact?
intent: the user asked me to delete a Contact
account { op: "keys.create", name: "chartmogul-agent", allowed_actions: ["chartmogul.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "chartmogul.contacts.delete", approver: "[email protected]" }, { match: "chartmogul.customers.delete", approver: "[email protected]" }, { match: "chartmogul.contacts.merge", approver: "[email protected]" } ]}Cost
What ChartMogul costs on actionlake.
Every ChartMogul action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call ChartMogul refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 106 ChartMogul actions
- 106actions pageeach page of a long list is one call
- 41reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every ChartMogul action.
106 actions by area: the id your agent calls, what it does, and its effect.
Invoices9
chartmogul.invoices.deleteDelete an Invoicedestructivechartmogul.invoices.disableDisable an Invoicewritechartmogul.invoices.disable_by_external_idDisable an Invoice (by external ID)writechartmogul.invoices.getRetrieve an Invoicereadchartmogul.invoices.importImport Invoiceswritechartmogul.invoices.import_by_external_idImport Invoices by External IDwritechartmogul.invoices.listList Invoicesreadchartmogul.invoices.updateUpdate an Invoicewritechartmogul.invoices.update_statusUpdate an Invoice Statuswrite
Metrics9
chartmogul.metrics.allAll key metricsreadchartmogul.metrics.arpaAverage Revenue Per Account (ARPA)readchartmogul.metrics.arrARRreadchartmogul.metrics.aspAverage Sale Price (ASP)readchartmogul.metrics.customer_churn_rateCustomer Churn Ratereadchartmogul.metrics.customer_countCustomer Countreadchartmogul.metrics.ltvLTVreadchartmogul.metrics.mrrMRRreadchartmogul.metrics.mrr_churn_rateMRR Churn Rateread
Customers8
chartmogul.customers.createCreate a Customerwritechartmogul.customers.deleteDelete a Customerdestructivechartmogul.customers.getRetrieve a Customerreadchartmogul.customers.listList Customersreadchartmogul.customers.mergeMerge Customersdestructivechartmogul.customers.search_by_emailList Customers by Emailreadchartmogul.customers.unmergeUnmerge Customerswritechartmogul.customers.updateUpdate a Customerwrite
Line items7
chartmogul.line_items.createCreate a Line Itemwritechartmogul.line_items.create_by_external_idCreate a Line Item by External IDwritechartmogul.line_items.deleteDelete a Line Itemdestructivechartmogul.line_items.disableDisable a Line Itemwritechartmogul.line_items.disable_by_external_idDisable a Line Item (by external ID)writechartmogul.line_items.getRetrieve a Line Itemreadchartmogul.line_items.updateUpdate a Line Itemwrite
Transactions7
chartmogul.transactions.createCreate a Transactionwritechartmogul.transactions.create_by_external_idCreate a Transaction by External IDwritechartmogul.transactions.deleteDelete a Transactiondestructivechartmogul.transactions.disableDisable a Transactionwritechartmogul.transactions.disable_by_external_idDisable a Transaction (by external ID)writechartmogul.transactions.getRetrieve a Transactionreadchartmogul.transactions.updateUpdate a Transactionwrite
Contacts6
chartmogul.contacts.createCreate a Contactwritechartmogul.contacts.deleteDelete a Contactdestructivechartmogul.contacts.getRetrieve a Contactreadchartmogul.contacts.listList Contactsreadchartmogul.contacts.mergeMerge Contactsdestructivechartmogul.contacts.updateUpdate a Contactwrite
Customer notes5
chartmogul.customer_notes.createCreate a Note or Call Logwritechartmogul.customer_notes.deleteDelete a Note or Call Logdestructivechartmogul.customer_notes.getRetrieve a Note or Call Logreadchartmogul.customer_notes.listList Notes and Call Logsreadchartmogul.customer_notes.updateUpdate a Note or Call Logwrite
Opportunities5
chartmogul.opportunities.createCreate an Opportunitywritechartmogul.opportunities.deleteDelete an Opportunitydestructivechartmogul.opportunities.getRetrieve an Opportunityreadchartmogul.opportunities.listList Opportunitiesreadchartmogul.opportunities.updateUpdate an Opportunitywrite
Plan groups5
chartmogul.plan_groups.createCreate a Plan Groupwritechartmogul.plan_groups.deleteDelete a Plan Groupdestructivechartmogul.plan_groups.getRetrieve a Plan Groupreadchartmogul.plan_groups.listList Plan Groupsreadchartmogul.plan_groups.updateUpdate a Plan Groupwrite
Plans5
chartmogul.plans.createCreate a Planwritechartmogul.plans.deleteDelete a Plandestructivechartmogul.plans.getRetrieve a Planreadchartmogul.plans.listList Plansreadchartmogul.plans.updateUpdate a Planwrite
Subscription events5
chartmogul.subscription_events.createCreate a Subscription Eventwritechartmogul.subscription_events.deleteDelete a Subscription Eventdestructivechartmogul.subscription_events.disableDisable a Subscription Eventwritechartmogul.subscription_events.listList Subscription Eventsreadchartmogul.subscription_events.updateUpdate a Subscription Eventwrite
Tasks5
chartmogul.tasks.createCreate a Taskwritechartmogul.tasks.deleteDelete a Taskdestructivechartmogul.tasks.getRetrieve a Taskreadchartmogul.tasks.listList Tasksreadchartmogul.tasks.updateUpdate a Taskwrite
Customer custom attributes4
chartmogul.customer_custom_attributes.createAdd Custom Attributes to a Customerwritechartmogul.customer_custom_attributes.create_by_emailAdd Custom Attributes to Customers by Emailwritechartmogul.customer_custom_attributes.deleteRemove Custom Attributes from a Customerdestructivechartmogul.customer_custom_attributes.updateUpdate Customer's Custom Attributeswrite
Data sources4
chartmogul.data_sources.createCreate a Sourcewritechartmogul.data_sources.deleteDelete a Sourcedestructivechartmogul.data_sources.getRetrieve a Sourcereadchartmogul.data_sources.listList Sourcesread
Subscription custom attributes4
chartmogul.subscription_custom_attributes.createAdd Custom Attributes to a Subscriptionwritechartmogul.subscription_custom_attributes.deleteRemove Custom Attributes from a Subscriptiondestructivechartmogul.subscription_custom_attributes.getRetrieve Custom Attributes of a Subscriptionreadchartmogul.subscription_custom_attributes.updateUpdate Custom Attributes of a Subscriptionwrite
Customer tags3
chartmogul.customer_tags.createAdd Tags to a Customerwritechartmogul.customer_tags.create_by_emailAdd Tags to Customers by Emailwritechartmogul.customer_tags.deleteRemove Tags from a Customerdestructive
Activities exports2
chartmogul.activities_exports.createCreate an Activities Exportwritechartmogul.activities_exports.getRetrieve an Activities Exportread
Customer invoices2
chartmogul.customer_invoices.delete_allDelete All Customer’s Invoicesdestructivechartmogul.customer_invoices.listList Customer’s Invoicesread
Json imports2
chartmogul.json_imports.createImport Data in Bulkwritechartmogul.json_imports.getTrack Import Statusread
Subscriptions2
chartmogul.subscriptions.connectConnect Subscriptionswritechartmogul.subscriptions.disconnectDisconnect Subscriptionswrite
Account1
chartmogul.account.getRetrieve Account Detailsread
Activities1
chartmogul.activities.listList Activitiesread
Customer activities1
chartmogul.customer_activities.listList Customer Activitiesread
Customer attributes1
chartmogul.customer_attributes.getRetrieve Customer’s Tags and Attributesread
Customer contacts1
chartmogul.customer_contacts.createAdd a Contact to Customerwrite
Customer subscriptions1
chartmogul.customer_subscriptions.listList Customer Subscriptionsread
Plan group plans1
chartmogul.plan_group_plans.listList Plans in a Plan Groupread
Questions
The ChartMogul MCP server, answered.
Is there a ChartMogul MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 106 ChartMogul actions across invoices, metrics, customers and line items, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by ChartMogul.
What do I need to connect ChartMogul?
ChartMogul API key (Profile > API keys). The free call account { op: "connections.requirements", service: "chartmogul" } lists exactly what to paste.
Can an AI agent delete or change things in ChartMogul?
Only if its key allows it, and only with an explicit confirmation. 18 ChartMogul actions are destructive, including delete a Contact, delete a Customer and merge Contacts. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my ChartMogul API limit?
actionlake paces every call to the limits in the ChartMogul service file: 40 calls a second per connection. Repeated reads are answered from cache (41 ChartMogul actions can be), which never reaches ChartMogul.
What does a ChartMogul action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (106 ChartMogul actions page). Cache hits, searches, dry runs and calls ChartMogul refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which ChartMogul API does it cover?
The ChartMogul REST API v1 at api.chartmogul.com. It is built from ChartMogul's documentation as read on 23 October 2026. 106 actions in 27 areas, each one in the signed service file (version 1.0.0).
Can I combine ChartMogul with my other systems?
Yes. ask joins ChartMogul to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. ChartMogul maps crm.company, which 227 other connectors also map.
Does actionlake keep my ChartMogul data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your ChartMogul credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent ChartMogul today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.