Integrate Amplitude MCP server into your Slack workspace for instant access to your AI agent.
Tools that your AI agent can use through this MCP server to interact with Amplitude
Record a single analytics event for a user or device via Amplitude's HTTP V2 API. Use this to send product-usage events (page views, feature use, purchases) as they happen, rather than the read-only Dashboard REST actions in this app (e.g. Get Event Segmentation, Get Retention Analysis), which only read existing data back. Identify the user with userId and/or deviceId — Amplitude requires at least one. Example: call with userId="user_123", eventType="Purchase", eventProperties={"item":"Pro Plan","price":29.99} -> returns {code: 200, events_ingested: 1, payload_size_bytes: 148, server_upload_time: 1722873600000}. See the documentation
Look up Amplitude users by Amplitude ID, Device ID, User ID, or a User ID prefix. Use this before Get User Activity to resolve a user's amplitude_id. Example: call with user="user@example.com" -> returns {matches: [{amplitude_id: 12345678, user_id: "user@example.com"}], type: "user_id"}. See the documentation.
Start a behavioral cohort download job (step 1 of 3: request -> status -> download, per Amplitude's Behavioral Cohorts Download API). Returns a request_id — pass it to Get Cohort Download Status to poll until the job completes, then to Download Cohort File to fetch the member list. Use List Cohorts first to discover valid cohort IDs. Example: call with cohortId="abc123" -> returns {request_id: "req_456", cohort_id: "abc123"}. See the documentation.
List all behavioral cohorts in the Amplitude project. Returns a cohorts array; each entry defaults to id, name, size, lastMod, appId. Pass fields to get more, e.g. description, published, archived, or the large definition (the cohort's filter logic) / owners/viewers (email arrays). Use this to discover valid cohort IDs for Request Cohort Download (step 1 of 3, followed by Get Cohort Download Status and Download Cohort File, to fetch a cohort's member list). Example: call with no parameters -> returns {cohorts: [{id: "abc123", name: "Power Users Q3", size: 4200, lastMod: 1722873600000, appId: 849238}, ...]}. See the documentation.
Fetch the event stream for a single user by their numeric Amplitude ID from the Amplitude Dashboard REST API. Each returned event defaults to just event_type and event_time; pass fields to also get e.g. event_properties, user_properties, uuid, session_id, amplitude_id, device_id (event objects can carry many properties, so these stay opt-in). Amplitude's API caps each request at 1000 events with no cursor; this tool pages offset forward automatically to collect up to limit events (set it above 1000, up to 5000, to fetch more than one page). Use Search Users first to resolve the Amplitude ID. Example: call with user=12345678, limit=50 -> returns {events: [{event_type: "Purchase", event_time: "2024-08-05 14:22:10"}, ...], userData: {...}, truncated: false} (truncated: true means more events likely exist beyond what was returned — raise limit/offset to fetch further). See the documentation.
Compute retention (return rate) between a start event and a return event over a date range from the Amplitude Dashboard REST API. Example: call with startEvent={"event_type":"_new"}, returnEvent={"event_type":"_active"}, startDate="20240706", endDate="20240805" -> returns {data: {series: [[...retention counts per interval...]], seriesLabels: [...]}}. See the documentation.
Compute conversion rates across an ordered (or unordered/sequential) set of funnel steps over a date range from the Amplitude Dashboard REST API. Provide one event definition per funnel step. Example: call with events=["{\"event_type\":\"Sign Up\"}","{\"event_type\":\"Purchase\"}"], startDate="20240706", endDate="20240805" -> returns {data: [{stepByStep: [...], cumulative: [...], eventCount: 4200}, ...]} (one entry per step). See the documentation.
Query event segmentation data (counts, uniques, and other metrics) for one or more events over a date range from the Amplitude Dashboard REST API. Use this to analyze how an event trends over time, optionally broken down by user properties. Example: call with event={"event_type":"Purchase"}, startDate="20240706", endDate="20240805", metric="uniques" -> returns {data: {xValues: ["2024-07-06", ...], series: [[42, 51, ...]]}} (one value per day per requested series). See the documentation.
Check whether a cohort download job has finished (step 2 of 3: request -> status -> download). Call Request Cohort Download first to get a requestId. This action polls internally for up to ~35 seconds before returning, since Amplitude's export jobs commonly take 30-60+ seconds regardless of cohort size. If the returned async_status is still JOB INPROGRESS, call this action again with the same request ID (it may take a few calls) — do not call Download Cohort File until async_status is JOB COMPLETED. Example: call with requestId="req_456" -> returns {request_id: "req_456", cohort_id: "abc123", async_status: "JOB COMPLETED"}. See the documentation.
Download a completed cohort export's member list (step 3 of 3: request -> status -> download). Call Request Cohort Download then Get Cohort Download Status first, and only call this once status is JOB COMPLETED — calling it earlier will fail. Returns one record per member (amplitude_id/user_id, plus any requested user properties) — not the cohort's own metadata (name, size, definition); use List Cohorts for that. Example: call with requestId="req_456" -> returns {requestId: "req_456", memberCount: 4200, returnedCount: 4200, truncated: false, members: [{amplitude_id: "123456789", user_id: "user@example.com"}, ...]}. See the documentation.
Create a static cohort in Amplitude from an explicit list of user or Amplitude IDs via POST /api/3/cohorts/upload (the only REST-documented cohort creation endpoint; behavioral/dynamic cohorts cannot be created via REST). Use List Cohorts to find an existing cohort ID if updating. Example: call with cohortName="Power Users Q3", appId=849238, idType="BY_USER_ID", ids=["user@example.com"], owner="admin@example.com" -> returns {cohortId: "abc123"}. See the documentation.