OTEL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | INFO |
| JAEGER_URL | No | The Jaeger URL to connect to | http://localhost:16686 |
| JAEGER_TIMEOUT | No | Timeout for Jaeger requests in seconds | 30 |
| OTEL_SDK_DISABLED | No | Disable self-telemetry if set to true | |
| OTEL_SERVICE_NAME | No | Service name for self-telemetry (optional) | |
| OTEL_EXPORTER_OTLP_ENDPOINT | No | OpenTelemetry exporter endpoint (optional) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_servicesB | List all available services in Jaeger. Returns: JSON string with list of services |
| list_operationsC | List all operations for a specific service. Args: service_name: Name of the service Returns: JSON string with list of operations |
| search_tracesB | Search for traces with filters. Args: service_name: Service name (required for Jaeger) operation_name: Filter by operation name start_time: Start time in ISO 8601 format end_time: End time in ISO 8601 format min_duration_ms: Minimum trace duration in milliseconds max_duration_ms: Maximum trace duration in milliseconds has_error: Filter traces with errors limit: Maximum traces to return (default: 20, max: 100) Returns: JSON string with trace summaries |
| get_traceB | Get complete trace details by ID. Args: trace_id: Trace identifier Returns: JSON string with full trace data including all spans |
| find_errorsB | Find traces containing errors. Args: service_name: Service name (required for Jaeger) start_time: Start time in ISO 8601 format end_time: End time in ISO 8601 format limit: Maximum error traces to return (default: 20) Returns: JSON string with error traces and error details |
| get_slow_tracesA | Find slowest traces for a service. Args: service_name: Service name (required for Jaeger) operation_name: Filter by operation name min_duration_ms: Minimum duration threshold (default: 1000ms) limit: Maximum traces to return (default: 10) Returns: JSON string with slowest traces sorted by duration |
| get_operation_statsB | Get performance statistics for a service or operation. Args: service_name: Service name (required for Jaeger) operation_name: Filter by specific operation start_time: Start time in ISO 8601 format end_time: End time in ISO 8601 format Returns: JSON string with latency percentiles and error rates |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
find_errors and search_traces with has_error overlap significantly, as do get_slow_traces and search_traces with duration filters. While get_trace, get_operation_stats, list_services, and list_operations are clearly distinct, the overlapping search/filter tools could cause misselection.
All tool names follow a consistent verb_noun pattern (get_, find_, list_, search_). The convention is predictable and readable throughout.
Seven tools are well-scoped for an observability server covering trace retrieval, error finding, performance analysis, and service discovery. Each tool appears to earn its place without excessive overlap or missing essentials.
The surface covers the full trace lifecycle: discovery (list_services, list_operations), retrieval (get_trace, search_traces), error analysis (find_errors), and performance stats (get_operation_stats, get_slow_traces). No obvious gaps for a read-only OTEL/Jaeger server.