Connectors · Accounting & finance
Codat MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Codat and the rest of your systems. It gives your agent 309 Codat actions (206 reads, 89 writes and 14 that wait for a confirmation) and holds the Codat credential itself, so the agent never does. It paces Codat'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: "codat.platform.list_companies", intent: "check which Codat account is connected"}# List companies · read · 1 upstream call- 309actionsin one signed file
- 206readlook, never change
- 89writecreate and update
- 14wait for a yesdestructive, confirmed first
Set up
Connect Codat 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 Codat.
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_keyCodat API key (Codat Portal > Developers > API keys)
account { op: "connections.requirements", service: "codat" } # 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: "codat.platform.list_companies" }# list companies · read · 1 upstream callcheck { action: "codat.accounting.create_invoice", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Codat 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
- 1,000 calls an hour, per connection
- API covered
- Codat API v3 (codatio/oas, 21 product specs)
api.codat.io - Built from
- Codat's documentation, read 23 October 2026OpenAPI spec (GitHub)OpenAPI spec (GitHub)OpenAPI spec (GitHub)
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 203 of 206 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 10, so ask can line Codat up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Codat.
309 actions in 14 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 206readlook, never change
- 89writecreate and update
- 14destructivewait for a confirmation
Accounting
12088 read · 27 write · 5 destructive
List invoices · List payments · List purchase orders · List accounts
Platform
5528 read · 21 write · 6 destructive
List companies · Create company · Get company · Update company
Lending
2921 read · 8 write · 0 destructive
Generate Excel report · Generate loan summaries report · Generate loan transactions report · Generate report
Commerce
2121 read · 0 write · 0 destructive
List customers · List disputes · List locations · List orders
Sync commerce
2113 read · 8 write · 0 destructive
Create sync for commerce company · Create connection · List companies · List data connections
Bank feeds
166 read · 8 write · 2 destructive
Create source accounts · Create single source account · Generate source account credentials · Generate one-time password
Expenses
138 read · 5 write · 0 destructive
Create expense-transactions · Create Partner Expense connection · Get Sync Transaction · Initiate sync
Sync payables
136 read · 6 write · 1 destructive
Create bank account · Create bill · Create bill payment · Create supplier
6 more areas · 21 actions
- Banking 8
- Sync expenses 5
- Supplier enablement 3
- Intuit idx 2
- Spend insights 2
- Assess 1
Top actions
The Codat API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 42 of Codat's 42 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
codat.accounting.list_invoicesList invoices | List invoices. | read | finance.invoice.list101 connectors |
codat.accounting.list_paymentsList payments | List payments. | read | finance.payment.list75 connectors |
codat.accounting.list_purchase_ordersList purchase orders | List purchase orders. | read | finance.purchase_order.list45 connectors |
codat.platform.list_companiesList companies | List companies. | read | crm.company.list162 connectors |
codat.accounting.list_accountsList accounts | List accounts. | read | finance.ledger_account.list36 connectors |
codat.accounting.list_bank_accountsList bank accounts | List bank accounts. | read | finance.bank_account.list35 connectors |
codat.accounting.list_credit_notesList credit notes | List credit notes. | read | finance.credit_note.list33 connectors |
codat.accounting.list_billsList bills | List bills. | read | finance.bill.list31 connectors |
codat.accounting.create_invoiceCreate invoice | Create invoice. | write | finance.invoice.create74 connectors |
codat.accounting.create_paymentCreate payment | Create payment. | write | finance.payment.create67 connectors |
codat.accounting.create_purchase_orderCreate purchase order | Create purchase order. | write | finance.purchase_order.create43 connectors |
codat.accounting.delete_invoiceDelete invoice | Delete invoice. | destructive | finance.invoice.delete56 connectors |
Try it
Prompts to paste into Claude.
Each one names the Codat actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Codat invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
codat.accounting.list_invoices - Writewrite
Create invoice in Codat. Show me exactly what you will send before you save it.
calls
codat.accounting.create_invoice - Across systemsread
Which Codat companies have invoices in ConnectWise PSA, and how many each?
calls
codat.platform.list_companiesconnectwise_manage.invoices.list
Across your systems
Codat, joined to the rest of your business.
One ask fetches from Codat and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which Codat companies have invoices in ConnectWise PSA, and how many each?
codat.platform.list_companies+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAWhich Codat companies have tickets in HubSpot CRM, and how many each?
codat.platform.list_companies+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227finance.invoice 91finance.payment 53finance.purchase_order 35finance.ledger_account 32finance.credit_note 28finance.bill 27finance.bank_account 25ask { intent: "which Codat companies have invoices in ConnectWise PSA, and how many each", steps: [ { action: "codat.platform.list_companies", 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 Codat
Destructive actions wait for a yes.
14 Codat actions are destructive. These are all of them:
- Delete invoice
codat.accounting.delete_invoice - Delete a company
codat.platform.delete_company - Delete bill
codat.accounting.delete_bill - Delete journal entry
codat.accounting.delete_journal_entry - Delete API key
codat.platform.delete_api_key - Remove product
codat.platform.remove_product - Delete connection
codat.platform.delete_connection - Rotate Zapier key
codat.platform.rotate_zapier_key - Delete direct cost
codat.accounting.delete_direct_cost - Delete bill payment
codat.accounting.delete_bill_payment - Delete source account
codat.bank_feeds.delete_source_account - Delete webhook consumer
codat.platform.delete_webhook_consumer - Delete bill attachment
codat.sync_payables.delete_bill_attachment - Delete all source account credentials
codat.bank_feeds.delete_bank_feed_credentials
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 invoice?
intent: the user asked me to delete invoice
account { op: "keys.create", name: "codat-agent", allowed_actions: ["codat.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "codat.accounting.delete_invoice", approver: "[email protected]" }, { match: "codat.platform.delete_company", approver: "[email protected]" }, { match: "codat.accounting.delete_bill", approver: "[email protected]" } ]}Cost
What Codat costs on actionlake.
Every Codat action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Codat 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 309 Codat actions
- 309actions pageeach page of a long list is one call
- 203reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Codat action.
309 actions by area: the id your agent calls, what it does, and its effect.
Accounting120
codat.accounting.create_accountCreate accountwritecodat.accounting.create_bank_accountCreate bank accountwritecodat.accounting.create_bank_transactionsCreate bank account transactionswritecodat.accounting.create_billCreate billwritecodat.accounting.create_bill_credit_noteCreate bill credit notewritecodat.accounting.create_bill_paymentCreate bill paymentswritecodat.accounting.create_credit_noteCreate credit notewritecodat.accounting.create_customerCreate customerwritecodat.accounting.create_direct_costCreate direct costwritecodat.accounting.create_direct_incomeCreate direct incomewritecodat.accounting.create_invoiceCreate invoicewritecodat.accounting.create_itemCreate itemwritecodat.accounting.create_journalCreate journalwritecodat.accounting.create_journal_entryCreate journal entrywritecodat.accounting.create_paymentCreate paymentwritecodat.accounting.create_purchase_orderCreate purchase orderwritecodat.accounting.create_supplierCreate supplierwritecodat.accounting.create_transferCreate transferwritecodat.accounting.delete_billDelete billdestructivecodat.accounting.delete_bill_paymentDelete bill paymentdestructivecodat.accounting.delete_direct_costDelete direct costdestructivecodat.accounting.delete_invoiceDelete invoicedestructivecodat.accounting.delete_journal_entryDelete journal entrydestructivecodat.accounting.get_accountGet accountreadcodat.accounting.get_account_transactionGet account transactionreadcodat.accounting.get_aged_creditors_reportAged creditors reportreadcodat.accounting.get_aged_debtors_reportAged debtors reportreadcodat.accounting.get_balance_sheetGet balance sheetreadcodat.accounting.get_bank_accountGet bank accountreadcodat.accounting.get_billGet billreadcodat.accounting.get_bill_attachmentGet bill attachmentreadcodat.accounting.get_bill_credit_noteGet bill credit notereadcodat.accounting.get_bill_paymentsGet bill paymentreadcodat.accounting.get_cash_flow_statementGet cash flow statementreadcodat.accounting.get_company_infoGet company inforeadcodat.accounting.get_create_bank_transactions_modelGet create bank account transactions modelreadcodat.accounting.get_create_bill_payments_modelGet create bill payment modelreadcodat.accounting.get_create_chart_of_accounts_modelGet create account modelreadcodat.accounting.get_create_direct_costs_modelGet create direct cost modelreadcodat.accounting.get_create_direct_incomes_modelGet create direct income modelreadcodat.accounting.get_create_items_modelGet create item modelreadcodat.accounting.get_create_journal_entries_modelGet create journal entry modelreadcodat.accounting.get_create_journals_modelGet create journal modelreadcodat.accounting.get_create_payments_modelGet create payment modelreadcodat.accounting.get_create_transfers_modelGet create transfer modelreadcodat.accounting.get_create_update_bank_accounts_modelGet create/update bank account modelreadcodat.accounting.get_create_update_bill_credit_notes_modelGet create/update bill credit note modelreadcodat.accounting.get_create_update_bills_modelGet create/update bill modelreadcodat.accounting.get_create_update_credit_notes_modelGet create/update credit note modelreadcodat.accounting.get_create_update_customers_modelGet create/update customer modelreadcodat.accounting.get_create_update_invoices_modelGet create/update invoice modelreadcodat.accounting.get_create_update_purchase_orders_modelGet create/update purchase order modelreadcodat.accounting.get_create_update_suppliers_modelGet create/update supplier modelreadcodat.accounting.get_credit_noteGet credit notereadcodat.accounting.get_customerGet customerreadcodat.accounting.get_customer_attachmentGet customer attachmentreadcodat.accounting.get_direct_costGet direct costreadcodat.accounting.get_direct_cost_attachmentGet direct cost attachmentreadcodat.accounting.get_direct_incomeGet direct incomereadcodat.accounting.get_direct_income_attachmentGet direct income attachmentreadcodat.accounting.get_invoiceGet invoicereadcodat.accounting.get_invoice_attachmentGet invoice attachmentreadcodat.accounting.get_itemGet itemreadcodat.accounting.get_item_receiptGet item receiptreadcodat.accounting.get_journalGet journalreadcodat.accounting.get_journal_entryGet journal entryreadcodat.accounting.get_paymentGet paymentreadcodat.accounting.get_payment_methodGet payment methodreadcodat.accounting.get_profit_and_lossGet profit and lossreadcodat.accounting.get_purchase_orderGet purchase orderreadcodat.accounting.get_purchase_order_attachmentGet purchase order attachmentreadcodat.accounting.get_sales_orderGet sales orderreadcodat.accounting.get_supplierGet supplierreadcodat.accounting.get_supplier_attachmentGet supplier attachmentreadcodat.accounting.get_tax_rateGet tax ratereadcodat.accounting.get_tracking_categoryGet tracking categoriesreadcodat.accounting.get_transferGet transferreadcodat.accounting.is_aged_creditors_report_availableAged creditors report availablereadcodat.accounting.is_aged_debtor_report_availableAged debtors report availablereadcodat.accounting.list_account_transactionsList account transactionsreadcodat.accounting.list_accountsList accountsreadcodat.accounting.list_bank_account_transactionsList bank account transactionsreadcodat.accounting.list_bank_accountsList bank accountsreadcodat.accounting.list_bill_attachmentsList bill attachmentsreadcodat.accounting.list_bill_credit_notesList bill credit notesreadcodat.accounting.list_bill_paymentsList bill paymentsreadcodat.accounting.list_billsList billsreadcodat.accounting.list_credit_notesList credit notesreadcodat.accounting.list_customer_attachmentsList customer attachmentsreadcodat.accounting.list_customersList customersreadcodat.accounting.list_direct_cost_attachmentsList direct cost attachmentsreadcodat.accounting.list_direct_costsList direct costsreadcodat.accounting.list_direct_income_attachmentsList direct income attachmentsreadcodat.accounting.list_direct_incomesList direct incomesreadcodat.accounting.list_invoice_attachmentsList invoice attachmentsreadcodat.accounting.list_invoicesList invoicesreadcodat.accounting.list_item_receiptsList item receiptsreadcodat.accounting.list_itemsList itemsreadcodat.accounting.list_journal_entriesList journal entriesreadcodat.accounting.list_journalsList journalsreadcodat.accounting.list_payment_methodsList payment methodsreadcodat.accounting.list_paymentsList paymentsreadcodat.accounting.list_purchase_order_attachmentsList purchase order attachmentsreadcodat.accounting.list_purchase_ordersList purchase ordersreadcodat.accounting.list_sales_ordersList sales ordersreadcodat.accounting.list_supplier_attachmentsList supplier attachmentsreadcodat.accounting.list_suppliersList suppliersreadcodat.accounting.list_tax_ratesList all tax ratesreadcodat.accounting.list_tracking_categoriesList tracking categoriesreadcodat.accounting.list_transfersList transfersreadcodat.accounting.paymentsList paymentsreadcodat.accounting.refresh_company_infoRefresh company infowritecodat.accounting.update_bank_accountUpdate bank accountwritecodat.accounting.update_billUpdate billwritecodat.accounting.update_bill_credit_noteUpdate bill credit notewritecodat.accounting.update_credit_noteUpdate credit notewritecodat.accounting.update_customerUpdate customerwritecodat.accounting.update_invoiceUpdate invoicewritecodat.accounting.update_purchase_orderUpdate purchase orderwritecodat.accounting.update_supplierUpdate supplierwrite
Platform55
codat.platform.add_productAdd productwritecodat.platform.configure_custom_data_typeConfigure custom data typewritecodat.platform.configure_supplemental_dataConfigurewritecodat.platform.create_api_keyCreate API keywritecodat.platform.create_companyCreate companywritecodat.platform.create_connectionCreate connectionwritecodat.platform.create_ruleCreate webhookwritecodat.platform.create_webhook_consumerCreate webhook consumerwritecodat.platform.delete_api_keyDelete API keydestructivecodat.platform.delete_companyDelete a companydestructivecodat.platform.delete_connectionDelete connectiondestructivecodat.platform.delete_webhook_consumerDelete webhook consumerdestructivecodat.platform.get_companyGet companyreadcodat.platform.get_company_access_tokenGet company access tokenreadcodat.platform.get_company_data_statusGet data statusreadcodat.platform.get_company_push_historyList push operationsreadcodat.platform.get_company_sync_settingsGet company sync settingsreadcodat.platform.get_connectionGet connectionreadcodat.platform.get_connection_management_access_tokenGet access token (old)readcodat.platform.get_connection_management_cors_settingsGet CORS settings (old)readcodat.platform.get_cors_settingsGet CORS settingsreadcodat.platform.get_create_update_model_options_by_data_typeGet push optionsreadcodat.platform.get_custom_data_type_configurationGet custom data configurationreadcodat.platform.get_integrationGet integrationreadcodat.platform.get_integrations_brandingGet brandingreadcodat.platform.get_profileGet profilereadcodat.platform.get_profile_sync_settingsGet sync settingsreadcodat.platform.get_pull_operationGet pull operationreadcodat.platform.get_push_operationGet push operationreadcodat.platform.get_read_validation_resultsGet validation resultsreadcodat.platform.get_supplemental_data_configurationGet configurationreadcodat.platform.get_webhookGet webhookreadcodat.platform.list_api_keysList API keysreadcodat.platform.list_companiesList companiesreadcodat.platform.list_connectionsList connectionsreadcodat.platform.list_custom_data_type_recordsList custom data type recordsreadcodat.platform.list_integrationsList integrationsreadcodat.platform.list_pull_operationsList pull operationsreadcodat.platform.list_rulesList webhooksreadcodat.platform.list_webhook_consumersList webhook consumersreadcodat.platform.refresh_company_dataRefresh all datawritecodat.platform.refresh_custom_data_typeRefresh custom data typewritecodat.platform.refresh_data_typeRefresh data typewritecodat.platform.refresh_product_dataRefresh product datawritecodat.platform.remove_productRemove productdestructivecodat.platform.replace_companyReplace companywritecodat.platform.rotate_zapier_keyRotate Zapier keydestructivecodat.platform.set_company_sync_settingsSet company sync settingswritecodat.platform.set_connection_management_cors_settingsSet CORS settings (old)writecodat.platform.set_cors_settingsSet CORS settingswritecodat.platform.unlink_connectionUnlink connectionwritecodat.platform.update_companyUpdate companywritecodat.platform.update_connection_authorizationUpdate authorizationwritecodat.platform.update_profileUpdate profilewritecodat.platform.update_profile_sync_settingsUpdate all sync settingswrite
Lending29
codat.lending.end_bank_statement_upload_sessionEnd upload sessionwritecodat.lending.generate_excel_reportGenerate Excel reportwritecodat.lending.generate_loan_summaryGenerate loan summaries reportwritecodat.lending.generate_loan_transactionsGenerate loan transactions reportwritecodat.lending.generate_reportGenerate reportwritecodat.lending.get_bank_statement_upload_configurationGet upload configurationreadcodat.lending.get_categorized_balance_sheet_statementGet categorized balance sheet statementreadcodat.lending.get_categorized_bank_statement_transactionsGet categorized bank statement transactionsreadcodat.lending.get_categorized_profit_and_loss_statementGet categorized profit and loss statementreadcodat.lending.get_commerce_customer_retention_metricsGet customer retention metricsreadcodat.lending.get_commerce_lifetime_value_metricsGet lifetime value metricsreadcodat.lending.get_commerce_orders_reportGet orders reportreadcodat.lending.get_commerce_refunds_reportGet refunds reportreadcodat.lending.get_commerce_revenue_metricsGet commerce revenue metricsreadcodat.lending.get_data_integrity_statusGet data integrity statusreadcodat.lending.get_data_integrity_summariesGet data integrity summariesreadcodat.lending.get_excel_report_generation_statusGet Excel report statusreadcodat.lending.get_financial_summaryGet financial summary insightsreadcodat.lending.get_loan_summaryGet loan summariesreadcodat.lending.get_report_statusGet report statusreadcodat.lending.list_categorized_bank_statement_accountsList categorized bank statement accountsreadcodat.lending.list_data_integrity_detailsList data integrity detailsreadcodat.lending.list_filesList all files uploaded by a companyreadcodat.lending.list_loan_transactionsList loan transactionsreadcodat.lending.list_reconciled_invoicesList reconciled invoicesreadcodat.lending.list_reportsList reportsreadcodat.lending.set_bank_statement_upload_configurationSet upload configurationwritecodat.lending.start_bank_statement_upload_sessionStart upload sessionwritecodat.lending.upload_bank_statement_dataUpload datawrite
Commerce21
codat.commerce.get_company_infoGet company inforeadcodat.commerce.get_customerGet customerreadcodat.commerce.get_disputeGet disputereadcodat.commerce.get_locationGet locationreadcodat.commerce.get_orderGet orderreadcodat.commerce.get_paymentGet paymentreadcodat.commerce.get_payment_methodGet payment methodreadcodat.commerce.get_productGet productreadcodat.commerce.get_product_categoryGet product categoryreadcodat.commerce.get_tax_componentGet tax componentreadcodat.commerce.get_transactionGet transactionreadcodat.commerce.list_customersList customersreadcodat.commerce.list_disputesList disputesreadcodat.commerce.list_locationsList locationsreadcodat.commerce.list_ordersList ordersreadcodat.commerce.list_payment_methodsList payment methodsreadcodat.commerce.list_paymentsList paymentsreadcodat.commerce.list_product_categoriesList product categoriesreadcodat.commerce.list_productsList productsreadcodat.commerce.list_tax_componentsList tax componentsreadcodat.commerce.list_transactionsList transactionsread
Sync commerce21
codat.sync_commerce.create_companyCreate sync for commerce companywritecodat.sync_commerce.create_connectionCreate connectionwritecodat.sync_commerce.get_config_text_sync_flowGet preferences for text fieldsreadcodat.sync_commerce.get_configurationGet company configurationreadcodat.sync_commerce.get_integration_brandingGet branding for an integrationreadcodat.sync_commerce.get_last_successful_syncLast successful syncreadcodat.sync_commerce.get_latest_syncLatest sync statusreadcodat.sync_commerce.get_sync_by_idGet sync statusreadcodat.sync_commerce.get_sync_flow_urlStart new sync flowreadcodat.sync_commerce.get_sync_statusGet sync statusreadcodat.sync_commerce.get_visible_accountsList visible accountsreadcodat.sync_commerce.list_companiesList companiesreadcodat.sync_commerce.list_connectionsList data connectionsreadcodat.sync_commerce.list_integrationsList integrationsreadcodat.sync_commerce.list_syncsList sync statusesreadcodat.sync_commerce.request_syncInitiate new syncwritecodat.sync_commerce.request_sync_for_date_rangeInitiate sync for specific rangewritecodat.sync_commerce.set_configurationSet configurationwritecodat.sync_commerce.update_config_text_sync_flowUpdate preferences for text fieldswritecodat.sync_commerce.update_connectionUpdate data connectionwritecodat.sync_commerce.update_visible_accounts_sync_flowUpdate visible accountswrite
Bank feeds16
codat.bank_feeds.create_bank_account_mappingCreate bank feed account mappingwritecodat.bank_feeds.create_batch_source_accountCreate source accountswritecodat.bank_feeds.create_source_accountCreate single source accountwritecodat.bank_feeds.delete_bank_feed_credentialsDelete all source account credentialsdestructivecodat.bank_feeds.delete_source_accountDelete source accountdestructivecodat.bank_feeds.generate_credentialsGenerate source account credentialswritecodat.bank_feeds.generate_otpGenerate one-time passwordwritecodat.bank_feeds.get_bank_account_mappingList bank feed accountsreadcodat.bank_feeds.get_company_informationGet company informationreadcodat.bank_feeds.get_configurationGet configurationreadcodat.bank_feeds.get_latest_managed_bank_feed_syncGet latest syncreadcodat.bank_feeds.get_managed_bank_feed_syncGet syncreadcodat.bank_feeds.list_source_accountsList source accountsreadcodat.bank_feeds.run_managed_bank_feed_ad_hoc_syncRun ad-hoc syncwritecodat.bank_feeds.set_configurationSet configurationwritecodat.bank_feeds.update_source_accountUpdate source accountwrite
Expenses13
codat.expenses.create_expense_datasetCreate expense-transactionswritecodat.expenses.create_partner_expense_connectionCreate Partner Expense connectionwritecodat.expenses.get_company_configurationGet company configurationreadcodat.expenses.get_last_successful_syncLast successful syncreadcodat.expenses.get_latest_syncLatest sync statusreadcodat.expenses.get_mapping_optionsMapping optionsreadcodat.expenses.get_sync_by_idGet Sync statusreadcodat.expenses.get_sync_transactionGet Sync Transactionreadcodat.expenses.intiate_syncInitiate syncwritecodat.expenses.list_sync_transactionsGet Sync transactionsreadcodat.expenses.list_syncsList sync statusesreadcodat.expenses.save_company_configurationSet company configurationwritecodat.expenses.update_expense_datasetUpdate expense-transactionswrite
Sync payables13
codat.sync_payables.create_bank_accountCreate bank accountwritecodat.sync_payables.create_billCreate billwritecodat.sync_payables.create_bill_paymentCreate bill paymentwritecodat.sync_payables.create_supplierCreate supplierwritecodat.sync_payables.delete_bill_attachmentDelete bill attachmentdestructivecodat.sync_payables.get_company_informationGet company informationreadcodat.sync_payables.get_mapping_options_billsGet bill mapping optionsreadcodat.sync_payables.get_mapping_options_paymentsGet payment mapping optionsreadcodat.sync_payables.list_bill_attachmentsList bill attachmentsreadcodat.sync_payables.list_billsList billsreadcodat.sync_payables.list_suppliersList suppliersreadcodat.sync_payables.update_billUpdate billwritecodat.sync_payables.update_supplierUpdate supplierwrite
Banking8
codat.banking.get_accountGet accountreadcodat.banking.get_transactionGet bank transactionreadcodat.banking.get_transaction_categoryGet transaction categoryreadcodat.banking.list_account_balancesList account balancesreadcodat.banking.list_accountsList accountsreadcodat.banking.list_bank_transactionsList banking transactionsreadcodat.banking.list_transaction_categoriesList transaction categoriesreadcodat.banking.list_transactionsList transactionsread
Sync expenses5
codat.sync_expenses.create_adjustment_transactionCreate adjustment transactionwritecodat.sync_expenses.create_expense_transactionCreate expense transactionwritecodat.sync_expenses.create_reimbursable_expense_transactionCreate reimbursable expense transactionwritecodat.sync_expenses.create_transfer_transactionCreate transfer transactionwritecodat.sync_expenses.update_reimbursable_expense_transactionUpdate reimbursable expense transactionwrite
Supplier enablement3
codat.supplier_enablement.generate_spend_analysis_reportGenerate spend analysis reportwritecodat.supplier_enablement.get_report_creation_statusGet report generation statusreadcodat.supplier_enablement.get_spend_analysis_reportGet spend analysis reportread
Intuit idx2
codat.intuit_idx.list_accountsList accountsreadcodat.intuit_idx.list_transactionsList transactionsread
Spend insights2
codat.spend_insights.get_payment_method_analysisGet payment method analysisreadcodat.spend_insights.get_supplier_analysisGet supplier analysisread
Assess1
codat.assess.get_accounting_marketing_metricsGet marketing metrics reportread
Questions
The Codat MCP server, answered.
Is there a Codat MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 309 Codat actions across accounting, platform, lending and commerce, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Codat.
What do I need to connect Codat?
Codat API key (Codat Portal > Developers > API keys). The free call account { op: "connections.requirements", service: "codat" } lists exactly what to paste.
Can an AI agent delete or change things in Codat?
Only if its key allows it, and only with an explicit confirmation. 14 Codat actions are destructive, including delete invoice, delete a company and delete bill. 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 Codat API limit?
actionlake paces every call to the limits in the Codat service file: 1,000 calls an hour per connection. Repeated reads are answered from cache (203 Codat actions can be), which never reaches Codat.
What does a Codat action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (309 Codat actions page). Cache hits, searches, dry runs and calls Codat 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 Codat API does it cover?
The Codat API v3 (codatio/oas, 21 product specs) at api.codat.io. It is built from Codat's documentation as read on 23 October 2026. 309 actions in 14 areas, each one in the signed service file (version 1.0.0).
Can I combine Codat with my other systems?
Yes. ask joins Codat to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Codat maps crm.company, which 227 other connectors also map.
Does actionlake keep my Codat 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 Codat 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 Codat today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.