---
title: "Codat MCP server for AI agents - actionlake"
description: "Give Claude 309 Codat actions through one MCP server: accounting, platform, lending. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/codat
updated: 2026-10-23
---

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.

[Connect Codat free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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/mcp`

the first call

```
do {
  action: "codat.platform.list_companies",
  intent: "check which Codat account is connected"
}
# List companies · read · 1 upstream call
```

- 309 actions in one signed file
- 206 read look, never change
- 89 write create and update
- 14 wait for a yes destructive, confirmed first

Set up

## Connect Codat in three steps.

1. 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`
2. 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_key` Codat API key (Codat Portal > Developers > API keys)
   ```
   account { op: "connections.requirements", service: "codat" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "codat.platform.list_companies" }
   # list companies · read · 1 upstream call
   check { 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 2026[OpenAPI spec (GitHub)](https://raw.githubusercontent.com/codatio/oas/main/json/Codat-Accounting.json) [OpenAPI spec (GitHub)](https://raw.githubusercontent.com/codatio/oas/main/json/Codat-Assess.json) [OpenAPI spec (GitHub)](https://raw.githubusercontent.com/codatio/oas/main/json/Codat-Bank-Feeds-v2.json)

**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.

- **206** read look, never change
- **89** write create and update
- **14** destructive wait for a confirmation

1. ### Accounting
   120
   88 read · 27 write · 5 destructive
   List invoices · List payments · List purchase orders · List accounts
2. ### Platform
   55
   28 read · 21 write · 6 destructive
   List companies · Create company · Get company · Update company
3. ### Lending
   29
   21 read · 8 write · 0 destructive
   Generate Excel report · Generate loan summaries report · Generate loan transactions report · Generate report
4. ### Commerce
   21
   21 read · 0 write · 0 destructive
   List customers · List disputes · List locations · List orders
5. ### Sync commerce
   21
   13 read · 8 write · 0 destructive
   Create sync for commerce company · Create connection · List companies · List data connections
6. ### Bank feeds
   16
   6 read · 8 write · 2 destructive
   Create source accounts · Create single source account · Generate source account credentials · Generate one-time password
7. ### Expenses
   13
   8 read · 5 write · 0 destructive
   Create expense-transactions · Create Partner Expense connection · Get Sync Transaction · Initiate sync
8. ### Sync payables
   13
   6 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_invoices` List invoices | List invoices. | read | `finance.invoice.list` 101 connectors |
| `codat.accounting.list_payments` List payments | List payments. | read | `finance.payment.list` 75 connectors |
| `codat.accounting.list_purchase_orders` List purchase orders | List purchase orders. | read | `finance.purchase_order.list` 45 connectors |
| `codat.platform.list_companies` List companies | List companies. | read | `crm.company.list` 162 connectors |
| `codat.accounting.list_accounts` List accounts | List accounts. | read | `finance.ledger_account.list` 36 connectors |
| `codat.accounting.list_bank_accounts` List bank accounts | List bank accounts. | read | `finance.bank_account.list` 35 connectors |
| `codat.accounting.list_credit_notes` List credit notes | List credit notes. | read | `finance.credit_note.list` 33 connectors |
| `codat.accounting.list_bills` List bills | List bills. | read | `finance.bill.list` 31 connectors |
| `codat.accounting.create_invoice` Create invoice | Create invoice. | write | `finance.invoice.create` 74 connectors |
| `codat.accounting.create_payment` Create payment | Create payment. | write | `finance.payment.create` 67 connectors |
| `codat.accounting.create_purchase_order` Create purchase order | Create purchase order. | write | `finance.purchase_order.create` 43 connectors |
| `codat.accounting.delete_invoice` Delete invoice | Delete invoice. | destructive | `finance.invoice.delete` 56 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.

1. Read read
   Which Codat invoices are more than 30 days overdue? Group them by customer with the total owed.
   calls `codat.accounting.list_invoices`
2. Write write
   Create invoice in Codat. Show me exactly what you will send before you save it.
   calls `codat.accounting.create_invoice`
3. Across systems read
   Which Codat companies have invoices in ConnectWise PSA, and how many each?
   calls `codat.platform.list_companies` `connectwise_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`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- Which Codat companies have tickets in HubSpot CRM, and how many each?
  `codat.platform.list_companies` + `hubspot_crm.tickets.list`, on `crm.company` · [HubSpot CRM](https://actionlake.com/connectors/hubspot-crm)

Also mapped by other connectors `crm.company` **227** `finance.invoice` **91** `finance.payment` **53** `finance.purchase_order` **35** `finance.ledger_account` **32** `finance.credit_note` **28** `finance.bill` **27** `finance.bank_account` **25**

ask

```
ask {
  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"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

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.

do codat.accounting.delete_invoice confirm_policy: **human**

Delete invoice?

**intent:** the user asked me to delete invoice

run suspended · waiting for a named person · key _codat-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
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: "lead@example.com" },
    { match: "codat.platform.delete_company", approver: "lead@example.com" },
    { match: "codat.accounting.delete_bill", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Codat only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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.

- 1 upstream call per action all 309 Codat actions
- 309 actions page each page of a long list is one call
- 203 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Codat action.

309 actions by area: the id your agent calls, what it does, and its effect.

**Accounting 120**

- `codat.accounting.create_account` Create account write
- `codat.accounting.create_bank_account` Create bank account write
- `codat.accounting.create_bank_transactions` Create bank account transactions write
- `codat.accounting.create_bill` Create bill write
- `codat.accounting.create_bill_credit_note` Create bill credit note write
- `codat.accounting.create_bill_payment` Create bill payments write
- `codat.accounting.create_credit_note` Create credit note write
- `codat.accounting.create_customer` Create customer write
- `codat.accounting.create_direct_cost` Create direct cost write
- `codat.accounting.create_direct_income` Create direct income write
- `codat.accounting.create_invoice` Create invoice write
- `codat.accounting.create_item` Create item write
- `codat.accounting.create_journal` Create journal write
- `codat.accounting.create_journal_entry` Create journal entry write
- `codat.accounting.create_payment` Create payment write
- `codat.accounting.create_purchase_order` Create purchase order write
- `codat.accounting.create_supplier` Create supplier write
- `codat.accounting.create_transfer` Create transfer write
- `codat.accounting.delete_bill` Delete bill destructive
- `codat.accounting.delete_bill_payment` Delete bill payment destructive
- `codat.accounting.delete_direct_cost` Delete direct cost destructive
- `codat.accounting.delete_invoice` Delete invoice destructive
- `codat.accounting.delete_journal_entry` Delete journal entry destructive
- `codat.accounting.get_account` Get account read
- `codat.accounting.get_account_transaction` Get account transaction read
- `codat.accounting.get_aged_creditors_report` Aged creditors report read
- `codat.accounting.get_aged_debtors_report` Aged debtors report read
- `codat.accounting.get_balance_sheet` Get balance sheet read
- `codat.accounting.get_bank_account` Get bank account read
- `codat.accounting.get_bill` Get bill read
- `codat.accounting.get_bill_attachment` Get bill attachment read
- `codat.accounting.get_bill_credit_note` Get bill credit note read
- `codat.accounting.get_bill_payments` Get bill payment read
- `codat.accounting.get_cash_flow_statement` Get cash flow statement read
- `codat.accounting.get_company_info` Get company info read
- `codat.accounting.get_create_bank_transactions_model` Get create bank account transactions model read
- `codat.accounting.get_create_bill_payments_model` Get create bill payment model read
- `codat.accounting.get_create_chart_of_accounts_model` Get create account model read
- `codat.accounting.get_create_direct_costs_model` Get create direct cost model read
- `codat.accounting.get_create_direct_incomes_model` Get create direct income model read
- `codat.accounting.get_create_items_model` Get create item model read
- `codat.accounting.get_create_journal_entries_model` Get create journal entry model read
- `codat.accounting.get_create_journals_model` Get create journal model read
- `codat.accounting.get_create_payments_model` Get create payment model read
- `codat.accounting.get_create_transfers_model` Get create transfer model read
- `codat.accounting.get_create_update_bank_accounts_model` Get create/update bank account model read
- `codat.accounting.get_create_update_bill_credit_notes_model` Get create/update bill credit note model read
- `codat.accounting.get_create_update_bills_model` Get create/update bill model read
- `codat.accounting.get_create_update_credit_notes_model` Get create/update credit note model read
- `codat.accounting.get_create_update_customers_model` Get create/update customer model read
- `codat.accounting.get_create_update_invoices_model` Get create/update invoice model read
- `codat.accounting.get_create_update_purchase_orders_model` Get create/update purchase order model read
- `codat.accounting.get_create_update_suppliers_model` Get create/update supplier model read
- `codat.accounting.get_credit_note` Get credit note read
- `codat.accounting.get_customer` Get customer read
- `codat.accounting.get_customer_attachment` Get customer attachment read
- `codat.accounting.get_direct_cost` Get direct cost read
- `codat.accounting.get_direct_cost_attachment` Get direct cost attachment read
- `codat.accounting.get_direct_income` Get direct income read
- `codat.accounting.get_direct_income_attachment` Get direct income attachment read
- `codat.accounting.get_invoice` Get invoice read
- `codat.accounting.get_invoice_attachment` Get invoice attachment read
- `codat.accounting.get_item` Get item read
- `codat.accounting.get_item_receipt` Get item receipt read
- `codat.accounting.get_journal` Get journal read
- `codat.accounting.get_journal_entry` Get journal entry read
- `codat.accounting.get_payment` Get payment read
- `codat.accounting.get_payment_method` Get payment method read
- `codat.accounting.get_profit_and_loss` Get profit and loss read
- `codat.accounting.get_purchase_order` Get purchase order read
- `codat.accounting.get_purchase_order_attachment` Get purchase order attachment read
- `codat.accounting.get_sales_order` Get sales order read
- `codat.accounting.get_supplier` Get supplier read
- `codat.accounting.get_supplier_attachment` Get supplier attachment read
- `codat.accounting.get_tax_rate` Get tax rate read
- `codat.accounting.get_tracking_category` Get tracking categories read
- `codat.accounting.get_transfer` Get transfer read
- `codat.accounting.is_aged_creditors_report_available` Aged creditors report available read
- `codat.accounting.is_aged_debtor_report_available` Aged debtors report available read
- `codat.accounting.list_account_transactions` List account transactions read
- `codat.accounting.list_accounts` List accounts read
- `codat.accounting.list_bank_account_transactions` List bank account transactions read
- `codat.accounting.list_bank_accounts` List bank accounts read
- `codat.accounting.list_bill_attachments` List bill attachments read
- `codat.accounting.list_bill_credit_notes` List bill credit notes read
- `codat.accounting.list_bill_payments` List bill payments read
- `codat.accounting.list_bills` List bills read
- `codat.accounting.list_credit_notes` List credit notes read
- `codat.accounting.list_customer_attachments` List customer attachments read
- `codat.accounting.list_customers` List customers read
- `codat.accounting.list_direct_cost_attachments` List direct cost attachments read
- `codat.accounting.list_direct_costs` List direct costs read
- `codat.accounting.list_direct_income_attachments` List direct income attachments read
- `codat.accounting.list_direct_incomes` List direct incomes read
- `codat.accounting.list_invoice_attachments` List invoice attachments read
- `codat.accounting.list_invoices` List invoices read
- `codat.accounting.list_item_receipts` List item receipts read
- `codat.accounting.list_items` List items read
- `codat.accounting.list_journal_entries` List journal entries read
- `codat.accounting.list_journals` List journals read
- `codat.accounting.list_payment_methods` List payment methods read
- `codat.accounting.list_payments` List payments read
- `codat.accounting.list_purchase_order_attachments` List purchase order attachments read
- `codat.accounting.list_purchase_orders` List purchase orders read
- `codat.accounting.list_sales_orders` List sales orders read
- `codat.accounting.list_supplier_attachments` List supplier attachments read
- `codat.accounting.list_suppliers` List suppliers read
- `codat.accounting.list_tax_rates` List all tax rates read
- `codat.accounting.list_tracking_categories` List tracking categories read
- `codat.accounting.list_transfers` List transfers read
- `codat.accounting.payments` List payments read
- `codat.accounting.refresh_company_info` Refresh company info write
- `codat.accounting.update_bank_account` Update bank account write
- `codat.accounting.update_bill` Update bill write
- `codat.accounting.update_bill_credit_note` Update bill credit note write
- `codat.accounting.update_credit_note` Update credit note write
- `codat.accounting.update_customer` Update customer write
- `codat.accounting.update_invoice` Update invoice write
- `codat.accounting.update_purchase_order` Update purchase order write
- `codat.accounting.update_supplier` Update supplier write

**Platform 55**

- `codat.platform.add_product` Add product write
- `codat.platform.configure_custom_data_type` Configure custom data type write
- `codat.platform.configure_supplemental_data` Configure write
- `codat.platform.create_api_key` Create API key write
- `codat.platform.create_company` Create company write
- `codat.platform.create_connection` Create connection write
- `codat.platform.create_rule` Create webhook write
- `codat.platform.create_webhook_consumer` Create webhook consumer write
- `codat.platform.delete_api_key` Delete API key destructive
- `codat.platform.delete_company` Delete a company destructive
- `codat.platform.delete_connection` Delete connection destructive
- `codat.platform.delete_webhook_consumer` Delete webhook consumer destructive
- `codat.platform.get_company` Get company read
- `codat.platform.get_company_access_token` Get company access token read
- `codat.platform.get_company_data_status` Get data status read
- `codat.platform.get_company_push_history` List push operations read
- `codat.platform.get_company_sync_settings` Get company sync settings read
- `codat.platform.get_connection` Get connection read
- `codat.platform.get_connection_management_access_token` Get access token (old) read
- `codat.platform.get_connection_management_cors_settings` Get CORS settings (old) read
- `codat.platform.get_cors_settings` Get CORS settings read
- `codat.platform.get_create_update_model_options_by_data_type` Get push options read
- `codat.platform.get_custom_data_type_configuration` Get custom data configuration read
- `codat.platform.get_integration` Get integration read
- `codat.platform.get_integrations_branding` Get branding read
- `codat.platform.get_profile` Get profile read
- `codat.platform.get_profile_sync_settings` Get sync settings read
- `codat.platform.get_pull_operation` Get pull operation read
- `codat.platform.get_push_operation` Get push operation read
- `codat.platform.get_read_validation_results` Get validation results read
- `codat.platform.get_supplemental_data_configuration` Get configuration read
- `codat.platform.get_webhook` Get webhook read
- `codat.platform.list_api_keys` List API keys read
- `codat.platform.list_companies` List companies read
- `codat.platform.list_connections` List connections read
- `codat.platform.list_custom_data_type_records` List custom data type records read
- `codat.platform.list_integrations` List integrations read
- `codat.platform.list_pull_operations` List pull operations read
- `codat.platform.list_rules` List webhooks read
- `codat.platform.list_webhook_consumers` List webhook consumers read
- `codat.platform.refresh_company_data` Refresh all data write
- `codat.platform.refresh_custom_data_type` Refresh custom data type write
- `codat.platform.refresh_data_type` Refresh data type write
- `codat.platform.refresh_product_data` Refresh product data write
- `codat.platform.remove_product` Remove product destructive
- `codat.platform.replace_company` Replace company write
- `codat.platform.rotate_zapier_key` Rotate Zapier key destructive
- `codat.platform.set_company_sync_settings` Set company sync settings write
- `codat.platform.set_connection_management_cors_settings` Set CORS settings (old) write
- `codat.platform.set_cors_settings` Set CORS settings write
- `codat.platform.unlink_connection` Unlink connection write
- `codat.platform.update_company` Update company write
- `codat.platform.update_connection_authorization` Update authorization write
- `codat.platform.update_profile` Update profile write
- `codat.platform.update_profile_sync_settings` Update all sync settings write

**Lending 29**

- `codat.lending.end_bank_statement_upload_session` End upload session write
- `codat.lending.generate_excel_report` Generate Excel report write
- `codat.lending.generate_loan_summary` Generate loan summaries report write
- `codat.lending.generate_loan_transactions` Generate loan transactions report write
- `codat.lending.generate_report` Generate report write
- `codat.lending.get_bank_statement_upload_configuration` Get upload configuration read
- `codat.lending.get_categorized_balance_sheet_statement` Get categorized balance sheet statement read
- `codat.lending.get_categorized_bank_statement_transactions` Get categorized bank statement transactions read
- `codat.lending.get_categorized_profit_and_loss_statement` Get categorized profit and loss statement read
- `codat.lending.get_commerce_customer_retention_metrics` Get customer retention metrics read
- `codat.lending.get_commerce_lifetime_value_metrics` Get lifetime value metrics read
- `codat.lending.get_commerce_orders_report` Get orders report read
- `codat.lending.get_commerce_refunds_report` Get refunds report read
- `codat.lending.get_commerce_revenue_metrics` Get commerce revenue metrics read
- `codat.lending.get_data_integrity_status` Get data integrity status read
- `codat.lending.get_data_integrity_summaries` Get data integrity summaries read
- `codat.lending.get_excel_report_generation_status` Get Excel report status read
- `codat.lending.get_financial_summary` Get financial summary insights read
- `codat.lending.get_loan_summary` Get loan summaries read
- `codat.lending.get_report_status` Get report status read
- `codat.lending.list_categorized_bank_statement_accounts` List categorized bank statement accounts read
- `codat.lending.list_data_integrity_details` List data integrity details read
- `codat.lending.list_files` List all files uploaded by a company read
- `codat.lending.list_loan_transactions` List loan transactions read
- `codat.lending.list_reconciled_invoices` List reconciled invoices read
- `codat.lending.list_reports` List reports read
- `codat.lending.set_bank_statement_upload_configuration` Set upload configuration write
- `codat.lending.start_bank_statement_upload_session` Start upload session write
- `codat.lending.upload_bank_statement_data` Upload data write

**Commerce 21**

- `codat.commerce.get_company_info` Get company info read
- `codat.commerce.get_customer` Get customer read
- `codat.commerce.get_dispute` Get dispute read
- `codat.commerce.get_location` Get location read
- `codat.commerce.get_order` Get order read
- `codat.commerce.get_payment` Get payment read
- `codat.commerce.get_payment_method` Get payment method read
- `codat.commerce.get_product` Get product read
- `codat.commerce.get_product_category` Get product category read
- `codat.commerce.get_tax_component` Get tax component read
- `codat.commerce.get_transaction` Get transaction read
- `codat.commerce.list_customers` List customers read
- `codat.commerce.list_disputes` List disputes read
- `codat.commerce.list_locations` List locations read
- `codat.commerce.list_orders` List orders read
- `codat.commerce.list_payment_methods` List payment methods read
- `codat.commerce.list_payments` List payments read
- `codat.commerce.list_product_categories` List product categories read
- `codat.commerce.list_products` List products read
- `codat.commerce.list_tax_components` List tax components read
- `codat.commerce.list_transactions` List transactions read

**Sync commerce 21**

- `codat.sync_commerce.create_company` Create sync for commerce company write
- `codat.sync_commerce.create_connection` Create connection write
- `codat.sync_commerce.get_config_text_sync_flow` Get preferences for text fields read
- `codat.sync_commerce.get_configuration` Get company configuration read
- `codat.sync_commerce.get_integration_branding` Get branding for an integration read
- `codat.sync_commerce.get_last_successful_sync` Last successful sync read
- `codat.sync_commerce.get_latest_sync` Latest sync status read
- `codat.sync_commerce.get_sync_by_id` Get sync status read
- `codat.sync_commerce.get_sync_flow_url` Start new sync flow read
- `codat.sync_commerce.get_sync_status` Get sync status read
- `codat.sync_commerce.get_visible_accounts` List visible accounts read
- `codat.sync_commerce.list_companies` List companies read
- `codat.sync_commerce.list_connections` List data connections read
- `codat.sync_commerce.list_integrations` List integrations read
- `codat.sync_commerce.list_syncs` List sync statuses read
- `codat.sync_commerce.request_sync` Initiate new sync write
- `codat.sync_commerce.request_sync_for_date_range` Initiate sync for specific range write
- `codat.sync_commerce.set_configuration` Set configuration write
- `codat.sync_commerce.update_config_text_sync_flow` Update preferences for text fields write
- `codat.sync_commerce.update_connection` Update data connection write
- `codat.sync_commerce.update_visible_accounts_sync_flow` Update visible accounts write

**Bank feeds 16**

- `codat.bank_feeds.create_bank_account_mapping` Create bank feed account mapping write
- `codat.bank_feeds.create_batch_source_account` Create source accounts write
- `codat.bank_feeds.create_source_account` Create single source account write
- `codat.bank_feeds.delete_bank_feed_credentials` Delete all source account credentials destructive
- `codat.bank_feeds.delete_source_account` Delete source account destructive
- `codat.bank_feeds.generate_credentials` Generate source account credentials write
- `codat.bank_feeds.generate_otp` Generate one-time password write
- `codat.bank_feeds.get_bank_account_mapping` List bank feed accounts read
- `codat.bank_feeds.get_company_information` Get company information read
- `codat.bank_feeds.get_configuration` Get configuration read
- `codat.bank_feeds.get_latest_managed_bank_feed_sync` Get latest sync read
- `codat.bank_feeds.get_managed_bank_feed_sync` Get sync read
- `codat.bank_feeds.list_source_accounts` List source accounts read
- `codat.bank_feeds.run_managed_bank_feed_ad_hoc_sync` Run ad-hoc sync write
- `codat.bank_feeds.set_configuration` Set configuration write
- `codat.bank_feeds.update_source_account` Update source account write

**Expenses 13**

- `codat.expenses.create_expense_dataset` Create expense-transactions write
- `codat.expenses.create_partner_expense_connection` Create Partner Expense connection write
- `codat.expenses.get_company_configuration` Get company configuration read
- `codat.expenses.get_last_successful_sync` Last successful sync read
- `codat.expenses.get_latest_sync` Latest sync status read
- `codat.expenses.get_mapping_options` Mapping options read
- `codat.expenses.get_sync_by_id` Get Sync status read
- `codat.expenses.get_sync_transaction` Get Sync Transaction read
- `codat.expenses.intiate_sync` Initiate sync write
- `codat.expenses.list_sync_transactions` Get Sync transactions read
- `codat.expenses.list_syncs` List sync statuses read
- `codat.expenses.save_company_configuration` Set company configuration write
- `codat.expenses.update_expense_dataset` Update expense-transactions write

**Sync payables 13**

- `codat.sync_payables.create_bank_account` Create bank account write
- `codat.sync_payables.create_bill` Create bill write
- `codat.sync_payables.create_bill_payment` Create bill payment write
- `codat.sync_payables.create_supplier` Create supplier write
- `codat.sync_payables.delete_bill_attachment` Delete bill attachment destructive
- `codat.sync_payables.get_company_information` Get company information read
- `codat.sync_payables.get_mapping_options_bills` Get bill mapping options read
- `codat.sync_payables.get_mapping_options_payments` Get payment mapping options read
- `codat.sync_payables.list_bill_attachments` List bill attachments read
- `codat.sync_payables.list_bills` List bills read
- `codat.sync_payables.list_suppliers` List suppliers read
- `codat.sync_payables.update_bill` Update bill write
- `codat.sync_payables.update_supplier` Update supplier write

**Banking 8**

- `codat.banking.get_account` Get account read
- `codat.banking.get_transaction` Get bank transaction read
- `codat.banking.get_transaction_category` Get transaction category read
- `codat.banking.list_account_balances` List account balances read
- `codat.banking.list_accounts` List accounts read
- `codat.banking.list_bank_transactions` List banking transactions read
- `codat.banking.list_transaction_categories` List transaction categories read
- `codat.banking.list_transactions` List transactions read

**Sync expenses 5**

- `codat.sync_expenses.create_adjustment_transaction` Create adjustment transaction write
- `codat.sync_expenses.create_expense_transaction` Create expense transaction write
- `codat.sync_expenses.create_reimbursable_expense_transaction` Create reimbursable expense transaction write
- `codat.sync_expenses.create_transfer_transaction` Create transfer transaction write
- `codat.sync_expenses.update_reimbursable_expense_transaction` Update reimbursable expense transaction write

**Supplier enablement 3**

- `codat.supplier_enablement.generate_spend_analysis_report` Generate spend analysis report write
- `codat.supplier_enablement.get_report_creation_status` Get report generation status read
- `codat.supplier_enablement.get_spend_analysis_report` Get spend analysis report read

**Intuit idx 2**

- `codat.intuit_idx.list_accounts` List accounts read
- `codat.intuit_idx.list_transactions` List transactions read

**Spend insights 2**

- `codat.spend_insights.get_payment_method_analysis` Get payment method analysis read
- `codat.spend_insights.get_supplier_analysis` Get supplier analysis read

**Assess 1**

- `codat.assess.get_accounting_marketing_metrics` Get marketing metrics report read

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.

## More connectors like Codat

Shares the most action names with

- [SAP Business One 30](https://actionlake.com/connectors/sap-business-one)
- [Exact Online 30](https://actionlake.com/connectors/exact-online)
- [Sage Intacct 29](https://actionlake.com/connectors/sage-intacct)
- [Oracle Fusion Cloud ERP (Financials) 24](https://actionlake.com/connectors/oracle-fusion-cloud-erp-financials)
- [Modern Treasury 21](https://actionlake.com/connectors/modern-treasury)
- [ApprovalMax 18](https://actionlake.com/connectors/approvalmax)

Joins with, on shared entities

- [Zoho Inventory 6](https://actionlake.com/connectors/zoho-inventory)
- [HaloPSA 4](https://actionlake.com/connectors/halopsa)
- [Rev.io 4](https://actionlake.com/connectors/rev-io)
- [Cin7 Core 4](https://actionlake.com/connectors/cin7-core)
- [Syncro 4](https://actionlake.com/connectors/syncro)
- [RepairShopr 4](https://actionlake.com/connectors/repairshopr)

Browse

- [All Accounting & finance connectors](https://actionlake.com/connectors/category/accounting-and-finance)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Codat; the name is the vendor's own. Counts are from the Codat service file, version 1.0.0.

## Give your agent Codat today.

[Connect Codat free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/codat
More: https://actionlake.com/llms.txt
