Skip to content

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.

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
  • 240actionsin one signed file
  • 127readlook, never change
  • 71writecreate and update
  • 42wait for a yesdestructive, 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_tokenPreset API token
    • api_secretPreset API secret, shown once beside the token. actionlake exchanges the pair at https://api.app.preset.io/v1/auth/…
    • hostWhere 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 callcheck { 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_tokenapi_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 2026api-docs.preset.ioOpenAPI spec (GitHub)
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.

  • 127readlook, never change
  • 71writecreate and update
  • 42destructivewait 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.

ActionWhat it doesEffectSame name in
preset.team_members.listList team membersList the members of a team, with their team role. Requires Team Admin.readidentity.user.list474 connectors
preset.datasets.listGet a list of datasetsGet a list of datasets.readanalytics.dataset.list28 connectors
preset.team_members.updateChange a member's team roleChange a user's team role. Requires Team Admin.writeidentity.user.update280 connectors
preset.datasets.createCreate a new datasetCreate a new dataset.writeanalytics.dataset.create21 connectors
preset.workspaces.listList workspaces in a teamList every workspace in the team, with its hostname, region and status.readwork.workspace.list50 connectors
preset.team_members.deleteRemove a team memberRemove a member from the team. Requires Team Admin.destructiveidentity.user.delete253 connectors
preset.workspace_members.listList workspace members and rolesList a workspace's users and their workspace roles. Requires Team Admin.readwork.workspace_member.list26 connectors
preset.team_groups.listList team groupsList the user groups of a team (groups are synced through SCIM). Requires Team Admin.readidentity.group.list262 connectors
preset.team_group_members.listList team group membersList the members of a team user group. Requires Team Admin.readidentity.group_member.list103 connectors
preset.workspaces.createCreate a workspaceCreate a workspace in the team, in a SaaS region (`region`) or a Managed Private Cloud cluster (`cluster_id`). Requires Team Admin.writework.workspace.create36 connectors
preset.dashboards.listGet a list of dashboardsGet a list of dashboards.readanalytics.dashboard.list22 connectors
preset.dashboards.createCreate a new dashboardCreate a new dashboard.writeanalytics.dashboard.create18 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. Readread

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

    callspreset.team_members.list

  2. Writewrite

    Change a member's team role in Preset. Show me exactly what you will send before you save it.

    callspreset.team_members.update

Governance for Preset

Destructive actions wait for a yes.

42 Preset actions are destructive. The first 10:

  • Remove a team memberpreset.team_members.delete
  • Delete a datasetpreset.datasets.delete
  • Delete a workspacepreset.workspaces.delete
  • Delete a dashboardpreset.dashboards.delete
  • Delete a saved querypreset.saved_queries.delete
  • Delete a report schedulepreset.reports.delete
  • Delete a SCIM grouppreset.scim_groups.delete
  • Delete a chartpreset.charts.delete
  • Delete a pending team invitepreset.team_invites.delete
  • Bulk delete chartspreset.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.

dopreset.team_members.deleteconfirm_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: "[email protected]" },    { match: "preset.datasets.delete", approver: "[email protected]" },    { match: "preset.workspaces.delete", approver: "[email protected]" }  ]}
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.

  • 1upstream call per actionall 240 Preset actions
  • 240actions pageeach page of a long list is one call
  • 123reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Preset action.

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

