Connectors · Accounting & finance
Soldo MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Soldo and the rest of your systems. It gives your agent 175 Soldo actions (80 reads, 56 writes and 39 that wait for a confirmation) and holds the Soldo credential itself, so the agent never does. It paces Soldo'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: "soldo.groups.group_search", intent: "check which Soldo account is connected"}# Search Groups · read · 1 upstream call- 175actionsin one signed file
- 80readlook, never change
- 56writecreate and update
- 39wait for a yesdestructive, confirmed first
Set up
Connect Soldo 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 Soldo.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idSoldo API client IDclient_secretSoldo API client secret from the same pagehostWhere your Soldo lives: your host
account { op: "connections.requirements", service: "soldo" } # 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: "soldo.groups.group_search" }# search groups · read · 1 upstream callcheck { action: "soldo.groups.group_add", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Soldo at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Setup fields
host- Limits we pace to
- 60 calls a minute, per connection
- API covered
- Soldo Business API v2.0 (OpenAPI 5.61.1)
api.soldo.com - Built from
- Soldo's documentation, read 23 October 2026developer.soldo.comdeveloper.soldo.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 78 of 80 reads, for up to 1 minute; a write clears what it affects
- Shared entities
- 5, so ask can line Soldo up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Soldo.
175 actions in 46 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 80readlook, never change
- 56writecreate and update
- 39destructivewait for a confirmation
Expense review processes
82 read · 5 write · 1 destructive
Search Expense Review Processes · Get Expense Review Process · Add Expense Review Process · Change Expense Review Processes Priority
Expense policies
74 read · 1 write · 2 destructive
Get Expense Policy Assignees · Get Expense Policy Eligible Assignees · Search Expense Policies · Get Expense Policy
Expense reviews
72 read · 5 write · 0 destructive
Search Expense Reviews · Get Expense Review · Export Expense Review · Send Expense Review Reminder
Tags
72 read · 4 write · 1 destructive
Search Tags · Get Tag · Add Tag to List · Add Tag bulk to List
Groups
62 read · 2 write · 2 destructive
Search Groups · Get Group · Add Group · Update Group
Transaction attachments
62 read · 3 write · 1 destructive
Search Transaction Attachments · Get Transaction Attachment · Upload Transaction Attachment · Confirm Transaction Attachment Upload
Workflows
62 read · 3 write · 1 destructive
Search Workflows · Get Workflow · Add Workflow · Update Workflow Status
Autotags
52 read · 2 write · 1 destructive
Search Autotags · Get Autotag · Add Autotag · Update Autotag
38 more areas · 123 actions
- Business trips 5
- Card rules 5
- Documents 5
- Expense reports 5
- Lists 5
- Requests 5
- Transaction metadata 5
- Vat rates 5
- Vehicles 5
- Wallets 5
- Auto transfer presets 4
- Card rules presets 4
- Expense categories 4
- Online ads 4
- Subscriptions 4
- Transaction custom export 4
- Users 4
- Addresses 3
- Cards 3
- Contacts 3
- Expense review configuration 3
- Orders 3
- Out of office 3
- Pre approved spend 3
- Resource sets 3
- Transaction split 3
- Statements 2
- Transaction expense category 2
- Transaction hotel metadata 2
- Transaction tags 2
- User roles 2
- Webhook subscriptions 2
- Accounting classification 1
- Authentication 1
- Company 1
- Permissions 1
- Transaction vat rate 1
- Transactions 1
Top actions
The Soldo API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 23 of Soldo's 23 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
soldo.groups.group_searchSearch Groups | Search Groups. | read | identity.group.list262 connectors |
soldo.contacts.contact_searchSearch Contacts | Search Contacts. | read | crm.contact.list177 connectors |
soldo.expense_reports.expense_report_searchSearch Expense Reports | Search Expense Reports. | read | finance.expense_report.list11 connectors |
soldo.users.user_searchSearch Users | Search Users. | read | hr.employee.list61 connectors |
soldo.groups.group_getGet Group | Get Group. | read | identity.group.get212 connectors |
soldo.groups.group_addAdd Group | Add Group. | write | identity.group.create205 connectors |
soldo.permissions.roles_listGet Roles | Get Roles. | read | identity.role.list184 connectors |
soldo.contacts.contact_getGet Contact | Get Contact. | read | crm.contact.get176 connectors |
soldo.expense_reports.expense_report_getGet Expense Report | Get Expense Report. | read | finance.expense_report.get10 connectors |
soldo.groups.group_updateUpdate Group | Update Group. | write | identity.group.update189 connectors |
soldo.groups.group_deleteDelete Group | Delete Group. | destructive | identity.group.delete181 connectors |
soldo.expense_reports.expense_report_updateUpdate Expense Report | Update Expense Report. | write | finance.expense_report.update9 connectors |
Try it
Prompts to paste into Claude.
Each one names the Soldo actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Find the Soldo contacts with no email address, so we can clean them up.
calls
soldo.contacts.contact_search - Writewrite
Add Group in Soldo. Show me exactly what you will send before you save it.
calls
soldo.groups.group_add
Governance for Soldo
Destructive actions wait for a yes.
39 Soldo actions are destructive. The first 10:
- Delete Group
soldo.groups.group_delete - Delete Contact
soldo.contacts.contact_delete - Delete Expense Report
soldo.expense_reports.expense_report_delete - Delete User
soldo.users.user_delete - Delete VAT Rate
soldo.vat_rates.vat_rate_delete - Delete Tag from List
soldo.tags.tag_delete - Delete Card
soldo.cards.card_delete - Delete List
soldo.lists.list_delete - Delete Order
soldo.orders.order_delete - Delete Wallet
soldo.wallets.wallet_delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete Group?
intent: the user asked me to delete Group
account { op: "keys.create", name: "soldo-agent", allowed_actions: ["soldo.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "soldo.groups.group_delete", approver: "[email protected]" }, { match: "soldo.contacts.contact_delete", approver: "[email protected]" }, { match: "soldo.expense_reports.expense_report_delete", approver: "[email protected]" } ]}Cost
What Soldo costs on actionlake.
Every Soldo action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Soldo 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 175 Soldo actions
- 175actions pageeach page of a long list is one call
- 78reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Soldo action.
175 actions by area: the id your agent calls, what it does, and its effect.
Expense review processes8
soldo.expense_review_processes.expense_review_process_addAdd Expense Review Processwritesoldo.expense_review_processes.expense_review_process_deleteDelete Expense Review Processdestructivesoldo.expense_review_processes.expense_review_process_getGet Expense Review Processreadsoldo.expense_review_processes.expense_review_process_priority_changeChange Expense Review Processes Prioritywritesoldo.expense_review_processes.expense_review_process_recalculateRecalculate Expense Review Processwritesoldo.expense_review_processes.expense_review_process_status_updateUpdate Expense Review Process Statuswritesoldo.expense_review_processes.expense_review_process_updateUpdate Expense Review Processwritesoldo.expense_review_processes.expense_review_processes_searchSearch Expense Review Processesread
Expense policies7
soldo.expense_policies.expense_policy_assignees_addAssign Expense Policy to Userswritesoldo.expense_policies.expense_policy_assignees_getGet Expense Policy Assigneesreadsoldo.expense_policies.expense_policy_assignees_removeUnassign Expense Policy from Usersdestructivesoldo.expense_policies.expense_policy_assignees_remove_anyUnassign any Expense Policy from Usersdestructivesoldo.expense_policies.expense_policy_eligible_assignees_getGet Expense Policy Eligible Assigneesreadsoldo.expense_policies.expense_policy_getGet Expense Policyreadsoldo.expense_policies.expense_policy_searchSearch Expense Policiesread
Expense reviews7
soldo.expense_reviews.expense_review_exportExport Expense Reviewwritesoldo.expense_reviews.expense_review_getGet Expense Reviewreadsoldo.expense_reviews.expense_review_reminderSend Expense Review Reminderwritesoldo.expense_reviews.expense_review_request_infoRequest Expense Review Infowritesoldo.expense_reviews.expense_review_searchSearch Expense Reviewsreadsoldo.expense_reviews.expense_review_update_statusUpdate Expense Review Statuswritesoldo.expense_reviews.expense_review_update_typeUpdate Expense Review Typewrite
Tags7
soldo.tags.tag_addAdd Tag to Listwritesoldo.tags.tag_deleteDelete Tag from Listdestructivesoldo.tags.tag_getGet Tagreadsoldo.tags.tag_searchSearch Tagsreadsoldo.tags.tag_updateUpdate Tagwritesoldo.tags.tags_add_bulkAdd Tag bulk to Listwritesoldo.tags.tags_update_bulkUpdate Tag bulkwrite
Groups6
soldo.groups.group_addAdd Groupwritesoldo.groups.group_deleteDelete Groupdestructivesoldo.groups.group_getGet Groupreadsoldo.groups.group_resource_removeRemove resource from Groupdestructivesoldo.groups.group_searchSearch Groupsreadsoldo.groups.group_updateUpdate Groupwrite
Transaction attachments6
soldo.transaction_attachments.transaction_attachment_deleteDelete Transaction Attachmentdestructivesoldo.transaction_attachments.transaction_attachment_getGet Transaction Attachmentreadsoldo.transaction_attachments.transaction_attachment_metadata_updateUpdate Transaction Attachment Metadatawritesoldo.transaction_attachments.transaction_attachment_searchSearch Transaction Attachmentsreadsoldo.transaction_attachments.transaction_attachment_uploadUpload Transaction Attachmentwritesoldo.transaction_attachments.transaction_attachment_upload_confirmConfirm Transaction Attachment Uploadwrite
Workflows6
soldo.workflows.workflow_addAdd Workflowwritesoldo.workflows.workflow_deleteDelete Workflowdestructivesoldo.workflows.workflow_getGet Workflowreadsoldo.workflows.workflow_searchSearch Workflowsreadsoldo.workflows.workflow_status_updateUpdate Workflow Statuswritesoldo.workflows.workflow_updateUpdate Workflowwrite
Autotags5
soldo.autotags.autotag_addAdd Autotagwritesoldo.autotags.autotag_deleteDelete Autotagdestructivesoldo.autotags.autotag_getGet Autotagreadsoldo.autotags.autotag_searchSearch Autotagsreadsoldo.autotags.autotag_updateUpdate Autotagwrite
Business trips5
soldo.business_trips.business_trip_deleteDelete BusinessTripdestructivesoldo.business_trips.business_trip_getGet BusinessTripreadsoldo.business_trips.business_trip_searchSearch BusinessTripsreadsoldo.business_trips.business_trip_update_post_actionsUpdate BusinessTrip Post Actionswritesoldo.business_trips.business_trip_update_tagsUpdate BusinessTrip Tagswrite
Card rules5
soldo.card_rules.card_rule_cashpoint_getGet CashPoint Rulesreadsoldo.card_rules.card_rule_countries_getGet Countries Rulesreadsoldo.card_rules.card_rule_merchant_categories_getGet Merchant Categories Rulesreadsoldo.card_rules.card_rule_spending_limits_getGet Spending Limits Rulesreadsoldo.card_rules.card_rules_getGet Card Rulesread
Documents5
soldo.documents.document_deleteDelete Documentdestructivesoldo.documents.document_getGet Documentreadsoldo.documents.document_searchSearch Documentsreadsoldo.documents.document_uploadUpload Documentwritesoldo.documents.document_upload_confirmConfirm Document Uploadwrite
Expense reports5
soldo.expense_reports.expense_report_deleteDelete Expense Reportdestructivesoldo.expense_reports.expense_report_downloadDownload Expense Reportreadsoldo.expense_reports.expense_report_getGet Expense Reportreadsoldo.expense_reports.expense_report_searchSearch Expense Reportsreadsoldo.expense_reports.expense_report_updateUpdate Expense Reportwrite
Lists5
soldo.lists.list_addAdd Listwritesoldo.lists.list_deleteDelete Listdestructivesoldo.lists.list_getGet Listreadsoldo.lists.list_searchSearch Listsreadsoldo.lists.list_updateUpdate Listwrite
Requests5
soldo.requests.request_approveApprove Requestwritesoldo.requests.request_declineDecline Requestwritesoldo.requests.request_deleteDelete Requestdestructivesoldo.requests.request_getGet Requestreadsoldo.requests.request_searchSearch Requestsread
Transaction metadata5
soldo.transaction_metadata.transaction_metadata_addAdd Transaction Metadatawritesoldo.transaction_metadata.transaction_metadata_deleteDelete Transaction Metadatadestructivesoldo.transaction_metadata.transaction_metadata_getGet Transaction Metadatareadsoldo.transaction_metadata.transaction_metadata_searchSearch Transaction Metadatareadsoldo.transaction_metadata.transaction_metadata_updateUpdate Transaction Metadatawrite
Vat rates5
soldo.vat_rates.vat_rate_addAdd VAT Ratewritesoldo.vat_rates.vat_rate_deleteDelete VAT Ratedestructivesoldo.vat_rates.vat_rate_getGet VAT Ratereadsoldo.vat_rates.vat_rate_searchSearch VAT Ratesreadsoldo.vat_rates.vat_rate_updateUpdate VAT Ratewrite
Vehicles5
soldo.vehicles.vehicle_addAdd Vehiclewritesoldo.vehicles.vehicle_deleteDelete Vehicledestructivesoldo.vehicles.vehicle_getGet Vehiclereadsoldo.vehicles.vehicle_searchSearch Vehiclereadsoldo.vehicles.vehicle_updateUpdate Vehiclewrite
Wallets5
soldo.wallets.wallet_createCreate Walletwritesoldo.wallets.wallet_deleteDelete Walletdestructivesoldo.wallets.wallet_getGet Walletreadsoldo.wallets.wallet_searchSearch Walletsreadsoldo.wallets.wallet_updateUpdate Walletwrite
Auto transfer presets4
soldo.auto_transfer_presets.wallet_auto_transfer_preset_deleteDelete Auto-transfer Presetdestructivesoldo.auto_transfer_presets.wallet_auto_transfer_preset_getGet Auto-transfer Presetreadsoldo.auto_transfer_presets.wallet_auto_transfer_preset_unsetRemove Wallets from Auto-transfer Presetwritesoldo.auto_transfer_presets.wallet_auto_transfer_presets_searchSearch Auto-transfer Presetsread
Card rules presets4
soldo.card_rules_presets.card_rule_preset_deleteDelete Presetdestructivesoldo.card_rules_presets.card_rule_preset_getGet Presetreadsoldo.card_rules_presets.card_rule_preset_searchSearch Presetsreadsoldo.card_rules_presets.card_rule_preset_unsetRemove Preset from Carddestructive
Expense categories4
soldo.expense_categories.expense_category_addAdd Expense Categorywritesoldo.expense_categories.expense_category_deleteDelete Expense Categorydestructivesoldo.expense_categories.expense_category_getGet Expense Categoryreadsoldo.expense_categories.expense_category_updateUpdate Expense Categorywrite
Online ads4
soldo.online_ads.online_ads_assignees_removeRemove assignees from Online Adswritesoldo.online_ads.online_ads_deleteDelete Online Adsdestructivesoldo.online_ads.online_ads_getGet Online Adsreadsoldo.online_ads.online_ads_searchSearch Online Adsread
Subscriptions4
soldo.subscriptions.subscription_assignees_removeRemove assignees from Subscriptionwritesoldo.subscriptions.subscription_deleteDelete Subscriptiondestructivesoldo.subscriptions.subscription_getGet Subscriptionreadsoldo.subscriptions.subscription_searchSearch Subscriptionsread
Transaction custom export4
soldo.transaction_custom_export.transaction_export_addAdd Bulk TransactionCustomExportwritesoldo.transaction_custom_export.transaction_export_getRetrieve Bulk TransactionCustomExportreadsoldo.transaction_custom_export.transaction_export_removeRemove Bulk TransactionCustomExportdestructivesoldo.transaction_custom_export.transaction_export_searchSearch TransactionCustomExportread
Users4
soldo.users.user_access_modes_getRetrieve User Access Modesreadsoldo.users.user_deleteDelete Userdestructivesoldo.users.user_getGet Userreadsoldo.users.user_searchSearch Usersread
Addresses3
soldo.addresses.address_deleteDelete Addressdestructivesoldo.addresses.address_getGet Addressreadsoldo.addresses.address_searchSearch Addressesread
Cards3
soldo.cards.card_deleteDelete Carddestructivesoldo.cards.card_getGet Cardreadsoldo.cards.card_searchSearch Cardsread
Contacts3
soldo.contacts.contact_deleteDelete Contactdestructivesoldo.contacts.contact_getGet Contactreadsoldo.contacts.contact_searchSearch Contactsread
Expense review configuration3
soldo.expense_review_configuration.expense_review_configuration_addAdd Expense Review Configurationwritesoldo.expense_review_configuration.expense_review_configuration_getGet Expense Review Configurationreadsoldo.expense_review_configuration.expense_review_configuration_updateUpdate Expense Review Configurationwrite
Orders3
soldo.orders.order_deleteDelete Orderdestructivesoldo.orders.order_getGet Orderreadsoldo.orders.order_searchSearch Ordersread
Out of office3
soldo.out_of_office.out_of_office_deleteDelete Out of Officedestructivesoldo.out_of_office.out_of_office_getGet Out of Officereadsoldo.out_of_office.out_of_office_searchSearch Out of Officeread
Pre approved spend3
soldo.pre_approved_spend.pre_approved_spend_deleteDelete Purchasedestructivesoldo.pre_approved_spend.pre_approved_spend_getGet Purchasesreadsoldo.pre_approved_spend.pre_approved_spend_searchSearch Purchasesread
Resource sets3
soldo.resource_sets.resource_set_deleteDelete Resource Setdestructivesoldo.resource_sets.resource_set_getGet Resource Setreadsoldo.resource_sets.resource_set_searchSearch Resource Setsread
Transaction split3
soldo.transaction_split.transaction_split_createCreate Transaction Splitwritesoldo.transaction_split.transaction_split_deleteDelete Transaction Splitdestructivesoldo.transaction_split.transaction_split_updateUpdate Transaction Splitwrite
Statements2
soldo.statements.statement_downloadDownload Statementreadsoldo.statements.statement_searchSearch Statementsread
Transaction expense category2
soldo.transaction_expense_category.transaction_expense_category_setAdd Expense Category to Transactionwritesoldo.transaction_expense_category.transaction_expense_category_unsetRemove Expense Category from Transactiondestructive
Transaction hotel metadata2
soldo.transaction_hotel_metadata.transaction_hotel_metadata_setAdd Hotel Metadata to Transactionwritesoldo.transaction_hotel_metadata.transaction_hotel_metadata_unsetRemove Hotel Metadata from Transactiondestructive
Transaction tags2
soldo.transaction_tags.transaction_tag_addAdd Tag to Transactionwritesoldo.transaction_tags.transaction_tag_removeRemove Tag from Transactiondestructive
User roles2
soldo.user_roles.user_role_getGet User Rolesreadsoldo.user_roles.user_role_unsetRemove roles from Userdestructive
Webhook subscriptions2
soldo.webhook_subscriptions.webhook_subscription_getGet Webhook Subscriptionreadsoldo.webhook_subscriptions.webhook_subscription_searchSearch Webhook Subscriptionsread
Accounting classification1
soldo.accounting_classification.expense_category_searchSearch Expense Categoriesread
Authentication1
soldo.authentication.who_am_iGet who am Iread
Company1
soldo.company.company_getGet Companyread
Permissions1
soldo.permissions.roles_listGet Rolesread
Transaction vat rate1
soldo.transaction_vat_rate.transaction_tax_rate_unsetRemove VAT Rate from Transactiondestructive
Transactions1
soldo.transactions.transaction_tax_rate_setAdd VAT Rate to Transactionwrite
Questions
The Soldo MCP server, answered.
Is there a Soldo MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 175 Soldo actions across expense review processes, expense policies, expense reviews and tags, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Soldo.
What do I need to connect Soldo?
Soldo API client ID and Soldo API client secret from the same page. Plus your host. The free call account { op: "connections.requirements", service: "soldo" } lists exactly what to paste.
Can an AI agent delete or change things in Soldo?
Only if its key allows it, and only with an explicit confirmation. 39 Soldo actions are destructive, including delete Group, delete Contact and delete Expense Report. 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 Soldo API limit?
actionlake paces every call to the limits in the Soldo service file: 60 calls a minute per connection. Repeated reads are answered from cache (78 Soldo actions can be), which never reaches Soldo.
What does a Soldo action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (175 Soldo actions page). Cache hits, searches, dry runs and calls Soldo 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 Soldo API does it cover?
The Soldo Business API v2.0 (OpenAPI 5.61.1) at api.soldo.com by default, or the base URL set when you connect. It is built from Soldo's documentation as read on 23 October 2026. 175 actions in 46 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Soldo data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 1 minute, 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 Soldo 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 Soldo today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.