Mirai MCP
Mirai MCP server
Official MCP server for the Mirai affordable chat completions API.
npx -y @satuapps/mirai-mcpGuest quota works without a key. Set MIRAI_API_KEY for paid calls.
Client configs: mcp/README.md.
This repository is the public source for @satuapps/mirai-mcp. No application server code is included.
Available Tools
3 toolsaccount_statusBalance and quotaARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive behavior. The description adds value by confirming it does not send a chat and explaining conditional behavior based on API key. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and conditions, followed by an explicit exclusion and sibling reference. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description covers the main behaviors and usage conditions adequately. Could optionally mention what 'quota' vs 'balance' means, but not necessary for basic selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description doesn't need to elaborate. It still adds context about the conditional behavior (key vs. no key).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads account status (quota/balance) and distinguishes it from sending a chat. It also mentions a sibling tool for prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (depending on API key presence) and explicitly directs to list_models for prices, providing clear guidance versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_modelCall Mirai modelA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional model id such as mirai-1 or mirai-2. Guest calls default to mirai-1. | |
| messages | Yes | Conversation messages, oldest first | |
| max_tokens | No | Optional output token cap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, openWorldHint=true, etc. The description adds behavioral context beyond annotations: it states the return value ('assistant text'), explains authentication behavior and quota limits, and distinguishes paid vs. guest usage. It could more explicitly mention side effects like quota consumption, but overall adds meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a distinct purpose: primary action, differentiation from siblings, and authentication context. No redundant or filler words. Front-loaded with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters (1 required) and no output schema, the description covers the main function, intended usage, sibling exclusion, return type, and authentication context. Minor gap: it does not specify behavior when daily guest quota is exhausted, but the description is largely complete for decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any parameter-specific explanations beyond what the input schema descriptions already provide (e.g., optional model default, message format, max_tokens). No extra semantic value for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Send a chat completion to Mirai and return the assistant text,' clearly stating the specific verb ('Send') and resource ('chat completion to Mirai'). It explicitly distinguishes this tool from siblings by stating not to use it for looking up prices or quota, which should be done with list_models or account_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit instructions: 'Use this only to generate a reply. Do not use this to look up prices or remaining quota; use list_models or account_status.' Additionally, it explains authentication context—works without an API key while daily guest quota remains, and with a key uses paid API—providing clear context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsModel catalog and pricingARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive. The description adds that it reads live catalog data, includes pricing, and requires no API key. No contradiction with annotations; additional behavioral details enrich the agent's understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place. Front-loaded with the primary action, followed by usage guidance, then clarifying constraints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description clearly indicates the output content: the Mirai catalog and public USD prices per million tokens. This is sufficient for an agent to understand what will be returned. Annotations cover safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100% trivially). Baseline is 4 for 0 parameters. Description does not need to add parameter semantics, and it implicitly conveys the tool's function.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads the live Mirai catalog and public USD prices per million tokens. It differentiates from siblings: account_status (likely account-related) and call_model (sending a chat). The verb 'Read' and resource 'catalog and pricing' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this before choosing a model.' Also clarifies what it does not do ('Does not send a chat') and that no API key is required, guiding the agent when to use this tool versus alternatives like call_model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
account_status - First observed
call_model - First observed
list_models
TDQS
Each tool has a clearly distinct purpose: account_status for quota/balance, call_model for sending chat completions, and list_models for model catalog and prices. There is no overlap or ambiguity.
Two tools use a verb_noun pattern (call_model, list_models) while account_status is noun_noun, creating a minor inconsistency. However, all names are clear and follow a consistent lowercase snake_case style.
With only 3 tools, the set is on the low end of the typical range, but each tool serves a necessary function for the Mirai API. It is well-scoped and not overloaded.
The tool surface covers the core operations: checking account status, sending chat completions, and listing models. There are no obvious gaps, though advanced features like streaming or conversation management are absent.
Maintenance
Related MCP Connectors
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
- LovableOAuthdev.lovable
Official MCP server for Lovable, the AI-powered full-stack app builder.
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceOfficial MCP server for the s2.dev serverless stream platform13535MIT
- AlicenseAqualityCmaintenanceOfficial MCP server for the Perplexity API Platform, enabling AI assistants to perform real-time web search, reasoning, and deep research using Sonar models.427,122MIT
- AlicenseNot gradedqualityDmaintenanceOfficial MCP server for PostIdentity - Generate AI-powered social media posts, threads, and replies from any MCP-compatible AI assistant with identity management and refinement capabilities.361MIT

Wiro MCP Serverofficial
AlicenseAqualityCmaintenanceOfficial MCP server for Wiro AI that provides access to hundreds of AI models for generation, editing, and analysis from any MCP-compatible assistant.134534MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/satuapps/mirai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server