> AI agents: this is one page from Mammoth Analytics documentation. The index of all pages as Markdown is https://docs.mammoth.io/llms.txt. Append `.md` to any docs URL, or send `Accept: text/markdown`, to get Markdown.

# Mammoth MCP server

> Connect an MCP client such as Claude, Cursor or VS Code to your Mammoth workspace at https://mcp.mammoth.io/mcp. Setup per client, OAuth sign-in, revoking access, and the full tool list.

The Mammoth MCP server lets an AI client explore, clean, transform and export your Mammoth data. It is hosted at:

```
https://mcp.mammoth.io/mcp
```

Nothing to install. The client signs you in to Mammoth with OAuth, and every tool call then runs as you, with your permissions.

## This server and the documentation server

Mammoth has two MCP servers. They do different jobs.

| | Mammoth MCP server | Documentation MCP server |
| --- | --- | --- |
| URL | `https://mcp.mammoth.io/mcp` | `https://docs.mammoth.io/mcp` |
| Sign-in | OAuth: you approve the connection on a Mammoth consent page | None |
| Reads your workspace | Yes, as you | No |
| Changes your workspace | Yes, as you | No |
| Use it for | Working on your datasets, views, pipelines, dashboards, automations and exports | Looking up how Mammoth works from these docs |

See [Use Mammoth with Claude](https://docs.mammoth.io/agents/claude) for the documentation server. To act on a workspace from a terminal instead, use the [CLI](https://docs.mammoth.io/agents/).

## Set up your client

### Claude on the web and Claude Desktop

Add a custom connector with this URL, then sign in to Mammoth when Claude asks:

```
https://mcp.mammoth.io/mcp
```

Anthropic's [guide to custom connectors](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) has the current steps, including how an organization owner adds a connector on Team and Enterprise plans.

### Claude Code

```bash
claude mcp add --transport http mammoth https://mcp.mammoth.io/mcp
```

Then run `/mcp` inside a session and choose **mammoth** to sign in. Add `--scope user` to use the server in every project.

### Cursor

Add the server to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):

```json
{
  "mcpServers": {
    "mammoth": {
      "url": "https://mcp.mammoth.io/mcp"
    }
  }
}
```

### VS Code

Add the server to `.vscode/mcp.json`:

```json
{
  "servers": {
    "mammoth": {
      "type": "http",
      "url": "https://mcp.mammoth.io/mcp"
    }
  }
}
```

Neither file holds a credential: the client gets its own token through the sign-in below.

## Sign in

1. The client calls the server with no token. The server answers `401` and points the client at Mammoth's authorization server.
2. The client opens a Mammoth consent page in your browser. Sign in to Mammoth if you are not already.
3. Choose the workspace and a project (or all projects) the client may use, and approve.
4. The client receives a token for this server and keeps it. From then on, each tool call reaches Mammoth with that token, as you.

A token belongs to one workspace. A tool call for another workspace is refused.

