Skip to main content
Glama
Wiro MCP Server

Wiro MCP Server

Official
by wiroai

Recommend Wiro models

recommend_model
Read-onlyIdempotent

Find AI models from two or three task keywords, ranked by relevance; extra words narrow results. Follow the returned get_model_schema action before running a model.

Instructions

Find models for a goal from two or three key words, such as "upscale image" or "remove background", best matches first; each extra word narrows the results. For a kind of task, search_models with categories also works. Follow the returned get_model_schema next action before running a model.

Input Schema

NameRequiredDescriptionDefault
taskYesTwo or three key words, e.g. "upscale image", "remove background", "transcribe audio".

Output Schema

NameRequiredDescriptionDefault
limitYes
startYes
totalYes
modelsYes
nextStartYes
nextActionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.4.1
    • changedInput schema / properties / task / description
      Previous value: -"What you want to do, e.g. \"generate a photorealistic portrait\", \"upscale an image to 4K\", \"transcribe audio to text\"."New value: +"Two or three key words, e.g. \"upscale image\", \"remove background\", \"transcribe audio\"."
    • addedOutput schema / properties / models / items / properties / discountPercent
      Added value: +{
      +  "description": "Your discount on this model, in percent. It comes off the part of a charge paid from deposits; coupon credit and store revenue pay first, at the list price in pricing.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / models / items / properties / estimatedCostUsd / description
      Added value: +"Estimated USD cost of one run: the average of past runs for a model billed by run time, or the listed estimate of a price set when the run ends. Null when there is no such estimate, as for a model priced by its options: see pricing."
  2. Changed2 schema fields changedv1.2.3
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. Changed2 schema fields changedv1.2.1
    • changedInput schema / properties / task / description
      Previous value: -"What you want to do, e.g. \"generate a photorealistic portrait\", \"upscale an image to 4K\", \"transcribe audio to text\""New value: +"What you want to do, e.g. \"generate a photorealistic portrait\", \"upscale an image to 4K\", \"transcribe audio to text\"."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "limit": {
      +      "exclusiveMinimum": 0,
      +      "type": "integer"
      +    },
      +    "models": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "categories": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "description": {
      +            "type": "string"
      +          },
      +          "estimatedCostUsd": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "pricing": {
      +            "type": "string"
      +          },
      +          "slug": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "slug",
      +          "title",
      +          "categories"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "nextAction": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "arguments": {
      +          "additionalProperties": {},
      +          "type": "object"
      +        },
      +        "reason": {
      +          "type": "string"
      +        },
      +        "tool": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "tool",
      +        "arguments",
      +        "reason"
      +      ],
      +      "type": "object"
      +    },
      +    "nextStart": {
      +      "anyOf": [
      +        {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "start": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "total": {
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "models",
      +    "total",
      +    "start",
      +    "limit",
      +    "nextStart"
      +  ],
      +  "type": "object"
      +}
  4. First observedv1.1.4

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and open-world, so safety is covered; the description adds ordering semantics ("best matches first") and a mandatory follow-up step (read the `get_model_schema` next action before running a model). That follow-up is genuinely operational context absent from any structured field. It does not describe result volume or pagination, keeping it off a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence carries the purpose, examples and ranking behavior, followed by two short clauses for the alternative and the required next action. Nothing is padding. The comma splice around "best matches first" makes the first sentence slightly harder to parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only search tool, everything an agent needs is present: how to phrase the query, how result count behaves, that results are ranked, which sibling covers category browsing, and the follow-up call required before running a model. With annotations covering safety and an output schema covering returns, no meaningful gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `task` parameter is already documented with the same examples, so the schema does the heavy lifting (baseline 3). The description still adds value with the narrowing behavior — more words means fewer, more targeted matches — which is not stated in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Find models for a goal") and gives concrete example queries ("upscale image", "remove background"), which is far more than a restatement of the name. It names the sibling search_models and its category-based mode, though the boundary between the two is drawn softly with "also works" rather than a crisp rule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear triggering context — two or three key words describing a goal — and points at search_models with categories as the alternative for a "kind of task." It also warns that each extra word narrows results, which guides query construction. It stops short of saying when to prefer search_models over this tool, so there is no explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.