---
title: "Preset MCP server for AI agents - actionlake"
description: "Give Claude 240 Preset actions through one MCP server: databases, dashboards, charts. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/preset
updated: 2026-10-23
---

Connectors · Observability & analytics

# Preset MCP server for AI agents.

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

[Connect Preset 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: "preset.datasets.list",
  intent: "check which Preset account is connected"
}
# Get a list of datasets · read · 1 upstream call
```

- 240 actions in one signed file
- 127 read look, never change
- 71 write create and update
- 42 wait for a yes destructive, confirmed first

Set up

## Connect Preset 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 Preset.
   Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `api_token` Preset API token
   - `api_secret` Preset API secret, shown once beside the token. actionlake exchanges the pair at https://api.app.preset.io/v1/auth/…
   - `host` Where your Preset lives: your host
   ```
   account { op: "connections.requirements", service: "preset" }
   # 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: "preset.datasets.list" }
   # get a list of datasets · read · 1 upstream call
   check { action: "preset.team_members.update", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Preset at a glance

**Sign-in**

Session login. actionlake opens the session and renews it when it expires.

**You provide**

`api_token` `api_secret`

**Setup fields**

`host`

**Limits we pace to**

10 calls a second, per connection

**API covered**

Preset Manager API v1/v2 (Postman collection 18980539) + Apache Superset REST API v1 (release 5.0.0), at your Preset instance's API base URL, which you enter when connecting

**Built from**

Preset's documentation, read 23 October 2026[api-docs.preset.io](https://api-docs.preset.io/api/collections/18980539/UzXLzJ6L?segregateAuth=true&versionTag=latest) [OpenAPI spec (GitHub)](https://raw.githubusercontent.com/apache/superset/5.0.0/docs/static/resources/openapi.json)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

123 of 127 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

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

**Data**

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

Capabilities

## What an AI agent can do in Preset.

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

- **127** read look, never change
- **71** write create and update
- **42** destructive wait for a confirmation

1. ### Databases
   25
   21 read · 2 write · 2 destructive
   Create a new database · Get a list of databases · Get names of databases currently available · Get all catalogs from a database
2. ### Dashboards
   17
   8 read · 6 write · 3 destructive
   Get a list of dashboards · Create a new dashboard · Get a dashboard detail information · Update a dashboard
3. ### Charts
   16
   9 read · 4 write · 3 destructive
   Get a list of charts · Create a new chart · Get a chart detail information · Update a chart
4. ### Datasets
   16
   6 read · 6 write · 4 destructive
   Get a list of datasets · Create a new dataset · Get a dataset · Update a dataset
5. ### Tags
   13
   6 read · 4 write · 3 destructive
   Marks the tag as favorite for the current user · Bulk create tags and tagged objects · Create a tag · Get a list of tags
6. ### Reports
   9
   5 read · 2 write · 2 destructive
   Get a list of report schedules · Create a report schedule · Get a report schedule · Update a report schedule
7. ### Saved queries
   9
   5 read · 2 write · 2 destructive
   Get a list of saved queries · Create a saved query · Get a saved query · Update a saved query
8. ### Annotation layers
   8
   4 read · 2 write · 2 destructive
   Create an annotation layer · Get a list of annotation layers · Get related fields data · Get an annotation layer

**44 more areas · 127 actions**

- CSS templates **8**
- Row level security **8**
- Annotations **6**
- Queries **6**
- Scim groups **6**
- Scim users **6**
- Scim tokens **5**
- Sqllab **5**
- Team invites **5**
- Workspaces **5**
- Dashboard embedded **4**
- Dashboard filter states **4**
- Data access roles **4**
- Explore form data **4**
- Permissions **4**
- Embedded keys **3**
- Logs **3**
- Team members **3**
- Advanced data types **2**
- Dashboard permalinks **2**
- Explore permalinks **2**
- Guest tokens **2**
- Me **2**
- Permission grantees **2**
- Report logs **2**
- Tagged objects **2**
- Team groups **2**
- Teams **2**
- Workspace groups **2**
- Workspace members **2**
- Audit log actions **1**
- Audit logs **1**
- Available domains **1**
- Cache keys **1**
- Dar permissions **1**
- Datasources **1**
- Embedded dashboards **1**
- Explore **1**
- Menu **1**
- Permission resources **1**
- Team group members **1**
- Team regions **1**
- Workspace user groups **1**
- Workspace users **1**

Top actions

## The Preset API, shaped for agents.

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

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `preset.team_members.list` List team members | List the members of a team, with their team role. Requires Team Admin. | read | `identity.user.list` 474 connectors |
| `preset.datasets.list` Get a list of datasets | Get a list of datasets. | read | `analytics.dataset.list` 28 connectors |
| `preset.team_members.update` Change a member's team role | Change a user's team role. Requires Team Admin. | write | `identity.user.update` 280 connectors |
| `preset.datasets.create` Create a new dataset | Create a new dataset. | write | `analytics.dataset.create` 21 connectors |
| `preset.workspaces.list` List workspaces in a team | List every workspace in the team, with its hostname, region and status. | read | `work.workspace.list` 50 connectors |
| `preset.team_members.delete` Remove a team member | Remove a member from the team. Requires Team Admin. | destructive | `identity.user.delete` 253 connectors |
| `preset.workspace_members.list` List workspace members and roles | List a workspace's users and their workspace roles. Requires Team Admin. | read | `work.workspace_member.list` 26 connectors |
| `preset.team_groups.list` List team groups | List the user groups of a team (groups are synced through SCIM). Requires Team Admin. | read | `identity.group.list` 262 connectors |
| `preset.team_group_members.list` List team group members | List the members of a team user group. Requires Team Admin. | read | `identity.group_member.list` 103 connectors |
| `preset.workspaces.create` Create a workspace | Create a workspace in the team, in a SaaS region (`region`) or a Managed Private Cloud cluster (`cluster_id`). Requires Team Admin. | write | `work.workspace.create` 36 connectors |
| `preset.dashboards.list` Get a list of dashboards | Get a list of dashboards. | read | `analytics.dashboard.list` 22 connectors |
| `preset.dashboards.create` Create a new dashboard | Create a new dashboard. | write | `analytics.dashboard.create` 18 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Preset 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 Preset? List every user and their role.
   calls `preset.team_members.list`
2. Write write
   Change a member's team role in Preset. Show me exactly what you will send before you save it.
   calls `preset.team_members.update`

Governance for Preset

## Destructive actions wait for a yes.

42 Preset actions are destructive. The first 10:

- Remove a team member `preset.team_members.delete`
- Delete a dataset `preset.datasets.delete`
- Delete a workspace `preset.workspaces.delete`
- Delete a dashboard `preset.dashboards.delete`
- Delete a saved query `preset.saved_queries.delete`
- Delete a report schedule `preset.reports.delete`
- Delete a SCIM group `preset.scim_groups.delete`
- Delete a chart `preset.charts.delete`
- Delete a pending team invite `preset.team_invites.delete`
- Bulk delete charts `preset.charts.bulk_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 preset.team_members.delete confirm_policy: **human**

Remove a team member?

**intent:** the user asked me to remove a team member

run suspended · waiting for a named person · key _preset-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "preset-agent",
  allowed_actions: ["preset.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "preset.team_members.delete", approver: "lead@example.com" },
    { match: "preset.datasets.delete", approver: "lead@example.com" },
    { match: "preset.workspaces.delete", approver: "lead@example.com" }
  ]
}
```

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

Cost

## What Preset costs on actionlake.

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

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

**Databases 25**

- `preset.databases.create` Create a new database write
- `preset.databases.delete` Delete a database destructive
- `preset.databases.delete_ssh_tunnel` Delete an SSH tunnel destructive
- `preset.databases.get` Get a database read
- `preset.databases.get_connection` Get a database connection info read
- `preset.databases.get_table` Get database table metadata read
- `preset.databases.get_table_extra` Get table extra metadata read
- `preset.databases.get_table_metadata` Get table metadata read
- `preset.databases.get_table_metadata_extra` Get table extra metadata read
- `preset.databases.info` Get metadata information about this API resource read
- `preset.databases.list` Get a list of databases read
- `preset.databases.list_available_engines` Get names of databases currently available read
- `preset.databases.list_catalogs` Get all catalogs from a database read
- `preset.databases.list_function_names` Get function names supported by a database read
- `preset.databases.list_related` Get related fields data read
- `preset.databases.list_schemas` Get all schemas from a database read
- `preset.databases.list_tables` Get a list of tables for given database read
- `preset.databases.list_upload_schemas` The list of the database schemas where to upload information read
- `preset.databases.related_objects` Get charts and dashboards count associated to a database read
- `preset.databases.select_star` Get database select star for table read
- `preset.databases.select_star_in_schema` Get database select star for table read
- `preset.databases.test_connection` Test a database connection read
- `preset.databases.update` Change a database write
- `preset.databases.validate_parameters` Validate database connection parameters read
- `preset.databases.validate_sql` Validate arbitrary SQL read

**Dashboards 17**

- `preset.dashboards.add_favorite` Mark the dashboard as favorite for the current user write
- `preset.dashboards.bulk_delete` Bulk delete dashboards destructive
- `preset.dashboards.cache_screenshot` Compute and cache a screenshot write
- `preset.dashboards.copy` Create a copy of an existing dashboard write
- `preset.dashboards.create` Create a new dashboard write
- `preset.dashboards.delete` Delete a dashboard destructive
- `preset.dashboards.favorite_status` Check favorited dashboards for current user read
- `preset.dashboards.get` Get a dashboard detail information read
- `preset.dashboards.info` Get metadata information about this API resource read
- `preset.dashboards.list` Get a list of dashboards read
- `preset.dashboards.list_charts` Get a dashboard's chart definitions read
- `preset.dashboards.list_datasets` Get dashboard's datasets read
- `preset.dashboards.list_related` Get related fields data read
- `preset.dashboards.list_tabs` Get dashboard's tabs read
- `preset.dashboards.remove_favorite` Remove the dashboard from the user favorite list destructive
- `preset.dashboards.update` Update a dashboard write
- `preset.dashboards.update_native_filters` Update native filters configuration for a dashboard write

**Charts 16**

- `preset.charts.add_favorite` Mark the chart as favorite for the current user write
- `preset.charts.bulk_delete` Bulk delete charts destructive
- `preset.charts.cache_screenshot` Compute and cache a screenshot read
- `preset.charts.create` Create a new chart write
- `preset.charts.delete` Delete a chart destructive
- `preset.charts.favorite_status` Check favorited charts for current user read
- `preset.charts.get` Get a chart detail information read
- `preset.charts.get_cached_data` Return payload data response for the given query read
- `preset.charts.get_data` Return payload data response for a chart read
- `preset.charts.info` Get metadata information about this API resource read
- `preset.charts.list` Get a list of charts read
- `preset.charts.list_related` Get related fields data read
- `preset.charts.query_data` Return payload data response for the given query read
- `preset.charts.remove_favorite` Remove the chart from the user favorite list destructive
- `preset.charts.update` Update a chart write
- `preset.charts.warm_up_cache` Warm up the cache for the chart write

**Datasets 16**

- `preset.datasets.bulk_delete` Bulk delete datasets destructive
- `preset.datasets.create` Create a new dataset write
- `preset.datasets.delete` Delete a dataset destructive
- `preset.datasets.delete_column` Delete a dataset column destructive
- `preset.datasets.delete_metric` Delete a dataset metric destructive
- `preset.datasets.duplicate` Duplicate a dataset write
- `preset.datasets.get` Get a dataset read
- `preset.datasets.get_or_create` Retrieve a table by name, or create it if it does not exist write
- `preset.datasets.info` Get metadata information about this API resource read
- `preset.datasets.list` Get a list of datasets read
- `preset.datasets.list_distinct` Get distinct values from field data read
- `preset.datasets.list_related` Get related fields data read
- `preset.datasets.refresh` Refresh and update columns of a dataset write
- `preset.datasets.related_objects` Get charts and dashboards count associated to a dataset read
- `preset.datasets.update` Update a dataset write
- `preset.datasets.warm_up_cache` Warm up the cache for each chart powered by the given table write

**Tags 13**

- `preset.tags.add_favorite` Marks the tag as favorite for the current user write
- `preset.tags.bulk_create` Bulk create tags and tagged objects write
- `preset.tags.bulk_delete` Bulk delete tags destructive
- `preset.tags.create` Create a tag write
- `preset.tags.delete` Delete a tag destructive
- `preset.tags.favorite_status` Get favorited tags for current user read
- `preset.tags.get` Get a tag detail information read
- `preset.tags.info` Get metadata information about tag API endpoints read
- `preset.tags.list` Get a list of tags read
- `preset.tags.list_objects` Get all objects associated with a tag read
- `preset.tags.list_related` Get related fields data read
- `preset.tags.remove_favorite` Remove the tag from the user favorite list destructive
- `preset.tags.update` Update a tag write

**Reports 9**

- `preset.reports.bulk_delete` Bulk delete report schedules destructive
- `preset.reports.create` Create a report schedule write
- `preset.reports.delete` Delete a report schedule destructive
- `preset.reports.get` Get a report schedule read
- `preset.reports.info` Get metadata information about this API resource read
- `preset.reports.list` Get a list of report schedules read
- `preset.reports.list_related` Get related fields data read
- `preset.reports.list_slack_channels` Get slack channels read
- `preset.reports.update` Update a report schedule write

**Saved queries 9**

- `preset.saved_queries.bulk_delete` Bulk delete saved queries destructive
- `preset.saved_queries.create` Create a saved query write
- `preset.saved_queries.delete` Delete a saved query destructive
- `preset.saved_queries.get` Get a saved query read
- `preset.saved_queries.info` Get metadata information about this API resource read
- `preset.saved_queries.list` Get a list of saved queries read
- `preset.saved_queries.list_distinct` Get distinct values from field data read
- `preset.saved_queries.list_related` Get related fields data read
- `preset.saved_queries.update` Update a saved query write

**Annotation layers 8**

- `preset.annotation_layers.bulk_delete` Delete multiple annotation layers in a bulk operation destructive
- `preset.annotation_layers.create` Create an annotation layer write
- `preset.annotation_layers.delete` Delete annotation layer destructive
- `preset.annotation_layers.get` Get an annotation layer read
- `preset.annotation_layers.info` Get metadata information about this API resource read
- `preset.annotation_layers.list` Get a list of annotation layers read
- `preset.annotation_layers.list_related` Get related fields data read
- `preset.annotation_layers.update` Update an annotation layer write

**CSS templates 8**

- `preset.css_templates.bulk_delete` Bulk delete CSS templates destructive
- `preset.css_templates.create` Create a CSS template write
- `preset.css_templates.delete` Delete a CSS template destructive
- `preset.css_templates.get` Get a CSS template read
- `preset.css_templates.info` Get metadata information about this API resource read
- `preset.css_templates.list` Get a list of CSS templates read
- `preset.css_templates.list_related` Get related fields data read
- `preset.css_templates.update` Update a CSS template write

**Row level security 8**

- `preset.row_level_security.bulk_delete` Bulk delete RLS rules destructive
- `preset.row_level_security.create` Create a new RLS rule write
- `preset.row_level_security.delete` Delete an RLS destructive
- `preset.row_level_security.get` Get an RLS read
- `preset.row_level_security.info` Get metadata information about this API resource read
- `preset.row_level_security.list` Get a list of RLS read
- `preset.row_level_security.list_related` Get related fields data read
- `preset.row_level_security.update` Update an RLS rule write

**Annotations 6**

- `preset.annotations.bulk_delete` Bulk delete annotation layers destructive
- `preset.annotations.create` Create an annotation layer write
- `preset.annotations.delete` Delete annotation layer destructive
- `preset.annotations.get` Get an annotation layer read
- `preset.annotations.list` Get a list of annotation layers read
- `preset.annotations.update` Update an annotation layer write

**Queries 6**

- `preset.queries.get` Get query detail information read
- `preset.queries.list` Get a list of queries read
- `preset.queries.list_distinct` Get distinct values from field data read
- `preset.queries.list_related` Get related fields data read
- `preset.queries.stop` Manually stop a query with client_id write
- `preset.queries.updated_since` Get a list of queries that changed after last_updated_ms read

**Scim groups 6**

- `preset.scim_groups.create` Create a SCIM group write
- `preset.scim_groups.delete` Delete a SCIM group destructive
- `preset.scim_groups.get` Get a SCIM group read
- `preset.scim_groups.list` List SCIM groups read
- `preset.scim_groups.patch` Patch a SCIM group write
- `preset.scim_groups.replace` Replace a SCIM group write

**Scim users 6**

- `preset.scim_users.create` Create a SCIM user write
- `preset.scim_users.delete` Delete a SCIM user destructive
- `preset.scim_users.get` Get a SCIM user read
- `preset.scim_users.list` List SCIM users read
- `preset.scim_users.patch` Patch a SCIM user write
- `preset.scim_users.replace` Replace a SCIM user write

**Scim tokens 5**

- `preset.scim_tokens.create` Create a SCIM API token write
- `preset.scim_tokens.delete` Delete a SCIM API token destructive
- `preset.scim_tokens.get` Get a SCIM API token read
- `preset.scim_tokens.list` List SCIM API tokens read
- `preset.scim_tokens.update` Update a SCIM API token write

**Sqllab 5**

- `preset.sqllab.bootstrap` Get the bootstrap data for SqlLab page read
- `preset.sqllab.estimate_cost` Estimate the SQL query execution cost read
- `preset.sqllab.execute` Execute a SQL query write
- `preset.sqllab.format_sql` Format SQL code read
- `preset.sqllab.get_results` Get the result of a SQL query execution read

**Team invites 5**

- `preset.team_invites.create` Create a team invite write
- `preset.team_invites.create_many` Create multiple team invites write
- `preset.team_invites.delete` Delete a pending team invite destructive
- `preset.team_invites.list` List pending team invites read
- `preset.team_invites.resend` Resend a team invite write

**Workspaces 5**

- `preset.workspaces.create` Create a workspace write
- `preset.workspaces.delete` Delete a workspace destructive
- `preset.workspaces.get` Get a workspace read
- `preset.workspaces.list` List workspaces in a team read
- `preset.workspaces.update` Update a workspace write

**Dashboard embedded 4**

- `preset.dashboard_embedded.disable` Delete a dashboard's embedded configuration destructive
- `preset.dashboard_embedded.enable` Set a dashboard's embedded configuration write
- `preset.dashboard_embedded.get` Get the dashboard's embedded configuration read
- `preset.dashboard_embedded.update` Sets a dashboard's embedded configuration write

**Dashboard filter states 4**

- `preset.dashboard_filter_states.create` Create a dashboard's filter state write
- `preset.dashboard_filter_states.delete` Delete a dashboard's filter state value destructive
- `preset.dashboard_filter_states.get` Get a dashboard's filter state value read
- `preset.dashboard_filter_states.update` Update a dashboard's filter state value write

**Data access roles 4**

- `preset.data_access_roles.create` Create a workspace data access role write
- `preset.data_access_roles.delete` Delete a workspace data access role destructive
- `preset.data_access_roles.list` List workspace data access roles read
- `preset.data_access_roles.update` Update a workspace data access role write

**Explore form data 4**

- `preset.explore_form_data.create` Create a new form_data write
- `preset.explore_form_data.delete` Delete a form_data destructive
- `preset.explore_form_data.get` Get a form_data read
- `preset.explore_form_data.update` Update an existing form_data write

**Permissions 4**

- `preset.permissions.create` Create a permission (DAR or RLS) write
- `preset.permissions.delete` Delete a permission (DAR or RLS) destructive
- `preset.permissions.list` List permissions read
- `preset.permissions.update` Update a permission (DAR or RLS) write

**Embedded keys 3**

- `preset.embedded_keys.create` Create an embedded authentication key write
- `preset.embedded_keys.delete` Delete an embedded authentication key destructive
- `preset.embedded_keys.list` List embedded authentication keys read

**Logs 3**

- `preset.logs.get` Get a log detail information read
- `preset.logs.list` Get a list of logs read
- `preset.logs.recent_activity` Get recent activity data for a user read

**Team members 3**

- `preset.team_members.delete` Remove a team member destructive
- `preset.team_members.list` List team members read
- `preset.team_members.update` Change a member's team role write

**Advanced data types 2**

- `preset.advanced_data_types.convert` Return an AdvancedDataTypeResponse read
- `preset.advanced_data_types.list` Return a list of available advanced data types read

**Dashboard permalinks 2**

- `preset.dashboard_permalinks.create` Create a new dashboard's permanent link write
- `preset.dashboard_permalinks.get` Get dashboard's permanent link state read

**Explore permalinks 2**

- `preset.explore_permalinks.create` Create a new permanent link write
- `preset.explore_permalinks.get` Get chart's permanent link state read

**Guest tokens 2**

- `preset.guest_tokens.create` Create an embedded guest token write
- `preset.guest_tokens.create_in_workspace` Get a guest token write

**Me 2**

- `preset.me.get` Get the user object read
- `preset.me.list_roles` Get the user roles read

**Permission grantees 2**

- `preset.permission_grantees.create` Add grantees to a permission write
- `preset.permission_grantees.delete` Remove grantees from a permission destructive

**Report logs 2**

- `preset.report_logs.get` Get a report schedule log read
- `preset.report_logs.list` Get a list of report schedule logs read

**Tagged objects 2**

- `preset.tagged_objects.create` Add tags to an object write
- `preset.tagged_objects.delete` Delete a tagged object destructive

**Team groups 2**

- `preset.team_groups.list` List team groups read
- `preset.team_groups.update_team_role` Change a group's team role write

**Teams 2**

- `preset.teams.list` List teams read
- `preset.teams.update` Update a team's title write

**Workspace groups 2**

- `preset.workspace_groups.list` List workspace group roles read
- `preset.workspace_groups.update` Change a group's workspace role write

**Workspace members 2**

- `preset.workspace_members.list` List workspace members and roles read
- `preset.workspace_members.update` Change a user's workspace role write

**Audit log actions 1**

- `preset.audit_log_actions.list` List audit log actions read

**Audit logs 1**

- `preset.audit_logs.list` Query audit logs read

**Available domains 1**

- `preset.available_domains.list` Get all available domains read

**Cache keys 1**

- `preset.cache_keys.invalidate` Invalidate cache records and remove the database records destructive

**Dar permissions 1**

- `preset.dar_permissions.list` List workspace DAR permissions read

**Datasources 1**

- `preset.datasources.list_column_values` Get possible values for a datasource column read

**Embedded dashboards 1**

- `preset.embedded_dashboards.get` Get a report schedule log read

**Explore 1**

- `preset.explore.get` Assemble Explore related information in a single endpoint read

**Menu 1**

- `preset.menu.get` Get the menu data structure. Returns a forest like structure with the menu the user has access to read

**Permission resources 1**

- `preset.permission_resources.list` List permission resources read

**Team group members 1**

- `preset.team_group_members.list` List team group members read

**Team regions 1**

- `preset.team_regions.list` List team regions read

**Workspace user groups 1**

- `preset.workspace_user_groups.list` List workspace groups read

**Workspace users 1**

- `preset.workspace_users.list` List workspace users read

Questions

## The Preset MCP server, answered.

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

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 240 Preset actions across databases, dashboards, charts and datasets, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Preset.

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

Preset API token and Preset API secret, shown once beside the token. actionlake exchanges the pair at https://api.app.preset.io/v1/auth/…. Plus your host. The free call account { op: "connections.requirements", service: "preset" } lists exactly what to paste.

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

Only if its key allows it, and only with an explicit confirmation. 42 Preset actions are destructive, including remove a team member, delete a dataset and delete a workspace. 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 Preset API limit?**

actionlake paces every call to the limits in the Preset service file: 10 calls a second per connection. Repeated reads are answered from cache (123 Preset actions can be), which never reaches Preset.

**What does a Preset action cost?**

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

The Preset Manager API v1/v2 (Postman collection 18980539) + Apache Superset REST API v1 (release 5.0.0) at your Preset instance's API base URL, which you enter when connecting. It is built from Preset's documentation as read on 23 October 2026. 240 actions in 52 areas, each one in the signed service file (version 1.0.0).

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

Shares the most action names with

- [Metabase 23](https://actionlake.com/connectors/metabase)
- [Lightdash 19](https://actionlake.com/connectors/lightdash)
- [Sentry 19](https://actionlake.com/connectors/sentry)
- [Sigma Computing 18](https://actionlake.com/connectors/sigma-computing)
- [Zoho Analytics 17](https://actionlake.com/connectors/zoho-analytics)
- [Qlik Cloud 16](https://actionlake.com/connectors/qlik-cloud)

Joins with, on shared entities

- [LangSmith 4](https://actionlake.com/connectors/langsmith)
- [Baserow 3](https://actionlake.com/connectors/baserow)
- [Portkey 3](https://actionlake.com/connectors/portkey)
- [PandaDoc 3](https://actionlake.com/connectors/pandadoc)
- [Adobe Workfront 2](https://actionlake.com/connectors/adobe-workfront)
- [MongoDB Atlas 2](https://actionlake.com/connectors/mongodb-atlas)

Browse

- [All Observability & analytics connectors](https://actionlake.com/connectors/category/observability-and-analytics)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

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

## Give your agent Preset today.

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