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

Connectors · Identity & security

# WorkOS MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to WorkOS and the rest of your systems. It gives your agent 259 WorkOS actions (107 reads, 98 writes and 54 that wait for a confirmation) and holds the WorkOS credential itself, so the agent never does. It paces WorkOS's limits and records every call.

[Connect WorkOS 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: "workos.users.list",
  intent: "check which WorkOS account is connected"
}
# List users · read · 1 upstream call
```

- 259 actions in one signed file
- 107 read look, never change
- 98 write create and update
- 54 wait for a yes destructive, confirmed first

Set up

## Connect WorkOS 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 WorkOS.
   Bearer token. 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_key` WorkOS secret API key (starts with sk_)
   ```
   account { op: "connections.requirements", service: "workos" }
   # 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: "workos.users.list" }
   # list users · read · 1 upstream call
   check { action: "workos.users.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

WorkOS at a glance

**Sign-in**

Bearer token. 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_key`

**Limits we pace to**

6,000 calls a minute, per connection

**API covered**

WorkOS API (OpenAPI 3.1.1, workos/openapi-spec)`api.workos.com`

**Built from**

WorkOS's documentation, read 23 October 2026[OpenAPI spec (GitHub)](https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml) [workos.com](https://workos.com/docs/reference)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

86 of 107 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

4, so ask can line WorkOS up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in WorkOS.

259 actions in 75 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **107** read look, never change
- **98** write create and update
- **54** destructive wait for a confirmation

1. ### Data integrations
   15
   3 read · 10 write · 2 destructive
   Create a data integration · Create another API key connected account · Create another client credentials connected account · Get authorization URL
2. ### Users
   14
   5 read · 7 write · 2 destructive
   List users · Create a user · Get a user · Update a user
3. ### Authorization resources
   10
   5 read · 3 write · 2 destructive
   Create an authorization resource · List resources · List organization memberships for resource · List memberships for a resource by external ID
4. ### Vault objects
   8
   5 read · 2 write · 1 destructive
   List objects · Create an object · Read an object by ID · Update an object
5. ### Agent blueprints
   7
   3 read · 3 write · 1 destructive
   Create an agent blueprint · List agent blueprints · Mint an agent token · Validate an agent token
6. ### Invitations
   7
   3 read · 3 write · 1 destructive
   Send an invitation · List invitations · Get an invitation · Resend an invitation
7. ### Organization memberships
   7
   2 read · 3 write · 2 destructive
   Create an organization membership · List organization memberships · Get an organization membership · Reactivate an organization membership
8. ### Organizations
   7
   4 read · 2 write · 1 destructive
   List Organizations · Create an Organization · Get an Organization · Update an Organization

**67 more areas · 184 actions**

- Authorization group role assignments **6**
- Authorization role assignments **6**
- Applications **5**
- Authorization organization roles **5**
- Authorization permissions **5**
- Connections **5**
- Groups **5**
- It contacts **5**
- Organization connected accounts **5**
- User connected accounts **5**
- Agents **4**
- Auth factors **4**
- Authorization **4**
- Authorization roles **4**
- Directories **4**
- Feature flags **4**
- Organization domains **4**
- Radar **4**
- Waitlists **4**
- Webhook endpoints **4**
- Agent instance sessions **3**
- Agent instances **3**
- API keys **3**
- Application credentials **3**
- Authkit oauth resources **3**
- Authorization organization role permissions **3**
- Group memberships **3**
- Redirect uris **3**
- Saml idp signing certificates **3**
- Saml SP encryption certificates **3**
- Saml SP signing certificates **3**
- Vault keys **3**
- Waitlist entries **3**
- Audit log exports **2**
- Audit log schemas **2**
- Audit logs retention **2**
- Authorization role permissions **2**
- Authorized applications **2**
- Cors origins **2**
- Directory groups **2**
- Directory users **2**
- Flag targets **2**
- JWT templates **2**
- Magic auth **2**
- Organization API keys **2**
- Organization data integration configurations **2**
- Portal sessions **2**
- Radar challenges **2**
- SSO **2**
- Teams **2**
- User API keys **2**
- User auth factors **2**
- Audit log actions **1**
- Audit log events **1**
- Auth challenges **1**
- Authkit **1**
- Authkit external auth **1**
- Client API tokens **1**
- Events **1**
- Organization authorized applications **1**
- Organization feature flags **1**
- Organization membership groups **1**
- Sessions **1**
- User feature flags **1**
- User identities **1**
- User sessions **1**
- Widgets **1**

