Skip to content

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

  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 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
  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: "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
  1. Analytics

    15

    15 read · 0 write · 0 destructive

    Page click ranking · Page group ranking · Page time distribution · Page timeseries

  2. Users

    14

    7 read · 5 write · 2 destructive

    List users · Invite new users · Return a user · Update a user

  3. Email performance

    10

    10 read · 0 write · 0 destructive

    List emails · Retrieve click rate · Retrieve engagement data · Get email metadata

  4. Collections

    9

    4 read · 3 write · 2 destructive

    Create a collection · List collections · Update a collection · Get a collection

  5. Posts

    9

    5 read · 3 write · 1 destructive

    Create a new post · List all accessible news posts · Fetch acknowledgements · List posts of a news channel

  6. User imports

    7

    4 read · 2 write · 1 destructive

    List CSV imports · Get CSV import metadata · Get CSV import configuration · Get the status of a CSV import

  7. Groups

    6

    3 read · 2 write · 1 destructive

    List groups · Create a group · Get a group · Update a group

  8. Pages

    6

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

ActionWhat it doesEffectSame name in
staffbase.users.listList usersList users.readidentity.user.list474 connectors
staffbase.users.inviteInvite new usersInvite new users.writeidentity.user.create262 connectors
staffbase.users.deleteDelete a userDelete a user.destructiveidentity.user.delete253 connectors
staffbase.media.listList media detailsList media details.readcontent.file.list77 connectors
staffbase.groups.listList groupsList groups.readidentity.group.list262 connectors
staffbase.collections.listList collectionsList collections.readcontent.folder.list62 connectors
staffbase.collections.createCreate a collectionCreate a collection.writecontent.folder.create62 connectors
staffbase.groups.createCreate a groupCreate a group.writeidentity.group.create205 connectors
staffbase.media.getGet a single mediumGet a single medium.readcontent.file.get74 connectors
staffbase.spaces.listList spacesList spaces.readcontent.site.list16 connectors
staffbase.spaces.createCreate a spaceCreate a space.writecontent.site.create12 connectors
staffbase.pages.createCreate pageCreate page.writecontent.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.

  1. Readread

    Who has access in Staffbase? List every user and their role.

    callsstaffbase.users.list

  2. Writewrite

    Invite new users in Staffbase. Show me exactly what you will send before you save it.

    callsstaffbase.users.invite

Governance for Staffbase

Destructive actions wait for a yes.

17 Staffbase actions are destructive. These are all of them:

  • Delete a userstaffbase.users.delete
  • Delete a mediumstaffbase.media.delete
  • Delete a collectionstaffbase.collections.delete
  • Delete a groupstaffbase.groups.delete
  • Delete a spacestaffbase.spaces.delete
  • Delete pagestaffbase.pages.delete
  • Update membersstaffbase.group_members.remove
  • Log a user outstaffbase.users.revoke_sessions
  • Delete a campaignstaffbase.campaigns.delete
  • Delete a conversationstaffbase.chat_conversations.delete
  • Delete a news poststaffbase.posts.delete
  • Remove a Quick Linkstaffbase.quicklinks.delete
  • Delete a CSV importstaffbase.user_imports.delete
  • Delete template commentstaffbase.page_templates.delete
  • Delete search settingsstaffbase.search_settings.reset
  • Remove files from a collectionstaffbase.collections.remove_files
  • Delete campaign referencestaffbase.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.

dostaffbase.users.deleteconfirm_policy: human

Delete a user?

intent: the user asked me to delete a user

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

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

