Affordable model calls, catalog pricing, and account status for AI agents. Provides access to Mirai chat completions with optional API key authentication.
Three tools with complete schemas, descriptions, and tool annotations. Naming is clear (verb_noun pattern). Descriptions are well-written (100-200 chars, within baseline). All parameters have types and descriptions. Error handling returns structured objects with hints. Main gaps: output schemas not formally documented; no pagination support (not needed for these tools); parameter descriptions could be more prescriptive about format/constraints.
Read remaining guest quota when MIRAI_API_KEY is unset, or paid balance and subscription windows when a key is set. Does not send a chat. Use list_models for prices.
Send a chat completion to Mirai and return the assistant text. Use this only to generate a reply. Do not use this to look up prices or remaining quota; use list_models or account_status. Works without MIRAI_API_KEY while daily guest quota remains. With a key, uses the paid chat completions API.
Read the live Mirai catalog and public USD price per million tokens. Use this before choosing a model. Does not send a chat. No API key required.
Output schemas not formally documented. Tools return text responses with JSON payloads, but the structure of returned objects (fields, types, required keys) is not declared in tool metadata. LLMs cannot plan downstream operations without knowing what fields to extract.
Parameter descriptions lack format/constraint details. 'model' param says 'Optional model id such as mirai-1 or mirai-2' but does not state: is it a free-form string, or must it match a specific pattern? Should the LLM call list_models first to validate? Constraint ambiguity invites hallucinated model names.
call_model description mentions 'Do not use this to look up prices or remaining quota' but does not explain WHY or what the consequences are. Agents need explicit guidance: 'Calling this for pricing lookups wastes tokens and returns incomplete data, use list_models instead.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
max_tokens parameter uses .positive() constraint but description does not state the upper bound or typical range. Agents may pass unreasonably large values. Add: 'Typical range 100 - 4096; values above model max_tokens are clamped.'
Error handling returns structured error objects with 'hint' field, which is good. However, no guidance on retryability. Is a 401 retryable after setting MIRAI_API_KEY? Is a 429 rate-limit retryable? Agents need explicit error classification.