Mammoth Analytics

io.mammoth由 mammoth.io 发布官方发布者v0.2.12更新于 Nov 4, 2026

Explore, clean, transform and export your Mammoth Analytics data from an AI client.

发布方自己的服务:Mammoth Docs

已验证Streamable HTTP可网页运行文件与存储数据与分析

概览

AI 生成的概览

Mammoth Analytics 的 MCP 服务器,让 AI 客户端以登录用户身份探索、清洗、转换并导出 Mammoth 数据。

可以做什么
  • 通过读取工具探索 Mammoth 数据,返回经过裁剪的 API 结果
  • 清洗与转换数据,把转换映射为流水线任务并等待任务完成
  • 操作视图、流水线、文件和仪表板等各类工具模块
  • 导出数据,并向用户返回 Mammoth 网页应用的链接
  • 通过短期上传页面接收本地文件,以便在 Mammoth 中使用
适用场景
当数据存放在 Mammoth Analytics,且希望 Claude、ChatGPT 等 AI 客户端在对话中直接查看、清洗、重塑或导出数据时使用。适合已在 Mammoth 工作区和项目中工作的分析师与团队。
运行要求
可使用 mcp.mammoth.io 托管端点,加入 MCP 客户端即可,无需安装;也可本地安装 mammoth-mcp-server Python 包。两者都需要 Mammoth 账号并通过 OAuth 登录,选择工作区和项目。本地部署还需 MCP_ENCRYPTION_KEY(Fernet 密钥)和通过 MCP_REDIS_URL 指定的 Redis,并在 Mammoth 侧完成 OAuth 配置。
安装前请注意
登录使用 OAuth,每次工具调用都以你的 Mammoth 权限执行,因此助手不仅能读取,也可能修改工作区数据。令牌只属于一个工作区,跨工作区调用会被拒绝。上传链接会把密封的令牌保存在 Redis 中,直到完成上传或 30 分钟过期。本地部署必须设置 MCP_ENCRYPTION_KEY,这是它唯一保存的密钥,缺失则无法启动。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mammoth Analytics,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.mammoth%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "mammoth-analytics": {
      "type": "http",
      "url": "https://mcp.mammoth.io/mcp"
    }
  }
}

README

mammoth-mcp-server

The Mammoth MCP server. An AI client (Claude, ChatGPT) uses its tools to explore, clean, transform and export data in Mammoth, as the signed-in user.

The server depends on one Mammoth package: the SDK (mammoth-io). Every tool reaches Mammoth through the API, as the SDK does. The server imports no backend code.

Hosted or local

  • Hosted: Mammoth runs this server at https://mcp.mammoth.io/mcp. Add that URL to your MCP client and sign in with your Mammoth account (OAuth). Nothing to install.
  • Local: pip install mammoth-mcp-server, then set MCP_ENCRYPTION_KEY and start mammoth-mcp-server (see From a virtual environment below). MCP_ENCRYPTION_KEY must be a Fernet key: 32 url-safe base64-encoded bytes. Generate one with python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())". The server refuses to start without it, or with a value that is not a Fernet key.

Layout

PathWhat it holds
mammoth_mcp_server/tools/The tools, one module per area (views, pipeline, files, dashboards, ...).
mammoth_mcp_server/sdk.pyThe SDK client a tool call is given, and the API's errors in words a model can use.
mammoth_mcp_server/jobs.pyThe wait for a job that an API route started.
mammoth_mcp_server/task_params.pyThe map from a transformation to the pipeline task the API takes.
mammoth_mcp_server/tokens.pyThe check of a caller's token: Mammoth says whether it is live and which server it is for.
mammoth_mcp_server/store.pyShort-lived records in Redis: upload tickets.
mammoth_mcp_server/upload_routes.pyThe page a user drops a local file on.
mammoth_mcp_server/server_card.pyThe public server card at /.well-known/mcp/server-card.json.
mammoth_mcp_server/shape.pyWhat a read tool hands the model, cut from the API's answer.
mammoth_mcp_server/app.pyThe ASGI app and main().
mammoth_mcp_server/config.pyEvery deployment setting, read from the environment.

Settings

VariableDefaultMeaning
MCP_SERVER_URLhttps://mcp.mammoth.ioThis server, as a client reaches it.
MAMMOTH_APP_URLhttps://app.mammoth.ioThe web app, for the links a tool gives the user.
MAMMOTH_DASHBOARD_URLMAMMOTH_APP_URLThe host that serves a published dashboard.
MAMMOTH_API_URLMAMMOTH_APP_URL + /api/v2The API every tool call goes to.
MAMMOTH_API_ROOT/api/v2The path the API is served under. Set it empty for an API reached directly.
MAMMOTH_OAUTH_URLMAMMOTH_APP_URL + /api/v2Mammoth's authorization server (its issuer), where a client signs the user in.
MCP_REDIS_URLredis://localhost:6379/0Where upload tickets are kept.
MCP_ENCRYPTION_KEYnoneA Fernet key. The caller's token in an upload ticket is sealed with it. Required.
MCP_STORE_PREFIXmammoth_mcpKeeps this deployment's records apart in a shared Redis.
MCP_HOST, MCP_PORT127.0.0.1, 8270Where the server listens.

