Connectors · Accounting & finance
Rydoo MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Rydoo and the rest of your systems. It gives your agent 111 Rydoo actions (54 reads, 51 writes and 6 that wait for a confirmation) and holds the Rydoo credential itself, so the agent never does. It paces Rydoo'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: "rydoo.users.list", intent: "check which Rydoo account is connected"}# Search for user · read · 1 upstream call- 111actionsin one signed file
- 54readlook, never change
- 51writecreate and update
- 6wait for a yesdestructive, confirmed first
Set up
Connect Rydoo 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 Rydoo.
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_idRydoo API client IDclient_secretThe Rydoo API client secret issued with the client ID
account { op: "connections.requirements", service: "rydoo" } # 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: "rydoo.users.list" }# search for user · read · 1 upstream callcheck { action: "rydoo.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Rydoo 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- Limits we pace to
- 450 calls a minute, per connection
- API covered
- Rydoo API v2/v3 (OpenAPI 3.0.1 definitions published per operation on developers.rydoo.com)
api.rydoo.com - Built from
- Rydoo's documentation, read 23 October 2026developers.rydoo.comdevelopers.rydoo.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 54 of 54 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 4, so ask can line Rydoo up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Rydoo.
111 actions in 35 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 54readlook, never change
- 51writecreate and update
- 6destructivewait for a confirmation
Expenses
72 read · 5 write · 0 destructive
Adds an expense · Get an expense by UUID · Exported expenses · Reject a set of expenses
Trips
63 read · 3 write · 0 destructive
Add a trip for the specified user · Get the trips of the company · Change the status of a set of trips to a specific status · Get the total number of trips
Custom field list items
53 read · 2 write · 0 destructive
Add a list item to the custom field · Get list items defined for a given custom field · Get count of list items defined for a given custom field · Get a list item of a custom field
Groups
53 read · 2 write · 0 destructive
Get the groups in your company · Add a group to the company · Get the specific group · Update a group
List item users
52 read · 1 write · 2 destructive
Get a list of user assignments defined for a given list item · Assign users who can view a list item of a custom field · Get count of user assignments defined for a given list item · Unassign a user from a list item of a custom field
Projects
53 read · 2 write · 0 destructive
Get the projects of the company · Add a project to the company · Get the specific project · Update a project
User linked accounts
52 read · 2 write · 1 destructive
Create a linked account connection · Get a list of linked accounts for a user · Get the number of linked accounts for a user · Edit a linked account connection
Custom fields
43 read · 1 write · 0 destructive
Get custom fields · Get the specific custom field · Get valid role combinations for custom fields · Update limitations of a custom field
27 more areas · 69 actions
- Payment methods 4
- User role assignments 4
- Users 4
- Approver branches 3
- Approver custom field values 3
- Approver groups 3
- Approver projects 3
- Approver users 3
- Conflict approver branches 3
- Conflict approver custom field values 3
- Conflict approver groups 3
- Conflict approver projects 3
- Linked accounts 3
- Transactions 3
- Branches 2
- Categories 2
- Exchange rates 2
- External organizations 2
- Project approvers 2
- Project controllers 2
- Reimbursements 2
- User expense approvers 2
- User expense controllers 2
- User groups 2
- User role permissions 2
- Guests 1
- User list items 1
Top actions
The Rydoo API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 23 of Rydoo's 26 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
rydoo.users.listSearch for user | Search for user. | read | identity.user.list474 connectors |
rydoo.groups.listGet the groups in your company | Get the groups in your company. | read | identity.group.list262 connectors |
rydoo.users.createAdd a user to the company | Add a user to the company. | write | identity.user.create262 connectors |
rydoo.groups.createAdd a group to the company | Add a group to the company. | write | identity.group.create205 connectors |
rydoo.projects.listGet the projects of the company | Get the projects of the company. | read | work.project.list109 connectors |
rydoo.expenses.createAdds an expense | Adds an expense. | write | finance.expense.create36 connectors |
rydoo.projects.createAdd a project to the company | Add a project to the company. | write | work.project.create102 connectors |
rydoo.expenses.getGet an expense by UUID | Get an expense by UUID. | read | finance.expense.get42 connectors |
rydoo.user_role_assignments.listGet role assignments for a user | Get role assignments for a user. | read | identity.role_assignment.list41 connectors |
rydoo.user_role_assignments.update_branchesUpdate branches for a user’s role assignment | Update branches for a user’s role assignment. | write | identity.role_assignment.update17 connectors |
rydoo.user_role_assignments.removeRemove role assignments for a user | Remove role assignments for a user. | destructive | identity.role_assignment.remove34 connectors |
rydoo.payment_methods.createCreate payment method | Create payment method. | write | finance.payment_method.create20 connectors |
Try it
Prompts to paste into Claude.
Each one names the Rydoo actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Give me a one-line status for every active Rydoo project.
calls
rydoo.projects.list - Writewrite
Add a user to the company in Rydoo. Show me exactly what you will send before you save it.
calls
rydoo.users.create
Governance for Rydoo
Destructive actions wait for a yes.
6 Rydoo actions are destructive. These are all of them:
- Remove role assignments for a user
rydoo.user_role_assignments.remove - Unassign a user from a list item of a custom field
rydoo.list_item_users.unassign - Add role assignments for a user
rydoo.user_role_assignments.add - Set the permission of a user for a given role
rydoo.user_role_permissions.set - Delete a linked account connection
rydoo.user_linked_accounts.delete - Unassign all users from a list item of a custom field
rydoo.list_item_users.unassign_all
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.
Remove role assignments for a user?
intent: the user asked me to remove role assignments for a user
account { op: "keys.create", name: "rydoo-agent", allowed_actions: ["rydoo.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "rydoo.user_role_assignments.remove", approver: "[email protected]" }, { match: "rydoo.list_item_users.unassign", approver: "[email protected]" }, { match: "rydoo.user_role_assignments.add", approver: "[email protected]" } ]}Cost
What Rydoo costs on actionlake.
Every Rydoo action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Rydoo 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 111 Rydoo actions
- 111actions pageeach page of a long list is one call
- 54reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Rydoo action.
111 actions by area: the id your agent calls, what it does, and its effect.
Expenses7
rydoo.expenses.createAdds an expensewriterydoo.expenses.getGet an expense by UUIDreadrydoo.expenses.list_exportedExported expensesreadrydoo.expenses.reimburseSet expenses status to Reimbursedwriterydoo.expenses.rejectReject a set of expenseswriterydoo.expenses.reportReports an expensewriterydoo.expenses.unreportUnreports an expensewrite
Trips6
rydoo.trips.change_statusChange the status of a set of trips to a specific statuswriterydoo.trips.countGet the total number of tripsreadrydoo.trips.createAdd a trip for the specified userwriterydoo.trips.getGet the specified tripreadrydoo.trips.listGet the trips of the companyreadrydoo.trips.updateUpdate the specified tripwrite
Custom field list items5
rydoo.custom_field_list_items.countGet count of list items defined for a given custom fieldreadrydoo.custom_field_list_items.createAdd a list item to the custom fieldwriterydoo.custom_field_list_items.getGet a list item of a custom fieldreadrydoo.custom_field_list_items.listGet list items defined for a given custom fieldreadrydoo.custom_field_list_items.updateUpdate a list item of a custom fieldwrite
Groups5
rydoo.groups.countThe total count of all groupsreadrydoo.groups.createAdd a group to the companywriterydoo.groups.getGet the specific groupreadrydoo.groups.listGet the groups in your companyreadrydoo.groups.updateUpdate a groupwrite
List item users5
rydoo.list_item_users.assignAssign users who can view a list item of a custom fieldwriterydoo.list_item_users.countGet count of user assignments defined for a given list itemreadrydoo.list_item_users.listGet a list of user assignments defined for a given list itemreadrydoo.list_item_users.unassignUnassign a user from a list item of a custom fielddestructiverydoo.list_item_users.unassign_allUnassign all users from a list item of a custom fielddestructive
Projects5
rydoo.projects.countThe total count of projectsreadrydoo.projects.createAdd a project to the companywriterydoo.projects.getGet the specific projectreadrydoo.projects.listGet the projects of the companyreadrydoo.projects.updateUpdate a projectwrite
User linked accounts5
rydoo.user_linked_accounts.countGet the number of linked accounts for a userreadrydoo.user_linked_accounts.createCreate a linked account connectionwriterydoo.user_linked_accounts.deleteDelete a linked account connectiondestructiverydoo.user_linked_accounts.listGet a list of linked accounts for a userreadrydoo.user_linked_accounts.updateEdit a linked account connectionwrite
Custom fields4
rydoo.custom_fields.getGet the specific custom fieldreadrydoo.custom_fields.listGet custom fieldsreadrydoo.custom_fields.role_combinationsGet valid role combinations for custom fieldsreadrydoo.custom_fields.update_limitationsUpdate limitations of a custom fieldwrite
Payment methods4
rydoo.payment_methods.countThe total count of all payment methods in your companyreadrydoo.payment_methods.createCreate payment methodwriterydoo.payment_methods.listGet payment methods in your companyreadrydoo.payment_methods.updateUpdate payment methodwrite
User role assignments4
rydoo.user_role_assignments.addAdd role assignments for a userdestructiverydoo.user_role_assignments.listGet role assignments for a userreadrydoo.user_role_assignments.removeRemove role assignments for a userdestructiverydoo.user_role_assignments.update_branchesUpdate branches for a user’s role assignmentwrite
Users4
rydoo.users.createAdd a user to the companywriterydoo.users.getGet a specific userreadrydoo.users.listSearch for userreadrydoo.users.updateUpdate the userwrite
Approver branches3
rydoo.approver_branches.getReturn branches of an approverreadrydoo.approver_branches.modifyUpdate branches of an approverwriterydoo.approver_branches.replaceReplace branches of an approverwrite
Approver custom field values3
rydoo.approver_custom_field_values.getReturn custom field values of an approverreadrydoo.approver_custom_field_values.modifyUpdate custom field values of an approverwriterydoo.approver_custom_field_values.replaceReplace custom field values of an approverwrite
Approver groups3
rydoo.approver_groups.getReturn groups of an approverreadrydoo.approver_groups.modifyUpdate groups of an approverwriterydoo.approver_groups.replaceReplace groups of an approverwrite
Approver projects3
rydoo.approver_projects.getReturn projects of an approverreadrydoo.approver_projects.modifyUpdate projects of an approverwriterydoo.approver_projects.replaceReplace projects of an approverwrite
Approver users3
rydoo.approver_users.getReturn users of an approverreadrydoo.approver_users.modifyUpdate users of an approverwriterydoo.approver_users.replaceReplace users of an approverwrite
Conflict approver branches3
rydoo.conflict_approver_branches.getReturn branches of a conflict approverreadrydoo.conflict_approver_branches.modifyUpdate branches of a conflict approverwriterydoo.conflict_approver_branches.replaceReplace branches of a conflict approverwrite
Conflict approver custom field values3
rydoo.conflict_approver_custom_field_values.getReturn custom field values of a conflict approverreadrydoo.conflict_approver_custom_field_values.modifyReplace custom field values of a conflict approverwriterydoo.conflict_approver_custom_field_values.replaceReplace custom field values of a conflict approverwrite
Conflict approver groups3
rydoo.conflict_approver_groups.getReturn groups of a conflict approverreadrydoo.conflict_approver_groups.modifyUpdate groups of a conflict approverwriterydoo.conflict_approver_groups.replaceReplace groups of a conflict approverwrite
Conflict approver projects3
rydoo.conflict_approver_projects.getReturn projects of a conflict approverreadrydoo.conflict_approver_projects.modifyUpdate projects of a conflict approverwriterydoo.conflict_approver_projects.replaceReplace projects of a conflict approverwrite
Linked accounts3
rydoo.linked_accounts.countGet count of linked accounts connections in the companyreadrydoo.linked_accounts.listGet all linked accounts connections in the companyreadrydoo.linked_accounts.rolesGet a list of roles for linked accountsread
Transactions3
rydoo.transactions.countGet count of transactions of a companyreadrydoo.transactions.createAdd a new transaction for a userwriterydoo.transactions.listGet transactions of a companyread
Branches2
rydoo.branches.getGet company branch by its unique identifierreadrydoo.branches.listGet branches in the companyread
Categories2
rydoo.categories.getGet the specified categoryreadrydoo.categories.listGet the categories of your companyread
Exchange rates2
rydoo.exchange_rates.activeGet active custom exchange rates per branch on a given datereadrydoo.exchange_rates.syncDefine custom exchange rates per branchwrite
External organizations2
rydoo.external_organizations.createCreate external organizationwriterydoo.external_organizations.listGet a list of external organizationsread
Project approvers2
rydoo.project_approvers.getReturns approver and conflict approver assignments for the projectreadrydoo.project_approvers.setEdit approver and coflict approver assigments for projectwrite
Project controllers2
rydoo.project_controllers.getReturns controller and conflict controller assignments for projectreadrydoo.project_controllers.setEdit controller and coflict controller assigments for projectwrite
Reimbursements2
rydoo.reimbursements.countCountreadrydoo.reimbursements.listListread
User expense approvers2
rydoo.user_expense_approvers.getReturns expense approver assignments for the userreadrydoo.user_expense_approvers.setEdit expense approver assignments for userwrite
User expense controllers2
rydoo.user_expense_controllers.getReturns controller assignments for the userreadrydoo.user_expense_controllers.setEdit controller assigments for userwrite
User groups2
rydoo.user_groups.listGet the groups to which the user belongsreadrydoo.user_groups.replaceUpdate the groups to which the user belongswrite
User role permissions2
rydoo.user_role_permissions.getGet the permission of a user for a given rolereadrydoo.user_role_permissions.setSet the permission of a user for a given roledestructive
Guests1
rydoo.guests.createCreate company-wide guestwrite
User list items1
rydoo.user_list_items.assignAssign list items of a custom field that can be viewed by a userwrite
Questions
The Rydoo MCP server, answered.
Is there a Rydoo MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 111 Rydoo actions across expenses, trips, custom field list items and groups, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Rydoo.
What do I need to connect Rydoo?
Rydoo API client ID and The Rydoo API client secret issued with the client ID. The free call account { op: "connections.requirements", service: "rydoo" } lists exactly what to paste.
Can an AI agent delete or change things in Rydoo?
Only if its key allows it, and only with an explicit confirmation. 6 Rydoo actions are destructive, including remove role assignments for a user, unassign a user from a list item of a custom field and add role assignments for a user. 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 Rydoo API limit?
actionlake paces every call to the limits in the Rydoo service file: 450 calls a minute per connection. Repeated reads are answered from cache (54 Rydoo actions can be), which never reaches Rydoo.
What does a Rydoo action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (111 Rydoo actions page). Cache hits, searches, dry runs and calls Rydoo 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 Rydoo API does it cover?
The Rydoo API v2/v3 (OpenAPI 3.0.1 definitions published per operation on developers.rydoo.com) at api.rydoo.com. It is built from Rydoo's documentation as read on 23 October 2026. 111 actions in 35 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Rydoo 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 Rydoo 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 Rydoo today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.