Query and analyse your data from Bitmovin Observability
Inferred from the transports this listing declares (streamable-http, sse). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://analytics.mcp.bitmovin.com11 tools · 272mshttps://analytics.mcp.bitmovin.com11 tools · 272msqueryQuery a metric over a time range (start/end) for a license as a TIME SERIES — always renders a chart. Use this for trends and license-wide analytics over a period (e.g. 'last week', 'last 30 days', 'yesterday'). Bucket size is chosen automatically from start/end; there is no interval field to set.…Query a metric over a time range (start/end) for a license as a TIME SERIES — always renders a chart. Use this for trends and license-wide analytics over a period (e.g. 'last week', 'last 30 days', 'yesterday'). Bucket size is chosen automatically from start/end; there is no interval field to set.…
| Parameter | Type | Description |
|---|---|---|
| licenseKey* | string | license key (uuid) to query |
| metric* | string | the metric to query. before setting a value, resolve the keyword with the `searchMetrics` tool |
| start* | string | start date/time in ISO 8601 format (e.g., '2025-10-01T00:00:00') |
| end* | string | end date/time in ISO 8601 format (e.g., '2025-10-02T00:00:00') |
| aggregation | string | aggregation method: 'average', 'median', or 'percentile'. If not specified, uses the metric's default aggregation method |
| percentile | number | percentile value (0-100) - required when aggregation is 'percentile' |
| filters | array | optional filters to apply to the query |
queryGroupByquery metric grouped by categories. Queries resolve against API metric keywords, which can differ from a metric's common name — 'plays', for example, is 'impression_id'. The 'searchMetrics' tool resolves a keyword cheaply; 'getAvailableMetrics' returns the full catalog. Every query needs a licenseK…query metric grouped by categories. Queries resolve against API metric keywords, which can differ from a metric's common name — 'plays', for example, is 'impression_id'. The 'searchMetrics' tool resolves a keyword cheaply; 'getAvailableMetrics' returns the full catalog. Every query needs a licenseK…
| Parameter | Type | Description |
|---|---|---|
| licenseKey* | string | license key (uuid) to query |
| metric* | string | the metric to query. before setting a value, resolve the keyword with the `searchMetrics` tool |
| start* | string | start date/time in ISO 8601 format (e.g., '2025-10-01T00:00:00') |
| end* | string | end date/time in ISO 8601 format (e.g., '2025-10-02T00:00:00') |
| groupBy* | — | category (or array of categories) to group results by — e.g. Case-insensitive: ['BROWSER', 'COUNTRY'] or just 'BROWSER'. Prefer an array even for a single valu… |
| aggregation | string | aggregation method: 'average', 'median', or 'percentile'. If not specified, uses the metric's default aggregation method |
| percentile | number | percentile value (0-100) - required when aggregation is 'percentile' |
| filters | array | optional filters to apply to the query |
queryTotalGet an aggregated value (one number) for a metric over a time range — no chart, no time bucketing. Can fetch SEVERAL metrics in one call: pass an array to `metric` to get one value per metric (e.g. the ad completion funnel), instead of calling this tool repeatedly. Use ONLY when the user asks for t…Get an aggregated value (one number) for a metric over a time range — no chart, no time bucketing. Can fetch SEVERAL metrics in one call: pass an array to `metric` to get one value per metric (e.g. the ad completion funnel), instead of calling this tool repeatedly. Use ONLY when the user asks for t…
| Parameter | Type | Description |
|---|---|---|
| licenseKey* | string | license key (uuid) to query |
| metric* | — | the metric to query: a single keyword, or an array of up to 6 keywords resolved together in one call, which returns one value per metric. A multi-metric ask su… |
| start* | string | start date/time in ISO 8601 format (e.g., '2025-10-01T00:00:00') |
| end* | string | end date/time in ISO 8601 format (e.g., '2025-10-02T00:00:00') |
| aggregation | string | aggregation method: 'average', 'median', or 'percentile'. If not specified, uses the metric's default aggregation method |
| percentile | number | percentile value (0-100) - required when aggregation is 'percentile' |
| filters | array | optional filters to apply to the query |
peekAllLicensesView a summary of all available licenses with their recent play counts and percentage distribution. Use this to understand what licenses exist and their relative usage. When a user asks about licenses by ranking (e.g., 'biggest', 'most active', 'first'), use this to identify which license matches t…View a summary of all available licenses with their recent play counts and percentage distribution. Use this to understand what licenses exist and their relative usage. When a user asks about licenses by ranking (e.g., 'biggest', 'most active', 'first'), use this to identify which license matches t…
No input schema was published for this tool.
getImpressionOverviewInspect a SINGLE playback session identified by a specific impressionId. Returns that one session's static properties (device, location, player) and its aggregated metrics (total played time, buffering, video quality). REQUIRES an impressionId. Do NOT use this for license-wide metrics, totals, tren…Inspect a SINGLE playback session identified by a specific impressionId. Returns that one session's static properties (device, location, player) and its aggregated metrics (total played time, buffering, video quality). REQUIRES an impressionId. Do NOT use this for license-wide metrics, totals, tren…
| Parameter | Type | Description |
|---|---|---|
| impressionId* | string | Impression ID |
| licenseKey* | string | license key (uuid) to query |
analyzeImpressionDeep-dive analysis of a SINGLE playback session identified by a specific impressionId: static properties, aggregated metrics, state-transition timeline, and an AI-powered interpretation of session quality. Use for detailed single-session troubleshooting. REQUIRES an impressionId. Do NOT use this fo…Deep-dive analysis of a SINGLE playback session identified by a specific impressionId: static properties, aggregated metrics, state-transition timeline, and an AI-powered interpretation of session quality. Use for detailed single-session troubleshooting. REQUIRES an impressionId. Do NOT use this fo…
| Parameter | Type | Description |
|---|---|---|
| impressionId* | string | Impression ID |
| licenseKey* | string | license key (uuid) to query |
fetchImpressionsList the impression ids (individual playback session ids) for a license over a time range, optionally narrowed by filters. Returns the ids themselves — NOT counts, totals, or trends. Use this to enumerate sessions before drilling into specific ones with `getImpressionOverview` or `analyzeImpression…List the impression ids (individual playback session ids) for a license over a time range, optionally narrowed by filters. Returns the ids themselves — NOT counts, totals, or trends. Use this to enumerate sessions before drilling into specific ones with `getImpressionOverview` or `analyzeImpression…
| Parameter | Type | Description |
|---|---|---|
| licenseKey* | string | license key (uuid) to query |
| start* | string | start date/time in ISO 8601 format (e.g., '2025-10-01T00:00:00') |
| end* | string | end date/time in ISO 8601 format (e.g., '2025-10-02T00:00:00') |
| filters | array | optional filters to apply to the query |
| limit | integer | maximum number of impression ids to return (1-200, default 100) |
getAvailableMetricsList the full catalog of metrics with their supported aggregation methods. Prefer searchMetrics to resolve a single keyword; use this only when you need every metric.List the full catalog of metrics with their supported aggregation methods. Prefer searchMetrics to resolve a single keyword; use this only when you need every metric.
No input schema was published for this tool.
getAvailableFiltersList the full catalog of filter attributes with their supported operators. Prefer searchFilters to resolve a single attribute; use this only when you need every filter.List the full catalog of filter attributes with their supported operators. Prefer searchFilters to resolve a single attribute; use this only when you need every filter.
| Parameter | Type | Description |
|---|---|---|
| licenseKey | string | license key (uuid) to query |
searchMetricsFind the exact metric keyword for a topic or question (e.g. 'buffering', 'how many errors'). Preferred way to resolve a metric keyword; use getAvailableMetrics only to list the full catalog.Find the exact metric keyword for a topic or question (e.g. 'buffering', 'how many errors'). Preferred way to resolve a metric keyword; use getAvailableMetrics only to list the full catalog.
| Parameter | Type | Description |
|---|---|---|
| query* | string | free-text term or question describing the metric/filter you want (e.g., 'buffering', 'browser', 'how many errors') |
| limit | integer | maximum number of results to return (default 5) |
searchFiltersFind the exact filter/group-by attribute keyword for a topic or question (e.g. 'browser', 'device type', 'content tier'). Preferred way to resolve an attribute; use 'licenseKey' to resolve custom namings of attributes; use getAvailableFilters only to list the full static catalog.Find the exact filter/group-by attribute keyword for a topic or question (e.g. 'browser', 'device type', 'content tier'). Preferred way to resolve an attribute; use 'licenseKey' to resolve custom namings of attributes; use getAvailableFilters only to list the full static catalog.
| Parameter | Type | Description |
|---|---|---|
| query* | string | free-text term or question describing the metric/filter you want (e.g., 'buffering', 'browser', 'how many errors') |
| limit | integer | maximum number of results to return (default 5) |
| licenseKey | string | license key (uuid) to query |
11 of 11 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Query and analyse your data from Bitmovin Observability
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.