MCP Server for Tempo Cloud API - Worklog management integration for AI assistants
Tempo MCP has well-structured schemas with proper types and descriptions for all 6 tools. Tool names follow verb_noun convention (get_, create_, update_, delete_). However, descriptions are minimal (10-50 chars), falling below the 50-200 char LLM-optimized baseline. Parameter descriptions exist but lack actionable constraints (e.g., time_spent format examples, date validation rules). No output schemas documented. Error handling and recovery guidance absent. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is sound, tools are single-responsibility and chainable.
Create a new worklog entry
Delete a worklog entry
Get all available Tempo accounts
Get all available work attributes
Retrieve worklogs by date range, project, issue, or user
Update an existing worklog entry
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). LLMs cannot determine when to select tools or understand prerequisites. E.g., 'Retrieve worklogs by date range, project, issue, or user' lacks context on filtering logic, return structure, or when to use vs. alternatives.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., create_worklog returns a worklog object, but the response structure (fields, types, required vs. optional) is not specified.
Parameter descriptions lack actionable constraints. E.g., time_spent says '2h 30m, 1.5h, 90m' but does not specify format rules, valid ranges, or error handling for invalid input. LLMs cannot validate before calling.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. delete_worklog is destructive but unmarked. Agents cannot reason about retry safety or side effects.
No error handling or recovery guidance. If create_worklog fails (invalid issue_id, time format error, API rate limit), the response does not guide the LLM on retry strategy, user-fixable issues, or next steps.