Databases25
  • preset.databases.createCreate a new databasewrite
  • preset.databases.deleteDelete a databasedestructive
  • preset.databases.delete_ssh_tunnelDelete an SSH tunneldestructive
  • preset.databases.getGet a databaseread
  • preset.databases.get_connectionGet a database connection inforead
  • preset.databases.get_tableGet database table metadataread
  • preset.databases.get_table_extraGet table extra metadataread
  • preset.databases.get_table_metadataGet table metadataread
  • preset.databases.get_table_metadata_extraGet table extra metadataread
  • preset.databases.infoGet metadata information about this API resourceread
  • preset.databases.listGet a list of databasesread
  • preset.databases.list_available_enginesGet names of databases currently availableread
  • preset.databases.list_catalogsGet all catalogs from a databaseread
  • preset.databases.list_function_namesGet function names supported by a databaseread
  • preset.databases.list_relatedGet related fields dataread
  • preset.databases.list_schemasGet all schemas from a databaseread
  • preset.databases.list_tablesGet a list of tables for given databaseread
  • preset.databases.list_upload_schemasThe list of the database schemas where to upload informationread
  • preset.databases.related_objectsGet charts and dashboards count associated to a databaseread
  • preset.databases.select_starGet database select star for tableread
  • preset.databases.select_star_in_schemaGet database select star for tableread
  • preset.databases.test_connectionTest a database connectionread
  • preset.databases.updateChange a databasewrite
  • preset.databases.validate_parametersValidate database connection parametersread
  • preset.databases.validate_sqlValidate arbitrary SQLread
Dashboards17
  • preset.dashboards.add_favoriteMark the dashboard as favorite for the current userwrite
  • preset.dashboards.bulk_deleteBulk delete dashboardsdestructive
  • preset.dashboards.cache_screenshotCompute and cache a screenshotwrite
  • preset.dashboards.copyCreate a copy of an existing dashboardwrite
  • preset.dashboards.createCreate a new dashboardwrite
  • preset.dashboards.deleteDelete a dashboarddestructive
  • preset.dashboards.favorite_statusCheck favorited dashboards for current userread
  • preset.dashboards.getGet a dashboard detail informationread
  • preset.dashboards.infoGet metadata information about this API resourceread
  • preset.dashboards.listGet a list of dashboardsread
  • preset.dashboards.list_chartsGet a dashboard's chart definitionsread
  • preset.dashboards.list_datasetsGet dashboard's datasetsread
  • preset.dashboards.list_relatedGet related fields dataread
  • preset.dashboards.list_tabsGet dashboard's tabsread
  • preset.dashboards.remove_favoriteRemove the dashboard from the user favorite listdestructive
  • preset.dashboards.updateUpdate a dashboardwrite
  • preset.dashboards.update_native_filtersUpdate native filters configuration for a dashboardwrite
Charts16
  • preset.charts.add_favoriteMark the chart as favorite for the current userwrite
  • preset.charts.bulk_deleteBulk delete chartsdestructive
  • preset.charts.cache_screenshotCompute and cache a screenshotread
  • preset.charts.createCreate a new chartwrite
  • preset.charts.deleteDelete a chartdestructive
  • preset.charts.favorite_statusCheck favorited charts for current userread
  • preset.charts.getGet a chart detail informationread
  • preset.charts.get_cached_dataReturn payload data response for the given queryread
  • preset.charts.get_dataReturn payload data response for a chartread
  • preset.charts.infoGet metadata information about this API resourceread
  • preset.charts.listGet a list of chartsread
  • preset.charts.list_relatedGet related fields dataread
  • preset.charts.query_dataReturn payload data response for the given queryread
  • preset.charts.remove_favoriteRemove the chart from the user favorite listdestructive
  • preset.charts.updateUpdate a chartwrite
  • preset.charts.warm_up_cacheWarm up the cache for the chartwrite
Datasets16
  • preset.datasets.bulk_deleteBulk delete datasetsdestructive
  • preset.datasets.createCreate a new datasetwrite
  • preset.datasets.deleteDelete a datasetdestructive
  • preset.datasets.delete_columnDelete a dataset columndestructive
  • preset.datasets.delete_metricDelete a dataset metricdestructive
  • preset.datasets.duplicateDuplicate a datasetwrite
  • preset.datasets.getGet a datasetread
  • preset.datasets.get_or_createRetrieve a table by name, or create it if it does not existwrite
  • preset.datasets.infoGet metadata information about this API resourceread
  • preset.datasets.listGet a list of datasetsread
  • preset.datasets.list_distinctGet distinct values from field dataread
  • preset.datasets.list_relatedGet related fields dataread
  • preset.datasets.refreshRefresh and update columns of a datasetwrite
  • preset.datasets.related_objectsGet charts and dashboards count associated to a datasetread
  • preset.datasets.updateUpdate a datasetwrite
  • preset.datasets.warm_up_cacheWarm up the cache for each chart powered by the given tablewrite
