---
title: "Staffbase MCP server for AI agents - actionlake"
description: "Give Claude 133 Staffbase actions through one MCP server: analytics, users. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/staffbase
updated: 2026-10-23
---

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.

[Connect Staffbase free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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
```

- 133 actions in one signed file
- 80 read look, never change
- 36 write create and update
- 17 wait for a yes destructive, 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_token` Staffbase API token: in Staffbase Studio open Settings > API Access, create a token with the access level you need…
   - `host` Where 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 call
   check { 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 2026[developers.staffbase.com](https://developers.staffbase.com/openapi/analyticsapi.yaml) [developers.staffbase.com](https://developers.staffbase.com/openapi/auditlogapi.yaml) [developers.staffbase.com](https://developers.staffbase.com/openapi/campaignsapi.yml)

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

- **80** read look, never change
- **36** write create and update
- **17** destructive wait 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.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `staffbase.users.list` List users | List users. | read | `identity.user.list` 474 connectors |
| `staffbase.users.invite` Invite new users | Invite new users. | write | `identity.user.create` 262 connectors |
| `staffbase.users.delete` Delete a user | Delete a user. | destructive | `identity.user.delete` 253 connectors |
| `staffbase.media.list` List media details | List media details. | read | `content.file.list` 77 connectors |
| `staffbase.groups.list` List groups | List groups. | read | `identity.group.list` 262 connectors |
| `staffbase.collections.list` List collections | List collections. | read | `content.folder.list` 62 connectors |
| `staffbase.collections.create` Create a collection | Create a collection. | write | `content.folder.create` 62 connectors |
| `staffbase.groups.create` Create a group | Create a group. | write | `identity.group.create` 205 connectors |
| `staffbase.media.get` Get a single medium | Get a single medium. | read | `content.file.get` 74 connectors |
| `staffbase.spaces.list` List spaces | List spaces. | read | `content.site.list` 16 connectors |
| `staffbase.spaces.create` Create a space | Create a space. | write | `content.site.create` 12 connectors |
| `staffbase.pages.create` Create page | Create page. | write | `content.site_page.create` 9 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. Read read
   Who has access in Staffbase? List every user and their role.
   calls `staffbase.users.list`
2. Write write
   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.

do staffbase.users.delete confirm_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: "lead@example.com" },
    { match: "staffbase.media.delete", approver: "lead@example.com" },
    { match: "staffbase.collections.delete", approver: "lead@example.com" }
  ]
}
```

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.

- 1 upstream call per action all 133 Staffbase actions
- 133 actions page each page of a long list is one call
- 80 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Staffbase action.

133 actions by area: the id your agent calls, what it does, and its effect.

**Analytics 15**

- `staffbase.analytics.chats_timeseries` Chat timeseries read
- `staffbase.analytics.contents_rankings` Content ranking read
- `staffbase.analytics.page_click_ranking` Page click ranking read
- `staffbase.analytics.page_group_ranking` Page group ranking read
- `staffbase.analytics.page_histogram` Page time distribution read
- `staffbase.analytics.page_stats` Page stats read
- `staffbase.analytics.page_timeseries` Page timeseries read
- `staffbase.analytics.page_traffic_sources` Page traffic sources read
- `staffbase.analytics.page_views` Page views read
- `staffbase.analytics.pages_ranking` Page ranking read
- `staffbase.analytics.pages_timeseries` Pages timeseries read
- `staffbase.analytics.posts_rankings` Post ranking read
- `staffbase.analytics.posts_timeseries` Post timeseries read
- `staffbase.analytics.users_timeseries` User timeseries with SCIM read
- `staffbase.analytics.users_timeseries_v2` User timeseries read

**Users 14**

- `staffbase.users.create_legacy` Invite new users write
- `staffbase.users.delete` Delete a user destructive
- `staffbase.users.get` Return a user read
- `staffbase.users.invite` Invite new users write
- `staffbase.users.list` List users read
- `staffbase.users.list_groups` List groups of a user read
- `staffbase.users.list_visible_groups` List visible groups a user read
- `staffbase.users.revoke_sessions` Log a user out destructive
- `staffbase.users.search` Search users read
- `staffbase.users.search_groups` Get a user's groups read
- `staffbase.users.send_recovery` Send recovery email write
- `staffbase.users.sync` List users by timestamp read
- `staffbase.users.update` Update a user write
- `staffbase.users.update_legacy` Update a user write

**Email performance 10**

- `staffbase.email_performance.clicks` Retrieve click rate read
- `staffbase.email_performance.engagement_trend` Retrieve engagement data read
- `staffbase.email_performance.get_email` Get email metadata read
- `staffbase.email_performance.list_emails` List emails read
- `staffbase.email_performance.opens` Retrieve open rate read
- `staffbase.email_performance.recipient_count` Retrieve recipient count read
- `staffbase.email_performance.top_clicked_links` Retrieve top clicks read
- `staffbase.email_performance.total_activity_over_time` Retrieve total activity read
- `staffbase.email_performance.unique_activity_over_time` Retrieve unique activity read
- `staffbase.email_performance.user_groups` List user groups read

**Collections 9**

- `staffbase.collections.add_files` Add files to a collection write
- `staffbase.collections.create` Create a collection write
- `staffbase.collections.delete` Delete a collection destructive
- `staffbase.collections.get` Get a collection read
- `staffbase.collections.list` List collections read
- `staffbase.collections.list_all` List all collections read
- `staffbase.collections.list_files` List files from a collection read
- `staffbase.collections.remove_files` Remove files from a collection destructive
- `staffbase.collections.update` Update a collection write

**Posts 9**

- `staffbase.posts.create` Create a new post write
- `staffbase.posts.delete` Delete a news post destructive
- `staffbase.posts.get` Fetch a news post read
- `staffbase.posts.list` List all accessible news posts read
- `staffbase.posts.list_acknowledgements` Fetch acknowledgements read
- `staffbase.posts.list_in_channel` List posts of a news channel read
- `staffbase.posts.resend_notifications` Resend notifications write
- `staffbase.posts.search` Search news posts read
- `staffbase.posts.update` Update a news post write

**User imports 7**

- `staffbase.user_imports.delete` Delete a CSV import destructive
- `staffbase.user_imports.get` Get CSV import metadata read
- `staffbase.user_imports.get_config` Get CSV import configuration read
- `staffbase.user_imports.get_status` Get the status of a CSV import read
- `staffbase.user_imports.list` List CSV imports read
- `staffbase.user_imports.update_config` Update CSV import configuration write
- `staffbase.user_imports.update_state` Update CSV import status write

**Groups 6**

- `staffbase.groups.create` Create a group write
- `staffbase.groups.delete` Delete a group destructive
- `staffbase.groups.get` Get a group read
- `staffbase.groups.list` List groups read
- `staffbase.groups.search` Search groups read
- `staffbase.groups.update` Update a group write

**Pages 6**

- `staffbase.pages.create` Create page write
- `staffbase.pages.delete` Delete page destructive
- `staffbase.pages.get` Get page read
- `staffbase.pages.list` Get pages read
- `staffbase.pages.sync` Search latest page updates read
- `staffbase.pages.update` Update Page write

**Spaces 6**

- `staffbase.spaces.create` Create a space write
- `staffbase.spaces.delete` Delete a space destructive
- `staffbase.spaces.get` Get a space read
- `staffbase.spaces.list` List spaces read
- `staffbase.spaces.search` Search spaces read
- `staffbase.spaces.update` Update a space write

**Campaigns 5**

- `staffbase.campaigns.create` Create a campaign write
- `staffbase.campaigns.delete` Delete a campaign destructive
- `staffbase.campaigns.get` Get a campaign read
- `staffbase.campaigns.list` List campaigns read
- `staffbase.campaigns.update` Update a campaign write

**Media 5**

- `staffbase.media.delete` Delete a medium destructive
- `staffbase.media.get` Get a single medium read
- `staffbase.media.list` List media details read
- `staffbase.media.publish` Make media URLs public write
- `staffbase.media.search` Search media read

**Page templates 5**

- `staffbase.page_templates.create` Create new page template write
- `staffbase.page_templates.delete` Delete template comment destructive
- `staffbase.page_templates.get` Fetch single template read
- `staffbase.page_templates.list` Get list of page templates read
- `staffbase.page_templates.update` Update single template write

**Quicklinks 5**

- `staffbase.quicklinks.create` Create a new Quick Link write
- `staffbase.quicklinks.delete` Remove a Quick Link destructive
- `staffbase.quicklinks.get` Get a Quick Link read
- `staffbase.quicklinks.list` Get all Quick Links read
- `staffbase.quicklinks.update` Update a Quick Link write

**Search settings 5**

- `staffbase.search_settings.get` Get search settings read
- `staffbase.search_settings.reset` Delete search settings destructive
- `staffbase.search_settings.update_general` Update general settings write
- `staffbase.search_settings.update_integration_section` Update integration sections write
- `staffbase.search_settings.update_internal_section` Update internal sections write

**Client 4**

- `staffbase.client.channel_posts` List posts of a channel for the client view read
- `staffbase.client.news_page_channels` List channels of a news page for the client view read
- `staffbase.client.news_page_posts` List posts of a news page for the client view read
- `staffbase.client.news_page_rights` Fetch the rights for a news page read

**Campaign references 3**

- `staffbase.campaign_references.create` Create campaign reference write
- `staffbase.campaign_references.delete` Delete campaign reference destructive
- `staffbase.campaign_references.list` List campaign references read

**Channels 3**

- `staffbase.channels.get` Fetch a news channel read
- `staffbase.channels.list` List accessible news channels read
- `staffbase.channels.list_branch` List manageable news channels read

**Group members 3**

- `staffbase.group_members.add` Update members write
- `staffbase.group_members.remove` Update members destructive
- `staffbase.group_members.search` Get members read

**Media library 3**

- `staffbase.media_library.add_file` Add a file write
- `staffbase.media_library.search_all_files` Search all files read
- `staffbase.media_library.search_files` Search files read

**Notifications 3**

- `staffbase.notifications.send` Send notifications write
- `staffbase.notifications.send_for_installation` Send a plugin notification write
- `staffbase.notifications.send_to_accessors` Send a notification write

**Chat conversations 2**

- `staffbase.chat_conversations.create` Create a conversation write
- `staffbase.chat_conversations.delete` Delete a conversation destructive

**Comments 2**

- `staffbase.comments.get` Get a comment by ID read
- `staffbase.comments.list` Requests a list of branch comments that are accessible for the API token. read

**Installations 1**

- `staffbase.installations.search` Search installations read

**Profiles 1**

- `staffbase.profiles.search` Search profiles read

**Tags 1**

- `staffbase.tags.list` Get 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.

## More connectors like Staffbase

Shares the most action names with

- [Aircall 16](https://actionlake.com/connectors/aircall)
- [Salesforce Marketing Cloud Engagement 15](https://actionlake.com/connectors/salesforce-marketing-cloud-engagement)
- [Cisco Webex 12](https://actionlake.com/connectors/cisco-webex)
- [Genesys Cloud CX 12](https://actionlake.com/connectors/genesys-cloud-cx)
- [Avaya Experience Platform 11](https://actionlake.com/connectors/avaya-experience-platform)
- [Appwrite Cloud 11](https://actionlake.com/connectors/appwrite-cloud)

Joins with, on shared entities

- [HaloPSA 1](https://actionlake.com/connectors/halopsa)
- [Gusto 1](https://actionlake.com/connectors/gusto)
- [Microsoft 365 Users 1](https://actionlake.com/connectors/microsoft-365-users)
- [NinjaOne 1](https://actionlake.com/connectors/ninjaone)
- [Salesforce Sales Cloud 1](https://actionlake.com/connectors/salesforce-sales-cloud)
- [Xero 1](https://actionlake.com/connectors/xero)

Browse

- [All Email & messaging connectors](https://actionlake.com/connectors/category/email-and-messaging)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Staffbase; the name is the vendor's own. Counts are from the Staffbase service file, version 1.0.0.

## Give your agent Staffbase today.

[Connect Staffbase free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/staffbase
More: https://actionlake.com/llms.txt
