Connectors · Accounting & finance
Altoviz MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Altoviz and the rest of your systems. It gives your agent 115 Altoviz actions (69 reads, 32 writes and 14 that wait for a confirmation) and holds the Altoviz credential itself, so the agent never does. It paces Altoviz'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: "altoviz.sales_invoices.list", intent: "check which Altoviz account is connected"}# Altoviz: List invoices · read · 1 upstream call- 115actionsin one signed file
- 69readlook, never change
- 32writecreate and update
- 14wait for a yesdestructive, confirmed first
Set up
Connect Altoviz 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 Altoviz.
API key. 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_keyAltoviz API key (Settings > API access)api_baseWhere your Altoviz lives: your api base
account { op: "connections.requirements", service: "altoviz" } # 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: "altoviz.sales_invoices.list" }# altoviz: list invoices · read · 1 upstream callcheck { action: "altoviz.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Altoviz at a glance
- Sign-in
- API key. 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- Setup fields
api_base- Limits we pace to
- 100 calls a minute, per connection
- API covered
- Altoviz API v1
api.altoviz.com - Built from
- Altoviz's documentation, read 21 September 2026developer.altoviz.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 69 of 69 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 9 in the store
- Shared entities
- 11, so ask can line Altoviz up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Altoviz.
115 actions in 1 area. Every one carries its effect, so a key can allow the reads and hold the rest.
- 69readlook, never change
- 32writecreate and update
- 14destructivewait for a confirmation
Invoicing
11569 read · 32 write · 14 destructive
Altoviz: List invoices · Altoviz: List Contacts · Altoviz: List customers · Altoviz: List suppliers
Top actions
The Altoviz API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 78 of Altoviz's 82 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
altoviz.sales_invoices.listAltoviz: List invoices | List invoices | read | finance.invoice.list101 connectors |
altoviz.contacts.listAltoviz: List Contacts | List Contacts | read | crm.contact.list177 connectors |
altoviz.customers.listAltoviz: List customers | List customers | read | crm.company.list162 connectors |
altoviz.suppliers.listAltoviz: List suppliers | List suppliers | read | crm.company.list162 connectors |
altoviz.sales_quotes.listAltoviz: List quotes | List quotes | read | finance.quote.list52 connectors |
altoviz.bank_accounts.listAltoviz: List bank accounts | List bank accounts | read | finance.bank_account.list35 connectors |
altoviz.sales_credits.listAltoviz: List credits | List credits | read | finance.credit_note.list33 connectors |
altoviz.products.listAltoviz: List products | List products | read | commerce.product.list112 connectors |
altoviz.contacts.createAltoviz: Create a new Contact | Create a new Contact | write | crm.contact.create161 connectors |
altoviz.sales_invoices.createAltoviz: Create a new draft invoice | Create a new draft invoice | write | finance.invoice.create74 connectors |
altoviz.customers.createAltoviz: Create a new customer | Create a new customer | write | crm.company.create142 connectors |
altoviz.contacts.deleteAltoviz: Delete a Contact | Delete a Contact | destructive | crm.contact.delete147 connectors |
Try it
Prompts to paste into Claude.
Each one names the Altoviz actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Altoviz invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
altoviz.sales_invoices.list - Planwrite
Credit an invoice and refund the customer in Altoviz. Ask me before anything is sent or changed.
calls
altoviz.sales_invoices.getaltoviz.customers.getaltoviz.sales_credits.createaltoviz.sales_credits.check_einvoicingaltoviz.sales_credits.mark_as_refunded+2 more - Planread
Build the month-end cash and turnover picture in Altoviz.
calls
altoviz.statistics.cashflowbyperiodicityaltoviz.statistics.turnoverevolutionaltoviz.statistics.turnovercomparisonaltoviz.statistics.globalturnoveraltoviz.statistics.unpaidinvoices+2 more - Writewrite
Altoviz: Create a new Contact in Altoviz. Show me exactly what you will send before you save it.
calls
altoviz.contacts.create - Across systemsread
For each customer, how many invoices are in Altoviz and how many tickets in ConnectWise PSA?
calls
altoviz.sales_invoices.listconnectwise_manage.tickets.list
Across your systems
Altoviz, joined to the rest of your business.
One ask fetches from Altoviz and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many invoices are in Altoviz and how many tickets in ConnectWise PSA?
altoviz.sales_invoices.list+connectwise_manage.tickets.list, oncrm.company· ConnectWise PSAFor each customer, how many invoices are in Altoviz and how many tickets in HubSpot CRM?
altoviz.sales_invoices.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227crm.contact 192commerce.product 109finance.invoice 91hr.employee 63finance.quote 45asset.supplier 38finance.credit_note 28ask { intent: "for each customer, how many invoices are in Altoviz and how many tickets in ConnectWise PSA", steps: [ { action: "altoviz.sales_invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { join: { left: "inv", right: "tix", on: "crm.company", group_by: "inv.company_name", select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"] } } ]}The plan store
Ready-made plans for Altoviz.
9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Build the month-end cash and turnover picture
Use it when Someone asks for the month-end or period cash and revenue summary out of Altoviz.
Chase the worst overdue customers
Use it when You want to see who owes the most and then re-send their outstanding invoices after sign-off.
A person decides
Re-send number of items unpaid Altoviz invoices to recipients as a collections chase.
Re-send quotes that have gone quiet
Use it when Quotes from a period have had no answer and you want to nudge the customers.
A person decides
Re-send number of items quotes dated from to to to recipients.
Finalize a draft invoice and email it
Use it when A draft invoice has been checked and now needs to be issued and sent to the customer.
A person decides
Finalize invoice number for customerName at totalIncludingTax and email it to recipients.
Review a bank account's unreconciled movements
Use it when A bank account has noise in it and the unmatched movements need reviewing and excluding.
A person decides
Exclude number of items unreconciled movements on name between from and to from reconciliation.
Match a receipt to an invoice and mark it paid
Use it when Money has landed from a customer and the matching invoice needs settling in Altoviz.
A person decides
Mark invoice number for customerName as paid for amount received on date.
Deactivate products in a family that are no longer sold
Use it when A product family holds lines you no longer sell and they should stop appearing on documents.
A person decides
Deactivate number of items products in family label. They stay in Altoviz but stop being sellable.
Set up a new customer with its family and contact
Use it when A new customer needs creating in Altoviz along with its family and first contact.
Credit an invoice and refund the customer
Use it when A customer was overcharged or returned goods and needs a credit note plus a refund.
A person decides
Finalize credit note number against invoice number and refund amount to companyName.
account { op: "plans.install", slug: "altoviz-month-end-cashflow-report" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Altoviz
Destructive actions wait for a yes.
14 Altoviz actions are destructive. These are all of them:
- Altoviz: Delete a Contact
altoviz.contacts.delete - Altoviz: Delete a customer
altoviz.customers.delete - Altoviz: Delete a supplier
altoviz.suppliers.delete - Altoviz: Delete a draft invoice
altoviz.sales_invoices.delete - Altoviz: Delete a quote
altoviz.sales_quotes.delete - Altoviz: Delete a draft credit
altoviz.sales_credits.delete - Altoviz: Delete a bank account
altoviz.bank_accounts.delete - Altoviz: Delete a product
altoviz.products.delete - Altoviz: Delete a receipt
altoviz.receipts.delete - Altoviz: Delete a colleague
altoviz.colleagues.delete - Altoviz: Unregister a webhook
altoviz.webhooks.delete - Altoviz: Delete a product family
altoviz.product_families.delete - Altoviz: Delete a product image
altoviz.product_images.delete - Altoviz: Delete a customer family
altoviz.customer_families.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.
Altoviz: Delete a Contact?
intent: the user asked me to altoviz: Delete a Contact
account { op: "keys.create", name: "altoviz-agent", allowed_actions: ["altoviz.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "altoviz.contacts.delete", approver: "[email protected]" }, { match: "altoviz.customers.delete", approver: "[email protected]" }, { match: "altoviz.suppliers.delete", approver: "[email protected]" } ]}Cost
What Altoviz costs on actionlake.
Every Altoviz action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Altoviz 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 115 Altoviz actions
- 12actions pageeach page of a long list is one call
- 69reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Altoviz action.
115 actions by area: the id your agent calls, what it does, and its effect.
Invoicing115
altoviz.bank_accounts.createAltoviz: Create a bank accountwritealtoviz.bank_accounts.deleteAltoviz: Delete a bank accountdestructivealtoviz.bank_accounts.getAltoviz: Get a bank account by IDreadaltoviz.bank_accounts.listAltoviz: List bank accountsreadaltoviz.bank_accounts.set_as_mainAltoviz: Make a bank account the main onewritealtoviz.bank_accounts.updateAltoviz: Update a bank accountwritealtoviz.bank_accounts_providers.listAltoviz: List of supported bank account providersreadaltoviz.bank_accounts_transactions.listAltoviz: List a bank account's transactionsreadaltoviz.bank_transactions.excludeAltoviz: Set a transaction asidewritealtoviz.bank_transactions.getAltoviz: Get a bank transaction by IDreadaltoviz.bank_transactions.includeAltoviz: Put a set-aside transaction backwritealtoviz.classifications.listAltoviz: List all classificationsreadaltoviz.colleagues.createAltoviz: Create a new colleaguewritealtoviz.colleagues.deleteAltoviz: Delete a colleaguedestructivealtoviz.colleagues.getAltoviz: Get a colleague by IDreadaltoviz.colleagues.get_by_internal_idAltoviz: Find a single colleague by its internal IDreadaltoviz.colleagues.listAltoviz: List colleaguesreadaltoviz.colleagues.searchAltoviz: Find a colleaguereadaltoviz.colleagues.updateAltoviz: Update a colleaguewritealtoviz.contacts.createAltoviz: Create a new Contactwritealtoviz.contacts.deleteAltoviz: Delete a Contactdestructivealtoviz.contacts.getAltoviz: Get a Contact by IDreadaltoviz.contacts.listAltoviz: List Contactsreadaltoviz.contacts.searchAltoviz: Find a Contactreadaltoviz.contacts.updateAltoviz: Update a Contactwritealtoviz.customer_families.createAltoviz: Create a new customer familywritealtoviz.customer_families.deleteAltoviz: Delete a customer familydestructivealtoviz.customer_families.getAltoviz: Get a customer family by IDreadaltoviz.customer_families.listAltoviz: List customer familiesreadaltoviz.customer_families.searchAltoviz: Find a customer familyreadaltoviz.customers.createAltoviz: Create a new customerwritealtoviz.customers.deleteAltoviz: Delete a customerdestructivealtoviz.customers.getAltoviz: Get a customer by IDreadaltoviz.customers.get_by_internal_idAltoviz: Find a single customer by its internal IDreadaltoviz.customers.listAltoviz: List customersreadaltoviz.customers.searchAltoviz: Find a customerreadaltoviz.customers.updateAltoviz: Update a customerwritealtoviz.customers_contacts.listAltoviz: Get customer contactsreadaltoviz.hello.getAltoviz: Say hello to test api keyreadaltoviz.homecare_services_activities.listAltoviz: List the SAP activitiesreadaltoviz.homecare_services_tsa_groups.listAltoviz: List the TSA groups (regroupements)readaltoviz.product_families.createAltoviz: Create a new product familywritealtoviz.product_families.deleteAltoviz: Delete a product familydestructivealtoviz.product_families.getAltoviz: Get a product family by IDreadaltoviz.product_families.listAltoviz: List product familiesreadaltoviz.product_images.deleteAltoviz: Delete a product imagedestructivealtoviz.product_images.getAltoviz: Get a product imagereadaltoviz.products.createAltoviz: Create a new productwritealtoviz.products.deleteAltoviz: Delete a productdestructivealtoviz.products.getAltoviz: Get a product by IDreadaltoviz.products.get_by_internal_idAltoviz: Find a single product by its internal IDreadaltoviz.products.listAltoviz: List productsreadaltoviz.products.searchAltoviz: Find a productreadaltoviz.products.updateAltoviz: Update a productwritealtoviz.receipts.createAltoviz: Create a new receiptwritealtoviz.receipts.deleteAltoviz: Delete a receiptdestructivealtoviz.receipts.getAltoviz: Get a receipt by IDreadaltoviz.receipts.get_by_internal_idAltoviz: Find a single receipt by its internal IDreadaltoviz.receipts.listAltoviz: List receiptsreadaltoviz.receipts.searchAltoviz: Find a receipt by internal IDreadaltoviz.receipts.updateAltoviz: Update a receiptwritealtoviz.sales_credits.check_einvoicingAltoviz: Check a draft credit against the e-invoicing conformance rulesreadaltoviz.sales_credits.createAltoviz: Create a new draft creditwritealtoviz.sales_credits.deleteAltoviz: Delete a draft creditdestructivealtoviz.sales_credits.finalizeAltoviz: Finalize a draft creditwritealtoviz.sales_credits.getAltoviz: Get an credit by IDreadaltoviz.sales_credits.get_by_internal_idAltoviz: Find a single credit by its internal IDreadaltoviz.sales_credits.listAltoviz: List creditsreadaltoviz.sales_credits.mark_as_refundedAltoviz: Mark credit as refundedwritealtoviz.sales_credits.searchAltoviz: Find creditsreadaltoviz.sales_credits.sendAltoviz: Send an creditwritealtoviz.sales_credits.updateAltoviz: Update a draft creditwritealtoviz.sales_invoices.check_einvoicingAltoviz: Check a draft invoice against the e-invoicing conformance rulesreadaltoviz.sales_invoices.createAltoviz: Create a new draft invoicewritealtoviz.sales_invoices.deleteAltoviz: Delete a draft invoicedestructivealtoviz.sales_invoices.finalizeAltoviz: Finalize a draft invoicewritealtoviz.sales_invoices.getAltoviz: Get an invoice by IDreadaltoviz.sales_invoices.get_by_internal_idAltoviz: Find a single invoice by its internal IDreadaltoviz.sales_invoices.listAltoviz: List invoicesreadaltoviz.sales_invoices.mark_as_paidAltoviz: Mark invoice as paidwritealtoviz.sales_invoices.searchAltoviz: Find invoicesreadaltoviz.sales_invoices.sendAltoviz: Send an invoicewritealtoviz.sales_invoices.updateAltoviz: Update a draft invoicewritealtoviz.sales_quotes.createAltoviz: Create a new quotewritealtoviz.sales_quotes.deleteAltoviz: Delete a quotedestructivealtoviz.sales_quotes.getAltoviz: Get an quote by IDreadaltoviz.sales_quotes.get_by_internal_idAltoviz: Find a single quote by its internal IDreadaltoviz.sales_quotes.listAltoviz: List quotesreadaltoviz.sales_quotes.searchAltoviz: Find quotesreadaltoviz.sales_quotes.sendAltoviz: Send an quotewritealtoviz.settings.getAltoviz: Get settingsreadaltoviz.statistics.cashflowbyperiodicityAltoviz: Settled, outstanding and projected cash flow bucketed over a periodreadaltoviz.statistics.einvoicingreadyAltoviz: E-invoicing readiness: suppliers and customers configured, and those with issuesreadaltoviz.statistics.globalturnoverAltoviz: All-time total turnoverreadaltoviz.statistics.paymentdelayAltoviz: How long payments actually take over a period: average and median days from the document date and from the due date, plureadaltoviz.statistics.topoverduecustomersAltoviz: Customers with overdue échéances, ranked by outstanding amountreadaltoviz.statistics.turnovercomparisonAltoviz: Turnover over a period, compared with the same period one year earlier and with the period of equal length immediately breadaltoviz.statistics.turnoverevolutionAltoviz: Turnover over a period, bucketed, optionally compared against the same period in previous yearsreadaltoviz.statistics.unpaidexpensesAltoviz: Aged balance of money owed to suppliers, bucketed by how far each échéance is from todayreadaltoviz.statistics.unpaidinvoicesAltoviz: Aged balance of money owed by customers, bucketed by how far each échéance is from todayreadaltoviz.suppliers.createAltoviz: Create a new supplierwritealtoviz.suppliers.deleteAltoviz: Delete a supplierdestructivealtoviz.suppliers.getAltoviz: Get a supplier by IDreadaltoviz.suppliers.get_by_internal_idAltoviz: Find a single supplier by its internal IDreadaltoviz.suppliers.listAltoviz: List suppliersreadaltoviz.suppliers.searchAltoviz: Find a customer by emailreadaltoviz.suppliers.updateAltoviz: Update a supplierwritealtoviz.suppliers_contacts.listAltoviz: Get supplier contactsreadaltoviz.units.listAltoviz: List all unitsreadaltoviz.users.meAltoviz: Userreadaltoviz.users.whoamiAltoviz: Userreadaltoviz.vats.listAltoviz: List all vatsreadaltoviz.webhooks.createAltoviz: Register a new webhookwritealtoviz.webhooks.deleteAltoviz: Unregister a webhookdestructivealtoviz.webhooks.listAltoviz: List all webhooksread
Questions
The Altoviz MCP server, answered.
Is there an Altoviz MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 115 Altoviz actions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Altoviz.
What do I need to connect Altoviz?
Altoviz API key (Settings > API access). Plus your api base. The free call account { op: "connections.requirements", service: "altoviz" } lists exactly what to paste.
Can an AI agent delete or change things in Altoviz?
Only if its key allows it, and only with an explicit confirmation. 14 Altoviz actions are destructive, including altoviz: Delete a Contact, altoviz: Delete a customer and altoviz: Delete a supplier. 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 Altoviz API limit?
actionlake paces every call to the limits in the Altoviz service file: 100 calls a minute per connection. Repeated reads are answered from cache (69 Altoviz actions can be), which never reaches Altoviz.
What does an Altoviz action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (12 Altoviz actions page). Cache hits, searches, dry runs and calls Altoviz 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 Altoviz API does it cover?
The Altoviz API v1 at api.altoviz.com by default, or the base URL set when you connect. It is built from Altoviz's documentation as read on 21 September 2026. 115 actions in 1 area, each one in the signed service file (version 1.0.0).
Can I combine Altoviz with my other systems?
Yes. ask joins Altoviz to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Altoviz maps crm.company, which 227 other connectors also map.
Does actionlake keep my Altoviz data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, 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 Altoviz 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 Altoviz today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.