Tags13
  • preset.tags.add_favoriteMarks the tag as favorite for the current userwrite
  • preset.tags.bulk_createBulk create tags and tagged objectswrite
  • preset.tags.bulk_deleteBulk delete tagsdestructive
  • preset.tags.createCreate a tagwrite
  • preset.tags.deleteDelete a tagdestructive
  • preset.tags.favorite_statusGet favorited tags for current userread
  • preset.tags.getGet a tag detail informationread
  • preset.tags.infoGet metadata information about tag API endpointsread
  • preset.tags.listGet a list of tagsread
  • preset.tags.list_objectsGet all objects associated with a tagread
  • preset.tags.list_relatedGet related fields dataread
  • preset.tags.remove_favoriteRemove the tag from the user favorite listdestructive
  • preset.tags.updateUpdate a tagwrite
Reports9
  • preset.reports.bulk_deleteBulk delete report schedulesdestructive
  • preset.reports.createCreate a report schedulewrite
  • preset.reports.deleteDelete a report scheduledestructive
  • preset.reports.getGet a report scheduleread
  • preset.reports.infoGet metadata information about this API resourceread
  • preset.reports.listGet a list of report schedulesread
  • preset.reports.list_relatedGet related fields dataread
  • preset.reports.list_slack_channelsGet slack channelsread
  • preset.reports.updateUpdate a report schedulewrite
Saved queries9
  • preset.saved_queries.bulk_deleteBulk delete saved queriesdestructive
  • preset.saved_queries.createCreate a saved querywrite
  • preset.saved_queries.deleteDelete a saved querydestructive
  • preset.saved_queries.getGet a saved queryread
  • preset.saved_queries.infoGet metadata information about this API resourceread
  • preset.saved_queries.listGet a list of saved queriesread
  • preset.saved_queries.list_distinctGet distinct values from field dataread
  • preset.saved_queries.list_relatedGet related fields dataread
  • preset.saved_queries.updateUpdate a saved querywrite
Annotation layers8
  • preset.annotation_layers.bulk_deleteDelete multiple annotation layers in a bulk operationdestructive
  • preset.annotation_layers.createCreate an annotation layerwrite
  • preset.annotation_layers.deleteDelete annotation layerdestructive
  • preset.annotation_layers.getGet an annotation layerread
  • preset.annotation_layers.infoGet metadata information about this API resourceread
  • preset.annotation_layers.listGet a list of annotation layersread
  • preset.annotation_layers.list_relatedGet related fields dataread
  • preset.annotation_layers.updateUpdate an annotation layerwrite
CSS templates8
  • preset.css_templates.bulk_deleteBulk delete CSS templatesdestructive
  • preset.css_templates.createCreate a CSS templatewrite
  • preset.css_templates.deleteDelete a CSS templatedestructive
  • preset.css_templates.getGet a CSS templateread
  • preset.css_templates.infoGet metadata information about this API resourceread
  • preset.css_templates.listGet a list of CSS templatesread
  • preset.css_templates.list_relatedGet related fields dataread
  • preset.css_templates.updateUpdate a CSS templatewrite
Row level security8
  • preset.row_level_security.bulk_deleteBulk delete RLS rulesdestructive
  • preset.row_level_security.createCreate a new RLS rulewrite
  • preset.row_level_security.deleteDelete an RLSdestructive
  • preset.row_level_security.getGet an RLSread
  • preset.row_level_security.infoGet metadata information about this API resourceread
  • preset.row_level_security.listGet a list of RLSread
  • preset.row_level_security.list_relatedGet related fields dataread
  • preset.row_level_security.updateUpdate an RLS rulewrite
