Skip to content

Connectors · Observability & analytics

Axiom MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Axiom and the rest of your systems. It gives your agent 92 Axiom actions (41 reads, 35 writes and 16 that wait for a confirmation) and holds the Axiom credential itself, so the agent never does. It paces Axiom'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: "axiom.users.list",  intent: "check which Axiom account is connected"}# Lists all members of the organization, including each member's role · read · 1 upstream call
  • 92actionsin one signed file
  • 41readlook, never change
  • 35writecreate and update
  • 16wait for a yesdestructive, confirmed first

Set up

Connect Axiom 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 Axiom.

    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_tokenAxiom API token (Settings > API tokens; starts with xaat-) or personal access token (Profile > Personal tokens;…
    • edge_domainWhere your Axiom lives: your edge domain
    • org_idYour Axiom org id
    account { op: "connections.requirements", service: "axiom" }
    # 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: "axiom.users.list" }# lists all members of the organization, including each member's role · read · 1 upstream callcheck { action: "axiom.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Axiom 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_token
Setup fields
edge_domainorg_id
Limits we pace to
600 calls a minute, per connection
API covered
Axiom REST API v1 + v2 and edge ingest/query v1 (OpenAPI 3)us-east-1.aws.edge.axiom.co
Built from
Axiom's documentation, read 23 October 2026axiom.coaxiom.coaxiom.co
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
39 of 41 reads, for up to 5 minutes; a write clears what it affects
Shared entities
6, so ask can line Axiom up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Axiom.

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

  • 41readlook, never change
  • 35writecreate and update
  • 16destructivewait for a confirmation
  1. Datasets

    7

    2 read · 3 write · 2 destructive

    Get list of datasets · Create dataset · Get dataset by ID · Update dataset

  2. Dashboards

    6

    2 read · 3 write · 1 destructive

    List dashboards · Create dashboard · Get dashboard · Update dashboard

  3. Metrics info

    6

    6 read · 0 write · 0 destructive

    Lists the metric names in a metrics dataset between `start` and `end` · Finds the metrics in a metrics dataset that carry a tag with the given `value` between `start` and `end` · Lists the values of a tag on one metric in a metrics dataset between `start` and `end` · Lists the tag names used by a metric in a metrics dataset between `start` and `end`

  4. Monitors

    6

    3 read · 2 write · 1 destructive

    Lists monitors in the organization, sorted by name · Creates a monitor · Retrieves a monitor by ID · Replaces a monitor's configuration with the request body, so omitted fields reset to their defaults

  5. Annotations

    5

    2 read · 2 write · 1 destructive

    Creates an annotation on one or more existing datasets · Lists annotations in the organization · Retrieves an annotation by its ID · Updates an annotation

  6. Dataset fields

    5

    2 read · 1 write · 2 destructive

    Lists the fields in the schema of a dataset with their type, unit, description, and hidden setting · Retrieves a field in the schema of a dataset by its name · Updates the `unit`, `description`, and `hidden` settings of a field · Delete a field from a dataset

  7. Groups

    5

    2 read · 2 write · 1 destructive

    List all groups · Create group · Get group by ID · Update group

  8. Notifiers

    5

    2 read · 2 write · 1 destructive

    Lists all notifiers in the organization, sorted by name · Creates a notifier · Retrieves a notifier by ID · Replaces a notifier's name, channel `properties`, and `disabledUntil` with the request body, so omitted fields are cleared

13 more areas · 47 actions
  • Orgs 5
  • Roles 5
  • Starred queries 5
  • Tokens 5
  • Users 5
  • Views 5
  • Virtual fields 5
  • Map fields 4
  • Edge queries 2
  • Queries 2
  • User 2
  • Edge ingest 1
  • Ingest 1

Top actions

The Axiom API, shaped for agents.

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

ActionWhat it doesEffectSame name in
axiom.users.listLists all members of the organization, including each member's roleLists all members of the organization, including each member's role.readidentity.user.list474 connectors
axiom.groups.listList all groupsList all groups.readidentity.group.list262 connectors
axiom.roles.listList all rolesList all roles.readidentity.role.list184 connectors
axiom.user.getRetrieves the user who owns the personal access token (PAT) used to authenticateRetrieves the user who owns the personal access token (PAT) used to authenticate.readidentity.current_user.get307 connectors
axiom.users.createAdds a user to the organization with the given role and sends them an invite emailAdds a user to the organization with the given role and sends them an invite email.writeidentity.user.create262 connectors
axiom.groups.createCreate groupCreate group.writeidentity.group.create205 connectors
axiom.roles.createCreate roleCreate role.writeidentity.role.create105 connectors
axiom.users.removeRemoves a user from the organization without deleting their Axiom accountRemoves a user from the organization without deleting their Axiom account.destructiveidentity.user.delete253 connectors
axiom.datasets.listGet list of datasetsGet list of datasets.readanalytics.dataset.list28 connectors
axiom.monitors.listLists monitors in the organization, sorted by nameLists monitors in the organization, sorted by name.readmonitoring.monitor.list32 connectors
axiom.monitors.createCreates a monitorCreates a monitor.writemonitoring.monitor.create27 connectors
axiom.tokens.createCreates an API token and returns its secret `token` value, which you can't retrieve againCreates an API token and returns its secret `token` value, which you can't retrieve again.writeidentity.api_key.create100 connectors

Try it

Prompts to paste into Claude.

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

  1. Readread

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

    callsaxiom.users.list

  2. Writewrite

    Adds a user to the organization with the given role and sends them an invite email in Axiom. Show me exactly what you will send before you save it.

    callsaxiom.users.create

Governance for Axiom

Destructive actions wait for a yes.

16 Axiom actions are destructive. These are all of them:

  • Removes a user from the organization without deleting their Axiom accountaxiom.users.remove
  • Delete groupaxiom.groups.delete
  • Delete roleaxiom.roles.delete
  • Permanently deletes a monitor and removes its label assignmentsaxiom.monitors.delete
  • Permanently deletes an API token so it can no longer authenticate requestsaxiom.tokens.delete
  • Permanently deletes a notifier and removes its label assignmentsaxiom.notifiers.delete
  • Delete datasetaxiom.datasets.delete
  • Delete dashboardaxiom.dashboards.delete
  • Deletes a saved query by its IDaxiom.starred_queries.delete
  • Delete a field from a datasetaxiom.dataset_fields.delete
  • Deletes a view by its nameaxiom.views.delete
  • Trim dataset by durationaxiom.datasets.trim
  • Removes a field from the map fields of a datasetaxiom.map_fields.delete
  • Deletes an annotation by its IDaxiom.annotations.delete
  • Deletes a virtual field by its IDaxiom.virtual_fields.delete
  • Delete fields from a datasetaxiom.dataset_fields.delete_many

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.

doaxiom.users.removeconfirm_policy: human

Removes a user from the organization without deleting their Axiom account?

intent: the user asked me to removes a user from the organization without deleting their Axiom account

run suspended · waiting for a named person · key axiom-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "axiom-agent",  allowed_actions: ["axiom.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "axiom.users.remove", approver: "[email protected]" },    { match: "axiom.groups.delete", approver: "[email protected]" },    { match: "axiom.roles.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Axiom only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Axiom costs on actionlake.

Every Axiom action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Axiom 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 92 Axiom actions
  • 92actions pageeach page of a long list is one call
  • 39reads 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 Axiom action.

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

Datasets7
  • axiom.datasets.createCreate datasetwrite
  • axiom.datasets.deleteDelete datasetdestructive
  • axiom.datasets.getGet dataset by IDread
  • axiom.datasets.listGet list of datasetsread
  • axiom.datasets.trimTrim dataset by durationdestructive
  • axiom.datasets.updateUpdate datasetwrite
  • axiom.datasets.vacuumQueues a job that rebuilds the field schema of a dataset from its stored events, removing fields that no longer occur in any eventwrite
Dashboards6
  • axiom.dashboards.createCreate dashboardwrite
  • axiom.dashboards.deleteDelete dashboarddestructive
  • axiom.dashboards.getGet dashboardread
  • axiom.dashboards.listList dashboardsread
  • axiom.dashboards.patch_chartPatch dashboard chartwrite
  • axiom.dashboards.updateUpdate dashboardwrite
Metrics info6
  • axiom.metrics_info.find_metricsFinds the metrics in a metrics dataset that carry a tag with the given `value` between `start` and `end`read
  • axiom.metrics_info.list_metric_tag_valuesLists the values of a tag on one metric in a metrics dataset between `start` and `end`read
  • axiom.metrics_info.list_metric_tagsLists the tag names used by a metric in a metrics dataset between `start` and `end`read
  • axiom.metrics_info.list_metricsLists the metric names in a metrics dataset between `start` and `end`read
  • axiom.metrics_info.list_tag_valuesLists the values of a tag across all metrics in a metrics dataset between `start` and `end`read
  • axiom.metrics_info.list_tagsLists the tag names that occur in a metrics dataset between `start` and `end`read
Monitors6
  • axiom.monitors.createCreates a monitorwrite
  • axiom.monitors.deletePermanently deletes a monitor and removes its label assignmentsdestructive
  • axiom.monitors.getRetrieves a monitor by IDread
  • axiom.monitors.historyLists the notifications sent for the monitor between `startTime` and `endTime`read
  • axiom.monitors.listLists monitors in the organization, sorted by nameread
  • axiom.monitors.updateReplaces a monitor's configuration with the request body, so omitted fields reset to their defaultswrite
Annotations5
  • axiom.annotations.createCreates an annotation on one or more existing datasetswrite
  • axiom.annotations.deleteDeletes an annotation by its IDdestructive
  • axiom.annotations.getRetrieves an annotation by its IDread
  • axiom.annotations.listLists annotations in the organizationread
  • axiom.annotations.updateUpdates an annotationwrite
Dataset fields5
  • axiom.dataset_fields.deleteDelete a field from a datasetdestructive
  • axiom.dataset_fields.delete_manyDelete fields from a datasetdestructive
  • axiom.dataset_fields.getRetrieves a field in the schema of a dataset by its nameread
  • axiom.dataset_fields.listLists the fields in the schema of a dataset with their type, unit, description, and hidden settingread
  • axiom.dataset_fields.updateUpdates the `unit`, `description`, and `hidden` settings of a fieldwrite
Groups5
  • axiom.groups.createCreate groupwrite
  • axiom.groups.deleteDelete groupdestructive
  • axiom.groups.getGet group by IDread
  • axiom.groups.listList all groupsread
  • axiom.groups.updateUpdate groupwrite
Notifiers5
  • axiom.notifiers.createCreates a notifierwrite
  • axiom.notifiers.deletePermanently deletes a notifier and removes its label assignmentsdestructive
  • axiom.notifiers.getRetrieves a notifier by IDread
  • axiom.notifiers.listLists all notifiers in the organization, sorted by nameread
  • axiom.notifiers.updateReplaces a notifier's name, channel `properties`, and `disabledUntil` with the request body, so omitted fields are clearedwrite
Orgs5
  • axiom.orgs.createCreates an organization on the Personal plan with the authenticated user as its ownerwrite
  • axiom.orgs.getRetrieves an organization the authenticated user is a member of, including its plan and license limitsread
  • axiom.orgs.listLists the organizations the authenticated user is a member ofread
  • axiom.orgs.provisionProvision a temporary organization for an agentwrite
  • axiom.orgs.updateRenames an organization and returns the updated organizationwrite
Roles5
  • axiom.roles.createCreate rolewrite
  • axiom.roles.deleteDelete roledestructive
  • axiom.roles.getGet role by IDread
  • axiom.roles.listList all rolesread
  • axiom.roles.updateUpdate rolewrite
Starred queries5
  • axiom.starred_queries.createSaves an APL query for the authenticated userwrite
  • axiom.starred_queries.deleteDeletes a saved query by its IDdestructive
  • axiom.starred_queries.getRetrieves a saved query by its IDread
  • axiom.starred_queries.listLists saved APL queries on datasets you can read, sorted by nameread
  • axiom.starred_queries.updateReplaces the `name`, `dataset`, `query`, and `metadata` of a saved querywrite
Tokens5
  • axiom.tokens.createCreates an API token and returns its secret `token` value, which you can't retrieve againwrite
  • axiom.tokens.deletePermanently deletes an API token so it can no longer authenticate requestsdestructive
  • axiom.tokens.getRetrieves an active API token by IDread
  • axiom.tokens.listLists the organization's active API tokensread
  • axiom.tokens.regenerateCreates a new API token with the existing token's capabilities, or with those in `newToken`, and returns its secret valuewrite
Users5
  • axiom.users.createAdds a user to the organization with the given role and sends them an invite emailwrite
  • axiom.users.getRetrieves a member of the organization by user ID, including their roleread
  • axiom.users.listLists all members of the organization, including each member's roleread
  • axiom.users.removeRemoves a user from the organization without deleting their Axiom accountdestructive
  • axiom.users.update_roleChanges the role of a member of the organization and returns the updated userwrite
Views5
  • axiom.views.createCreates a view, a named APL query that you can query like a datasetwrite
  • axiom.views.deleteDeletes a view by its namedestructive
  • axiom.views.getRetrieves a view by its nameread
  • axiom.views.listLists the views in the organization, including views shared with it by other organizationsread
  • axiom.views.updateReplaces the `aplQuery` and `description` of a view, identified by its namewrite
Virtual fields5
  • axiom.virtual_fields.createCreates a virtual field on a datasetwrite
  • axiom.virtual_fields.deleteDeletes a virtual field by its IDdestructive
  • axiom.virtual_fields.getRetrieves a virtual field by its IDread
  • axiom.virtual_fields.listLists the virtual fields of a dataset, ordered by creation timeread
  • axiom.virtual_fields.updateReplaces all fields of a virtual fieldwrite
Map fields4
  • axiom.map_fields.createConfigures a field as a map fieldwrite
  • axiom.map_fields.deleteRemoves a field from the map fields of a datasetdestructive
  • axiom.map_fields.listLists the names of the fields configured as map fields in a datasetread
  • axiom.map_fields.replaceReplaces the list of map fields in a datasetwrite
Edge queries2
  • axiom.edge_queries.aplRuns an APL query against datasets in this edge deployment and returns the result in the requested `format`read
  • axiom.edge_queries.mplRuns an MPL query against metrics datasets in this edge deploymentread
Queries2
  • axiom.queries.aplRuns an APL query through `api.axiom.co` and returns the result in the requested `format`read
  • axiom.queries.legacyRuns a structured (non-APL) query against a datasetread
User2
  • axiom.user.getRetrieves the user who owns the personal access token (PAT) used to authenticateread
  • axiom.user.updateUpdates the name of the user who owns the personal access token (PAT) used to authenticatewrite
Edge ingest1
  • axiom.edge_ingest.eventsIngests JSON, NDJSON, or CSV events into an events or logs dataset in this edge deploymentwrite
Ingest1
  • axiom.ingest.eventsIngests JSON, NDJSON, CSV, or Logplex events into an events or logs dataset through `api.axiom.co`write

Questions

The Axiom MCP server, answered.

Is there an Axiom MCP server for Claude?

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

What do I need to connect Axiom?

Axiom API token (Settings > API tokens; starts with xaat-) or personal access token (Profile > Personal tokens;…. Plus your edge domain and your org id. The free call account { op: "connections.requirements", service: "axiom" } lists exactly what to paste.

Can an AI agent delete or change things in Axiom?

Only if its key allows it, and only with an explicit confirmation. 16 Axiom actions are destructive, including removes a user from the organization without deleting their Axiom account, delete group and delete role. 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 Axiom API limit?

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

What does an Axiom action cost?

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

The Axiom REST API v1 + v2 and edge ingest/query v1 (OpenAPI 3) at us-east-1.aws.edge.axiom.co by default, or the base URL set when you connect. It is built from Axiom's documentation as read on 23 October 2026. 92 actions in 21 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Axiom 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 Axiom 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 Axiom today.

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