Top actions

## The WorkOS API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 53 of WorkOS's 53 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `workos.users.list` List users | List users. | read | `identity.user.list` 474 connectors |
| `workos.groups.list` List groups | List groups. | read | `identity.group.list` 262 connectors |
| `workos.authorization_roles.list` List environment roles | List environment roles. | read | `identity.role.list` 184 connectors |
| `workos.users.create` Create a user | Create a user. | write | `identity.user.create` 262 connectors |
| `workos.groups.create` Create a group | Create a group. | write | `identity.group.create` 205 connectors |
| `workos.authorization_roles.create` Create an environment role | Create an environment role. | write | `identity.role.create` 105 connectors |
| `workos.organizations.list` List Organizations | List Organizations. | read | `crm.company.list` 162 connectors |
| `workos.users.delete` Delete a user | Delete a user. | destructive | `identity.user.delete` 253 connectors |
| `workos.group_memberships.list_members` List Group members | List Group members. | read | `identity.group_member.list` 103 connectors |
| `workos.organization_api_keys.create` Create an API key for an organization | Create an API key for an organization. | write | `identity.api_key.create` 100 connectors |
| `workos.organizations.create` Create an Organization | Create an Organization. | write | `crm.company.create` 142 connectors |
| `workos.invitations.create` Send an invitation | Send an invitation. | write | `identity.invitation.create` 41 connectors |

Try it

## Prompts to paste into Claude.

Each one names the WorkOS actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   List the companies in WorkOS and flag likely duplicates by name or domain.
   calls `workos.organizations.list`
2. Write write
   Create a user in WorkOS. Show me exactly what you will send before you save it.
   calls `workos.users.create`
3. Across systems read
   Which WorkOS companies have invoices in ConnectWise PSA, and how many each?
   calls `workos.organizations.list` `connectwise_manage.invoices.list`

Across your systems

## WorkOS, joined to the rest of your business.

