Connectors · Learning & education
Docebo MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Docebo and the rest of your systems. It gives your agent 1,211 Docebo actions (562 reads, 464 writes and 185 that wait for a confirmation) and holds the Docebo credential itself, so the agent never does. It paces Docebo'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: "docebo.users.list", intent: "check which Docebo account is connected"}# Returns list of Users · read · 1 upstream call- 1,211actionsin one signed file
- 562readlook, never change
- 464writecreate and update
- 185wait for a yesdestructive, confirmed first
Set up
Connect Docebo 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 Docebo.
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_idClient ID of a Docebo API credential (Admin menu > API and SSO > API Credentials > Add OAuth2 App, with the Client…client_secretClient secret of the same API credentialhostWhere your Docebo lives: your host
account { op: "connections.requirements", service: "docebo" } # 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: "docebo.users.list" }# returns list of users · read · 1 upstream callcheck { action: "docebo.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Docebo 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
- 10 calls a second, per connection
- API covered
- Docebo REST API v1 (23 microservice Swagger 2.0 documents), at your Docebo instance's API base URL, which you enter when connecting
- Built from
- Docebo's documentation, read 23 October 2026university.docebo.comuniversity.docebo.comhelp.docebo.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 552 of 562 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 7, so ask can line Docebo up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Docebo.
1,211 actions in 23 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 562readlook, never change
- 464writecreate and update
- 185destructivewait for a confirmation
Manage
260121 read · 105 write · 34 destructive
Returns list of Users · Get specific information about currently logged user. · Create user · View a User's info
Learn
21894 read · 88 write · 36 destructive
Create a new Course · Delete specific Learning course by given ID · Batch import Enrollments · Get pending enrollments, for users that are waiting for Admin Approval
Share
16768 read · 69 write · 30 destructive
Returns assets available in the platform · Creates an association between the assets and the channels · Creates an association between the assets and a single channel by id · Retrieves the assets of the channel
Course
8944 read · 35 write · 10 destructive
Returns courses available in the platform · View a Course info · Update Course General Details · Start archive process for courses
Ecommerce
6936 read · 25 write · 8 destructive
Get transactions for a specific user's personal wallet · Get list of personal wallets · Get assignable audiences for a shared wallet · Get audiences for a shared wallet
Poweruser
6420 read · 23 write · 21 destructive
Retrieve the list of Power Users Profiles · Retrieve the list of Branches assigned to a Power User · Retrieve the list of Catalogs assigned to a Power User · Retrieve the list of Categories assigned to a Power User
Skill
6128 read · 24 write · 9 destructive
Associate Multiple Skills To Multiple Assets · Return Content That Has A Specific Associated Skill · Associate Multiple Skills To Multiple Courses · Evaluate The Skills Of The Users In Your Team
Analytics
5032 read · 15 write · 3 destructive
Get new reports available in the platform · Create query builder v2 preview · Create query builder v2 · Get query builder v2 list
15 more areas · 233 actions
- Catalogmanagement 42
- Learningplan 34
- Marketplace 25
- Otj 25
- Report 23
- Notifications 20
- Audiences 14
- Pages 14
- Setup 10
- Tmrepo 9
- Enrollment 8
- Audittrail 6
- Certification 1
- Ilt 1
- Messenger 1
Top actions
The Docebo API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 11 of Docebo's 11 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
docebo.users.listReturns list of Users | Returns list of Users. | read | identity.user.list474 connectors |
docebo.users.meGet specific information about currently logged user. | Get specific information about currently logged user. | read | identity.current_user.get307 connectors |
docebo.users.createCreate user | Create user. | write | identity.user.create262 connectors |
docebo.users.deleteDeletes an user | Deletes an user. | destructive | identity.user.delete253 connectors |
docebo.courses.listReturns courses available in the platform | Returns courses available in the platform. | read | hr.training_course.list11 connectors |
docebo.courses.createCreate a new Course | Create a new Course. | write | hr.training_course.create7 connectors |
docebo.manage_orgchart.listList of branches of given or root level | List of branches of given or root level. | read | this connector |
docebo.manage_orgchart_users.listRetrieve information about a branch's users. | Retrieve information about a branch's users. | read | this connector |
docebo.manage_user_list.listGet array of users with predefined selection fields | Get array of users with predefined selection fields. | read | this connector |
docebo.analytics_reports.listGet new reports available in the platform | Get new reports available in the platform. | read | this connector |
docebo.manage_orgchart.createCreate a new branch in the Organizational Chart Tree | Create a new branch in the Organizational Chart Tree. | write | this connector |
docebo.audiences_audience.listGet all audiences | Get all audiences. | read | this connector |
Try it
Prompts to paste into Claude.
Each one names the Docebo actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in Docebo? List every user and their role.
calls
docebo.users.list - Writewrite
Create user in Docebo. Show me exactly what you will send before you save it.
calls
docebo.users.create
Governance for Docebo
Destructive actions wait for a yes.
185 Docebo actions are destructive. The first 10:
- Deletes an user
docebo.users.delete - Delete specific Learning course by given ID
docebo.courses.delete - Deletes the branch.
docebo.manage_orgchart.delete - Un - Enroll users in course/s
docebo.learn_enrollments.delete - Deletes one user field
docebo.manage_user_fields.delete - Reject temporary user
docebo.manage_user_reject.delete - Batch Course Delete
docebo.course_courses_batch.delete - Delete Courses Association To A Learning Plan
docebo.learningplan_courses.delete - Remove Learning Plan From Catalog List
docebo.learningplan_catalogs.delete - Remove Learning Plan From Channel List
docebo.learningplan_channels.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.
Deletes an user?
intent: the user asked me to deletes an user
account { op: "keys.create", name: "docebo-agent", allowed_actions: ["docebo.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "docebo.users.delete", approver: "[email protected]" }, { match: "docebo.courses.delete", approver: "[email protected]" }, { match: "docebo.manage_orgchart.delete", approver: "[email protected]" } ]}Cost
What Docebo costs on actionlake.
Every Docebo action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Docebo 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 1,211 Docebo actions
- 1,211actions pageeach page of a long list is one call
- 552reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Docebo action.
1,211 actions by area: the id your agent calls, what it does, and its effect.
Manage260
docebo.users.createCreate userwritedocebo.users.getView a User's inforeaddocebo.users.listReturns list of Usersreaddocebo.users.meGet specific information about currently logged user.readdocebo.manage_auth0_login.createLogin and create/optionally/ user, also update info and additional fields datawritedocebo.manage_auth0_settings.getGet settings for Auth0 appread- and 254 more in this area
Learn218
docebo.courses.createCreate a new Coursewritedocebo.courses.deleteDelete specific Learning course by given IDdestructivedocebo.learn_enrollment_batch.createBatch import Enrollmentswritedocebo.learn_enrollment_pending_users.listGet pending enrollments, for users that are waiting for Admin Approvalreaddocebo.learn_assignment_upload_status.getChecks if a specific Screen-Recording video uploaded as assignment Learning Object exists.readdocebo.learn_catalog_advanced_filters.getRetrieves all advanced filter options by catalog IDread- and 212 more in this area
Share167
docebo.share_admin_assets.listReturns assets available in the platformreaddocebo.share_admin_channel_assets_batch.createCreates an association between the assets and the channelswritedocebo.share_admin_channel_content.createCreates an association between the assets and a single channel by idwritedocebo.share_admin_channel_content.listRetrieves the assets of the channelreaddocebo.share_admin_channels_assets.createCreates an association between the assets and the channelswritedocebo.share_admin_assets_contributor.updateBatch to change the contributor of one or more assetswrite- and 161 more in this area
Course89
docebo.course_courses_archive.createStart archive process for courseswritedocebo.courses.getView a Course inforeaddocebo.courses.listReturns courses available in the platformreaddocebo.courses.updateUpdate Course General Detailswritedocebo.course_additionalfields_batch.createStores courses additional fields values (batch)writedocebo.course_catalogs.listReturns catalogs related to the given courseread- and 83 more in this area
Ecommerce69
docebo.ecommerce_admin_personal_wallet_transactions.listGet transactions for a specific user's personal walletreaddocebo.ecommerce_admin_personal_wallets.listGet list of personal walletsreaddocebo.ecommerce_admin_shared_wallet_assignable_audiences.listGet assignable audiences for a shared walletreaddocebo.ecommerce_admin_shared_wallet_audiences.listGet audiences for a shared walletreaddocebo.ecommerce_admin_personal_wallets.getGet a specific user's personal walletreaddocebo.ecommerce_admin_personal_wallets.updateUpdate a specific user's personal walletwrite- and 63 more in this area
Poweruser64
docebo.poweruser_branches.listRetrieve the list of Branches assigned to a Power Userreaddocebo.poweruser_catalogs.listRetrieve the list of Catalogs assigned to a Power Userreaddocebo.poweruser_categories.listRetrieve the list of Categories assigned to a Power Userreaddocebo.poweruser_profiles.listRetrieve the list of Power Users Profilesreaddocebo.poweruser_branches.deleteUnassign Branches from Power Userdestructivedocebo.poweruser_branches.updateAssign Branches to Power Userwrite- and 58 more in this area
Skill61
docebo.skill_assets_skills.createAssociate Multiple Skills To Multiple Assetswritedocebo.skill_contents.listReturn Content That Has A Specific Associated Skillreaddocebo.skill_courses_skills.createAssociate Multiple Skills To Multiple Courseswritedocebo.skill_evaluation.createEvaluate The Skills Of The Users In Your Teamwritedocebo.skill_ai_settings.getGet AI Panel Settingsreaddocebo.skill_ai_settings.updatePUT AI Panel Settingswrite- and 55 more in this area
Analytics50
docebo.analytics_custom_report_type_preview.createCreate query builder v2 previewwritedocebo.analytics_custom_report_types.createCreate query builder v2writedocebo.analytics_custom_report_types.listGet query builder v2 listreaddocebo.analytics_reports.listGet new reports available in the platformreaddocebo.analytics_custom_report_type_preview.getGet the preview of a query builder v2readdocebo.analytics_custom_report_types.deleteDelete query builder v2destructive- and 44 more in this area
Catalogmanagement42
docebo.catalogmanagement_catalog_branches.createAssign branches to a catalogwritedocebo.catalogmanagement_catalog_branches.listGet paginated list of catalog branchesreaddocebo.catalogmanagement_catalog_branches_all.listGet a list of catalog branchesreaddocebo.catalogmanagement_catalog_courses.createAssign courses to a catalogwritedocebo.catalogmanagement_catalog_branches.deleteUnassigns branches from catalogsdestructivedocebo.catalogmanagement_catalog_courses.deleteUnassign courses from catalogsdestructive- and 36 more in this area
Learningplan34
docebo.learningplan_additionalfields.listRetrieve Learning Plan Additional Fields Listreaddocebo.learningplan_allcourses.listRetrieve the list of all the Courses assigned to a Learning Planreaddocebo.learningplan_catalogs.createAssociate Learning Plan To A Catalog Listwritedocebo.learningplan_catalogs.listRetrieve List Catalogs Where A Learning Plan Is Assignedreaddocebo.learningplan_additionalfields.patchStores learning plan additional fields valueswritedocebo.learningplan_awards_dates_bulk.patchUpdate specific awardswrite- and 28 more in this area
Marketplace25
docebo.marketplace_go1_filters.listGet GO1 filterreaddocebo.marketplace_go1_job.createCreate a background job for SCORM importwritedocebo.marketplace_lil_credentials.createCreate LinkedinLearning Credentialswritedocebo.marketplace_lil_learning_classification.listLibraries, subjects, and topics are taxonomy categories associated with learning assets.readdocebo.marketplace_lil_credentials.deleteDelete LinkedinLearning Credentialsdestructivedocebo.marketplace_lil_credentials.getRetrieve Provider credentials dataread- and 19 more in this area
Otj25
docebo.otj_assignment_answers.createUpload An Assignment's Checklist Answers For The Current Logged Userwritedocebo.otj_assignment_approval.createApprove Or Reject An Assignmentwritedocebo.otj_checklist_schedules.createCreate a schedule for a checklistwritedocebo.otj_checklist_schedules.listGet all schedules related to a checklistreaddocebo.otj_assignments.getGet An Assignment With The Relative Answersreaddocebo.otj_checklist_schedules.deleteDelete a Scheduledestructive- and 19 more in this area
Report23
docebo.report_branch_dashboard_enrollment_view.listDetailed Information For The Children Of The Current Branchreaddocebo.report_mytranscript.listRetrieve Transcripts Listreaddocebo.report_privacy_policy_users.listReport Data For Privacy Policyreaddocebo.report_query_builder.createCreate Report Using 'Query Builder'writedocebo.report.getLists all reports created in the systemreaddocebo.report_branch_dashboard_enrollment.getList Of Enrollments For Current Branch And Childrenread- and 17 more in this area
Notifications20
docebo.notifications_dkim.createCreates a dkim recordswritedocebo.notifications_dkim.listReturns dkim recordsreaddocebo.notifications_webhooks.createCreates a webhookwritedocebo.notifications_webhooks.listReturns the list of webhooksreaddocebo.notifications_dkim.deleteDeletes a dkim recorddestructivedocebo.notifications_dkim.getReturns a dkim recordread- and 14 more in this area
Audiences14
docebo.audiences_audience.createCreate audiencewritedocebo.audiences_audience.getGet an audiencereaddocebo.audiences_audience.listGet all audiencesreaddocebo.audiences_audience_users.listGet users from audiencereaddocebo.audiences_audience.deleteDelete an audiencedestructivedocebo.audiences_audience.updateUpdate an audiencewrite- and 8 more in this area
Pages14
docebo.pages.createCreate a pagewritedocebo.pages.listListing pagesreaddocebo.pages_manage.listManagement pagesreaddocebo.pages_menu.createCreate a menuwritedocebo.pages.deleteDelete a pagedestructivedocebo.pages.getGet single page informationread- and 8 more in this area
Setup10
docebo.setup_jsinject.createCreate a new javascript code stringwritedocebo.setup_presets.listList available presetsreaddocebo.setup_presets_status.listList preset statusreaddocebo.setup_space_batch.createBatch create up to 10 spaceswritedocebo.setup_jsinject.deleteDelete a javascript code stringdestructivedocebo.setup_jsinject.getGet the javascript code stringread- and 4 more in this area
Tmrepo9
docebo.tmrepo_material_versions.createCreate a new version for a Training Material in Central Repositorywritedocebo.tmrepo_material_versions.listList TM Versionsreaddocebo.tmrepo_materials.createCreate a new Training Material in Central Repositorywritedocebo.tmrepo_materials_upload.createInitiate the upload of a Training Material in Central Repositorywritedocebo.tmrepo_material_versions.updateUpdate a Training Material version in Central Repositorywritedocebo.tmrepo_materials.getView a Training Material in Central Repositoryread- and 3 more in this area
Enrollment8
docebo.enrollment_course_archive.createBatch Course Enrollments Archiving Via Background Jobwritedocebo.enrollment_course_archives.listReturns the archived enrollments of a specific course.readdocebo.enrollment_course_user_archive.createArchive A Single Course Enrollmentwritedocebo.enrollment_courses_archive_session_events.listReturn Archived Session's Eventsreaddocebo.enrollment_course_archives_bulk.deleteBulk delete archived course enrollmentsdestructivedocebo.enrollment_courses_archive_sessions.listReturn Sessions List Of An Archived Course Enrollmentread- and 2 more in this area
Audittrail6
docebo.audittrail.createCreate an audittrail querywritedocebo.audittrail.getGet Audit Trail Logsreaddocebo.audittrail_logs.listGet Audit trail log recordsreaddocebo.audittrail_old_audittrail_events.listGet old Audittrail eventsreaddocebo.audittrail_download.getDownloadAction Audit Trail Logsreaddocebo.audittrail_event_types.getGet event typesread
Certification1
docebo.certification_awards_users.getList the certifications awarded to a particular user.read
Ilt1
docebo.ilt_course_sessions.listList sessions for an ILT courseread
Messenger1
docebo.messenger_scheduler_wakeup_manual.createWakeUp endpoint for NotificationPaaS Scheduled deliverieswrite
This index shows a sample of each area. All 1,211 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.
Questions
The Docebo MCP server, answered.
Is there a Docebo MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 1,211 Docebo actions across manage, learn, share and course, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Docebo.
What do I need to connect Docebo?
Client ID of a Docebo API credential (Admin menu > API and SSO > API Credentials > Add OAuth2 App, with the Client… and Client secret of the same API credential. Plus your host. The free call account { op: "connections.requirements", service: "docebo" } lists exactly what to paste.
Can an AI agent delete or change things in Docebo?
Only if its key allows it, and only with an explicit confirmation. 185 Docebo actions are destructive, including deletes an user, delete specific Learning course by given ID and deletes the branch.. 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 Docebo API limit?
actionlake paces every call to the limits in the Docebo service file: 10 calls a second per connection. Repeated reads are answered from cache (552 Docebo actions can be), which never reaches Docebo.
What does a Docebo action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (1,211 Docebo actions page). Cache hits, searches, dry runs and calls Docebo 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 Docebo API does it cover?
The Docebo REST API v1 (23 microservice Swagger 2.0 documents) at your Docebo instance's API base URL, which you enter when connecting. It is built from Docebo's documentation as read on 23 October 2026. 1,211 actions in 23 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Docebo 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 Docebo 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 Docebo today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.