Dúos
Server Details
Two AI perspectives and a cross-review. OAuth required; new consultations use your Dúos quota.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool maps to a distinct resource+action: quota check, query creation, history listing, and result retrieval. Descriptions go out of their way to disambiguate side effects (crear_consulta consumes quota and calls models; the other three explicitly do not) and to forbid misuse of crear_consulta as a connectivity check.
All names use the same duos_ prefix with a consistent Spanish verb_noun snake_case pattern (consultar_cuota, crear_consulta, listar_consultas, obtener_resultado). The different verbs (consultar/listar/obtener) map to genuinely different operations rather than arbitrary variation.
Four tools is tight but each is essential: quota introspection, creating a job, listing history, and fetching the result. Nothing redundant, nothing obviously missing for the stated scope.
The query lifecycle (create → poll result → list history → check quota) is fully covered, with idempotency and polling guidance. Minor gap: no way to cancel a pending job or delete history entries, which an agent may want when a query was created in error.
Available Tools
4 toolsduos_consultar_cuotaConsultar tu cuota de DúosARead-onlyIdempotentInspect
Devuelve el plan, las consultas disponibles y el presupuesto propio de IA. No genera respuestas ni consume consultas. No muestra otros clientes ni el gasto global.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Formato del texto; structuredContent siempre contiene los datos. |
Output Schema
| Name | Required | Description |
|---|---|---|
| budget | Yes | |
| credits | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint=false. The description adds useful behavioural context beyond them: it does not consume queries and does not expose other clients or global spend, which clarifies privacy and cost side effects.
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 short sentences, front-loaded with the return payload followed by two negative-scope clarifications. Every sentence carries distinct value and nothing is redundant.
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?
An output schema exists and annotations are rich, so return values and safety profile need no elaboration. The description covers what is and isn't returned, leaving only minor gaps like pagination or freshness of the quota figures.
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?
Only one optional parameter and schema description coverage is 100%, so the enum for response_format is fully documented in the schema. The description adds nothing about the parameter, which is the expected baseline when the schema does the work.
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?
States a specific verb and resource plus the exact fields returned (plan, available queries, own AI budget) via 'Devuelve el plan, las consultas disponibles y el presupuesto propio de IA'. Scope exclusions ('no muestra otros clientes ni el gasto global') help separate it, but no sibling tool is named explicitly.
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?
'No genera respuestas ni consume consultas' implicitly steers agents away from expecting generation, implying this is a read-only status check. However, no explicit when-to-use condition or alternative (e.g. duos_listar_consultas) is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duos_crear_consultaComparar dos perspectivas con DúosAIdempotentInspect
Crea una consulta autenticada: dos análisis iniciales separados y una revisión cruzada de cada modelo. Envía el texto a proveedores de IA y puede consumir UNA consulta del plan y gasto de IA. Requiere intención del cliente; no usar como comprobación gratuita de conexión. Devuelve jobId/status para consultar el resultado con duos_obtener_resultado. Reutiliza el MISMO idempotency_key UUID si reintentas la MISMA pregunta; nunca cambies el mensaje con esa clave.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Tema de la consulta; por defecto general. | |
| locale | No | ||
| chat_id | No | Chat propio que continuar; si se omite se abre uno asociado a esta consulta. | |
| message | Yes | Pregunta o decisión y contexto que el cliente desea enviar a los dos modelos. | |
| idempotency_key | Yes | UUID nuevo por pregunta; conservarlo para reintentos de esa misma consulta. | |
| response_format | No | Formato del texto; structuredContent siempre contiene los datos. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | Yes | |
| status | Yes | |
| requestId | Yes | |
| pollAfterMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing real consequences: the text is sent to external AI providers, it consumes ONE query from the plan and AI spend, and it returns jobId/status rather than the answer. The retry contract (reuse the same UUID for the same question, never change the message under that key) is behavioral detail the annotations cannot convey.
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?
Front-loaded with what the tool does, then cost, then prerequisite, then return/retry guidance in priority order. Dense but every sentence carries operational weight; only the dash-separated clauses make it slightly heavier than necessary.
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?
An output schema exists, yet the description still names the returned jobId/status and the tool that consumes it, plus cost and retry behavior. Nothing an agent needs to invoke this correctly — prerequisites, spend implications, next step — is missing.
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 already 83%, so most parameters are documented. The description still adds value by giving the idempotency_key its operational semantics — one fresh UUID per question, reuse only for retries of the identical message — which sharpens the schema's terser wording.
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?
Opening sentence gives a specific verb (crea) plus resource (consulta) and explains the actual mechanics: two independent initial analyses plus a cross-review by each model. It also routes to the sibling duos_obtener_resultado for the result, so an agent can distinguish this from list/quota tools without opening a schema.
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 states the precondition (requires client intent), an explicit when-not (do not use as a free connection check), and the follow-up alternative (query jobId/status via duos_obtener_resultado). The retry rule for idempotency_key is also spelled out in operational terms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duos_listar_consultasVer tu historial de consultasARead-onlyIdempotentInspect
Lista una página del historial propio de consultas. Requiere el permiso separado duos:history. No genera respuestas. Continúa con nextOffset cuando no sea null.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| response_format | No | Formato del texto; structuredContent siempre contiene los datos. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextOffset | Yes | |
| consultations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds non-obvious context beyond them: an extra authorization requirement (duos:history) and the fact that it returns history only, not generated responses. It doesn't disclose ordering or retention behavior, but the additions are meaningful.
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?
Four short sentences, front-loaded with the core action, followed by the permission gate and the paging instruction. No filler or repetition.
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?
With an output schema present, the description needn't explain return values, and it correctly names nextOffset as the continuation signal. The auth prerequisite is stated. Its remaining gap is the undocumented limit/offset semantics, but overall it is sufficient to call the tool correctly.
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 description coverage is only 33%: limit and offset have no descriptions anywhere, and the description only indirectly gestures at offset via the nextOffset continuation hint. It adds no meaning for limit, offset bounds, or default paging size, leaving two of three params effectively undocumented.
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?
Specific verb+resource: 'Lista una página del historial propio de consultas' clearly states a paged listing of the caller's query history. It is distinguishable from siblings like duos_crear_consulta and duos_obtener_resultado, though it never names them explicitly to sharpen the boundary.
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?
Gives concrete operational guidance: needs the separate duos:history permission, does not produce answers (so use otra herramienta para generar/consultar respuestas), and says to keep paging with nextOffset while non-null. Lacks an explicit 'use X instead when…' routing to a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duos_obtener_resultadoRecuperar el resultado de una consultaARead-onlyIdempotentInspect
Recupera únicamente un trabajo propio creado antes. No vuelve a llamar a modelos ni descuenta consultas. Si sigue pendiente, respeta pollAfterMs antes de volver a leer. Un error no es un resultado completo.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | jobId devuelto por duos_crear_consulta. | |
| response_format | No | Formato del texto; structuredContent siempre contiene los datos. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| jobId | Yes | |
| result | No | |
| status | Yes | |
| requestId | Yes | |
| pollAfterMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), yet the description adds genuinely non-obvious behavior: no model re-invocation, no quota consumption, honoring pollAfterMs between reads, and that an error does not constitute a finished result. Return shape is left to the output schema.
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?
Four short sentences, each carrying a distinct fact (scope, no side effects, polling rule, error semantics), with the scope constraint front-loaded. No filler, though the sentences are telegraphic and could flow slightly better.
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?
With an output schema handling return values and 100% schema coverage on the two parameters, the description fills the remaining gaps: quota/side-effect behavior, polling cadence, and error interpretation. Adequate for correct invocation.
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 description coverage is 100%, and the schema itself documents job_id (as returned by duos_crear_consulta) and the response_format enum. The description adds nothing beyond this, so the baseline 3 applies.
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?
States a specific verb and resource ('Recupera únicamente un trabajo propio creado antes'), and the qualifier 'únicamente' plus 'trabajo propio' implicitly distinguishes it from duos_listar_consultas (listing) and duos_crear_consulta (creation). It never names a sibling explicitly, so differentiation is inferable rather than stated.
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?
Gives concrete usage context: only for jobs you created, respectful polling via pollAfterMs while pending, and the warning that an error is not a complete result. It stops short of explicitly steering to alternatives (e.g. what to call to create the job or list jobs).
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.
4 tool updates
- First observed
duos_consultar_cuota - First observed
duos_crear_consulta - First observed
duos_listar_consultas - First observed
duos_obtener_resultado
Related MCP Connectors
- MegaLensOAuthai.megalens
Code review by AI models from different companies, usually two. Shows where they agree and disagree.
Independent second opinion on any AI answer: inaccuracies, gaps, and a scored report card.
Compare AI perspectives with configurable Modes, estimate deliberations, and retrieve run receipts.
A second opinion for AI agents: one prompt across several live Gonka models + roles, one call.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceLets your AI assistant consult assistants from other vendors under your own subscriptions, track costs, and cross-examine answers across models to surface disagreements and open points.3 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to request a second opinion from a different frontier model via a single tool call, with PII scrubbed before transit, live web search, and support for Claude, ChatGPT, Cursor, and Gemini.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to request an independent second opinion from a different frontier model, with PII scrubbing before transit, live web search grounding, caching, and multi-provider failover.Apache 2.0
- AlicenseAqualityBmaintenanceA second opinion on your decisions, from a different AI company than the one you think with.343 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.