See pricing

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 timeseriesread
  • staffbase.analytics.contents_rankingsContent rankingread
  • staffbase.analytics.page_click_rankingPage click rankingread
  • staffbase.analytics.page_group_rankingPage group rankingread
  • staffbase.analytics.page_histogramPage time distributionread
  • staffbase.analytics.page_statsPage statsread
  • staffbase.analytics.page_timeseriesPage timeseriesread
  • staffbase.analytics.page_traffic_sourcesPage traffic sourcesread
  • staffbase.analytics.page_viewsPage viewsread
  • staffbase.analytics.pages_rankingPage rankingread
  • staffbase.analytics.pages_timeseriesPages timeseriesread
  • staffbase.analytics.posts_rankingsPost rankingread
  • staffbase.analytics.posts_timeseriesPost timeseriesread
  • staffbase.analytics.users_timeseriesUser timeseries with SCIMread
  • staffbase.analytics.users_timeseries_v2User timeseriesread
Users14
  • staffbase.users.create_legacyInvite new userswrite
  • staffbase.users.deleteDelete a userdestructive
  • staffbase.users.getReturn a userread
  • staffbase.users.inviteInvite new userswrite
  • staffbase.users.listList usersread
  • staffbase.users.list_groupsList groups of a userread
  • staffbase.users.list_visible_groupsList visible groups a userread
  • staffbase.users.revoke_sessionsLog a user outdestructive
  • staffbase.users.searchSearch usersread
  • staffbase.users.search_groupsGet a user's groupsread
  • staffbase.users.send_recoverySend recovery emailwrite
  • staffbase.users.syncList users by timestampread
  • staffbase.users.updateUpdate a userwrite
  • staffbase.users.update_legacyUpdate a userwrite
Email performance10
  • staffbase.email_performance.clicksRetrieve click rateread
  • staffbase.email_performance.engagement_trendRetrieve engagement dataread
  • staffbase.email_performance.get_emailGet email metadataread
  • staffbase.email_performance.list_emailsList emailsread
  • staffbase.email_performance.opensRetrieve open rateread
  • staffbase.email_performance.recipient_countRetrieve recipient countread
  • staffbase.email_performance.top_clicked_linksRetrieve top clicksread
  • staffbase.email_performance.total_activity_over_timeRetrieve total activityread
  • staffbase.email_performance.unique_activity_over_timeRetrieve unique activityread
  • staffbase.email_performance.user_groupsList user groupsread
Collections9
  • staffbase.collections.add_filesAdd files to a collectionwrite
  • staffbase.collections.createCreate a collectionwrite
  • staffbase.collections.deleteDelete a collectiondestructive
  • staffbase.collections.getGet a collectionread
  • staffbase.collections.listList collectionsread
  • staffbase.collections.list_allList all collectionsread
  • staffbase.collections.list_filesList files from a collectionread
  • staffbase.collections.remove_filesRemove files from a collectiondestructive
  • staffbase.collections.updateUpdate a collectionwrite
Posts9
  • staffbase.posts.createCreate a new postwrite
  • staffbase.posts.deleteDelete a news postdestructive
  • staffbase.posts.getFetch a news postread
  • staffbase.posts.listList all accessible news postsread
  • staffbase.posts.list_acknowledgementsFetch acknowledgementsread
  • staffbase.posts.list_in_channelList posts of a news channelread
  • staffbase.posts.resend_notificationsResend notificationswrite
  • staffbase.posts.searchSearch news postsread
  • staffbase.posts.updateUpdate a news postwrite
User imports7
  • staffbase.user_imports.deleteDelete a CSV importdestructive
  • staffbase.user_imports.getGet CSV import metadataread
  • staffbase.user_imports.get_configGet CSV import configurationread
  • staffbase.user_imports.get_statusGet the status of a CSV importread
  • staffbase.user_imports.listList CSV importsread
  • staffbase.user_imports.update_configUpdate CSV import configurationwrite
  • staffbase.user_imports.update_stateUpdate CSV import statuswrite
Groups6
  • staffbase.groups.createCreate a groupwrite
  • staffbase.groups.deleteDelete a groupdestructive
  • staffbase.groups.getGet a groupread
  • staffbase.groups.listList groupsread
  • staffbase.groups.searchSearch groupsread
  • staffbase.groups.updateUpdate a groupwrite
