Skip to main content
Glama
Wiro MCP Server

Wiro MCP Server

Official
by wiroai

Search Wiro models

search_models
Read-onlyIdempotent

Search and browse Wiro AI models by keyword, category, owner, and sort order, then retrieve a model schema to check settings and pricing before running it.

Instructions

Search and browse AI models on Wiro. Each row shows the model's price; get_model_schema shows how it depends on settings such as resolution and checks it against them, so read the price there before you quote it or name a model as the cheapest. A price set when the run ends, or turn by turn in a live session, gives the rates, and the charge is known after the run. "No fixed price" means the run is charged for the time it takes. Choose a model and call the returned get_model_schema next action before using run_model.

Input Schema

NameRequiredDescriptionDefault
sortNoSort by relevance, newest (time), number of ratings (ratedusercount), comments (commentcount) or average rating (averagepoint).relevance
limitNoMaximum results (default 20, max 100).
startNoPagination offset (default 0).
searchNoOne to three key words, e.g. "flux", "upscale" or "remove background"; each extra word narrows the results. It looks at each model's name and owner, its description, its parameters (id, label, placeholder, notes and help) and the option names of a selectwithcover field, such as an effect. Case, spaces, dots, dashes and underscores are ignored, and a short stem such as "timestamp" also finds the longer words that contain it.
slugownerNoFilter by model owner slug.
categoriesNoFilter by categories. Available: "text-to-image", "image-to-image", "image-editing", "text-to-video", "image-to-video", "video-to-video", "speech-to-video", "talking-head", "text-to-speech", "speech-to-text", "text-to-music", "text-to-song", "voice-clone", "realtime-conversation", "3d-generation", "chat", "llm", "llm-reasoning", "rag".

Output Schema

NameRequiredDescriptionDefault
limitYes
startYes
totalYes
modelsYes
nextStartYes
nextActionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv1.4.1
    • changedInput schema / properties / categories / description
      Previous value: -"Filter by categories. Available: \"text-to-image\", \"image-to-image\", \"image-editing\", \"text-to-video\", \"image-to-video\", \"speech-to-video\", \"talking-head\", \"text-to-speech\", \"speech-to-text\", \"text-to-music\", \"text-to-song\", \"voice-clone\", \"realtime-conversation\", \"3d-generation\", \"chat\", \"llm\", \"llm-reasoning\", \"rag\"."New value: +"Filter by categories. Available: \"text-to-image\", \"image-to-image\", \"image-editing\", \"text-to-video\", \"image-to-video\", \"video-to-video\", \"speech-to-video\", \"talking-head\", \"text-to-speech\", \"speech-to-text\", \"text-to-music\", \"text-to-song\", \"voice-clone\", \"realtime-conversation\", \"3d-generation\", \"chat\", \"llm\", \"llm-reasoning\", \"rag\"."
    • changedInput schema / properties / search / description
      Previous value: -"Search keyword, e.g. \"flux\", \"video generation\", \"upscale\"."New value: +"One to three key words, e.g. \"flux\", \"upscale\" or \"remove background\"; each extra word narrows the results. It looks at each model's name and owner, its description, its parameters (id, label, placeholder, notes and help) and the option names of a selectwithcover field, such as an effect. Case, spaces, dots, dashes and underscores are ignored, and a short stem such as \"timestamp\" also finds the longer words that contain it."
    • changedInput schema / properties / sort / description
      Previous value: -"Sort by relevance, newest, usage, comments, or rating."New value: +"Sort by relevance, newest (time), number of ratings (ratedusercount), comments (commentcount) or average rating (averagepoint)."
    • 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. Changed10 schema fields changedv1.2.1
    • changedInput schema / properties / categories / description
      Previous value: -"Filter by categories. Available: \"text-to-image\", \"image-to-image\", \"image-editing\", \"text-to-video\", \"image-to-video\", \"speech-to-video\", \"talking-head\", \"text-to-speech\", \"speech-to-text\", \"text-to-music\", \"text-to-song\", \"voice-clone\", \"realtime-conversation\", \"3d-generation\", \"chat\", \"llm\", \"llm-reasoning\", \"rag\""New value: +"Filter by categories. Available: \"text-to-image\", \"image-to-image\", \"image-editing\", \"text-to-video\", \"image-to-video\", \"speech-to-video\", \"talking-head\", \"text-to-speech\", \"speech-to-text\", \"text-to-music\", \"text-to-song\", \"voice-clone\", \"realtime-conversation\", \"3d-generation\", \"chat\", \"llm\", \"llm-reasoning\", \"rag\"."
    • addedInput schema / properties / limit / default
      Added value: +20
    • changedInput schema / properties / limit / description
      Previous value: -"Max results to return (default 20, max 100)"New value: +"Maximum results (default 20, max 100)."
    • changedInput schema / properties / search / description
      Previous value: -"Search keyword, e.g. \"flux\", \"video generation\", \"upscale\""New value: +"Search keyword, e.g. \"flux\", \"video generation\", \"upscale\"."
    • changedInput schema / properties / slugowner / description
      Previous value: -"Filter by model owner slug, e.g. \"openai\", \"stability-ai\", \"klingai\", \"bytedance\", \"google\", \"elevenlabs\", \"black-forest-labs\", \"minimax\""New value: +"Filter by model owner slug."
    • addedInput schema / properties / sort / default
      Added value: +"relevance"
    • changedInput schema / properties / sort / description
      Previous value: -"Sort results by: \"relevance\" (default), \"time\" (newest), \"ratedusercount\" (most rated), \"commentcount\" (most commented), \"averagepoint\" (highest rated)"New value: +"Sort by relevance, newest, usage, comments, or rating."
    • addedInput schema / properties / start / default
      Added value: +0
    • changedInput schema / properties / start / description
      Previous value: -"Pagination offset (default 0)"New value: +"Pagination offset (default 0)."
    • 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

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world. The description adds genuinely useful behavioral context about pricing (per-row price, 'no fixed price' meaning time-based billing, final charge known after the run), but the middle sentence about prices set at run end or turn-by-turn is garbled and hard to act on, limiting its value.

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

Conciseness3/5

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

Purpose is front-loaded and length is reasonable, but the pricing paragraph is poorly structured, with a run-on sentence ('A price set when the run ends, or turn by turn in a live session, gives the rates...') that does not parse cleanly. Some sentences cost more attention than they return.

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

Completeness4/5

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

For a zero-required-parameter search tool with an output schema, full schema coverage and strong annotations, the description covers purpose, next-step routing and the pricing caveat that matters before quoting a model. It omits any mention of the filtering/sorting surface, but the schema already documents that fully.

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

Parameters3/5

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

Schema description coverage is 100%, including enum options for sort and categories and detailed search stemming behavior, so the baseline is 3. The description adds no parameter-level meaning beyond the schema — it never mentions search, sort, limit, start, slugowner or categories.

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?

The opening sentence gives a specific verb and resource: 'Search and browse AI models on Wiro,' which separates it from get_model_schema (schema/pricing detail) and run_model (execution). The rest of the text drifts into pricing semantics rather than reinforcing the search purpose, so differentiation is present but diluted.

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?

It explicitly sequences the workflow: choose a model, then call the returned get_model_schema next action before using run_model, and it warns to read price in get_model_schema before quoting or calling a model cheapest. What's missing is guidance versus other discovery siblings such as recommend_model or explore.

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