Connectors · Email & messaging
Staffbase MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Staffbase and the rest of your systems. It gives your agent 133 Staffbase actions (80 reads, 36 writes and 17 that wait for a confirmation) and holds the Staffbase credential itself, so the agent never does. It paces Staffbase'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: "staffbase.users.list", intent: "check which Staffbase account is connected"}# List users · read · 1 upstream call- 133actionsin one signed file
- 80readlook, never change
- 36writecreate and update
- 17wait for a yesdestructive, confirmed first
Set up
Connect Staffbase 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 Staffbase.
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_tokenStaffbase API token: in Staffbase Studio open Settings > API Access, create a token with the access level you need…hostWhere your Staffbase lives: your host
account { op: "connections.requirements", service: "staffbase" } # 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: "staffbase.users.list" }# list users · read · 1 upstream callcheck { action: "staffbase.users.invite", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Staffbase 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_token- Setup fields
host- Limits we pace to
- 100 calls a minute, per connection
- API covered
- Staffbase (employee communications platform: intranet, employee app, news, pages and email) API Staffbase REST APIs (OpenAPI documents at developers.staffbase.com, fetched 2026-10-23), at your Staffbase instance's API base URL, which you enter when connecting (path /api)
- Built from
- Staffbase's documentation, read 23 October 2026developers.staffbase.comdevelopers.staffbase.comdevelopers.staffbase.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 80 of 80 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 1, so ask can line Staffbase up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Staffbase.
133 actions in 25 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 80readlook, never change
- 36writecreate and update
- 17destructivewait for a confirmation
Analytics
1515 read · 0 write · 0 destructive
Page click ranking · Page group ranking · Page time distribution · Page timeseries
Users
147 read · 5 write · 2 destructive
List users · Invite new users · Return a user · Update a user
Email performance
1010 read · 0 write · 0 destructive
List emails · Retrieve click rate · Retrieve engagement data · Get email metadata
Collections
94 read · 3 write · 2 destructive
Create a collection · List collections · Update a collection · Get a collection
Posts
95 read · 3 write · 1 destructive
Create a new post · List all accessible news posts · Fetch acknowledgements · List posts of a news channel
User imports
74 read · 2 write · 1 destructive
List CSV imports · Get CSV import metadata · Get CSV import configuration · Get the status of a CSV import
Groups
63 read · 2 write · 1 destructive
List groups · Create a group · Get a group · Update a group
Pages
63 read · 2 write · 1 destructive
Get pages · Create page · Get page · Update Page
17 more areas · 57 actions
- Spaces 6
- Campaigns 5
- Media 5
- Page templates 5
- Quicklinks 5
- Search settings 5
- Client 4
- Campaign references 3
- Channels 3
- Group members 3
- Media library 3
- Notifications 3
- Chat conversations 2
- Comments 2
- Installations 1
- Profiles 1
- Tags 1
Top actions
The Staffbase API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 46 of Staffbase's 46 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
staffbase.users.listList users | List users. | read | identity.user.list474 connectors |
staffbase.users.inviteInvite new users | Invite new users. | write | identity.user.create262 connectors |
staffbase.users.deleteDelete a user | Delete a user. | destructive | identity.user.delete253 connectors |
staffbase.media.listList media details | List media details. | read | content.file.list77 connectors |
staffbase.groups.listList groups | List groups. | read | identity.group.list262 connectors |
staffbase.collections.listList collections | List collections. | read | content.folder.list62 connectors |
staffbase.collections.createCreate a collection | Create a collection. | write | content.folder.create62 connectors |
staffbase.groups.createCreate a group | Create a group. | write | identity.group.create205 connectors |
staffbase.media.getGet a single medium | Get a single medium. | read | content.file.get74 connectors |
staffbase.spaces.listList spaces | List spaces. | read | content.site.list16 connectors |
staffbase.spaces.createCreate a space | Create a space. | write | content.site.create12 connectors |
staffbase.pages.createCreate page | Create page. | write | content.site_page.create9 connectors |
Try it
Prompts to paste into Claude.
Each one names the Staffbase actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Who has access in Staffbase? List every user and their role.
calls
staffbase.users.list - Writewrite
Invite new users in Staffbase. Show me exactly what you will send before you save it.
calls
staffbase.users.invite
Governance for Staffbase
Destructive actions wait for a yes.
17 Staffbase actions are destructive. These are all of them:
- Delete a user
staffbase.users.delete - Delete a medium
staffbase.media.delete - Delete a collection
staffbase.collections.delete - Delete a group
staffbase.groups.delete - Delete a space
staffbase.spaces.delete - Delete page
staffbase.pages.delete - Update members
staffbase.group_members.remove - Log a user out
staffbase.users.revoke_sessions - Delete a campaign
staffbase.campaigns.delete - Delete a conversation
staffbase.chat_conversations.delete - Delete a news post
staffbase.posts.delete - Remove a Quick Link
staffbase.quicklinks.delete - Delete a CSV import
staffbase.user_imports.delete - Delete template comment
staffbase.page_templates.delete - Delete search settings
staffbase.search_settings.reset - Remove files from a collection
staffbase.collections.remove_files - Delete campaign reference
staffbase.campaign_references.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 a user?
intent: the user asked me to delete a user
account { op: "keys.create", name: "staffbase-agent", allowed_actions: ["staffbase.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "staffbase.users.delete", approver: "[email protected]" }, { match: "staffbase.media.delete", approver: "[email protected]" }, { match: "staffbase.collections.delete", approver: "[email protected]" } ]}Cost
What Staffbase costs on actionlake.
Every Staffbase action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Staffbase 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 133 Staffbase actions
- 133actions pageeach page of a long list is one call
- 80reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Staffbase action.
133 actions by area: the id your agent calls, what it does, and its effect.
Analytics15
staffbase.analytics.chats_timeseriesChat timeseriesreadstaffbase.analytics.contents_rankingsContent rankingreadstaffbase.analytics.page_click_rankingPage click rankingreadstaffbase.analytics.page_group_rankingPage group rankingreadstaffbase.analytics.page_histogramPage time distributionreadstaffbase.analytics.page_statsPage statsreadstaffbase.analytics.page_timeseriesPage timeseriesreadstaffbase.analytics.page_traffic_sourcesPage traffic sourcesreadstaffbase.analytics.page_viewsPage viewsreadstaffbase.analytics.pages_rankingPage rankingreadstaffbase.analytics.pages_timeseriesPages timeseriesreadstaffbase.analytics.posts_rankingsPost rankingreadstaffbase.analytics.posts_timeseriesPost timeseriesreadstaffbase.analytics.users_timeseriesUser timeseries with SCIMreadstaffbase.analytics.users_timeseries_v2User timeseriesread
Users14
staffbase.users.create_legacyInvite new userswritestaffbase.users.deleteDelete a userdestructivestaffbase.users.getReturn a userreadstaffbase.users.inviteInvite new userswritestaffbase.users.listList usersreadstaffbase.users.list_groupsList groups of a userreadstaffbase.users.list_visible_groupsList visible groups a userreadstaffbase.users.revoke_sessionsLog a user outdestructivestaffbase.users.searchSearch usersreadstaffbase.users.search_groupsGet a user's groupsreadstaffbase.users.send_recoverySend recovery emailwritestaffbase.users.syncList users by timestampreadstaffbase.users.updateUpdate a userwritestaffbase.users.update_legacyUpdate a userwrite
Email performance10
staffbase.email_performance.clicksRetrieve click ratereadstaffbase.email_performance.engagement_trendRetrieve engagement datareadstaffbase.email_performance.get_emailGet email metadatareadstaffbase.email_performance.list_emailsList emailsreadstaffbase.email_performance.opensRetrieve open ratereadstaffbase.email_performance.recipient_countRetrieve recipient countreadstaffbase.email_performance.top_clicked_linksRetrieve top clicksreadstaffbase.email_performance.total_activity_over_timeRetrieve total activityreadstaffbase.email_performance.unique_activity_over_timeRetrieve unique activityreadstaffbase.email_performance.user_groupsList user groupsread
Collections9
staffbase.collections.add_filesAdd files to a collectionwritestaffbase.collections.createCreate a collectionwritestaffbase.collections.deleteDelete a collectiondestructivestaffbase.collections.getGet a collectionreadstaffbase.collections.listList collectionsreadstaffbase.collections.list_allList all collectionsreadstaffbase.collections.list_filesList files from a collectionreadstaffbase.collections.remove_filesRemove files from a collectiondestructivestaffbase.collections.updateUpdate a collectionwrite
Posts9
staffbase.posts.createCreate a new postwritestaffbase.posts.deleteDelete a news postdestructivestaffbase.posts.getFetch a news postreadstaffbase.posts.listList all accessible news postsreadstaffbase.posts.list_acknowledgementsFetch acknowledgementsreadstaffbase.posts.list_in_channelList posts of a news channelreadstaffbase.posts.resend_notificationsResend notificationswritestaffbase.posts.searchSearch news postsreadstaffbase.posts.updateUpdate a news postwrite
User imports7
staffbase.user_imports.deleteDelete a CSV importdestructivestaffbase.user_imports.getGet CSV import metadatareadstaffbase.user_imports.get_configGet CSV import configurationreadstaffbase.user_imports.get_statusGet the status of a CSV importreadstaffbase.user_imports.listList CSV importsreadstaffbase.user_imports.update_configUpdate CSV import configurationwritestaffbase.user_imports.update_stateUpdate CSV import statuswrite
Groups6
staffbase.groups.createCreate a groupwritestaffbase.groups.deleteDelete a groupdestructivestaffbase.groups.getGet a groupreadstaffbase.groups.listList groupsreadstaffbase.groups.searchSearch groupsreadstaffbase.groups.updateUpdate a groupwrite
Pages6
staffbase.pages.createCreate pagewritestaffbase.pages.deleteDelete pagedestructivestaffbase.pages.getGet pagereadstaffbase.pages.listGet pagesreadstaffbase.pages.syncSearch latest page updatesreadstaffbase.pages.updateUpdate Pagewrite
Spaces6
staffbase.spaces.createCreate a spacewritestaffbase.spaces.deleteDelete a spacedestructivestaffbase.spaces.getGet a spacereadstaffbase.spaces.listList spacesreadstaffbase.spaces.searchSearch spacesreadstaffbase.spaces.updateUpdate a spacewrite
Campaigns5
staffbase.campaigns.createCreate a campaignwritestaffbase.campaigns.deleteDelete a campaigndestructivestaffbase.campaigns.getGet a campaignreadstaffbase.campaigns.listList campaignsreadstaffbase.campaigns.updateUpdate a campaignwrite
Media5
staffbase.media.deleteDelete a mediumdestructivestaffbase.media.getGet a single mediumreadstaffbase.media.listList media detailsreadstaffbase.media.publishMake media URLs publicwritestaffbase.media.searchSearch mediaread
Page templates5
staffbase.page_templates.createCreate new page templatewritestaffbase.page_templates.deleteDelete template commentdestructivestaffbase.page_templates.getFetch single templatereadstaffbase.page_templates.listGet list of page templatesreadstaffbase.page_templates.updateUpdate single templatewrite
Quicklinks5
staffbase.quicklinks.createCreate a new Quick Linkwritestaffbase.quicklinks.deleteRemove a Quick Linkdestructivestaffbase.quicklinks.getGet a Quick Linkreadstaffbase.quicklinks.listGet all Quick Linksreadstaffbase.quicklinks.updateUpdate a Quick Linkwrite
Search settings5
staffbase.search_settings.getGet search settingsreadstaffbase.search_settings.resetDelete search settingsdestructivestaffbase.search_settings.update_generalUpdate general settingswritestaffbase.search_settings.update_integration_sectionUpdate integration sectionswritestaffbase.search_settings.update_internal_sectionUpdate internal sectionswrite
Client4
staffbase.client.channel_postsList posts of a channel for the client viewreadstaffbase.client.news_page_channelsList channels of a news page for the client viewreadstaffbase.client.news_page_postsList posts of a news page for the client viewreadstaffbase.client.news_page_rightsFetch the rights for a news pageread
Campaign references3
staffbase.campaign_references.createCreate campaign referencewritestaffbase.campaign_references.deleteDelete campaign referencedestructivestaffbase.campaign_references.listList campaign referencesread
Channels3
staffbase.channels.getFetch a news channelreadstaffbase.channels.listList accessible news channelsreadstaffbase.channels.list_branchList manageable news channelsread
Group members3
staffbase.group_members.addUpdate memberswritestaffbase.group_members.removeUpdate membersdestructivestaffbase.group_members.searchGet membersread
Media library3
staffbase.media_library.add_fileAdd a filewritestaffbase.media_library.search_all_filesSearch all filesreadstaffbase.media_library.search_filesSearch filesread
Notifications3
staffbase.notifications.sendSend notificationswritestaffbase.notifications.send_for_installationSend a plugin notificationwritestaffbase.notifications.send_to_accessorsSend a notificationwrite
Chat conversations2
staffbase.chat_conversations.createCreate a conversationwritestaffbase.chat_conversations.deleteDelete a conversationdestructive
Comments2
staffbase.comments.getGet a comment by IDreadstaffbase.comments.listRequests a list of branch comments that are accessible for the API token.read
Installations1
staffbase.installations.searchSearch installationsread
Profiles1
staffbase.profiles.searchSearch profilesread
Tags1
staffbase.tags.listGet a list of user tag(s)read
Questions
The Staffbase MCP server, answered.
Is there a Staffbase MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 133 Staffbase actions across analytics, users, email performance and collections, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Staffbase.
What do I need to connect Staffbase?
Staffbase API token: in Staffbase Studio open Settings > API Access, create a token with the access level you need…. Plus your host. The free call account { op: "connections.requirements", service: "staffbase" } lists exactly what to paste.
Can an AI agent delete or change things in Staffbase?
Only if its key allows it, and only with an explicit confirmation. 17 Staffbase actions are destructive, including delete a user, delete a medium and delete a collection. 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 Staffbase API limit?
actionlake paces every call to the limits in the Staffbase service file: 100 calls a minute per connection. Repeated reads are answered from cache (80 Staffbase actions can be), which never reaches Staffbase.
What does a Staffbase action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (133 Staffbase actions page). Cache hits, searches, dry runs and calls Staffbase 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 Staffbase API does it cover?
The Staffbase (employee communications platform: intranet, employee app, news, pages and email) API Staffbase REST APIs (OpenAPI documents at developers.staffbase.com, fetched 2026-10-23) at your Staffbase instance's API base URL, which you enter when connecting (path /api). It is built from Staffbase's documentation as read on 23 October 2026. 133 actions in 25 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Staffbase 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 Staffbase 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 Staffbase today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.