Pages6
  • staffbase.pages.createCreate pagewrite
  • staffbase.pages.deleteDelete pagedestructive
  • staffbase.pages.getGet pageread
  • staffbase.pages.listGet pagesread
  • staffbase.pages.syncSearch latest page updatesread
  • staffbase.pages.updateUpdate Pagewrite
Spaces6
  • staffbase.spaces.createCreate a spacewrite
  • staffbase.spaces.deleteDelete a spacedestructive
  • staffbase.spaces.getGet a spaceread
  • staffbase.spaces.listList spacesread
  • staffbase.spaces.searchSearch spacesread
  • staffbase.spaces.updateUpdate a spacewrite
Campaigns5
  • staffbase.campaigns.createCreate a campaignwrite
  • staffbase.campaigns.deleteDelete a campaigndestructive
  • staffbase.campaigns.getGet a campaignread
  • staffbase.campaigns.listList campaignsread
  • staffbase.campaigns.updateUpdate a campaignwrite
Media5
  • staffbase.media.deleteDelete a mediumdestructive
  • staffbase.media.getGet a single mediumread
  • staffbase.media.listList media detailsread
  • staffbase.media.publishMake media URLs publicwrite
  • staffbase.media.searchSearch mediaread
Page templates5
  • staffbase.page_templates.createCreate new page templatewrite
  • staffbase.page_templates.deleteDelete template commentdestructive
  • staffbase.page_templates.getFetch single templateread
  • staffbase.page_templates.listGet list of page templatesread
  • staffbase.page_templates.updateUpdate single templatewrite
Quicklinks5
  • staffbase.quicklinks.createCreate a new Quick Linkwrite
  • staffbase.quicklinks.deleteRemove a Quick Linkdestructive
  • staffbase.quicklinks.getGet a Quick Linkread
  • staffbase.quicklinks.listGet all Quick Linksread
  • staffbase.quicklinks.updateUpdate a Quick Linkwrite
Search settings5
  • staffbase.search_settings.getGet search settingsread
  • staffbase.search_settings.resetDelete search settingsdestructive
  • staffbase.search_settings.update_generalUpdate general settingswrite
  • staffbase.search_settings.update_integration_sectionUpdate integration sectionswrite
  • staffbase.search_settings.update_internal_sectionUpdate internal sectionswrite
Client4
  • staffbase.client.channel_postsList posts of a channel for the client viewread
  • staffbase.client.news_page_channelsList channels of a news page for the client viewread
  • staffbase.client.news_page_postsList posts of a news page for the client viewread
  • staffbase.client.news_page_rightsFetch the rights for a news pageread
Campaign references3
  • staffbase.campaign_references.createCreate campaign referencewrite
  • staffbase.campaign_references.deleteDelete campaign referencedestructive
  • staffbase.campaign_references.listList campaign referencesread
Channels3
  • staffbase.channels.getFetch a news channelread
  • staffbase.channels.listList accessible news channelsread
  • staffbase.channels.list_branchList manageable news channelsread
Group members3
  • staffbase.group_members.addUpdate memberswrite
  • staffbase.group_members.removeUpdate membersdestructive
  • staffbase.group_members.searchGet membersread
Media library3
  • staffbase.media_library.add_fileAdd a filewrite
  • staffbase.media_library.search_all_filesSearch all filesread
  • staffbase.media_library.search_filesSearch filesread
Notifications3
  • staffbase.notifications.sendSend notificationswrite
  • staffbase.notifications.send_for_installationSend a plugin notificationwrite
  • staffbase.notifications.send_to_accessorsSend a notificationwrite
Chat conversations2
  • staffbase.chat_conversations.createCreate a conversationwrite
  • staffbase.chat_conversations.deleteDelete a conversationdestructive
Comments2
  • staffbase.comments.getGet a comment by IDread
  • staffbase.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.