Skip to content

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/mcp
the first call
do {  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.

  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 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 ID
    • client_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
  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: "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
  1. Expenses

    7

    2 read · 5 write · 0 destructive

    Adds an expense · Get an expense by UUID · Exported expenses · Reject a set of expenses

  2. Trips

    6

    3 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

  3. Custom field list items

    5

    3 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

  4. Groups

    5

    3 read · 2 write · 0 destructive

    Get the groups in your company · Add a group to the company · Get the specific group · Update a group

  5. List item users

    5

    2 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

  6. Projects

    5

    3 read · 2 write · 0 destructive

    Get the projects of the company · Add a project to the company · Get the specific project · Update a project

  7. User linked accounts

    5

    2 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

  8. Custom fields

    4

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

ActionWhat it doesEffectSame name in
rydoo.users.listSearch for userSearch for user.readidentity.user.list474 connectors
rydoo.groups.listGet the groups in your companyGet the groups in your company.readidentity.group.list262 connectors
rydoo.users.createAdd a user to the companyAdd a user to the company.writeidentity.user.create262 connectors
rydoo.groups.createAdd a group to the companyAdd a group to the company.writeidentity.group.create205 connectors
rydoo.projects.listGet the projects of the companyGet the projects of the company.readwork.project.list109 connectors
rydoo.expenses.createAdds an expenseAdds an expense.writefinance.expense.create36 connectors
rydoo.projects.createAdd a project to the companyAdd a project to the company.writework.project.create102 connectors
rydoo.expenses.getGet an expense by UUIDGet an expense by UUID.readfinance.expense.get42 connectors
rydoo.user_role_assignments.listGet role assignments for a userGet role assignments for a user.readidentity.role_assignment.list41 connectors
rydoo.user_role_assignments.update_branchesUpdate branches for a user’s role assignmentUpdate branches for a user’s role assignment.writeidentity.role_assignment.update17 connectors
rydoo.user_role_assignments.removeRemove role assignments for a userRemove role assignments for a user.destructiveidentity.role_assignment.remove34 connectors
rydoo.payment_methods.createCreate payment methodCreate payment method.writefinance.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.

  1. Readread

    Give me a one-line status for every active Rydoo project.

    callsrydoo.projects.list

  2. Writewrite

    Add a user to the company in Rydoo. Show me exactly what you will send before you save it.

    callsrydoo.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 userrydoo.user_role_assignments.remove
  • Unassign a user from a list item of a custom fieldrydoo.list_item_users.unassign
  • Add role assignments for a userrydoo.user_role_assignments.add
  • Set the permission of a user for a given rolerydoo.user_role_permissions.set
  • Delete a linked account connectionrydoo.user_linked_accounts.delete
  • Unassign all users from a list item of a custom fieldrydoo.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.

dorydoo.user_role_assignments.removeconfirm_policy: human

Remove role assignments for a user?

intent: the user asked me to remove role assignments for a user

run suspended · waiting for a named person · key rydoo-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to Rydoo only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 expensewrite
  • rydoo.expenses.getGet an expense by UUIDread
  • rydoo.expenses.list_exportedExported expensesread
  • rydoo.expenses.reimburseSet expenses status to Reimbursedwrite
  • rydoo.expenses.rejectReject a set of expenseswrite
  • rydoo.expenses.reportReports an expensewrite
  • rydoo.expenses.unreportUnreports an expensewrite
Trips6
  • rydoo.trips.change_statusChange the status of a set of trips to a specific statuswrite
  • rydoo.trips.countGet the total number of tripsread
  • rydoo.trips.createAdd a trip for the specified userwrite
  • rydoo.trips.getGet the specified tripread
  • rydoo.trips.listGet the trips of the companyread
  • rydoo.trips.updateUpdate the specified tripwrite
Custom field list items5
  • rydoo.custom_field_list_items.countGet count of list items defined for a given custom fieldread
  • rydoo.custom_field_list_items.createAdd a list item to the custom fieldwrite
  • rydoo.custom_field_list_items.getGet a list item of a custom fieldread
  • rydoo.custom_field_list_items.listGet list items defined for a given custom fieldread
  • rydoo.custom_field_list_items.updateUpdate a list item of a custom fieldwrite
Groups5
  • rydoo.groups.countThe total count of all groupsread
  • rydoo.groups.createAdd a group to the companywrite
  • rydoo.groups.getGet the specific groupread
  • rydoo.groups.listGet the groups in your companyread
  • rydoo.groups.updateUpdate a groupwrite
List item users5
  • rydoo.list_item_users.assignAssign users who can view a list item of a custom fieldwrite
  • rydoo.list_item_users.countGet count of user assignments defined for a given list itemread
  • rydoo.list_item_users.listGet a list of user assignments defined for a given list itemread
  • rydoo.list_item_users.unassignUnassign a user from a list item of a custom fielddestructive
  • rydoo.list_item_users.unassign_allUnassign all users from a list item of a custom fielddestructive
Projects5
  • rydoo.projects.countThe total count of projectsread
  • rydoo.projects.createAdd a project to the companywrite
  • rydoo.projects.getGet the specific projectread
  • rydoo.projects.listGet the projects of the companyread
  • rydoo.projects.updateUpdate a projectwrite
User linked accounts5
  • rydoo.user_linked_accounts.countGet the number of linked accounts for a userread
  • rydoo.user_linked_accounts.createCreate a linked account connectionwrite
  • rydoo.user_linked_accounts.deleteDelete a linked account connectiondestructive
  • rydoo.user_linked_accounts.listGet a list of linked accounts for a userread
  • rydoo.user_linked_accounts.updateEdit a linked account connectionwrite
Custom fields4
  • rydoo.custom_fields.getGet the specific custom fieldread
  • rydoo.custom_fields.listGet custom fieldsread
  • rydoo.custom_fields.role_combinationsGet valid role combinations for custom fieldsread
  • rydoo.custom_fields.update_limitationsUpdate limitations of a custom fieldwrite
Payment methods4
  • rydoo.payment_methods.countThe total count of all payment methods in your companyread
  • rydoo.payment_methods.createCreate payment methodwrite
  • rydoo.payment_methods.listGet payment methods in your companyread
  • rydoo.payment_methods.updateUpdate payment methodwrite
User role assignments4
  • rydoo.user_role_assignments.addAdd role assignments for a userdestructive
  • rydoo.user_role_assignments.listGet role assignments for a userread
  • rydoo.user_role_assignments.removeRemove role assignments for a userdestructive
  • rydoo.user_role_assignments.update_branchesUpdate branches for a user’s role assignmentwrite
Users4
  • rydoo.users.createAdd a user to the companywrite
  • rydoo.users.getGet a specific userread
  • rydoo.users.listSearch for userread
  • rydoo.users.updateUpdate the userwrite
Approver branches3
  • rydoo.approver_branches.getReturn branches of an approverread
  • rydoo.approver_branches.modifyUpdate branches of an approverwrite
  • rydoo.approver_branches.replaceReplace branches of an approverwrite
Approver custom field values3
  • rydoo.approver_custom_field_values.getReturn custom field values of an approverread
  • rydoo.approver_custom_field_values.modifyUpdate custom field values of an approverwrite
  • rydoo.approver_custom_field_values.replaceReplace custom field values of an approverwrite
Approver groups3
  • rydoo.approver_groups.getReturn groups of an approverread
  • rydoo.approver_groups.modifyUpdate groups of an approverwrite
  • rydoo.approver_groups.replaceReplace groups of an approverwrite
Approver projects3
  • rydoo.approver_projects.getReturn projects of an approverread
  • rydoo.approver_projects.modifyUpdate projects of an approverwrite
  • rydoo.approver_projects.replaceReplace projects of an approverwrite
Approver users3
  • rydoo.approver_users.getReturn users of an approverread
  • rydoo.approver_users.modifyUpdate users of an approverwrite
  • rydoo.approver_users.replaceReplace users of an approverwrite
Conflict approver branches3
  • rydoo.conflict_approver_branches.getReturn branches of a conflict approverread
  • rydoo.conflict_approver_branches.modifyUpdate branches of a conflict approverwrite
  • rydoo.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 approverread
  • rydoo.conflict_approver_custom_field_values.modifyReplace custom field values of a conflict approverwrite
  • rydoo.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 approverread
  • rydoo.conflict_approver_groups.modifyUpdate groups of a conflict approverwrite
  • rydoo.conflict_approver_groups.replaceReplace groups of a conflict approverwrite
Conflict approver projects3
  • rydoo.conflict_approver_projects.getReturn projects of a conflict approverread
  • rydoo.conflict_approver_projects.modifyUpdate projects of a conflict approverwrite
  • rydoo.conflict_approver_projects.replaceReplace projects of a conflict approverwrite
Linked accounts3
  • rydoo.linked_accounts.countGet count of linked accounts connections in the companyread
  • rydoo.linked_accounts.listGet all linked accounts connections in the companyread
  • rydoo.linked_accounts.rolesGet a list of roles for linked accountsread
Transactions3
  • rydoo.transactions.countGet count of transactions of a companyread
  • rydoo.transactions.createAdd a new transaction for a userwrite
  • rydoo.transactions.listGet transactions of a companyread
Branches2
  • rydoo.branches.getGet company branch by its unique identifierread
  • rydoo.branches.listGet branches in the companyread
Categories2
  • rydoo.categories.getGet the specified categoryread
  • rydoo.categories.listGet the categories of your companyread
Exchange rates2
  • rydoo.exchange_rates.activeGet active custom exchange rates per branch on a given dateread
  • rydoo.exchange_rates.syncDefine custom exchange rates per branchwrite
External organizations2
  • rydoo.external_organizations.createCreate external organizationwrite
  • rydoo.external_organizations.listGet a list of external organizationsread
Project approvers2
  • rydoo.project_approvers.getReturns approver and conflict approver assignments for the projectread
  • rydoo.project_approvers.setEdit approver and coflict approver assigments for projectwrite
Project controllers2
  • rydoo.project_controllers.getReturns controller and conflict controller assignments for projectread
  • rydoo.project_controllers.setEdit controller and coflict controller assigments for projectwrite
Reimbursements2
  • rydoo.reimbursements.countCountread
  • rydoo.reimbursements.listListread
User expense approvers2
  • rydoo.user_expense_approvers.getReturns expense approver assignments for the userread
  • rydoo.user_expense_approvers.setEdit expense approver assignments for userwrite
User expense controllers2
  • rydoo.user_expense_controllers.getReturns controller assignments for the userread
  • rydoo.user_expense_controllers.setEdit controller assigments for userwrite
User groups2
  • rydoo.user_groups.listGet the groups to which the user belongsread
  • rydoo.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 roleread
  • rydoo.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.