Skip to main content
Glama

Server Details

Search, access, and get insights on your Amplitude data

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

20 tools
create_cohortTry in Inspector

Create a new cohort with the provided definition and configuration.

WHEN TO USE:

  • You need to create a new audience segment based on user behavior or properties

  • You want to save a cohort definition for reuse in charts, experiments, or other analyses

  • You need to create a cohort from specific conditions like events, user properties, or funnels

LEARNING FROM EXISTING COHORTS:

  • Before creating a cohort, use the "search" MCP tool to find relevant cohorts by name/description, then use get_cohorts with those IDs to analyze existing cohort definitions and structure

  • Study the structure and patterns of existing cohort definitions to understand the correct payload format

  • Pay attention to how different condition types (event, user_property, other_cohort, etc.) are structured

  • Learn from the andClauses/orClauses patterns and how they combine different conditions

  • Use existing cohorts as templates for similar use cases to ensure proper schema compliance

EXAMPLES:

  • Create an event-based cohort (users who performed a specific event >= 1 time in the past 30 days): { "app_id": "365742", "name": "xuan-simple-event-cohort", "definition": { "version": 3, "andClauses": [{ "negated": false, "orClauses": [{ "type": "event", // Condition type: event-based "metric": null, // No specific metric aggregation "offset": 0, // No time offset from the base time range "group_by": [], // No grouping/segmentation by event properties "interval": 1, // Time granularity: 1 = DAY (daily buckets) "operator": ">=", // Event count operator: greater than or equal "time_type": "rolling", // Rolling time window (last N days from now) "time_value": 30, // Time range: 30 units of the interval (30 days) "type_value": "xuan-test-httpapi-event-type", // The specific event name to match "operator_value": 1, // Minimum event count threshold: >= 1 occurrence "exclude_current_interval": false // Include events from the current day }] }], "cohortType": "UNIQUES", // Count unique users (not event occurrences) "countGroup": {"name": "User", "is_computed": false}, // Group by User entities "referenceFrameTimeParams": {} // No additional time frame parameters }, "type": "redshift", // Cohort computation engine type (optional - defaults to "redshift") "published": true // Make cohort discoverable to others } // EXPLANATION: This creates a cohort of users who performed the event "xuan-test-httpapi-event-type" // at least once in the last 30 days. The interval=1 means we evaluate this on a daily basis, // so the system looks at each day in the past 30 days to see if the user performed the event.

  • Create a complex cohort with multiple conditions (organizations in another cohort OR new active, AND performed an event): { "app_id": "365742", "name": "xuan-test", "definition": { "version": 3, "andClauses": [{ // First AND condition group "negated": false, "orClauses": [{ // First OR condition: existing cohort membership "type": "other_cohort", // Condition type: reference to another cohort "offset": 0, // No time offset "interval": 1, // Time granularity: 1 = DAY (daily evaluation) "time_type": "rolling", // Rolling time window (last N days) "time_value": 365, // Time range: 365 days (1 year lookback) "cohort_keys": ["rs4d2xg5"], // Reference to cohort ID "rs4d2xg5" "exclude_current_interval": false // Include current day in evaluation }, { // Second OR condition: new/active users "type": "new_active", // Condition type: new or active user status "offset": 0, // No time offset "interval": 1, // Time granularity: 1 = DAY (daily buckets) "time_type": "absolute", // Absolute time range (specific dates) "time_value": [1760572800, 1761955199], // Unix timestamps: specific date range "type_value": "new", // Filter for "new" users (vs "active") "exclude_current_interval": false // Include current day }] }, { // Second AND condition group "negated": false, "orClauses": [{ // Event-based condition "type": "event", // Condition type: event-based "metric": null, // No specific metric aggregation "offset": 0, // No time offset "group_by": [], // No event property grouping "interval": 1, // Time granularity: 1 = DAY (daily buckets) "operator": ">=", // Event count operator: greater than or equal "time_type": "rolling", // Rolling time window (last N days) "time_value": 30, // Time range: 30 days "type_value": "test event", // Event name to match "operator_value": 1, // Minimum event count: >= 1 occurrence "exclude_current_interval": false // Include current day }] }], "cohortType": "UNIQUES", // Count unique organizations (not occurrences) "countGroup": {"name": "org id", "is_computed": false}, // Group by Organization entities "referenceFrameTimeParams": {} // No additional time frame parameters }, "type": "redshift", // Cohort computation engine type (optional - defaults to "redshift") "published": true // Make cohort discoverable to others } // EXPLANATION: This creates a complex cohort using boolean logic: // (Organizations in cohort "rs4d2xg5" in the last 365 days OR new users in the specified date range) // AND (Organizations that performed "test event" >= 1 time in the last 30 days) // // The interval=1 in all conditions means daily granularity: // - Cohort membership is checked daily over 365 days // - New user status is evaluated daily within the absolute date range // - Event occurrences are counted daily over the last 30 days // // Note: This cohort counts organizations (org id) rather than individual users.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the cohort (required)
typeNoType of cohort computation engine (optional, defaults to "redshift" for standard dynamic cohorts). Only specify other types ("cluster", "funnels", "sessions", "clause_based_fine_grained_time") for specialized cohort types.redshift
ownerNoOwner of the cohort (optional, defaults to current user)
app_idYesThe application/project ID where the cohort should be created (required)
definitionYesCohort definition object containing conditions and configuration (required)
is_predictive_cohortNoWhether this is a predictive cohort (optional, defaults to false)
create_experimentTry in Inspector

Create a new experiment across one or more projects.

INSTRUCTIONS:

  • If the user has not specified projects, prompt them to decide which projects to use

  • Creates a feature A/B test with control and treatment variants

  • Creates the same experiment in each specified project

  • Returns the experiment IDs and URLs for viewing in Amplitude

EXAMPLES:

  • Basic A/B test: Provide projectIds, key, and name

  • Multiple projects: Provide array of projectIds to create experiment in each

  • With custom variants: Provide projectIds, key, name, and variants array

NOTES:

  • Experiment keys must be unique within each project

  • Variants default to 'control' and 'treatment' if not specified

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesUnique experiment key (e.g., "homepage-redesign"). Must be unique within each project.
nameYesHuman-readable experiment name
variantsNoExperiment variants. Defaults to control and treatment variants if not specified.
projectIdsYesArray of project IDs where the experiment will be created. If the user has not specified projects, prompt the user to decide. Do not decide for them.
descriptionNoExperiment description explaining what is being tested
bucketingKeyNoThe user property used to bucket users into variants. Defaults to "amplitude_id" if not specified. Common values: "amplitude_id", "user_id", "device_id".
evaluationModeNoDefaults to "remote". Set to "local" if specified by the user
projectMetricsNoMetrics to attach to the experiment for analysis
get_chartsTry in Inspector

Retrieve full chart objects by their IDs using the chart service directly

WHEN TO USE:

  • You want to retrieve a full chart definition.

  • Useful if you want to base an ad hoc query dataset analysis on an exsiting chart.

INSTRUCTIONS:

  • Use the search tool to find the IDs of charts you want to retrieve, then call this tool with the IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdsYesArray of chart IDs to retrieve (required)
get_cohortsTry in Inspector

Get detailed information about specific cohorts by their IDs.

WHEN TO USE:

  • You want to retrieve full cohort definitions after finding them via search.

  • You need detailed cohort information including definition, metadata, and audience details.

INSTRUCTIONS:

  • Use the search tool to find the IDs of cohorts you want to retrieve, then call this tool with the IDs.

  • This returns full cohort objects with all details, unlike the search tool which returns summary information.

ParametersJSON Schema
NameRequiredDescriptionDefault
cohortIdsYesArray of cohort IDs to retrieve (required)
get_contextTry in Inspector

Get context information about the current user, org, and projects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

get_dashboardTry in Inspector

Get specific dashboards and all their charts

WHEN TO USE:

  • You want to retrieve full dashboard definitions including chart IDs that you can query and analyze individually.

INSTRUCTIONS:

  • Use the search tool to find the IDs of dashboards you want to retrieve, then call this tool with the IDs.

  • Very commonly you will want to query the charts after retrieving a dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
dashboardIdsYesArray of dashboard IDs to retrieve (required)
get_deploymentsTry in Inspector

Retrieve all deployments for the current project. Deployments are api keys for flags and experiments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

get_event_propertiesTry in Inspector

Retrieve event properties for a specific event type from a project. This tool provides a concise way to get all properties associated with a particular event.

WHEN TO USE:

  • You want to get all properties associated with a particular event with the EXACT event type.

INSTRUCTIONS:

  • Search for the exact event type you want to get properties for using the search tool or the get_events tool.

  • Use this tool to get all event properties associated with a particular event.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventTypeYesThe specific event type to get properties for.
projectIdYesProject ID to get event properties from. If the user has not specified a project, prompt the user to decide. Dont decide for them.
get_experimentsTry in Inspector

Retrieve specific experiments by their IDs.

WHEN TO USE:

  • You want to retrieve addition information for experiments like state, decisions, etc.

INSTRUCTIONS:

  • Use the search tool to find the IDs of experiments you want to retrieve, then call this tool with the IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesArray of IDs to retrieve experiments by.
get_feedback_commentsTry in Inspector

Get feedback comments for a project with optional filtering and pagination.

WHEN TO USE:

  • You want to retrieve raw feedback comments from various sources (surveys, support tickets, app reviews).

  • You need to see the actual customer feedback text and metadata.

  • You want to analyze comments with optional filters before they are grouped into insights.

  • You need to search for specific feedback or paginate through results.

INSTRUCTIONS:

  • Provide the projectId (appId) to retrieve comments.

  • To get available sourceId values, first call get_feedback_sources with the projectId.

  • Provide sourceId to filter comments from a specific feedback source.

  • Use search parameter to filter comments by body text (searches within comment content).

  • Use page and pageSize parameters for pagination (defaults: page=1, pageSize=20).

  • Returns a list of comments with metadata including totalCount for pagination.

  • Each comment includes the feedback text, source information, and associated metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page number for pagination (default: 1)
searchNoOptional search term to filter comments by body text
pageSizeNoOptional page size for pagination (default: 50, max: 1000)
sourceIdYesSource ID to filter comments by specific AI feedback source
projectIdYesThe project ID (appId) to get feedback comments for
get_feedback_insightsTry in Inspector

Get feedback insights (processed and grouped themes) for a project with optional filtering and pagination.

WHAT ARE INSIGHTS:

  • Insights are derived from mentions in feedback comments. Insights represent processed and grouped themes extracted from feedback comments.

  • The 8 types of insights are: feature requests (request), complaints (complaint), loved features (lovedFeature), brands mentioned (competitor), bugs (bug), feature mentions (mentionedFeature), pain points (painPoint), and key takeaways (takeaway).

SORTING AND FILTERING:

  • Results are sorted by popularity (mention count), NOT by creation date. The tool cannot sort by when insights were created.

  • dateStart and dateEnd filter to insights with feedback comments within the date range.

DRILLING DEEPER:

  • Present the deep dive details to the user to help them understand the insight better.

  • If a user asks for more details on a specific insight, use get_feedback_mentions with the insightId to see the actual user feedback.

  • Do NOT call get_feedback_mentions for every insight - only when explicitly requested.

DIFFERENCE FROM GET_FEEDBACK_COMMENTS TOOL:

  • Insights are processed and grouped themes, while comments are raw individual feedback from a feedback source.

  • Use insights to understand themes and trends, use comments to see individual feedback.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional page number for pagination (default: 1)
ampIdNoOptional Amplitude user ID to filter insights by specific amplitude user
typesNoArray of insight types to filter by
searchNoOptional search term to filter insights by text content
dateEndNoOptional end date for filtering insights (ISO date string)
pageSizeNoOptional page size for pagination (default: 20, max: 100)
dateStartNoOptional start date for filtering insights (ISO date string)
projectIdYesThe project ID (appId) to get feedback insights for
sourceIdsNoArray of source IDs to filter insights by specific feedback sources (not required, all sources included by default)
orderDirectionNoOptional sort direction by mention count (default: desc)
get_feedback_mentionsTry in Inspector

Get feedback mentions (user feedback comments associated with an insight) for a specific insight.

PREREQUISITE: You MUST call get_feedback_insights first to obtain an insightId before using this tool.

WHAT ARE MENTIONS:

  • Mentions are the individual user feedback comments that contributed to a specific insight.

  • Each mention represents a piece of feedback from a user (survey response, support ticket, app review, etc).

WHEN TO USE:

  • ONLY after a user asks for more details or wants to see the actual feedback behind a specific insight.

  • Do NOT call this tool for every insight - only when the user specifically requests to drill down.

REQUIRED PARAMETERS:

  • insightId: The ID of the insight (from get_feedback_insights response)

  • All filter parameters (dateStart, dateEnd, sourceIds, ampId) should match what was used in the get_feedback_insights query to ensure consistent results.

ParametersJSON Schema
NameRequiredDescriptionDefault
ampIdNoAmplitude user ID to filter mentions by - should match get_feedback_insights query
dateEndNoEnd date for filtering mentions (ISO date string) - should match get_feedback_insights query
sourceIdNoSource ID to filter mentions by - should match get_feedback_insights query
dateStartNoStart date for filtering mentions (ISO date string) - should match get_feedback_insights query
insightIdYesThe insight ID to retrieve mentions for - required
projectIdYesThe project ID (appId) to get feedback mentions for
get_feedback_sourcesTry in Inspector

Get feedback sources (connected feedback integrations) for a project.

WHEN TO USE:

  • You want to retrieve the list of feedback sources/integrations configured for a project.

  • You need to understand which feedback channels (e.g., surveys, support tickets, app reviews) are connected.

  • You need sourceId values to filter feedback comments by specific sources.

  • You want to see metadata about feedback sources before analyzing comments.

INSTRUCTIONS:

  • Provide the projectId (appId) to retrieve all configured feedback sources.

  • Returns a list of sources with their sourceId, sourceType, name, and configuration details.

  • Use the sourceId from results to filter comments in get_feedback_comments.

  • Each source represents a connected integration like surveys, support tickets, or app store reviews.

TYPICAL WORKFLOW:

  1. Call get_feedback_sources to discover available sources and their sourceId values.

  2. Call get_feedback_comments with specific sourceId to retrieve comments from that source.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project ID (appId) to get feedback sources for
get_from_urlTry in Inspector

Retrieve objects from Amplitude URLs

WHEN TO USE:

  • CRITICAL: Only use this tool if the user shares a link to an amplitude URL which starts with https://app.eu.amplitude.com!

  • You have an Amplitude URL and want to get the full object definition

  • User shares a link to a dashboard, chart, notebook, experiment, etc.

INSTRUCTIONS:

  • Provide the full Amplitude URL (e.g., https://app.eu.amplitude.com/analytics/myorg/chart/456)

  • The tool will parse the URL, validate the organization, and return the full object

  • Works with charts, dashboards, notebooks, experiments, flags, cohorts, and metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull Amplitude URL to retrieve the object from
get_session_replaysTry in Inspector

Search session replays for a project using event count filters and segment filters.

WHEN TO USE:

  • You want to find session replays that match certain event count filters and user segments or conditions (e.g., variant membership, cohorts, user properties).

INSTRUCTIONS:

  • Provide the projectId and one or more event count filters and one or more segments with conditions.

  • Searches the last 30 days with a limit of 10 replays by default.

  • Optionally include eventCountFilters, groupBys, and limit.

IMPORTANT: ALWAYS provide the clickable replay links to users. Each session replay result includes a direct URL that users can click to view the full replay in Amplitude's Session Replay interface. These links are essential for users to actually watch and analyze the sessions. Simply providing raw session data without the viewing links is not helpful.

EXAMPLES:

  • Segments: All users segmentFilters: [{ "conditions": [] }]

  • Segments: Experiment variant membership segmentFilters: [ { "conditions": [ { "type": "property", "group_type": "User", "prop_type": "user", "prop": "gp:[Experiment] My Flag", "op": "is", "values": ["treatment"] } ] } ]

  • Segments: Country = US and plan in {Pro, Enterprise} segmentFilters: [ { "conditions": [ {"type":"property","group_type":"User","prop_type":"user","prop":"country","op":"is","values":["US"]}, {"type":"property","group_type":"User","prop_type":"user","prop":"plan","op":"is","values":["Pro","Enterprise"]} ] } ]

  • Event counter: at least 1 Purchase event eventCountFilters: [ { "count": "1", "operator": "greater or equal", "event": {"event_type": "Purchase", "filters": [], "group_by": []} } ]

  • Event counter: >= 3 Page Viewed on pricing page eventCountFilters: [ { "count": "3", "operator": "greater or equal", "event": { "event_type": "Page Viewed", "filters": [ { "group_type": "User", "subprop_key": "page", "subprop_op": "is", "subprop_type": "event", "subprop_value": ["pricing"] } ], "group_by": [] } } ]

NOTES:

  • Prefer property-based segment conditions for attributes; prefer eventCountFilters for behavioral criteria.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of sessions to return. Defaults to 10.
groupBysNoOptional group by properties to include in metadata
projectIdYesProject ID (appId) to search within
segmentFiltersNoArray of segments; each with a conditions array
eventCountFiltersNoOptional event count filters to constrain results
query_chartTry in Inspector

Query a single chart given its ID.

RULES:

  • Users want to know references for analyses in order to validate the data.

  • ALWAYS REFERENCE CHARTS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES.

WHEN TO USE:

  • You want to query a chart to get its data.

  • Only one chart or chart edit can be queried in a single request.

INSTRUCTIONS:

  • Identify the IDs of the charts you want to query from the conversation context (e.g., from URLs) or use the search tool to find them.

  • Provide saved charts via chartId parameter and chart edits (links ending in /chart/new/<edit_id> or /chart/<chart_id>/edit/<edit_id>) via the chartEditId parameter.

  • Only one chart or chart edit ID is allowed per request; if you have both, prefer the chart edit ID.

  • Use this tool to query one chart or chart edit.

  • Results will include data for the chart and errors if it fails.

RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse

CSV Response Structure (when isCsvResponse is true):

  • Header rows: The top rows contain metadata including chart name, description, events, formulas, and other chart configuration details

  • Data header row: A single row containing column labels for the data points below (typically includes dates or time periods)

  • Data rows: Each row contains:

    • Label columns: First few columns contain row labels identifying the data series

    • Value columns: Numerical data organized under the corresponding date/time columns from the data header row

  • Parse by: Skip metadata rows, identify the data header row, then extract labels from first columns and values from remaining columns

  • Cells in the CSV response are delimited by commas and may be prepended with a character Example below measures uniques of custom event "Valuable Tweaking" over 3 days (2025-08-23, 2025-08-24, 2025-08-25) for all users. The data points are 614, 1769, and 4132 for the 3 days respectively. data: " Example chart name" " Formula"," UNIQUES(A)" " A:"," [Custom] 'Valuable Tweaking'"

" Segment"," 2025-08-23"," 2025-08-24"," 2025-08-25" " All Non-Amplitude Users","614","1769","4132" definition: { "app": "APP_ID", "params": { "countGroup": "User", "end": 1756166399, "events": [ { "event_type": "ce:'Valuable Tweaking'", "filters": [], "group_by": [] } ], "groupBy": [], "interval": 1, "metric": "uniques", "segments": [], "start": 1755907200, }, "type": "eventsSegmentation", }

JSON Response Structure (when isCsvResponse is false):

  • Parse using the following structure:

    • timeSeries: Array of arrays, each containing data point for a given time period with a "value" property

    • overallSeries: Array of arrays, each containing data the overall data point (across the entire range) under the "value" property

    • seriesMetadata: Array of objects containing metadata for each series

    • xValuesForTimeSeries: Array of strings representing the x-axis values (dates) for the time series

  • Use the dataset definition to be able to parse referenced events, properties, and segments.

Example below is a JSON response is for the same query as the CSV example above. { "timeSeries": [[{"value": 614}, {"value": 1769}, {"value": 4132}]], "overallSeries": [[{"value": 5642}]], "seriesMetadata": [{"segmentIndex": 0, "formulaIndex": 0, "formula": "UNIQUES(A)"}], "xValuesForTimeSeries": ["2025-08-23T00:00:00", "2025-08-24T00:00:00", "2025-08-25T00:00:00"] }

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdNoSaved chart ID to query data for
chartEditIdNoChart edit ID to query data for
groupByLimitNoMaximum number of group by values to return (1-1000, defaults to 10)
excludeIncompleteDatapointsNoOptional flag to exclude incomplete data points from results. When true, the current time interval will be excluded from the results to avoid incomplete data points. Defaults to false.
query_chartsTry in Inspector

Query up to 3 charts concurrently given their IDs.

RULES:

  • Users want to know references for analyses in order to validate the data.

  • ALWAYS REFERENCE CHARTS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES.

WHEN TO USE:

  • You want to query multiple charts to get their data efficiently.

  • Maximum of 3 charts can be queried in a single request.

INSTRUCTIONS:

  • Identify the IDs of the charts you want to query from the conversation context (e.g., from URLs) or use the search tool to find them.

  • Provide saved charts via chartIds parameter and chart edits (links ending in /chart/new/<edit_id> or /chart/<chart_id>/edit/<edit_id>) via the chartEditIds parameter.

  • Chart edit IDs take precedence over chart IDs when both are available for a given chart.

  • Use this tool to query up to 3 charts + chart edits (combined total).

  • Results will include data for each successfully queried chart and errors for any failed charts.

RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse

CSV Response Structure (when isCsvResponse is true):

  • Header rows: The top rows contain metadata including chart name, description, events, formulas, and other chart configuration details

  • Data header row: A single row containing column labels for the data points below (typically includes dates or time periods)

  • Data rows: Each row contains:

    • Label columns: First few columns contain row labels identifying the data series

    • Value columns: Numerical data organized under the corresponding date/time columns from the data header row

  • Parse by: Skip metadata rows, identify the data header row, then extract labels from first columns and values from remaining columns

  • Cells in the CSV response are delimited by commas and may be prepended with a character Example below measures uniques of custom event "Valuable Tweaking" over 3 days (2025-08-23, 2025-08-24, 2025-08-25) for all users. The data points are 614, 1769, and 4132 for the 3 days respectively. data: " Example chart name" " Formula"," UNIQUES(A)" " A:"," [Custom] 'Valuable Tweaking'"

" Segment"," 2025-08-23"," 2025-08-24"," 2025-08-25" " All Non-Amplitude Users","614","1769","4132" definition: { "app": "APP_ID", "params": { "countGroup": "User", "end": 1756166399, "events": [ { "event_type": "ce:'Valuable Tweaking'", "filters": [], "group_by": [] } ], "groupBy": [], "interval": 1, "metric": "uniques", "segments": [], "start": 1755907200, }, "type": "eventsSegmentation", }

JSON Response Structure (when isCsvResponse is false):

  • Parse using the following structure:

    • timeSeries: Array of arrays, each containing data point for a given time period with a "value" property

    • overallSeries: Array of arrays, each containing data the overall data point (across the entire range) under the "value" property

    • seriesMetadata: Array of objects containing metadata for each series

    • xValuesForTimeSeries: Array of strings representing the x-axis values (dates) for the time series

  • Use the dataset definition to be able to parse referenced events, properties, and segments.

Example below is a JSON response is for the same query as the CSV example above. { "timeSeries": [[{"value": 614}, {"value": 1769}, {"value": 4132}]], "overallSeries": [[{"value": 5642}]], "seriesMetadata": [{"segmentIndex": 0, "formulaIndex": 0, "formula": "UNIQUES(A)"}], "xValuesForTimeSeries": ["2025-08-23T00:00:00", "2025-08-24T00:00:00", "2025-08-25T00:00:00"] }

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdsNoArray of saved chart IDs to query data for (max 3)
chartEditIdsNoArray of chart edit IDs to query data for (max 3)
groupByLimitNoMaximum number of group by values to return (1-1000, defaults to 10)
excludeIncompleteDatapointsNoOptional flag to exclude incomplete data points from results. When true, the current time interval will be excluded from the results to avoid incomplete data points. Defaults to false.
query_datasetTry in Inspector

Execute a data query using the dataset endpoint for more complex queries.

WHEN TO USE

  • You want to query data to form an ad hoc analysis within a project that does not already exist as a chart, metric, or experiment.

  • You want to tweak an existing chart to glean more information from it (e.g. add a group by, change the time range, etc.)

STRATEGIES

  1. Use the 'search' tool to find existing charts that relate to the data you want to query.

  2. Use the 'get_charts' tool to understand the events, properties, and dataset schema generally.

  3. Optionally use the 'search' tool again to find additional events, user properties, etc. needed for the query.

  4. Optionally use the 'get_event_properties' tool to get properties on individual events.

  5. Use this tool to query the ad hoc analysis.

GENERAL GUIDELINES

  • Don't assume or guess properties, events, or schema. Use the tools provided to you to understand the data before running a dataset query.

  • When running into query failures, try searching for existing charts to understand the data taxonomy and dataset schema.

  • When you receive a 400 error response the schema is likely incorrect or the events/properties do not exist.

  • ALWAYS include a descriptive "name" field in the definition object. This name will be displayed as the chart title. Examples: "Active Users Last 7 Days", "Sign Up to Purchase Funnel", "New User Retention".

AMPLITUDE WIDE META EVENTS TYPES

Special system events available for analysis. Events are passed in the "event_type" field:

  • "_active": Any active event useful for tracking 'active users' like DAU, MAU(events not marked as inactive)

  • "_all": Any event being tracked in Amplitude

  • "_new": Events triggered by new users within the time interval. Useful for tracking 'new users'.

  • "_any_revenue_event": Any revenue-generating event. Useful for tracking 'revenue'.

  • "$popularEvents": Top events by volume (dynamically computed). Useful for more meta taxonomy analyses like 'what are the most common events'.

PROPERTY TYPES:

  • AMPLITUDE CORE PROPERTIES: Built-in properties automatically tracked by Amplitude

    • Have source: "AMPLITUDE"

    • Use standard naming (lowercase, underscores)

    • Available for all events and users

  • CUSTOM PROPERTIES: Organization-defined properties

    • Have source: "CUSTOMER"

    • ALWAYS prefixed with "gp:" (e.g., "gp:email", "gp:full name")

    • Include experiment flags like "gp:[Experiment] feature-name"

COMPLETE LIST OF AMPLITUDE CORE PROPERTIES:

User & Session Identification:

  • user_id: Primary user identifier

  • amplitude_id: Amplitude's internal user ID

  • device_id: Unique device identifier

  • session_id: Session identifier

  • event_id: Unique event identifier

Geographic Properties:

  • ip_address: User's IP address

  • country: Country (from GeoIP)

  • city: City (from GeoIP)

  • region: State/region (from GeoIP)

  • dma: Designated Market Area

  • $postal_code: Postal/ZIP code

  • location_lat: Latitude coordinate

  • location_lng: Longitude coordinate

Device & Platform Properties:

  • platform: Device platform (iOS, Android, Web, etc.)

  • device: Device family name

  • device_type: Type of device (mobile, tablet, desktop)

  • os: Operating system

  • language: Device language setting

  • carrier: Mobile carrier

Application Properties:

  • version: Current app version

  • start_version: Version when user first used the app

  • library: SDK library used to send data

  • server_upload_time: When data was received by Amplitude

Business Properties:

  • paying: Whether user is a paying customer

RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse

CSV Response Structure (when isCsvResponse is true):

  • Header rows: The top rows contain metadata including chart name, description, events, formulas, and other chart configuration details

  • Data header row: A single row containing column labels for the data points below (typically includes dates or time periods)

  • Data rows: Each row contains:

    • Label columns: First few columns contain row labels identifying the data series

    • Value columns: Numerical data organized under the corresponding date/time columns from the data header row

  • Parse by: Skip metadata rows, identify the data header row, then extract labels from first columns and values from remaining columns

  • Cells in the CSV response are delimited by commas and may be prepended with a character Example below measures uniques of custom event "Valuable Tweaking" over 3 days (2025-08-23, 2025-08-24, 2025-08-25) for all users. The data points are 614, 1769, and 4132 for the 3 days respectively. data: " Example chart name" " Formula"," UNIQUES(A)" " A:"," [Custom] 'Valuable Tweaking'"

" Segment"," 2025-08-23"," 2025-08-24"," 2025-08-25" " All Non-Amplitude Users","614","1769","4132" definition: { "app": "APP_ID", "params": { "countGroup": "User", "end": 1756166399, "events": [ { "event_type": "ce:'Valuable Tweaking'", "filters": [], "group_by": [] } ], "groupBy": [], "interval": 1, "metric": "uniques", "segments": [], "start": 1755907200, }, "type": "eventsSegmentation", }

JSON Response Structure (when isCsvResponse is false):

  • Parse using the following structure:

    • timeSeries: Array of arrays, each containing data point for a given time period with a "value" property

    • overallSeries: Array of arrays, each containing data the overall data point (across the entire range) under the "value" property

    • seriesMetadata: Array of objects containing metadata for each series

    • xValuesForTimeSeries: Array of strings representing the x-axis values (dates) for the time series

  • Use the dataset definition to be able to parse referenced events, properties, and segments.

Example below is a JSON response is for the same query as the CSV example above. { "timeSeries": [[{"value": 614}, {"value": 1769}, {"value": 4132}]], "overallSeries": [[{"value": 5642}]], "seriesMetadata": [{"segmentIndex": 0, "formulaIndex": 0, "formula": "UNIQUES(A)"}], "xValuesForTimeSeries": ["2025-08-23T00:00:00", "2025-08-24T00:00:00", "2025-08-25T00:00:00"] }

ParametersJSON Schema
NameRequiredDescriptionDefault
chartIdNoOptional parent chart ID. Pass this when modifying/querying an existing chart to associate the new edit with the parent chart. Used for navigation back to the chart page.
projectIdYesProject ID to query data from
definitionYesChart definition object. ## EVENTS SEGMENTATION (trend analysis) Required params: {"range": "Last 30 Days", "events": [{"event_type": "Event", "filters": [], "group_by": []}], "metric": "totals", "countGroup": "User", "groupBy": [], "interval": 1, "segments": [{"conditions": []}]} - metric: "uniques" (unique users), "totals" (event count), "average" (per user), "pct_dau" (% DAU), "frequency" (distribution), "sums"/"value_avg" (property aggregation, requires property in event group_by), "prop_count" (distinct property values) - nthTimeLookbackWindow: Days for nth-time analysis (default: 365) EXAMPLES: - Event count: {"name": "Button Clicks Last 30 Days", "type": "eventsSegmentation", "app": "123", "params": {"range": "Last 30 Days", "events": [{"event_type": "Button Clicked", "filters": [], "group_by": []}], "metric": "totals", "countGroup": "User", "groupBy": [], "interval": 1, "segments": [{"conditions": []}]}} - Active users: {"name": "Active Users Last 30 Days", "type": "eventsSegmentation", "app": "123", "params": {"range": "Last 30 Days", "events": [{"event_type": "_active", "filters": [], "group_by": []}], "metric": "uniques", "countGroup": "User", "groupBy": [], "interval": 1, "segments": [{"conditions": []}]}} - Property sum: {"name": "Purchase Revenue Last 30 Days", "type": "eventsSegmentation", "app": "123", "params": {"range": "Last 30 Days", "events": [{"event_type": "Purchase", "filters": [], "group_by": [{"type": "event", "value": "revenue"}]}], "metric": "sums", "countGroup": "User", "groupBy": [], "interval": 1, "segments": [{"conditions": []}]}} ## FUNNELS (Conversion analysis through event sequence) Purpose: Analyze user progression through steps, identify drop-offs. Common for sign-up flows, purchase funnels, onboarding. Base: {"type": "funnels", "app": "projectId", "params": {"range": "Last 30 Days", "events": [{"event_type": "Step1", "filters": [], "group_by": []}, {"event_type": "Step2", "filters": [], "group_by": []}], "countGroup": "User", "segments": [{"conditions": []}]}} KEY PARAMS: - conversionWindow: Time limit for funnel completion (e.g., {"value": 1, "unit": "day"}) - order: "this_order" (default, must be ordered but other events can occur between), "any_order" (any sequence), "exact_order" (must be exact sequence with no other events between) - exclusionSteps: Array of events that disqualify users if triggered between steps EXAMPLES: - Basic funnel: {"name": "Product to Purchase Funnel", "type": "funnels", "app": "123", "params": {"range": "Last 30 Days", "events": [{"event_type": "View Product", "filters": [], "group_by": []}, {"event_type": "Add to Cart", "filters": [], "group_by": []}, {"event_type": "Purchase", "filters": [], "group_by": []}], "countGroup": "User", "segments": [{"conditions": []}]}} - Any order: {"name": "Purchase Flow Any Order", "type": "funnels", "app": "123", "params": {"range": "Last 30 Days", "events": [{"event_type": "View Product", "filters": [], "group_by": []}, {"event_type": "Add to Cart", "filters": [], "group_by": []}, {"event_type": "Purchase", "filters": [], "group_by": []}], "countGroup": "User", "order": "any_order", "segments": [{"conditions": []}]}} ## RETENTION (Cohort retention analysis over time) Purpose: Measure how well product retains users by tracking % who return after initial interaction. Essential for engagement patterns, churn, and product stickiness. Base: {"type": "retention", "app": "projectId", "params": {"range": "Last 30 Days", "startEvent": {"event_type": "_new", "filters": [], "group_by": []}, "retentionEvents": [{"event_type": "_active", "filters": [], "group_by": []}], "retentionMethod": "nday", "countGroup": "User", "interval": 1, "segments": [{"conditions": []}]}} KEY PARAMS: - startEvent: Use "_new" for first-time user retention, specific events (e.g., "Sign Up", "Purchase") for milestone retention - retentionMethod: "nday" (specific day return), "rolling" (return on or after day), "bracket" (custom interval ranges) - retentionBrackets: Array of [start, end] day ranges for bracket retention (e.g., [[0,1],[1,5],[5,12],[12,21]]) EXAMPLES: - Weekly retention: {"name": "Weekly Retention After Sign Up", "type": "retention", "app": "123", "params": {"range": "Last 90 Days", "startEvent": {"event_type": "Sign Up", "filters": [], "group_by": []}, "retentionEvents": [{"event_type": "_active", "filters": [], "group_by": []}], "retentionMethod": "nday", "countGroup": "User", "interval": 7, "segments": [{"conditions": []}]}} - Bracket retention: {"name": "New User Retention Brackets", "type": "retention", "app": "123", "params": {"range": "Last 90 Days", "startEvent": {"event_type": "_new", "filters": [], "group_by": []}, "retentionEvents": [{"event_type": "_active", "filters": [], "group_by": []}], "retentionMethod": "bracket", "countGroup": "User", "interval": 1, "retentionBrackets": [[0,1],[1,5],[5,12],[12,21]], "segments": [{"conditions": []}]}} ## SESSIONS (Session-based metrics and analysis) Purpose: Analyze user sessions to understand engagement depth, duration, frequency, and patterns. Useful for time spent, sessions per user, and quality. Base: {"type": "sessions", "app": "projectId", "params": {"range": "Last 30 Days", "sessions": [{"filters": [], "group_by": []}], "countGroup": "User", "sessionType": "average", "segments": [{"conditions": []}]}} KEY PARAMS: - sessionType: "average" (avg length in seconds, default), "totalSessions" (total count), "peruser" (avg per user), "averageTimePerUser" (avg time per user in sec), "totalTime" (total across all sessions in sec), "length" (distribution histogram) EXAMPLES: - Avg session length: {"name": "Average Session Length Last 30 Days", "type": "sessions", "app": "123", "params": {"range": "Last 30 Days", "sessions": [{"filters": [], "group_by": []}], "countGroup": "User", "sessionType": "average", "segments": [{"conditions": []}]}} ## COMMON PARAMETERS (All Chart Types) TIME RANGE (Required - choose one): - range: "Last N Days/Weeks/Months" (e.g., "Last 7 Days", "Last 30 Days", "Last 90 Days") or "This Week/Month/Quarter/Year". Note: Very large ranges (e.g., "Last 2 Years") may fail with daily interval - use start/end instead - start/end: Unix timestamps or ISO 8601 dates (e.g., {"start": 1727740800, "end": 1730419199} or {"start": "2025-11-07", "end": "2025-11-08"}). Use for multi-year ranges or precise boundaries COUNTING & AGGREGATION (Required): - countGroup: "User" (default - unique users, tracks distinct people), "Event" (event occurrences regardless of who), or custom groups ("org id", "Company", "Account", "Store") FILTERING & GROUPING (Optional): - segments: [{"conditions": []}] = all users. User filter: [{"conditions": [{"type": "property", "group_type": "User", "prop_type": "user", "prop": "country", "op": "is", "values": ["United States"]}]}]. Group filter: [{"conditions": [{"type": "property", "group_type": "org id", "prop_type": "group", "prop": "grp:plan", "op": "is", "values": ["enterprise"]}]}] - groupBy: Compare by property [{"type": "user", "value": "country", "group_type": "User"}] or [{"type": "event", "value": "platform", "group_type": "Event"}]. Caution: increases result size EVENT-LEVEL FILTERING & GROUPING (Optional): - filters (in event): Filter specific events by properties. Event property: [{"group_type": "User", "subprop_key": "source", "subprop_op": "is", "subprop_type": "event", "subprop_value": ["dashboard"]}]. User property: [{"group_type": "User", "subprop_key": "country", "subprop_op": "is", "subprop_type": "user", "subprop_value": ["US"]}] - group_by (in event): Group event by properties for dimension breakdown. Event property: [{"type": "event", "value": "platform"}]. User property: [{"type": "user", "value": "country"}]. Example: {"event_type": "Button Clicked", "filters": [], "group_by": [{"type": "event", "value": "button_name"}]} TIME BUCKETING (Optional): - interval: -3600000 (hourly), 1 (daily, default), 7 (weekly), 30 (monthly), 90 (quarterly). Only these specific values valid - arbitrary intervals like 2, 3, 14 will error
groupByLimitNoOptional limit for group by results
excludeIncompleteDatapointsNoOptional flag to exclude incomplete data points from results. When true, the current time interval will be excluded from the results to avoid incomplete data points. Defaults to false.
query_experimentTry in Inspector

Query an experiment analysis.

CRITICAL: Do NOT pass metricIds unless user explicitly requests specific metrics or requests analysis on secondary metrics. Omit metricIds for primary metric only (cleaner, focused results).

RULES:

  • Users want to know references for analyses in order to validate the data.

  • ALWAYS REFERENCE EXPERIMENTS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES.

WHEN TO USE:

  • You want to query a experiment for analysis.

INSTRUCTIONS:

  • Use the search tool to find the ID of the experiment you want to query.

  • You may want to use the get_experiments tool to get more context about the experiment (i.e. state, variants, etc.)

  • Use this tool to query the experiment analysis.

EXAMPLE: groupBy: [{"type": "user", "value": "device type", "group_type": "User"}]

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the experiment to query
filtersNoFilters to apply to the metric (optional)
groupByNoGroup by user (optional) - Example: [{"type": "user", "value": "device type", "group_type": "User"}]
metricIdsNoONLY provide if user explicitly requests specific metrics or all metrics. If omitted, returns primary/recommended metric only for cleaner, focused results. Default behavior is preferred.
groupByLimitNoMaximum number of group by values to return (1-1000, defaults to 10)
searchTry in Inspector

Search for dashboards, charts, notebooks, experiments, and other content in Amplitude.

INSTRUCTIONS:

  • Use this as your primary tool to discover and explore available analytics content before diving into specific analyses.

  • If you are not sure what to search for, use the default search query.

  • Do not specify appIds/projectIds in the input unless the user explicitly asks to search within a specific app/project.

  • When searching for taxonomy entities like events, properties, etc. use higher limits (e.g. 100-200) to get more results as there are more important entities to search through.

  • When searching for events, use the get_event_properties tool to get event properties on an individual event.

ADDITIONAL INFORMATION:

  • Results are personalized to the user you are making the request on behalf of.

  • Results do not include the full object definition. You will need to use other tools to get the full object definition when needed.

  • Best practice is to query for a single entity type, unless the user's request is open ended.

  • The response includes an isOfficial flag in contentMeta to identify content that has been marked as official by the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdsNoArray of app/project IDs to search within. If not provided, search will be for all apps the user has access to.
ownersNoFilter by owners (array of login IDs)
queriesNoArray of search query strings. If not provided or empty, search will return results based on relevance to the user. Multiple queries are executed in parallel and results are deduplicated using Reciprocal Rank Fusion (RRF).
sortOrderNoSort order for results
isOfficialNoFilter by official content only
entityTypesNoTypes of entities to search for. Will be converted to camelCase internally for entityRef field access.
excludeOwnersNoFilter out content by specific owners (array of login IDs)
limitPerQueryNoMaximum number of results to return per query. Results from multiple queries are deduplicated before being returned. We recommend starting with the default of 50, even if you are using multiple queries.
sortDirectionNoSort direction for resultsDESC
semanticSearchNoWhether to use semantic search in addition to keyword search
includeArchivedNoWhether to include archived entities
includeGeneratedNoWhether to include AI-generated entites

FAQ

How do I claim this server?

To claim this server, publish a /.well-known/glama.json file on your server's domain with the following structure:

{ "$schema": "https://glama.ai/mcp/schemas/connector.json", "maintainers": [ { "email": "your-email@example.com" } ] }

The email address must match the email associated with your Glama account. Once verified, the server will appear as claimed by you.

What are the benefits of claiming a server?
  • Control your server's listing on Glama, including description and metadata
  • Receive usage reports showing how your server is being used
  • Get monitoring and health status updates for your server
Try in Browser

Your Connectors

Sign in to create a connector for this server.