Annotations6
  • preset.annotations.bulk_deleteBulk delete annotation layersdestructive
  • preset.annotations.createCreate an annotation layerwrite
  • preset.annotations.deleteDelete annotation layerdestructive
  • preset.annotations.getGet an annotation layerread
  • preset.annotations.listGet a list of annotation layersread
  • preset.annotations.updateUpdate an annotation layerwrite
Queries6
  • preset.queries.getGet query detail informationread
  • preset.queries.listGet a list of queriesread
  • preset.queries.list_distinctGet distinct values from field dataread
  • preset.queries.list_relatedGet related fields dataread
  • preset.queries.stopManually stop a query with client_idwrite
  • preset.queries.updated_sinceGet a list of queries that changed after last_updated_msread
Scim groups6
  • preset.scim_groups.createCreate a SCIM groupwrite
  • preset.scim_groups.deleteDelete a SCIM groupdestructive
  • preset.scim_groups.getGet a SCIM groupread
  • preset.scim_groups.listList SCIM groupsread
  • preset.scim_groups.patchPatch a SCIM groupwrite
  • preset.scim_groups.replaceReplace a SCIM groupwrite
Scim users6
  • preset.scim_users.createCreate a SCIM userwrite
  • preset.scim_users.deleteDelete a SCIM userdestructive
  • preset.scim_users.getGet a SCIM userread
  • preset.scim_users.listList SCIM usersread
  • preset.scim_users.patchPatch a SCIM userwrite
  • preset.scim_users.replaceReplace a SCIM userwrite
Scim tokens5
  • preset.scim_tokens.createCreate a SCIM API tokenwrite
  • preset.scim_tokens.deleteDelete a SCIM API tokendestructive
  • preset.scim_tokens.getGet a SCIM API tokenread
  • preset.scim_tokens.listList SCIM API tokensread
  • preset.scim_tokens.updateUpdate a SCIM API tokenwrite
Sqllab5
  • preset.sqllab.bootstrapGet the bootstrap data for SqlLab pageread
  • preset.sqllab.estimate_costEstimate the SQL query execution costread
  • preset.sqllab.executeExecute a SQL querywrite
  • preset.sqllab.format_sqlFormat SQL coderead
  • preset.sqllab.get_resultsGet the result of a SQL query executionread
Team invites5
  • preset.team_invites.createCreate a team invitewrite
  • preset.team_invites.create_manyCreate multiple team inviteswrite
  • preset.team_invites.deleteDelete a pending team invitedestructive
  • preset.team_invites.listList pending team invitesread
  • preset.team_invites.resendResend a team invitewrite
Workspaces5
  • preset.workspaces.createCreate a workspacewrite
  • preset.workspaces.deleteDelete a workspacedestructive
  • preset.workspaces.getGet a workspaceread
  • preset.workspaces.listList workspaces in a teamread
  • preset.workspaces.updateUpdate a workspacewrite
Dashboard embedded4
  • preset.dashboard_embedded.disableDelete a dashboard's embedded configurationdestructive
  • preset.dashboard_embedded.enableSet a dashboard's embedded configurationwrite
  • preset.dashboard_embedded.getGet the dashboard's embedded configurationread
  • preset.dashboard_embedded.updateSets a dashboard's embedded configurationwrite
Dashboard filter states4
  • preset.dashboard_filter_states.createCreate a dashboard's filter statewrite
  • preset.dashboard_filter_states.deleteDelete a dashboard's filter state valuedestructive
  • preset.dashboard_filter_states.getGet a dashboard's filter state valueread
  • preset.dashboard_filter_states.updateUpdate a dashboard's filter state valuewrite
Data access roles4
  • preset.data_access_roles.createCreate a workspace data access rolewrite
  • preset.data_access_roles.deleteDelete a workspace data access roledestructive
  • preset.data_access_roles.listList workspace data access rolesread
  • preset.data_access_roles.updateUpdate a workspace data access rolewrite
