The Operata MCP Server is in preview. The tool surface may change as
the implementation tracks the MCP specification
and customer feedback. Follow the changelog for updates.
Endpoint and authentication
The MCP server uses the same Operata API tokens as the REST API. See
Authentication to mint one, and
Rate limits for throttling behavior.
Recommended workflow
The trace tools are schema-driven. Discover the shape of the data before you query it.get_schema— learn the available services, column paths, query types, aggregate functions, and filter operators.traces_list— browse and filter traces by time range, span name, or duration.traces_query— run analytics: counts, averages, trends, rates, and facets.traces_get— drill into a single trace for the full span tree.traces_span_insightsandtraces_span_logs— deep diagnostics on an individual span.knowledge— documentation and troubleshooting guidance.
Tools
get_schema
Returns the complete data schema: available services, column paths, query types, aggregate functions, and filter operators. Call this tool first so the AI client constructs valid queries. Parametersquery_reason(string, optional) — why the schema is being requested.
knowledge
Retrieves information from the Operata knowledge base — Operata features, CX observability concepts, and troubleshooting guidance. Parametersquery(string, required) — your question about Operata features or concepts.
traces_list
Lists and searches traces with filtering, sorting, and cursor-based pagination. Returns trace summaries with metadata such as duration, span count, and status. ParametersstartTime(string, required) — ISO 8601 UTC start time.endTime(string, required) — ISO 8601 UTC end time.filters(array, optional) — filter objects, each apathplus an operator (eq,gt,lt, and so on).sort(string, optional) —"asc"or"desc". Default"desc".limit(integer, optional) — results per page, 1–1000. Default 100.cursor(object, optional) — pagination cursor from a previous response.
SpanName, ServiceName, StatusCode,
SpanKind, Duration.
traces_query
Executes analytical queries against trace data. Supports five query types that can be combined in a single request. Each query specifies akey (a unique identifier) and a service.
Parameters
startTime(string, required) — ISO 8601 UTC start time.endTime(string, required) — ISO 8601 UTC end time.queries(object, required) — an object containing arrays for each query type.
traces_get
Retrieves a single trace by ID in full OpenTelemetry JSON, with all spans and logs. ParameterstraceId(string, required) — the 32-character hex trace identifier.includeInternal(boolean, optional) — include internaloperata.*spans. Defaultfalse.
traces_span_insights
Returns the insights — detected issues and anomalies — associated with a specific span within a trace. ParameterstraceId(string, required) — the 32-character hex trace identifier.spanId(string, required) — the 16-character hex span identifier.
traces_span_logs
Returns paginated logs for a specific span within a trace — softphone logs, CCP events, and other diagnostic records. ParameterstraceId(string, required) — the 32-character hex trace identifier.spanId(string, required) — the 16-character hex span identifier.limit(integer, optional) — max log records, 1–1000. Default 50.cursor(object, optional) — pagination cursor from a previous response.
Services
traces_query and the schema operate against four services. Each is one
row per interaction at a different level of the customer journey.
Query types
A singletraces_query request can combine any of these types.
Query construction
These constraints trip up generated queries most often:
- Service selection drives the path convention. Use
Attributes.cx.*foragent_interaction; useAttributes.*directly forjourney_interaction. - Boolean fields such as
had_agent,had_bot, andhad_queueare stored as strings. Filter with"eq": "true", not booleantrue. SpanNamecannot be used intraces_queryfilters. Usetraces_listwith aSpanNamefilter instead.
get_schema before building a complex query. Scope startTime/endTime
to the narrowest range that meets your need, and combine query types in one
traces_query call to minimize round-trips. Use cursor-based pagination on
traces_list and traces_span_logs for large result sets.
Verify
List the available tools to confirm the server is reachable and returning the full tool surface:get_schema, knowledge,
traces_list, traces_query, traces_get, traces_span_insights,
and traces_span_logs.
Related
- Connect Claude to the Operata MCP server — Claude Desktop, Claude Code, and the Claude API.
- Connect Cursor to the Operata MCP server — Cursor’s MCP configuration.
- Connect ChatGPT to the Operata MCP server — the ChatGPT integration roadmap.
- Authentication — the API tokens the MCP server uses.
- Rate limits — the 100 requests per minute per token limit.