**Hand-made `mm_` tokens are refused.** The server accepts only tokens issued by this OAuth sign-in. An API token made in **Workspace settings → API Tokens** was issued for no server, so it does not work here. Use that token with the [REST API, the SDK or the CLI](https://docs.mammoth.io/build/auth) instead.

## Revoke access

Open **Settings → Connected apps** in the Mammoth web app and choose **Revoke** next to the client. It loses access at once, including to anything it is doing at that moment. You can connect it again from the client.

## Uploading a file

A tool argument carries only text, so a spreadsheet or a large CSV cannot go through the model. `request_upload` returns a one-time link; you open it (or drop the file on the uploader some clients draw under the call) and the file goes straight from your browser to Mammoth. The link expires after 30 minutes and works for one upload. `check_upload` then reports whether the file arrived. [Blast radius and safety](https://docs.mammoth.io/agents/safety#the-inverse-case-data-entering-mammoth-through-a-link-not-an-argument) explains why this is safe.

## The tools

The server has 47 tools. Each declares what it does to your data as an MCP annotation, so a client can run a read-only tool freely and ask you before a destructive one. The list below is read from the server's tool registry.

### Tools that only read (`readOnlyHint`): 23 tools

| Tool | What it does |
| --- | --- |
| `check_upload` | Find out whether the user has uploaded their files yet. |
| `get_automation` | Get one automation: what it does, when it runs, and how it last went. |
| `get_automation_schema` | Get what one kind of automation task needs, and the conditions there are. |
| `get_dashboard` | Get one dashboard: its title, its views, and who it is shared with. |
| `get_data` | Read rows from a view. |
| `get_dataset` | Get one dataset with its columns, row counts and status. |
| `get_export` | Get one export of a view, including how its last run went. |
| `get_export_schema` | Get the settings one export destination needs. |
| `get_file` | Get one file, with its status and what Mammoth read from it. |
| `get_help` | Explain how Mammoth works. Read this before a first transformation. |
| `get_pipeline` | Get a view's pipeline: its state and its steps, in order. |
| `get_transformation_schema` | Get the arguments one transformation takes, as a JSON schema. |
| `get_view` | Get one view with its columns and their types. |
| `list_automations` | List a project's automations. |
| `list_dashboard_tags` | List the tags dashboards in a workspace are filed under. |
| `list_dashboards` | List the dashboards the signed-in user can open. |
| `list_datasets` | List the datasets in a project. |
| `list_exports` | List a view's exports. |
| `list_files` | List the files uploaded to a project. |
| `list_projects` | List the projects in a workspace. |
| `list_views` | List the views of a dataset. |
| `list_workspaces` | List the workspaces the signed-in user can open. |
| `preview_transformation` | Show what a transformation would do to a sample of a view, without adding it. |

### Tools that add or change something that can be put back: 11 tools

| Tool | What it does |
| --- | --- |
| `add_transformations` | Add transformations to a view, and run its pipeline once. |
| `create_dashboard` | Create an empty dashboard on a view, and return it. |
| `create_view` | Create a view of a dataset, empty or as a copy of another view. |
| `extract_sheets` | Bring the chosen sheets of an uploaded workbook in, one dataset each. |
| `generate_dashboard` | Have Mammoth's AI build a dashboard on a view from a description. |
| `interpret_file` | Say how a file is meant to be read, when Mammoth found more than one way. |
| `request_upload` | Let the user upload files from their own machine. |
| `set_dashboard_tags` | File a dashboard under a set of tags, replacing the tags it had. |
| `set_date_format` | Say which way round a file's dates read, and finish the dataset. |
| `unlock_file` | Open a file that is password protected, so Mammoth can read it. |
| `upload_file` | Create a dataset in a project from text you have. |

### Tools that delete, send data out, publish, or run work (`destructiveHint`): 13 tools

| Tool | What it does |
| --- | --- |
| `add_export` | Add an export to a view's pipeline and wait for it to run. |
| `create_automation` | Create an automation in a project and return it. |
| `delete_automation` | Move an automation to the trash, where it can still be restored. |
| `delete_dashboard` | Move a dashboard to the trash, where it can still be restored. |
| `delete_export` | Delete one export of a view. Rows already sent are not taken back. |
| `delete_file` | Delete a file from a project. |
| `delete_transformation_step` | Delete one step of a view's pipeline and wait for the view to run again. |
| `delete_views` | Delete views of a dataset. |
| `manage_draft` | Stage a view's transformations instead of running each one as it is added. |
| `publish_dashboard` | Publish a dashboard, decide who can open it, and return its link. |
| `review_unreadable_rows` | Show the lines of a file that did not fit, and discard them on request. |
| `run_pipeline` | Run all of a view's steps again, e.g. after its dataset got new data. |
| `update_automation` | Rename an automation, or stop and start it. Returns it afterwards. |

A client decides how to act on these annotations. Whether a given client asks you before a destructive tool is that client's setting.

---

**Next up:** [API authentication](https://docs.mammoth.io/build/auth) for the credential each surface uses · [Blast radius and safety](https://docs.mammoth.io/agents/safety) for the CLI's mutation classes · [Use Mammoth with Claude](https://docs.mammoth.io/agents/claude).

---
Source: https://docs.mammoth.io/agents/mcp.md · Updated: 2026-10-08