Explore form data4
  • preset.explore_form_data.createCreate a new form_datawrite
  • preset.explore_form_data.deleteDelete a form_datadestructive
  • preset.explore_form_data.getGet a form_dataread
  • preset.explore_form_data.updateUpdate an existing form_datawrite
Permissions4
  • preset.permissions.createCreate a permission (DAR or RLS)write
  • preset.permissions.deleteDelete a permission (DAR or RLS)destructive
  • preset.permissions.listList permissionsread
  • preset.permissions.updateUpdate a permission (DAR or RLS)write
Embedded keys3
  • preset.embedded_keys.createCreate an embedded authentication keywrite
  • preset.embedded_keys.deleteDelete an embedded authentication keydestructive
  • preset.embedded_keys.listList embedded authentication keysread
Logs3
  • preset.logs.getGet a log detail informationread
  • preset.logs.listGet a list of logsread
  • preset.logs.recent_activityGet recent activity data for a userread
Team members3
  • preset.team_members.deleteRemove a team memberdestructive
  • preset.team_members.listList team membersread
  • preset.team_members.updateChange a member's team rolewrite
Advanced data types2
  • preset.advanced_data_types.convertReturn an AdvancedDataTypeResponseread
  • preset.advanced_data_types.listReturn a list of available advanced data typesread
Dashboard permalinks2
  • preset.dashboard_permalinks.createCreate a new dashboard's permanent linkwrite
  • preset.dashboard_permalinks.getGet dashboard's permanent link stateread
Explore permalinks2
  • preset.explore_permalinks.createCreate a new permanent linkwrite
  • preset.explore_permalinks.getGet chart's permanent link stateread
Guest tokens2
  • preset.guest_tokens.createCreate an embedded guest tokenwrite
  • preset.guest_tokens.create_in_workspaceGet a guest tokenwrite
Me2
  • preset.me.getGet the user objectread
  • preset.me.list_rolesGet the user rolesread
Permission grantees2
  • preset.permission_grantees.createAdd grantees to a permissionwrite
  • preset.permission_grantees.deleteRemove grantees from a permissiondestructive
Report logs2
  • preset.report_logs.getGet a report schedule logread
  • preset.report_logs.listGet a list of report schedule logsread
Tagged objects2
  • preset.tagged_objects.createAdd tags to an objectwrite
  • preset.tagged_objects.deleteDelete a tagged objectdestructive
Team groups2
  • preset.team_groups.listList team groupsread
  • preset.team_groups.update_team_roleChange a group's team rolewrite
Teams2
  • preset.teams.listList teamsread
  • preset.teams.updateUpdate a team's titlewrite
Workspace groups2
  • preset.workspace_groups.listList workspace group rolesread
  • preset.workspace_groups.updateChange a group's workspace rolewrite
Workspace members2
  • preset.workspace_members.listList workspace members and rolesread
  • preset.workspace_members.updateChange a user's workspace rolewrite
Audit log actions1
  • preset.audit_log_actions.listList audit log actionsread
Audit logs1
  • preset.audit_logs.listQuery audit logsread
Available domains1
  • preset.available_domains.listGet all available domainsread
Cache keys1
  • preset.cache_keys.invalidateInvalidate cache records and remove the database recordsdestructive
Dar permissions1
  • preset.dar_permissions.listList workspace DAR permissionsread
Datasources1
  • preset.datasources.list_column_valuesGet possible values for a datasource columnread
Embedded dashboards1
  • preset.embedded_dashboards.getGet a report schedule logread
Explore1
  • preset.explore.getAssemble Explore related information in a single endpointread
Menu1
  • preset.menu.getGet the menu data structure. Returns a forest like structure with the menu the user has access toread
Permission resources1
  • preset.permission_resources.listList permission resourcesread
Team group members1
  • preset.team_group_members.listList team group membersread
Team regions1
  • preset.team_regions.listList team regionsread
Workspace user groups1
  • preset.workspace_user_groups.listList workspace groupsread
Workspace users1
  • preset.workspace_users.listList workspace usersread

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.

Give your agent Preset today.

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