MCP Server for OpenTelemetry distributed trace span management with W3C TraceContext propagation support
Two tools with basic schemas and minimal descriptions. start_span and end_span have input schemas with type definitions, but descriptions are generic (under 100 chars) and lack actionable context for LLM selection. Parameter descriptions are missing entirely, 'name', 'trace_id', 'parent_span_id', 'attributes', 'span_id', 'status' have no descriptions in the schema. No output schema documented. No error handling guidance. No composition hints (e.g., 'call start_span first, then end_span'). Tool names are verb-noun but lack clarity on when to use each vs. alternatives. No pagination, no batching, no idempotency guarantees stated.
End an OpenTelemetry span and record duration.
Start an OpenTelemetry distributed trace span.
Parameter descriptions missing from input schemas. 'name', 'trace_id', 'parent_span_id', 'attributes', 'span_id', 'status' have no descriptions in the JSON Schema. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are generic and under 100 characters. 'Start an OpenTelemetry distributed trace span' does not explain WHEN to use this tool, what prerequisites exist, or what the return value contains. LLMs need 50-200 char descriptions with context.
No output schema documented. Callers cannot know what fields to expect from start_span (returns span object with trace_id, span_id, etc.) or end_span. LLMs need documented return types to plan downstream calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
No error handling guidance. If end_span is called with a non-existent span_id, the code returns None silently. LLMs need actionable error messages: 'Span not found. Call start_span first with the same trace context.'
No composition hints or tool chaining guidance. The description does not state 'Call start_span to begin a trace, then end_span to close it' or explain the relationship between trace_id and parent_span_id. Agents must infer the workflow.