Skip to main content
Glama

ThinkNEO Control Plane

thinkneo_route_model

Read-onlyIdempotent

AI Smart Router — find the cheapest model that meets your quality threshold. Specify your task type and quality requirements, and ThinkNEO will recommend the optimal model with estimated cost and savings vs premium models. Supports 17+ models across Anthropic, OpenAI, Google, Meta, Mistral, DeepSeek, Alibaba, Cohere, and xAI. Requires authentication.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_typeYesThe type of AI task: summarization, classification, code_generation, chat, analysis, translation, or embedding
text_sampleNoOptional sample text for better routing. Helps estimate token count and task complexity. Max 500 characters.
max_latency_msNoMaximum acceptable latency in milliseconds. Omit for no limit.
estimated_tokensNoEstimated total tokens for the request (input + output). Default 1000.
quality_thresholdNoMinimum quality score required (0-100). Default 85 = enterprise-grade.
budget_per_requestNoMaximum budget per request in USD. Omit for no limit.
preferred_providersNoComma-separated list of preferred providers (e.g., 'openai,anthropic'). These will be prioritized at similar cost.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • removedInput schema / properties / budget_max_usd
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Max budget per 1M tokens in USD",
      -  "title": "Budget Max Usd"
      -}
    • addedInput schema / properties / budget_per_request
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum budget per request in USD. Omit for no limit.",
      +  "title": "Budget Per Request"
      +}
    • addedInput schema / properties / estimated_tokens
      Added value: +{
      +  "default": 1000,
      +  "description": "Estimated total tokens for the request (input + output). Default 1000.",
      +  "title": "Estimated Tokens",
      +  "type": "integer"
      +}
    • addedInput schema / properties / max_latency_ms
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum acceptable latency in milliseconds. Omit for no limit.",
      +  "title": "Max Latency Ms"
      +}
    • addedInput schema / properties / preferred_providers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Comma-separated list of preferred providers (e.g., 'openai,anthropic'). These will be prioritized at similar cost.",
      +  "title": "Preferred Providers"
      +}
    • changedInput schema / properties / quality_threshold / description
      Previous value: -"Minimum quality score 0-100"New value: +"Minimum quality score required (0-100). Default 85 = enterprise-grade."
    • changedInput schema / properties / task_type / description
      Previous value: -"Task type: chat, code, summarization, embedding, vision, reasoning"New value: +"The type of AI task: summarization, classification, code_generation, chat, analysis, translation, or embedding"
    • addedInput schema / properties / text_sample
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional sample text for better routing. Helps estimate token count and task complexity. Max 500 characters.",
      +  "title": "Text Sample"
      +}
  2. Changed8 schema fields changed
    • addedInput schema / properties / budget_max_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Max budget per 1M tokens in USD",
      +  "title": "Budget Max Usd"
      +}
    • removedInput schema / properties / budget_per_request
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Maximum budget per request in USD. Omit for no limit.",
      -  "title": "Budget Per Request"
      -}
    • removedInput schema / properties / estimated_tokens
      Removed value: -{
      -  "default": 1000,
      -  "description": "Estimated total tokens for the request (input + output). Default 1000.",
      -  "title": "Estimated Tokens",
      -  "type": "integer"
      -}
    • removedInput schema / properties / max_latency_ms
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Maximum acceptable latency in milliseconds. Omit for no limit.",
      -  "title": "Max Latency Ms"
      -}
    • removedInput schema / properties / preferred_providers
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Comma-separated list of preferred providers (e.g., 'openai,anthropic'). These will be prioritized at similar cost.",
      -  "title": "Preferred Providers"
      -}
    • changedInput schema / properties / quality_threshold / description
      Previous value: -"Minimum quality score required (0-100). Default 85 = enterprise-grade."New value: +"Minimum quality score 0-100"
    • changedInput schema / properties / task_type / description
      Previous value: -"The type of AI task: summarization, classification, code_generation, chat, analysis, translation, or embedding"New value: +"Task type: chat, code, summarization, embedding, vision, reasoning"
    • removedInput schema / properties / text_sample
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Optional sample text for better routing. Helps estimate token count and task complexity. Max 500 characters.",
      -  "title": "Text Sample"
      -}
  3. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context by noting that authentication is required, that it supports 17+ models across major providers, and that it returns estimated cost and savings — all beyond what annotations provide.

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

Conciseness5/5

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

Three sentences with no filler. The first sentence states the core value proposition, the second explains the input/outcome, and the third adds provider scope and authentication. Every sentence contributes necessary information with strong front-loading.

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?

Given the output schema exists, return-value documentation is not the description's job. The description covers the use case, required input dimensions (task type, quality), key differentiator (cost/savings), provider coverage, and authentication. This is complete for a routing tool with well-documented schemas.

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 coverage is 100%, so the input schema already documents all 7 parameters. The description adds only general references to 'task type' and 'quality requirements,' which maps to task_type and quality_threshold but does not enhance understanding beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

The description opens with a specific action: 'find the cheapest model that meets your quality threshold.' This clearly identifies the resource (model routing) and the outcome (cost-optimized recommendation), and distinguishes it from siblings like thinkneo_compare_models by focusing on cost-based routing rather than generic comparison.

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?

The description provides clear context for when to use the tool: when you need to select a model based on task type and quality requirements under cost constraints. It doesn't explicitly name alternatives or list when-not-to-use cases, but the phrase 'AI Smart Router' and the cost-savings framing make the intended usage fairly obvious.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.