Most finance connectors read; this one creates customers, issues sales, records payables and settles instalments against a real bank account. The documentation classifies every tool as read, write or admin for exactly this reason — `contaazul_sale_cancel`, `contaazul_contract_cancel` and `contaazul_person_delete` are the three that cannot be walked back without manual rework. Review the proposed action before confirming, treat the bearer token as full access to the connected company, and remember that with more than one company connected every call needs the `account` argument or it will land on the wrong books.
A hosted MCP server covering the Conta Azul v2 API — the Brazilian ERP — with 35 tools across companies, people, products and services, sales, contracts, financial accounts and issued NF-e. It is not read-only: tools are labelled `read`, `write` or `admin`, and the `admin` ones cancel sales and contracts and delete people.
- The connected companies and the active one's registration data — CNPJ, legal name, tax regime — with an optional `account` argument on every tool when more than one company is connected — `contaazul_list_accounts`, `contaazul_get_company`
- People — customers, suppliers, sales reps, carriers — listed with filters, read by id, created, updated and deleted — `contaazul_list_people`, `contaazul_get_person`, `contaazul_person_write_create`, `contaazul_person_write_update`, `contaazul_person_delete`
- Products and services listed, read, created and updated — `contaazul_list_products`, `contaazul_get_product`, `contaazul_product_write_create`, `contaazul_product_write_update`, `contaazul_list_services`, `contaazul_service_write`
- Sales listed by date range, customer and status, opened in detail, created, updated and cancelled — `contaazul_list_sales`, `contaazul_get_sale`, `contaazul_sale_write_create`, `contaazul_sale_write_update`, `contaazul_sale_cancel`
- Contracts listed by customer and status, read, created and cancelled — `contaazul_list_contracts`, `contaazul_get_contract`, `contaazul_contract_write`, `contaazul_contract_cancel`
- Receivables and payables listed by due-date range and status, and created — `contaazul_list_receivables`, `contaazul_receivable_create`, `contaazul_list_payables`, `contaazul_payable_create`
- Instalments listed and read, settled against a financial account with amount and payment date, and unsettled again — `contaazul_list_installments`, `contaazul_get_installment`, `contaazul_settle_installment`, `contaazul_unsettle_installment`
- The reference data those calls need: bank, cash and card accounts, income and expense categories, and cost centres — `contaazul_list_financial_accounts`, `contaazul_list_categories`, `contaazul_list_cost_centers`
- Issued NF-e listed by issue date and status, and read individually — `contaazul_list_invoices_nfe`, `contaazul_get_invoice_nfe`
A Conta Azul account, authorized over Conta Azul's own OAuth 2.0 — you never type a token. There is nothing to install: point any HTTP-capable MCP client at `https://api.mcp.ai/contaazul` and the config carries only that URL, with no headers. Modern clients run the OAuth flow in the browser; clients without OAuth get an `authenticate` tool instead, where you paste a JWT generated at `https://app.mcp.ai/agent-auth` — that JWT travels through your LLM provider's logs, so prefer the browser flow where the client supports it. It is a paid service: the free tier is 10 requests in a 24-hour window with no card, and the paid tiers differ by how many Conta Azul companies you may connect — one, up to 3, or 5 with extra companies at R$ 9 each — with unlimited requests on all of them. Sessions and company authorization are revoked from `app.mcp.ai`.
One command — npx -y github:douglac/contaazul-mcp