Sign-in

This server signs nobody in. Mammoth's own authorization server does: the OAuth server the Mammoth API serves. This server is an OAuth resource server only.

  1. A client calls /mcp with no token. The server answers 401 and points to /.well-known/oauth-protected-resource/mcp.
  2. That document names Mammoth's authorization server (MAMMOTH_OAUTH_URL). The client reads the server's metadata there and sends the user to it.
  3. The user signs in to Mammoth, picks a workspace and a project, and approves. The client asks for a token for this server's URI, <MCP_SERVER_URL>/mcp (the resource parameter, RFC 8707).
  4. The client calls /mcp with that token. On every request the server asks Mammoth what the token is for (GET /workspaces/current). The server takes the token only when Mammoth says it is live and was issued for this server's URI.
  5. Each tool call goes to the Mammoth API with the same token, so the user's permissions apply.

A token belongs to one workspace. A tool call for another workspace is refused. A Mammoth API token made by hand in Workspace settings was issued for no server, so this server refuses it.

The server keeps no sign-in and no token, with one exception: an upload link holds the caller's token, sealed, in Redis until the user uploads or 30 minutes pass.

What Mammoth needs

  • The MCP server's URI, <MCP_SERVER_URL>/mcp, in mvc-service const.ini, section [oauth], key MCP_RESOURCES. Mammoth issues a token for no other resource.
  • GET /workspaces/current must return the token's resource beside the workspace id. Without it this server refuses every token.

Before it works in an environment below lists every step, in the order to check them.

Run

As a container, which needs nothing on the host but Docker

The image is built from this repository, so a deployment never waits for a release of the SDK. Build it from the repository root, which is the build context:

bash
cp mammoth-mcp-server/deploy/.dockerignore.example .dockerignoredocker build -f mammoth-mcp-server/deploy/Dockerfile -t mammoth-mcp-server .docker run --env-file mammoth-mcp-server/deploy/.env -p 8270:8270 mammoth-mcp-server

With a Redis of its own, as one stack:

bash
cp mammoth-mcp-server/.env.example mammoth-mcp-server/deploy/.env   # then set the valuesdocker compose -f mammoth-mcp-server/deploy/compose.yaml up -d --build

The server keeps nothing in memory between requests, so it scales by adding containers. They share only Redis.

From a virtual environment

bash
pip install mammoth-mcp-servercp .env.example .env        # then set the valuesmammoth-mcp-server          # or: uvicorn mammoth_mcp_server.app:create_app --factory

What deploy/ holds

FileWhat it is for
DockerfileThe image, built from this repository
compose.yamlThe server and a Redis, as one stack
.dockerignore.exampleCopy to the repository root before building
mammoth-mcp-server-container.service.examplesystemd, running the container
mammoth-mcp-server.service.examplesystemd, running a virtual environment
nginx.example.confBoth server blocks a deployment needs

Before it works in an environment

Each of these stops the sign-in on its own, so check them in order.

  1. DNS and the front door point MCP_SERVER_URL at the server's port. deploy/nginx.example.conf holds the server block.

  2. MCP_ENCRYPTION_KEY is set. It is the only secret this server keeps. Nothing else is required that has no default; see Settings.

  3. Mammoth knows this server: MCP_RESOURCES = <MCP_SERVER_URL>/mcp, in mvc-service const.ini, section [oauth]. Mammoth issues a token for no other resource.

  4. The Mammoth host serves its OAuth metadata where a client looks for it. For an issuer with a path, RFC 8414 puts the document at /.well-known/oauth-authorization-server/api/v2, and apiv2 serves it at its own path, so the front door has to join the two. The second server block in deploy/nginx.example.conf does it. Check it with:

    bash
    curl https://<mammoth host>/.well-known/oauth-authorization-server/api/v2

    It must answer the document, not 404.

  5. The web app's OAuth consent page is deployed. Without it the user lands on a page that does not exist, and approves nothing.

Then a client connects to <MCP_SERVER_URL>/mcp, and the user signs in to Mammoth and picks a workspace and a project.

Tests

bash
cd mammoth-mcp-serverpython -m pytest tests -q

The tests reach no server. The SDK client and the tools are real; only the HTTP transport under the client is replaced.

来源:mammoth-mcp-server/README.md,提交 4e7b528

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

6
  1. v0.2.12最新Nov 4, 2026
  2. v0.2.11Nov 4, 2026
  3. v0.2.9Nov 3, 2026
  4. v0.2.7Oct 21, 2026
  5. v0.2.1Oct 13, 2026
  6. v0.1.1Oct 12, 2026

评分

已满足适用检查项的 75%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Mammoth 集成