Two tools with minimal definitions. accela_auth_status has empty input schema ({}), which is acceptable for a read-only status check, but both tools lack substantive descriptions (under 100 chars). accela_login has a proper 2-parameter schema with type strings and descriptions, but the tool description itself is generic and doesn't explain prerequisites, return values, or error recovery paths. No output schemas documented. No error handling guidance. No parameter constraints (e.g., enum for environment). Naming is clear (verb_noun pattern), but descriptions fall short of the 50-200 char LLM-optimized baseline. No tool annotations (readOnlyHint, destructiveHint). This is a bootstrap-only server with minimal surface area, but even minimal tools need complete, actionable descriptions.
Check authentication status and token validity
Authenticate with Accela using OAuth 2.0 Authorization Code flow
Tool descriptions are too brief and lack LLM-optimized context. accela_auth_status (47 chars) and accela_login (95 chars) do not explain WHEN to call them, WHAT they return, or HOW to recover from errors. Baseline: 50-200 chars.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., token expiry, agency name) without knowing the response structure.
accela_login parameter 'environment' lacks enum constraint. Description says 'e.g., PROD, TEST' but does not enforce valid values. LLMs may hallucinate invalid environments like 'STAGING' or 'DEV'.
No error handling guidance. If accela_login fails (invalid credentials, network error, token refresh expired), the tool does not tell the LLM what to do next or whether to retry.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No tool annotations. accela_auth_status should be marked readOnlyHint=true; accela_login should be marked destructiveHint=true (modifies token state). Annotations help LLMs reason about side effects.