One `ask` fetches from WorkOS and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- Which WorkOS companies have invoices in ConnectWise PSA, and how many each?
  `workos.organizations.list` + `connectwise_manage.invoices.list`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- Which WorkOS companies have invoices in NetSuite, and how many each?
  `workos.organizations.list` + `netsuite.views.invoices`, on `crm.company` · [NetSuite](https://actionlake.com/connectors/netsuite)

Also mapped by other connectors `identity.user` **517** `identity.group` **239** `crm.company` **227** `identity.role` **107**

ask

```
ask {
  intent: "which WorkOS companies have invoices in ConnectWise PSA, and how many each",
  steps: [
    { action: "workos.organizations.list", as: "co", input: {}, limit: 100, max_pages: 5 },
    { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "co",
        right: "inv",
        on: "crm.company",
        group_by: "co.name",
        select: ["co.name", "count(inv.id) as invoices"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for WorkOS

## Destructive actions wait for a yes.

54 WorkOS actions are destructive. The first 10:

- Delete a user `workos.users.delete`
- Delete a group `workos.groups.delete`
- Delete an API key `workos.api_keys.delete`
- Delete an Organization `workos.organizations.delete`
- Delete a Connect Application `workos.applications.delete`
- Delete an Organization Domain `workos.organization_domains.delete`
- Delete an object `workos.vault_objects.delete`
- Delete a Webhook Endpoint `workos.webhook_endpoints.delete`
- Expire an API key `workos.api_keys.expire`
- Revoke Session `workos.sessions.revoke`

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 workos.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 _workos-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "workos-agent",
  allowed_actions: ["workos.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "workos.users.delete", approver: "lead@example.com" },
    { match: "workos.groups.delete", approver: "lead@example.com" },
    { match: "workos.api_keys.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to WorkOS only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What WorkOS costs on actionlake.

Every WorkOS action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call WorkOS 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 259 WorkOS actions
- 259 actions page each page of a long list is one call
- 86 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 WorkOS action.

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

**Data integrations 15**

- `workos.data_integrations.create` Create a data integration write
- `workos.data_integrations.create_api_key_connection` Create another API key connected account write
- `workos.data_integrations.create_client_credentials_connection` Create another client credentials connected account write
- `workos.data_integrations.delete` Delete a data integration destructive
- `workos.data_integrations.delete_organization` Delete an organization-owned data integration destructive
- `workos.data_integrations.get` Get a data integration read
- `workos.data_integrations.get_authorize_url` Get authorization URL write
- `workos.data_integrations.get_organization` Get an organization-owned data integration read
- `workos.data_integrations.get_user_token` Get an access token for a connected account write
- `workos.data_integrations.list` List data integrations read
- `workos.data_integrations.update` Update a data integration write
- `workos.data_integrations.update_organization` Update an organization-owned data integration write
- `workos.data_integrations.upsert_api_key_connection` Upsert an API key for a connected account write
- `workos.data_integrations.upsert_client_credentials_connection` Upsert client credentials for a connected account write
- `workos.data_integrations.vend_credentials` Vend credentials for a connected account write

**Users 14**

- `workos.users.confirm_email_change` Confirm email change write
- `workos.users.create` Create a user write
- `workos.users.create_password_reset` Create a password reset token write
- `workos.users.delete` Delete a user destructive
- `workos.users.get` Get a user read
- `workos.users.get_by_external_id` Get a user by external ID read
- `workos.users.get_email_verification` Get an email verification code read
- `workos.users.get_password_reset` Get a password reset token read
- `workos.users.list` List users read
- `workos.users.reset_password` Reset the password destructive
- `workos.users.send_email_change` Send email change code write
- `workos.users.send_verification_email` Send verification email write
- `workos.users.update` Update a user write
- `workos.users.verify_email` Verify email write

**Authorization resources 10**

- `workos.authorization_resources.create` Create an authorization resource write
- `workos.authorization_resources.delete` Delete an authorization resource destructive
- `workos.authorization_resources.delete_by_external_id` Delete an authorization resource by external ID destructive
- `workos.authorization_resources.get` Get a resource read
- `workos.authorization_resources.get_by_external_id` Get a resource by external ID read
- `workos.authorization_resources.list` List resources read
- `workos.authorization_resources.list_organization_memberships` List organization memberships for resource read
- `workos.authorization_resources.list_organization_memberships_by_external_id` List memberships for a resource by external ID read
- `workos.authorization_resources.update` Update a resource write
- `workos.authorization_resources.update_by_external_id` Update a resource by external ID write

**Vault objects 8**

- `workos.vault_objects.create` Create an object write
- `workos.vault_objects.delete` Delete an object destructive
- `workos.vault_objects.get` Read an object by ID read
- `workos.vault_objects.get_by_name` Read an object by name read
- `workos.vault_objects.get_metadata` Describe an object read
- `workos.vault_objects.list` List objects read
- `workos.vault_objects.list_versions` List object versions read
- `workos.vault_objects.update` Update an object write

**Agent blueprints 7**

- `workos.agent_blueprints.create` Create an agent blueprint write
- `workos.agent_blueprints.delete` Delete an agent blueprint destructive
- `workos.agent_blueprints.get` Get an agent blueprint read
- `workos.agent_blueprints.list` List agent blueprints read
- `workos.agent_blueprints.mint_token` Mint an agent token write
- `workos.agent_blueprints.update` Update an agent blueprint write
- `workos.agent_blueprints.validate_token` Validate an agent token read

**Invitations 7**

- `workos.invitations.accept` Accept an invitation write
- `workos.invitations.create` Send an invitation write
- `workos.invitations.get` Get an invitation read
- `workos.invitations.get_by_token` Find an invitation by token read
- `workos.invitations.list` List invitations read
- `workos.invitations.resend` Resend an invitation write
- `workos.invitations.revoke` Revoke an invitation destructive

**Organization memberships 7**

- `workos.organization_memberships.create` Create an organization membership write
- `workos.organization_memberships.deactivate` Deactivate an organization membership destructive
- `workos.organization_memberships.delete` Delete an organization membership destructive
- `workos.organization_memberships.get` Get an organization membership read
- `workos.organization_memberships.list` List organization memberships read
- `workos.organization_memberships.reactivate` Reactivate an organization membership write
- `workos.organization_memberships.update` Update an organization membership write

**Organizations 7**

- `workos.organizations.create` Create an Organization write
- `workos.organizations.delete` Delete an Organization destructive
- `workos.organizations.get` Get an Organization read
- `workos.organizations.get_audit_log_configuration` Get Audit Log Configuration read
- `workos.organizations.get_by_external_id` Get an Organization by External ID read
- `workos.organizations.list` List Organizations read
- `workos.organizations.update` Update an Organization write

**Authorization group role assignments 6**

- `workos.authorization_group_role_assignments.create` Assign a role to a group destructive
- `workos.authorization_group_role_assignments.get` Get a group role assignment read
- `workos.authorization_group_role_assignments.list` List role assignments for a group read
- `workos.authorization_group_role_assignments.remove` Remove a group role assignment destructive
- `workos.authorization_group_role_assignments.remove_by_criteria` Remove group role assignments by criteria destructive
- `workos.authorization_group_role_assignments.replace` Replace all role assignments for a group write

**Authorization role assignments 6**

- `workos.authorization_role_assignments.assign` Assign a role destructive
- `workos.authorization_role_assignments.list` List role assignments read
- `workos.authorization_role_assignments.list_for_resource` List role assignments for a resource read
- `workos.authorization_role_assignments.list_for_resource_by_external_id` List role assignments for a resource by external ID read
- `workos.authorization_role_assignments.remove` Remove a role assignment by ID destructive
- `workos.authorization_role_assignments.remove_by_criteria` Remove a role assignment destructive

**Applications 5**

- `workos.applications.create` Create a Connect Application write
- `workos.applications.delete` Delete a Connect Application destructive
- `workos.applications.get` Get a Connect Application read
- `workos.applications.list` List Connect Applications read
- `workos.applications.update` Update a Connect Application write

**Authorization organization roles 5**

- `workos.authorization_organization_roles.create` Create a custom role write
- `workos.authorization_organization_roles.delete` Delete a custom role destructive
- `workos.authorization_organization_roles.get` Get a custom role read
- `workos.authorization_organization_roles.list` List custom roles read
- `workos.authorization_organization_roles.update` Update a custom role write

**Authorization permissions 5**

- `workos.authorization_permissions.create` Create a permission write
- `workos.authorization_permissions.delete` Delete a permission destructive
- `workos.authorization_permissions.get` Get a permission read
- `workos.authorization_permissions.list` List permissions read
- `workos.authorization_permissions.update` Update a permission write

**Connections 5**

- `workos.connections.create` Create a Connection write
- `workos.connections.delete` Delete a Connection destructive
- `workos.connections.get` Get a Connection read
- `workos.connections.list` List Connections read
- `workos.connections.update` Update a Connection write

**Groups 5**

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

**It contacts 5**

- `workos.it_contacts.create` Create an IT contact write
- `workos.it_contacts.delete` Delete an IT contact destructive
- `workos.it_contacts.invite` Invite an IT contact write
- `workos.it_contacts.list` List IT contacts read
- `workos.it_contacts.revoke` Revoke an IT contact's invitation destructive

**Organization connected accounts 5**

- `workos.organization_connected_accounts.create` Import an organization connected account write
- `workos.organization_connected_accounts.delete` Delete an organization connected account destructive
- `workos.organization_connected_accounts.get` Get an organization connected account read
- `workos.organization_connected_accounts.list_providers` List providers for an organization read
- `workos.organization_connected_accounts.update` Update an organization connected account write

**User connected accounts 5**

- `workos.user_connected_accounts.create` Import a connected account write
- `workos.user_connected_accounts.delete` Delete a connected account destructive
- `workos.user_connected_accounts.get` Get a connected account read
- `workos.user_connected_accounts.list_providers` List providers for a user read
- `workos.user_connected_accounts.update` Update a connected account write

**Agents 4**

- `workos.agents.get_registration` Get an agent registration read
- `workos.agents.link_claim_attempt` Link a claim attempt to an external user write
- `workos.agents.revoke_registration` Revoke an agent registration destructive
- `workos.agents.validate_credential` Validate an agent credential read

**Auth factors 4**

- `workos.auth_factors.challenge` Challenge Factor write
- `workos.auth_factors.create` Enroll Factor write
- `workos.auth_factors.delete` Delete Factor destructive
- `workos.auth_factors.get` Get Factor read

**Authorization 4**

- `workos.authorization.check` Check authorization read
- `workos.authorization.list_effective_permissions` List effective permissions for an organization membership on a resource read
- `workos.authorization.list_effective_permissions_by_external_id` List effective permissions for an organization membership on a resource by external ID read
- `workos.authorization.list_resources_for_membership` List resources for organization membership read

**Authorization roles 4**

- `workos.authorization_roles.create` Create an environment role write
- `workos.authorization_roles.get` Get an environment role read
- `workos.authorization_roles.list` List environment roles read
- `workos.authorization_roles.update` Update an environment role write

**Directories 4**

- `workos.directories.delete` Delete a Directory destructive
- `workos.directories.get` Get a Directory read
- `workos.directories.list` List Directories read
- `workos.directories.sync` Sync a Directory write

**Feature flags 4**

- `workos.feature_flags.disable` Disable a feature flag write
- `workos.feature_flags.enable` Enable a feature flag write
- `workos.feature_flags.get` Get a feature flag read
- `workos.feature_flags.list` List feature flags read

**Organization domains 4**

- `workos.organization_domains.create` Create an Organization Domain write
- `workos.organization_domains.delete` Delete an Organization Domain destructive
- `workos.organization_domains.get` Get an Organization Domain read
- `workos.organization_domains.verify` Verify an Organization Domain write

**Radar 4**

- `workos.radar.add_list_entry` Add an entry to a Radar list write
- `workos.radar.assess` Create an attempt write
- `workos.radar.remove_list_entry` Remove an entry from a Radar list destructive
- `workos.radar.update_attempt` Update a Radar attempt write

**Waitlists 4**

- `workos.waitlists.create_entry` Create a waitlist entry write
- `workos.waitlists.get` Get a waitlist read
- `workos.waitlists.list` List waitlists read
- `workos.waitlists.list_entries` List waitlist entries read

**Webhook endpoints 4**

- `workos.webhook_endpoints.create` Create a Webhook Endpoint write
- `workos.webhook_endpoints.delete` Delete a Webhook Endpoint destructive
- `workos.webhook_endpoints.list` List Webhook Endpoints read
- `workos.webhook_endpoints.update` Update a Webhook Endpoint write

**Agent instance sessions 3**

- `workos.agent_instance_sessions.get` Get an agent instance session read
- `workos.agent_instance_sessions.list` List agent instance sessions read
- `workos.agent_instance_sessions.revoke` Revoke an agent instance session destructive

**Agent instances 3**

- `workos.agent_instances.delete` Delete an agent instance destructive
- `workos.agent_instances.get` Get an agent instance read
- `workos.agent_instances.list` List agent instances read

**API keys 3**

- `workos.api_keys.delete` Delete an API key destructive
- `workos.api_keys.expire` Expire an API key destructive
- `workos.api_keys.validate` Validate API key read

**Application credentials 3**

- `workos.application_credentials.create` Create a new client secret for a Connect Application write
- `workos.application_credentials.delete` Delete a Client Secret destructive
- `workos.application_credentials.list` List Client Secrets for a Connect Application read

**Authkit oauth resources 3**

- `workos.authkit_oauth_resources.create` Create an MCP resource indicator write
- `workos.authkit_oauth_resources.delete` Delete an MCP resource indicator destructive
- `workos.authkit_oauth_resources.list` List MCP resource indicators read

**Authorization organization role permissions 3**

- `workos.authorization_organization_role_permissions.add_permission` Add a permission to a custom role destructive
- `workos.authorization_organization_role_permissions.remove_permission` Remove a permission from a custom role destructive
- `workos.authorization_organization_role_permissions.set_permissions` Set permissions for a custom role destructive

**Group memberships 3**

- `workos.group_memberships.add_member` Add a member to a Group write
- `workos.group_memberships.list_members` List Group members read
- `workos.group_memberships.remove_member` Remove a member from a Group destructive

**Redirect uris 3**

- `workos.redirect_uris.create` Create a redirect URI write
- `workos.redirect_uris.delete` Delete a redirect URI destructive
- `workos.redirect_uris.list` List redirect URIs read

**Saml idp signing certificates 3**

- `workos.saml_idp_signing_certificates.create` Create an IdP signing certificate write
- `workos.saml_idp_signing_certificates.delete` Delete an IdP signing certificate destructive
- `workos.saml_idp_signing_certificates.list` List IdP signing certificates read

**Saml SP encryption certificates 3**

- `workos.saml_sp_encryption_certificates.create` Create an SP encryption certificate write
- `workos.saml_sp_encryption_certificates.delete` Delete an SP encryption certificate destructive
- `workos.saml_sp_encryption_certificates.list` List SP encryption certificates read

**Saml SP signing certificates 3**

- `workos.saml_sp_signing_certificates.create` Create an SP signing certificate write
- `workos.saml_sp_signing_certificates.delete` Delete the SP signing certificate destructive
- `workos.saml_sp_signing_certificates.get` Get the SP signing certificate read

**Vault keys 3**

- `workos.vault_keys.create_data_key` Create a data key write
- `workos.vault_keys.decrypt` Decrypt a data key read
- `workos.vault_keys.rekey` Re-encrypt a data key write

**Waitlist entries 3**

- `workos.waitlist_entries.approve` Approve a waitlist entry write
- `workos.waitlist_entries.delete` Delete a waitlist entry destructive
- `workos.waitlist_entries.deny` Deny a waitlist entry write

**Audit log exports 2**

- `workos.audit_log_exports.create` Create Export write
- `workos.audit_log_exports.get` Get Export read

**Audit log schemas 2**

- `workos.audit_log_schemas.create` Create Schema write
- `workos.audit_log_schemas.list` List Schemas read

**Audit logs retention 2**

- `workos.audit_logs_retention.get` Get Retention read
- `workos.audit_logs_retention.update` Set Retention write

**Authorization role permissions 2**

- `workos.authorization_role_permissions.add_permission` Add a permission to an environment role destructive
- `workos.authorization_role_permissions.set_permissions` Set permissions for an environment role destructive

**Authorized applications 2**

- `workos.authorized_applications.delete` Delete an authorized application destructive
- `workos.authorized_applications.list` List authorized applications read

**Cors origins 2**

- `workos.cors_origins.create` Create a CORS origin write
- `workos.cors_origins.list` List CORS origins read

**Directory groups 2**

- `workos.directory_groups.get` Get a Directory Group read
- `workos.directory_groups.list` List Directory Groups read

**Directory users 2**

- `workos.directory_users.get` Get a Directory User read
- `workos.directory_users.list` List Directory Users read

**Flag targets 2**

- `workos.flag_targets.create` Add a feature flag target write
- `workos.flag_targets.delete` Remove a feature flag target destructive

**JWT templates 2**

- `workos.jwt_templates.get` Get JWT template read
- `workos.jwt_templates.update` Update JWT template write

**Magic auth 2**

- `workos.magic_auth.create` Create a Magic Auth code write
- `workos.magic_auth.get` Get Magic Auth code details read

**Organization API keys 2**

- `workos.organization_api_keys.create` Create an API key for an organization write
- `workos.organization_api_keys.list` List API keys for an organization read

**Organization data integration configurations 2**

- `workos.organization_data_integration_configurations.list` List providers for an organization read
- `workos.organization_data_integration_configurations.update` Configure a provider for an organization write

**Portal sessions 2**

- `workos.portal_sessions.create` Generate a Portal Link write
- `workos.portal_sessions.revoke_link` Revoke a Portal Link destructive

**Radar challenges 2**

- `workos.radar_challenges.create` Send a Radar SMS challenge write
- `workos.radar_challenges.get` Get Radar Challenge details read

**SSO 2**

- `workos.sso.get_jwks` Get JWKS read
- `workos.sso.logout_authorize` Logout Authorize write

**Teams 2**

- `workos.teams.create` Create a team write
- `workos.teams.get` Get a team read

**User API keys 2**

- `workos.user_api_keys.create` Create an API key for a user write
- `workos.user_api_keys.list` List API keys for a user read

**User auth factors 2**

- `workos.user_auth_factors.create` Enroll an authentication factor write
- `workos.user_auth_factors.list` List authentication factors read

**Audit log actions 1**

- `workos.audit_log_actions.list` List Actions read

**Audit log events 1**

- `workos.audit_log_events.create` Create Event write

**Auth challenges 1**

- `workos.auth_challenges.verify` Verify Challenge write

**Authkit 1**

- `workos.authkit.authorize_device` Get device authorization URL write

**Authkit external auth 1**

- `workos.authkit_external_auth.complete_login` Complete external authentication write

**Client API tokens 1**

- `workos.client_api_tokens.create_token` Generate a Client API token write

**Events 1**

- `workos.events.list` List events read

**Organization authorized applications 1**

- `workos.organization_authorized_applications.list` List authorized applications read

**Organization feature flags 1**

- `workos.organization_feature_flags.list` List enabled feature flags for an organization read

**Organization membership groups 1**

- `workos.organization_membership_groups.list` List groups read

**Sessions 1**

- `workos.sessions.revoke` Revoke Session destructive

**User feature flags 1**

- `workos.user_feature_flags.list` List enabled feature flags for a user read

**User identities 1**

- `workos.user_identities.list` Get user identities read

**User sessions 1**

- `workos.user_sessions.list` List sessions read

**Widgets 1**

- `workos.widgets.create_token` Generate a widget token write

Questions

## The WorkOS MCP server, answered.

**Is there a WorkOS MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 259 WorkOS actions across data integrations, users, authorization resources and vault objects, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by WorkOS.

**What do I need to connect WorkOS?**

WorkOS secret API key (starts with sk_). The free call account { op: "connections.requirements", service: "workos" } lists exactly what to paste.

**Can an AI agent delete or change things in WorkOS?**

Only if its key allows it, and only with an explicit confirmation. 54 WorkOS actions are destructive, including delete a user, delete a group and delete an API key. 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 WorkOS API limit?**

actionlake paces every call to the limits in the WorkOS service file: 6,000 calls a minute per connection. Repeated reads are answered from cache (86 WorkOS actions can be), which never reaches WorkOS.

**What does a WorkOS action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (259 WorkOS actions page). Cache hits, searches, dry runs and calls WorkOS 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 WorkOS API does it cover?**

The WorkOS API (OpenAPI 3.1.1, workos/openapi-spec) at api.workos.com. It is built from WorkOS's documentation as read on 23 October 2026. 259 actions in 75 areas, each one in the signed service file (version 1.0.0).

**Can I combine WorkOS with my other systems?**

Yes. ask joins WorkOS to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. WorkOS maps crm.company, which 227 other connectors also map.

**Does actionlake keep my WorkOS 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 WorkOS 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 WorkOS

Shares the most action names with

- [Clerk 30](https://actionlake.com/connectors/clerk)
- [Auth0 Management API 25](https://actionlake.com/connectors/auth0-management-api)
- [Keycloak Admin REST API 23](https://actionlake.com/connectors/keycloak-admin-rest-api)
- [FusionAuth 23](https://actionlake.com/connectors/fusionauth)
- [OneLogin 20](https://actionlake.com/connectors/onelogin)
- [SailPoint Identity Security Cloud 16](https://actionlake.com/connectors/sailpoint-identity-security-cloud)

Joins with, on shared entities

- [HaloPSA 4](https://actionlake.com/connectors/halopsa)
- [Genesys Cloud CX 4](https://actionlake.com/connectors/genesys-cloud-cx)
- [Commvault Cloud 4](https://actionlake.com/connectors/commvault-cloud)
- [Microsoft Dynamics 365 4](https://actionlake.com/connectors/microsoft-dynamics-365)
- [Sophos Central 4](https://actionlake.com/connectors/sophos-central)
- [Outreach 4](https://actionlake.com/connectors/outreach)

Browse

- [All Identity & security connectors](https://actionlake.com/connectors/category/identity-and-security)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

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

## Give your agent WorkOS today.

[Connect WorkOS 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/workos
More: https://actionlake.com/llms.txt
