---
title: "Axiom MCP server for AI agents - actionlake"
description: "Give Claude 92 Axiom actions through one MCP server: datasets, dashboards, metrics info. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/axiom
updated: 2026-10-23
---

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.

[Connect Axiom 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: "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
```

- 92 actions in one signed file
- 41 read look, never change
- 35 write create and update
- 16 wait for a yes destructive, 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_token` Axiom API token (Settings > API tokens; starts with xaat-) or personal access token (Profile > Personal tokens;…
   - `edge_domain` Where your Axiom lives: your edge domain
   - `org_id` Your 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 call
   check { 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_domain` `org_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 2026[axiom.co](https://axiom.co/docs/openapi/v2.json) [axiom.co](https://axiom.co/docs/openapi/v1.json) [axiom.co](https://axiom.co/docs/openapi/v1-edge-query.json)

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

- **41** read look, never change
- **35** write create and update
- **16** destructive wait 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.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `axiom.users.list` Lists all members of the organization, including each member's role | Lists all members of the organization, including each member's role. | read | `identity.user.list` 474 connectors |
| `axiom.groups.list` List all groups | List all groups. | read | `identity.group.list` 262 connectors |
| `axiom.roles.list` List all roles | List all roles. | read | `identity.role.list` 184 connectors |
| `axiom.user.get` Retrieves the user who owns the personal access token (PAT) used to authenticate | Retrieves the user who owns the personal access token (PAT) used to authenticate. | read | `identity.current_user.get` 307 connectors |
| `axiom.users.create` Adds a user to the organization with the given role and sends them an invite email | Adds a user to the organization with the given role and sends them an invite email. | write | `identity.user.create` 262 connectors |
| `axiom.groups.create` Create group | Create group. | write | `identity.group.create` 205 connectors |
| `axiom.roles.create` Create role | Create role. | write | `identity.role.create` 105 connectors |
| `axiom.users.remove` Removes a user from the organization without deleting their Axiom account | Removes a user from the organization without deleting their Axiom account. | destructive | `identity.user.delete` 253 connectors |
| `axiom.datasets.list` Get list of datasets | Get list of datasets. | read | `analytics.dataset.list` 28 connectors |
| `axiom.monitors.list` Lists monitors in the organization, sorted by name | Lists monitors in the organization, sorted by name. | read | `monitoring.monitor.list` 32 connectors |
| `axiom.monitors.create` Creates a monitor | Creates a monitor. | write | `monitoring.monitor.create` 27 connectors |
| `axiom.tokens.create` Creates an API token and returns its secret `token` value, which you can't retrieve again | Creates an API token and returns its secret `token` value, which you can't retrieve again. | write | `identity.api_key.create` 100 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. Read read
   Who has access in Axiom? List every user and their role.
   calls `axiom.users.list`
2. Write write
   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.
   calls `axiom.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 account `axiom.users.remove`
- Delete group `axiom.groups.delete`
- Delete role `axiom.roles.delete`
- Permanently deletes a monitor and removes its label assignments `axiom.monitors.delete`
- Permanently deletes an API token so it can no longer authenticate requests `axiom.tokens.delete`
- Permanently deletes a notifier and removes its label assignments `axiom.notifiers.delete`
- Delete dataset `axiom.datasets.delete`
- Delete dashboard `axiom.dashboards.delete`
- Deletes a saved query by its ID `axiom.starred_queries.delete`
- Delete a field from a dataset `axiom.dataset_fields.delete`
- Deletes a view by its name `axiom.views.delete`
- Trim dataset by duration `axiom.datasets.trim`
- Removes a field from the map fields of a dataset `axiom.map_fields.delete`
- Deletes an annotation by its ID `axiom.annotations.delete`
- Deletes a virtual field by its ID `axiom.virtual_fields.delete`
- Delete fields from a dataset `axiom.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.

do axiom.users.remove confirm_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: "lead@example.com" },
    { match: "axiom.groups.delete", approver: "lead@example.com" },
    { match: "axiom.roles.delete", approver: "lead@example.com" }
  ]
}
```

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.

- 1 upstream call per action all 92 Axiom actions
- 92 actions page each page of a long list is one call
- 39 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 Axiom action.

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

**Datasets 7**

- `axiom.datasets.create` Create dataset write
- `axiom.datasets.delete` Delete dataset destructive
- `axiom.datasets.get` Get dataset by ID read
- `axiom.datasets.list` Get list of datasets read
- `axiom.datasets.trim` Trim dataset by duration destructive
- `axiom.datasets.update` Update dataset write
- `axiom.datasets.vacuum` Queues a job that rebuilds the field schema of a dataset from its stored events, removing fields that no longer occur in any event write

**Dashboards 6**

- `axiom.dashboards.create` Create dashboard write
- `axiom.dashboards.delete` Delete dashboard destructive
- `axiom.dashboards.get` Get dashboard read
- `axiom.dashboards.list` List dashboards read
- `axiom.dashboards.patch_chart` Patch dashboard chart write
- `axiom.dashboards.update` Update dashboard write

**Metrics info 6**

- `axiom.metrics_info.find_metrics` Finds 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_values` Lists the values of a tag on one metric in a metrics dataset between `start` and `end` read
- `axiom.metrics_info.list_metric_tags` Lists the tag names used by a metric in a metrics dataset between `start` and `end` read
- `axiom.metrics_info.list_metrics` Lists the metric names in a metrics dataset between `start` and `end` read
- `axiom.metrics_info.list_tag_values` Lists the values of a tag across all metrics in a metrics dataset between `start` and `end` read
- `axiom.metrics_info.list_tags` Lists the tag names that occur in a metrics dataset between `start` and `end` read

**Monitors 6**

- `axiom.monitors.create` Creates a monitor write
- `axiom.monitors.delete` Permanently deletes a monitor and removes its label assignments destructive
- `axiom.monitors.get` Retrieves a monitor by ID read
- `axiom.monitors.history` Lists the notifications sent for the monitor between `startTime` and `endTime` read
- `axiom.monitors.list` Lists monitors in the organization, sorted by name read
- `axiom.monitors.update` Replaces a monitor's configuration with the request body, so omitted fields reset to their defaults write

**Annotations 5**

- `axiom.annotations.create` Creates an annotation on one or more existing datasets write
- `axiom.annotations.delete` Deletes an annotation by its ID destructive
- `axiom.annotations.get` Retrieves an annotation by its ID read
- `axiom.annotations.list` Lists annotations in the organization read
- `axiom.annotations.update` Updates an annotation write

**Dataset fields 5**

- `axiom.dataset_fields.delete` Delete a field from a dataset destructive
- `axiom.dataset_fields.delete_many` Delete fields from a dataset destructive
- `axiom.dataset_fields.get` Retrieves a field in the schema of a dataset by its name read
- `axiom.dataset_fields.list` Lists the fields in the schema of a dataset with their type, unit, description, and hidden setting read
- `axiom.dataset_fields.update` Updates the `unit`, `description`, and `hidden` settings of a field write

**Groups 5**

- `axiom.groups.create` Create group write
- `axiom.groups.delete` Delete group destructive
- `axiom.groups.get` Get group by ID read
- `axiom.groups.list` List all groups read
- `axiom.groups.update` Update group write

**Notifiers 5**

- `axiom.notifiers.create` Creates a notifier write
- `axiom.notifiers.delete` Permanently deletes a notifier and removes its label assignments destructive
- `axiom.notifiers.get` Retrieves a notifier by ID read
- `axiom.notifiers.list` Lists all notifiers in the organization, sorted by name read
- `axiom.notifiers.update` Replaces a notifier's name, channel `properties`, and `disabledUntil` with the request body, so omitted fields are cleared write

**Orgs 5**

- `axiom.orgs.create` Creates an organization on the Personal plan with the authenticated user as its owner write
- `axiom.orgs.get` Retrieves an organization the authenticated user is a member of, including its plan and license limits read
- `axiom.orgs.list` Lists the organizations the authenticated user is a member of read
- `axiom.orgs.provision` Provision a temporary organization for an agent write
- `axiom.orgs.update` Renames an organization and returns the updated organization write

**Roles 5**

- `axiom.roles.create` Create role write
- `axiom.roles.delete` Delete role destructive
- `axiom.roles.get` Get role by ID read
- `axiom.roles.list` List all roles read
- `axiom.roles.update` Update role write

**Starred queries 5**

- `axiom.starred_queries.create` Saves an APL query for the authenticated user write
- `axiom.starred_queries.delete` Deletes a saved query by its ID destructive
- `axiom.starred_queries.get` Retrieves a saved query by its ID read
- `axiom.starred_queries.list` Lists saved APL queries on datasets you can read, sorted by name read
- `axiom.starred_queries.update` Replaces the `name`, `dataset`, `query`, and `metadata` of a saved query write

**Tokens 5**

- `axiom.tokens.create` Creates an API token and returns its secret `token` value, which you can't retrieve again write
- `axiom.tokens.delete` Permanently deletes an API token so it can no longer authenticate requests destructive
- `axiom.tokens.get` Retrieves an active API token by ID read
- `axiom.tokens.list` Lists the organization's active API tokens read
- `axiom.tokens.regenerate` Creates a new API token with the existing token's capabilities, or with those in `newToken`, and returns its secret value write

**Users 5**

- `axiom.users.create` Adds a user to the organization with the given role and sends them an invite email write
- `axiom.users.get` Retrieves a member of the organization by user ID, including their role read
- `axiom.users.list` Lists all members of the organization, including each member's role read
- `axiom.users.remove` Removes a user from the organization without deleting their Axiom account destructive
- `axiom.users.update_role` Changes the role of a member of the organization and returns the updated user write

**Views 5**

- `axiom.views.create` Creates a view, a named APL query that you can query like a dataset write
- `axiom.views.delete` Deletes a view by its name destructive
- `axiom.views.get` Retrieves a view by its name read
- `axiom.views.list` Lists the views in the organization, including views shared with it by other organizations read
- `axiom.views.update` Replaces the `aplQuery` and `description` of a view, identified by its name write

**Virtual fields 5**

- `axiom.virtual_fields.create` Creates a virtual field on a dataset write
- `axiom.virtual_fields.delete` Deletes a virtual field by its ID destructive
- `axiom.virtual_fields.get` Retrieves a virtual field by its ID read
- `axiom.virtual_fields.list` Lists the virtual fields of a dataset, ordered by creation time read
- `axiom.virtual_fields.update` Replaces all fields of a virtual field write

**Map fields 4**

- `axiom.map_fields.create` Configures a field as a map field write
- `axiom.map_fields.delete` Removes a field from the map fields of a dataset destructive
- `axiom.map_fields.list` Lists the names of the fields configured as map fields in a dataset read
- `axiom.map_fields.replace` Replaces the list of map fields in a dataset write

**Edge queries 2**

- `axiom.edge_queries.apl` Runs an APL query against datasets in this edge deployment and returns the result in the requested `format` read
- `axiom.edge_queries.mpl` Runs an MPL query against metrics datasets in this edge deployment read

**Queries 2**

- `axiom.queries.apl` Runs an APL query through `api.axiom.co` and returns the result in the requested `format` read
- `axiom.queries.legacy` Runs a structured (non-APL) query against a dataset read

**User 2**

- `axiom.user.get` Retrieves the user who owns the personal access token (PAT) used to authenticate read
- `axiom.user.update` Updates the name of the user who owns the personal access token (PAT) used to authenticate write

**Edge ingest 1**

- `axiom.edge_ingest.events` Ingests JSON, NDJSON, or CSV events into an events or logs dataset in this edge deployment write

**Ingest 1**

- `axiom.ingest.events` Ingests 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.

## More connectors like Axiom

Shares the most action names with

- [Grafana 48](https://actionlake.com/connectors/grafana)
- [IBM NS1 Connect 23](https://actionlake.com/connectors/ibm-ns1-connect)
- [Preset 20](https://actionlake.com/connectors/preset)
- [Cribl 18](https://actionlake.com/connectors/cribl)
- [Qlik Cloud 16](https://actionlake.com/connectors/qlik-cloud)
- [Looker 15](https://actionlake.com/connectors/looker)

Joins with, on shared entities

- [Cloudflare 5](https://actionlake.com/connectors/cloudflare)
- [Microsoft 365 Users 4](https://actionlake.com/connectors/microsoft-365-users)
- [Rubrik Security Cloud 4](https://actionlake.com/connectors/rubrik-security-cloud)
- [Delinea Secret Server 4](https://actionlake.com/connectors/delinea-secret-server)
- [authentik 4](https://actionlake.com/connectors/authentik)
- [Spacelift 4](https://actionlake.com/connectors/spacelift)

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 Axiom; the name is the vendor's own. Counts are from the Axiom service file, version 1.0.0.

## Give your agent Axiom today.

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