MCP server for interacting with Perses observability platform, providing tools to list projects, dashboards, datasources, and variables
All 6 tools have basic descriptions and clear naming with action verbs (list_*). However, critical gaps undermine quality: (1) No input schemas visible in source code for any tool, parameter definitions inferred from code only, not declared in tool registration. (2) Descriptions are minimal (10-40 chars), below the 50-200 char baseline for LLM optimization. (3) No output schemas documented, LLMs cannot predict response structure. (4) No error handling guidance, failures return raw errors without recovery hints. (5) All tools are read-only but lack explicit idempotentHint annotations. Per-tool scores average 42 due to schema visibility issues and minimal descriptions.
List dashboards for a specific project
List Datasources for a specific project
List all Perses Global Datasources
List all Global Variables
List all Perses Projects
List variables for a specific project
Input schemas not visible in tool registration. Parameter definitions (e.g., 'project' string) are inferred from handler code, not declared via mcp.WithString() in tool definition. Cannot verify schema completeness or constraints.
Descriptions are 10-40 characters, well below the 50-200 char baseline. 'List all Perses Projects' and 'List dashboards for a specific project' lack context on WHEN to use each tool, what structure is returned, or dependencies between tools.
No output schemas documented. Tools return JSON-marshalled objects with no description of fields, structure, or pagination. LLMs cannot predict response shape or plan downstream tool calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
Error handling returns raw fmt.Errorf() messages without recovery guidance. E.g., 'error retrieving dashboards in project' gives no hint whether to retry, check project name, or call a discovery tool first.
No tool annotations (idempotentHint, readOnlyHint). All tools are read-only and safe to retry, but this is not declared. Agents cannot optimize retry logic or understand safety guarantees.