An MCP server for tracing and logging LLM interactions with Weave telemetry
Two tools with basic verb-noun naming (start_tracing, log_trace) but significant quality gaps. Descriptions exist but lack actionable detail for LLM selection. Input schemas are present but incomplete: log_trace uses generic list[str] for complex nested data (llm_tool_calls, llm_tool_call_results) without field-level documentation. No output schemas documented. Parameters lack constraints, ranges, or format guidance. No error handling guidance. Missing idempotency, pagination, and composition patterns.
Log a trace of the user input, LLM response, LLM action, LLM tool calls, LLM tool call results, and LLM tool call result status to the current tracing session. Only user input and LLM response are mandatory.
Start a new tracing session with Weave using a session slug which will be used to identify the session in Weave. Ideally, the slug will be a short overview of the conversion with all lowercase words separated by hyphens and no more than 10 words.
log_trace uses generic list[str] for complex nested data (llm_tool_calls, llm_tool_call_results, llm_tool_call_result_status) without documenting expected structure, field names, or object schemas. LLMs cannot infer correct payload format.
No output schemas documented for either tool. Callers cannot plan downstream operations or extract required fields. start_tracing returns a plain string; log_trace returns a string from a nested @weave.op() call, both lack structured response definitions.
Descriptions lack actionable context. start_tracing says 'slug will be used to identify the session' but does not explain when to call it, what happens if called twice, or whether it is idempotent. log_trace description does not clarify return value, error conditions, or whether it requires start_tracing to be called first.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If weave.init() fails (e.g., invalid credentials, network error), the tool returns a raw exception. LLM receives no actionable error message, retry guidance, or next steps.
Parameter descriptions are minimal or missing. llm_action, llm_tool_calls, llm_tool_call_results, llm_tool_call_result_status are marked optional but lack format guidance, expected structure, or examples. LLMs cannot reliably construct valid payloads.