---
title: "Amplitude MCP server (Streamable HTTP)"
method: POST
path: "/mcp"
tags: ["MCP"]
---

# Amplitude MCP server (Streamable HTTP)

`POST /mcp`

## Request

- Base URL: `https://mcp.amplitude.com`
- URL: `https://mcp.amplitude.com/mcp`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://mcp.amplitude.com/authorize`
    - Token URL: `https://mcp.amplitude.com/token` scopes: `mcp:read`
  - OAuth 2
    - Authorization code: `https://mcp.amplitude.com/authorize`
    - Token URL: `https://mcp.amplitude.com/token` scopes: `mcp:write`

JSON-RPC 2.0 over Streamable HTTP, per the Model Context Protocol specification. Described here so the OAuth scopes an agent needs are discoverable from this document; the request and response bodies are defined by MCP, not by Amplitude.

Do not hardcode tool names — call `tools/list` and read the definitions the server returns at runtime.

`mcp:read` is sufficient for read-only tools. Tools that create or modify dashboards, notebooks, experiments, cohorts, or metrics additionally require `mcp:write`.

## Request body

- object: A JSON-RPC 2.0 request as defined by MCP.

## Response `200`

JSON-RPC result, or an SSE stream when the client accepts `text/event-stream`.

- object

## Other responses

- `401`: Missing, expired, or revoked access token. The `WWW-Authenticate` header carries the protected resource metadata URL. Refresh once; if that fails, restart the authorization code flow.
- `403`: The token is valid but lacks the scope for this tool, or the underlying Amplitude user lacks permission on the target resource.

## Changes

- **2026-10-14** `e475ad97669a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/amplitude/apis/amplitude-public-apis/changes/mcp/post.md)

---

[API](https://skmtc.dev/amplitude/apis/amplitude-public-apis.md) - [All operations](https://skmtc.dev/amplitude/apis/amplitude-public-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/amplitude/apis/amplitude-public-apis/revisions/e475ad97669a?raw)
