recommend_model
Recommend the optimal LLM model from a free-text description of your use case — no need to already know the routing engine's task_type vocabulary. Classifies the description into a task type, then runs it through the same routing engine behind /router/recommend (live pricing + benchmark quality, hard filters for cost/quality/context window, scored by quality-per-dollar). Returns the best match plus up to 3 alternatives. Read-only — use predict_cost first if you also want per-model cost estimates for an actual prompt, and optimize_workload if you have several distinct task types to route at once. Restricts (not just boosts) the candidate set to models your client can run before ranking. Pass client (e.g. 'claude_code', 'cursor', 'github_copilot', 'cline') so the answer is restricted to models that tool can run; omit it and the hosted server tries to infer it from the MCP handshake, otherwise every priceable model is considered. An explicit client always wins. Recognised clients: claude_code, claude_desktop, cursor, github_copilot, windsurf, cline, continue, zed, jetbrains_ai, gemini_cli, codex_cli, aider, amazon_q, chatgpt_desktop.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| client | No | Your MCP client / coding tool, so only models it can run are considered. Recognised: claude_code, claude_desktop, cursor, github_copilot, windsurf, cline, continue, zed, jetbrains_ai, gemini_cli, codex_cli, aider, amazon_q, chatgpt_desktop. Case- and separator-insensitive ('Claude Code' = claude_code). Order: explicit client > legacy ide_context > client inferred from the MCP handshake (hosted server, best effort) > none. Unknown names return an unfiltered result plus a note. | |
| country | No | Optional ISO-3166 alpha-2 country whose currency to use (e.g. DE -> EUR, IN -> INR). A country whose currency is unsupported yields USD with fallback_to_usd=true. | |
| currency | No | Optional ISO-4217 code to convert prices into, alongside the canonical USD figures. Beats country. Unsupported codes return success=false listing the supported set. | |
| task_type | No | Optional explicit task type, bypassing auto-classification of the description. Options: classification, extraction, summarization, qa, code_generation, translation, chat, content_generation, reasoning, function_calling, data_analysis, rewrite | |
| description | Yes | Free-text description of the use case, e.g. 'summarize long customer support tickets' or 'generate Python unit tests' | |
| ide_context | No | Deprecated alias of client (same values, same meaning). | |
| avg_input_tokens | No | Average input tokens per request (default: 500) | |
| avg_output_tokens | No | Average output tokens per request (default: 200) | |
| min_quality_score | No | Minimum required quality score (0-100) | |
| min_context_window | No | Minimum required context window size (tokens) | |
| monthly_budget_usd | No | Monthly spend ceiling in USD. Combined with estimated_monthly_requests, avg_input_tokens, and avg_output_tokens to hard-filter models that would exceed it. | |
| prefer_low_latency | No | Prioritise lower-latency models (default: false) | |
| preferred_provider | No | Preferred provider name (10% score boost applied) | |
| max_cost_per_1m_tokens | No | Maximum acceptable average cost per 1M tokens (USD) | |
| exclude_reasoning_models | No | Exclude slow thinking/reasoning models (default: false) | |
| estimated_monthly_requests | No | Estimated requests per month (default: 1000) |