Server defines 7 tools with explicit schemas and descriptions. Tool naming follows verb_noun pattern (listMonitors, getMonitor, createMonitor, etc.). Most tools have basic descriptions (10-60 chars). All tools declare input schemas with type and property definitions. However, descriptions are minimal and lack context about when to use each tool or what they return. Parameter descriptions are present but terse. No output schemas documented. No error handling guidance visible. Security: authentication token appears to be handled server-side (good), but no explicit secret-injection pattern documented. Composition: tools are well-separated by concern (read vs write, monitor vs incident), but relationships between tools (e.g., createMonitor returns a monitor ID that getMonitor accepts) are not documented in descriptions.
Create an anonymous tracking (doesn't require authentication)
Create a new monitor
Get details for a specific incident
Get details for a specific monitor
Get a list of all incidents for the authenticated team
Get incidents for a specific monitor
Get a list of all monitors for the authenticated team
Tool descriptions are too brief (10-60 chars) and lack context about when to use each tool, prerequisites, and what data is returned.
No output schemas documented. LLMs cannot plan downstream calls or extract required data without knowing response structure. Affects all 7 tools.
No pagination parameters (page, limit, offset, next_cursor) on list tools. listMonitors and listIncidents could return hundreds of items, blowing context window.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
No error handling guidance visible. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next (e.g., 'If createMonitor fails with auth error, check your API key').
Optional parameter descriptions lack constraints. createMonitor has optional tracking_type with enum ['http','ping','port','ssh','dns'], but no explanation of when to use which. Optional check_frequency and timeout lack min/max bounds.
Tool relationships not documented. createMonitor likely returns a monitor_id, and getMonitor accepts id, but this is not stated in descriptions. LLM cannot infer chaining without explicit guidance.
createAnonymousTracking description lacks clarity on when it is used vs createMonitor. Both create monitors, what is the semantic difference? Name suggests 'no auth required', but description does not explain the use case.