Subastech — subastas judiciales de inmuebles (BOE)
Server Details
Subastas judiciales de inmuebles en España: busca en los datos del BOE y analiza cada bien.
- Status
- Healthy
- Uptime
- 99.8% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 32 tools
Tools are mostly distinct: clear separation between search, fetch, subasta, informe, alertas, favoritos, checkout, and notas simples. Minor overlap exists between buscar_subastas/search/fetch/subasta (different interfaces but same underlying data) and between buscar_por_codigo and subasta, but descriptions and required parameters clarify usage. No two tools appear to do the same thing.
Mixed conventions: many tools follow noun_verb Spanish pattern (alertas_crear, favoritos_anadir, nota_simple_pedir), but others are single nouns (subasta, informe, mercado, planes, similares) or English verbs (search, fetch, create_checkout, update_checkout, complete_checkout, cancel_checkout, get_checkout). The Spanish vs English split and verb/noun inconsistency make the set less predictable.
32 tools is on the heavy side for an auction-data server, and a significant chunk (7 checkout tools: create/update/get/complete/cancel plus related) could be condensed. However, the domain spans search, alerts, favorites, reports, notes, and payments, so the count is borderline rather than clearly excessive.
Covers the full lifecycle: discovery (search, buscar_subastas, buscar_por_codigo, estadisticas_publicas), detailed views (subasta, fetch, informe, analisis_subasta, mercado), account management (mi_cuenta, planes, recomendaciones), alerts CRUD, favorites CRUD, and checkout. Minor gaps include no explicit user registration/auth tool and limited alert execution or notification history, but core workflows are well-supported.
Available Tools
32 toolsalertas_activarActivar o pausar una alertaAIdempotentInspect
Activa o pausa una alerta tuya sin borrarla. Requiere cuenta verificada (scope alertas:write).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la alerta (de `alertas_listar`). | |
| activa | Yes | `true` reanuda la alerta; `false` la pausa sin borrarla. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| cta | No | |
| activa | No | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the authorization prerequisite (verified account, scope `alertas:write`), which is not present in the structured fields.
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?
Two short sentences with zero filler; the action semantics come first and the auth requirement second, so an agent gets the key constraint immediately.
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, so return values need no explanation, and the description covers action, non-destructive scope, and auth requirements. It is only slightly short on how this differs from alertas_editar for an agent choosing among five sibling alert tools.
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 both parameters are documented there, including where `id` comes from (alertas_listar) and what `activa` true/false mean. The description only restates the toggle semantics, so the baseline of 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?
Specific verb pair (activar/pausar) plus resource (alerta) and an explicit scope qualifier ('sin borrarla' / 'tuya'), which separates it from alertas_eliminar. It stops short of naming alertas_editar or alertas_listar as adjacent options, so an agent must still infer the boundary with editing.
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?
The phrase 'sin borrarla' implies the contrast with alertas_eliminar and usage is reasonably implied by the toggle framing, but there is no explicit when-to-use/when-not-to-use statement or routing to alternatives such as alertas_editar for changing alert contents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alertas_crearCrear una alertaAInspect
Crea una alerta de subastas (criterios, tipos de aviso, cadencia, canales). Requiere cuenta verificada (scope alertas:write). Envía un correo de confirmación al crearla. Límite de alertas y canales según el plan (ajustes). Previsualiza antes con alertas_previsualizar.
| Name | Required | Description | Default |
|---|---|---|---|
| tipos | Yes | `new`, `price_drop`, `ending`, `status` | |
| nombre | Yes | Nombre de la alerta | |
| canales | Yes | `inapp` siempre; `email`; `push`/`telegram`/`webhook` según el plan | |
| cadencia | Yes | `instant` requiere plan Pro (si no, pasa a `daily`) | |
| criterios | Yes | Filtros que debe cumplir una subasta para disparar la alerta: provincias, municipios, tipo de inmueble, precio, superficie y ocupación. | |
| quiet_hours | No | Franja en la que no se envían avisos. `paused` la desactiva; `from` y `to` en formato HH:MM; `days` con 0 = domingo … 6 = sábado. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ok | Yes | |
| cta | No | |
| url | Yes | |
| avisos | No | |
| ajustes | No | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which only declare it is not read-only/idempotent/destructive), the description discloses three concrete traits: the auth requirement (verified account + `alertas:write` scope), a side effect (a confirmation email is sent on creation), and quota behavior (alert/channel limits depend on plan via `ajustes`). These are exactly the auth-needs and rate-limit context the rubric rewards.
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?
Five tightly packed sentences, front-loaded with the creation action and followed by requirements, side effect, limits, and the preview recommendation. No filler, though the density of separate clauses makes it slightly more than the bare minimum needed.
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?
For a write tool with 6 params, nested objects, and an output schema, the description covers the practical gaps: purpose, prerequisites, side effects, limits, and a safer alternative. Return values are handled by the output schema, so nothing essential 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 description coverage is 100%, including enums and nested criteria/quiet_hours docs, so the schema carries parameter semantics. The description only restates the top-level groups (criterios, tipos, cadencia, canales) without adding new meaning, which is the correct baseline of 3.
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 ("Crea una alerta de subastas") and enumerates what the alert is composed of (criterios, tipos de aviso, cadencia, canales), so an agent immediately knows the shape of the payload. It also names a sibling (alertas_previsualizar), making it distinguishable from the other alertas_* tools.
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 a clear prerequisite (verified account with scope `alertas:write`) and explicitly routes the agent to `alertas_previsualizar` before creating. There is no explicit "when not to use" (e.g. prefer alertas_editar for existing alerts), so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alertas_editarEditar una alertaAIdempotentInspect
Modifica una alerta existente (nombre, criterios, tipos, cadencia, canales, horas de silencio). Requiere cuenta verificada (scope alertas:write). No envía correo.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la alerta a modificar (de `alertas_listar`). | |
| tipos | Yes | `new`, `price_drop`, `ending`, `status` | |
| nombre | Yes | Nombre de la alerta | |
| canales | Yes | `inapp` siempre; `email`; `push`/`telegram`/`webhook` según el plan | |
| cadencia | Yes | `instant` requiere plan Pro (si no, pasa a `daily`) | |
| criterios | Yes | Filtros que debe cumplir una subasta para disparar la alerta: provincias, municipios, tipo de inmueble, precio, superficie y ocupación. | |
| quiet_hours | No | Franja en la que no se envían avisos. `paused` la desactiva; `from` y `to` en formato HH:MM; `days` con 0 = domingo … 6 = sábado. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ok | Yes | |
| cta | No | |
| url | Yes | |
| avisos | No | |
| ajustes | No | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (destructiveHint=false, idempotentHint=true), lowering the bar. The description still adds value beyond them: it declares an auth requirement (verified account, scope `alertas:write`) and a notable side-effect (no email is sent). It omits that omitted fields are required-vs-replaced semantics, but the auth and no-notification disclosures are genuine additions.
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?
Two compact sentences, front-loaded with the core action and scope, then the operational caveat. No filler; every clause earns its place.
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?
For a nested-object mutation with 7 params, rich schema coverage, an output schema, and annotations, the description covers purpose, auth, and the no-email behavior. Its main omission is update semantics (full replace vs partial) and plan-gating notes that live only in the schema, but overall it is complete enough to call 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 100%, so the nested schema fully documents every field, enum, and constraint. The description's list of editable fields mirrors what the schema already shows, adding no syntax or format detail beyond it. Baseline 3 is appropriate when the schema carries the load.
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 (Modifica) and resource (una alerta existente), and even enumerates which fields can change (nombre, criterios, tipos, cadencia, canales, horas de silencio). It does not explicitly contrast with sibling alertas_crear, though the 'existente' qualifier implicitly differentiates an update from a create.
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?
Usage context is implied: this is the update operation for an existing alert, and the required `id` from alertas_listar signals a prerequisite. But the description states no explicit when-to-use/when-not guidance and never names the alternative (alertas_crear) or dependencies. Adequate-but-with-gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alertas_eliminarEliminar una alertaADestructiveIdempotentInspect
Elimina una alerta tuya de forma permanente. Requiere cuenta verificada (scope alertas:write).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la alerta a eliminar (de `alertas_listar`). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| cta | No | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so permanence is partly covered; the description reinforces it and adds genuinely new context via the auth/scope requirement. It still doesn't state whether the alert must be active, whether it's soft vs. hard delete beyond 'permanente', or any rate limits.
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?
Two short sentences, front-loaded with the action and its permanence, followed by the precondition. No filler or redundancy.
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, so return values needn't be described. Auth requirement, permanence, and target are all covered; only edge-case behavior (missing ID, already-deleted alert) is unaddressed.
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 100% and the single `id` parameter is already documented as coming from `alertas_listar`, so the schema does the heavy lifting. The description adds nothing about the identifier format, which is acceptable given full schema coverage — baseline 3.
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+resource ('Elimina una alerta'), scopes it to the caller's own alerts ('tuya'), and notes permanence. It is clearly distinguishable from the alertas_* siblings by name, but it never explicitly contrasts itself with alertas_editar or alertas_listar.
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?
It gives a real precondition (verified account, scope `alertas:write`), which tells the agent whether the call can succeed. However, it offers no when-to-use vs. alternatives guidance — e.g., that this is the irreversible counterpart to alertas_editar or how it relates to alertas_listar for discovering IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alertas_listarListar mis alertasARead-onlyIdempotentInspect
Lista tus alertas de subastas con sus criterios, tipos de aviso, cadencia, canales y estado. Requiere cuenta (scope alertas:read). Paginada (pagina, por_pagina; máximo 20 por página): usa total, paginas y hasMore para pedir la siguiente.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`. | |
| pagina | No | Página (≥1; 1 por defecto) | |
| por_pagina | No | Resultados por página (1..20; 20 por defecto) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| total | Yes | |
| pagina | Yes | |
| alertas | Yes | |
| hasMore | Yes | |
| paginas | Yes | |
| disclosure | No | |
| por_pagina | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is low. The description still adds real value beyond them: the required account and `alertas:read` scope, and the pagination contract (20 per page max, follow via `total`/`paginas`/`hasMore`).
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 tight sentences: purpose first, then the auth prerequisite, then the pagination mechanics. Every sentence carries information; 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, returns need not be described, and the description correctly focuses on the auth scope and pagination workflow. Slightly incomplete only in not surfacing the `limite` alias, but nothing essential for a correct call 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 100%, so the baseline is 3. The description restates the `pagina`/`por_pagina` pagination and the 20-per-page cap, but omits the `limite` alias parameter documented in the schema, adding little beyond what the schema already conveys.
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 ('Lista') and resource ('tus alertas de subastas') and enumerates the returned facets (criterios, tipos de aviso, cadencia, canales, estado). Among the sibling alert tools (crear/editar/eliminar/activar/previsualizar), the read/list verb makes this unmistakably the retrieval operation.
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?
It supplies a prerequisite (requires an account with scope `alertas:read`), which is useful selection context. However, it never states when to prefer this over siblings like alertas_previsualizar nor any when-not-to-use condition, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alertas_previsualizarPrevisualizar una alertaARead-onlyIdempotentInspect
Antes de crear una alerta: cuántas subastas coinciden ahora con los criterios, una muestra y avisos con fix aplicable (criterios sospechosos). Requiere cuenta (scope alertas:read). Los criterios avanzados (scoreMin, discountMinPct) requieren plan Pro; si no, se ignoran y se informa en ajustes.
| Name | Required | Description | Default |
|---|---|---|---|
| criterios | Yes | Filtros que debe cumplir una subasta para disparar la alerta: provincias, municipios, tipo de inmueble, precio, superficie y ocupación. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| avisos | Yes | |
| ajustes | Yes | |
| muestra | Yes | |
| coinciden | Yes | |
| disclosure | No | |
| criterios_limpios | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering safety (readOnly, non-destructive), the description adds valuable context: it requires an account with `alertas:read` scope, advanced criteria require Pro plan and are ignored otherwise (informing in `ajustes`), and it returns warnings with `fix`. This goes beyond annotations meaningfully. It does not detail rate limits or other behavioral traits, but it's solid.
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?
The description is front-loaded with purpose, then requirements, then plan limitations. It is reasonably concise, though the plan-pro caveat could be slightly more concise. No wasted words.
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?
The tool has a complex nested schema and an output schema exists, so the description needn't explain return values. It covers scope requirements and plan limitations, which are crucial. It could mention the output structure more (e.g., `ajustes`) but the output schema likely covers that. Overall complete enough.
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%, so the schema already documents all parameters. The description adds no parameter-level semantics beyond what the schema provides. Baseline 3 is appropriate.
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?
The description clearly states the tool previews an alert before creation, returning match count, a sample, and warnings with applicable `fix` for suspicious criteria. It distinguishes from siblings like alertas_crear by being explicitly a previsualization. However, it does not name alertas_crear or other siblings directly, so it's clear but not maximally differentiated.
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?
It says 'Antes de crear una alerta' which gives clear context for when to use it. It does not explicitly state when not to use it or name the alternative tool, but the usage context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analisis_subastaAnálisis de una subasta (veredicto y ejes)ARead-onlyIdempotentInspect
Veredicto de viabilidad y ejes (cargas, posesión, rentabilidad, titularidad) de una subasta. Requiere cuenta (scope informes:read) y plan Pro o superior; con Radar/Starter devuelve locked con upgradeUrl. No consume cuota.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador público de la subasta (10 caracteres) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| ejes | No | |
| locked | No | |
| subasta | Yes | |
| veredicto | No | |
| disclosure | No | |
| informe_url | Yes | |
| analisis_listo | Yes | false si polSaaS aún está generando el veredicto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent/destructive annotations by disclosing required auth scope, plan-tier gating, the exact degraded return ('locked' with 'upgradeUrl'), and that it consumes no quota. These are precisely the operational traits an agent needs that structured 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?
Three dense sentences with zero filler: purpose first, then requirements, then quota. Every clause carries information; front-loaded and appropriately sized.
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 covers prerequisites, plan gating, and quota. Combined with full param documentation, an agent has everything needed to call it 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 coverage is 100% and the single 'id' parameter is fully documented in the schema (10-char public identifier), so the schema does the heavy lifting. The description adds nothing about parameter format, which is the correct baseline when coverage is complete.
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+resource: produces a viability verdict ('veredicto de viabilidad') plus defined axes (cargas, posesión, rentabilidad, titularidad) for an auction. This distinguishes it from siblings like 'subasta' (raw data) and 'informe' (report), so an agent knows it delivers an analytical judgment, not raw lookup.
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?
Provides concrete usage conditions: requires an account with scope `informes:read` and Pro plan or higher, and explains the fallback behavior for Radar/Starter (`locked` with `upgradeUrl`). It doesn't explicitly name when to prefer this over 'informe'/'subasta', but the gating conditions make applicability clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_por_codigoBuscar por referencia catastral, CRU, IDUFIR o BOEARead-onlyIdempotentInspect
Localiza subastas del BOE a partir de códigos: referencia catastral, CRU, IDUFIR o identificador BOE (hasta 5). Pública, sin cuenta; sin cuenta solo devuelve fichas vigentes en el catálogo público (con cuenta, también las archivadas con archivada: true).
| Name | Required | Description | Default |
|---|---|---|---|
| codigos | Yes | Referencias catastrales, CRU, IDUFIR o identificadores BOE (1..5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| items | Yes | |
| disclosure | No | |
| no_encontrados | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, idempotent, closed-world, non-destructive profile, so the bar is lower. The description still adds real context: no account required, and that unauthenticated calls return only active records while authenticated calls also surface archived ones flagged `archivada: true`. That is useful behavioral disclosure, though it omits any error/not-found handling.
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?
Two dense sentences, front-loaded with the action and code types, then the account-dependent behavior. Efficient overall, though the parenthetical and dual 'sin cuenta/con cuenta' clause make the second sentence slightly loaded.
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, so return-value description is unnecessary, and the single parameter is fully specified. The description covers access model and code types adequately; the only real omission is routing guidance relative to buscar_subastas.
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?
With a single parameter at 100% schema coverage, the schema already documents `codigos` fully, including the 1..5 bound. The description's 'hasta 5' merely restates maxItems without adding format or validation detail beyond the schema, so baseline 3 is correct.
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+resource ('localiza subastas del BOE a partir de códigos') and enumerates the accepted code types. It is clear what the tool does, but it does not distinguish itself from the obvious sibling buscar_subastas, which also searches auctions.
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?
Usage is only implied: the agent infers it should be used when it holds a catastral reference, CRU, IDUFIR or BOE id. It never states when to prefer this over buscar_subastas, nor any exclusions, so the when-to-use guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_subastasBuscar subastasARead-onlyIdempotentInspect
Busca subastas judiciales de inmuebles del BOE por provincia, municipio, tipo, precio, superficie, texto libre, zona (bbox o radio) y estado. Pública, sin cuenta: devuelve datos oficiales del BOE y la URL de cada ficha. El scoring, veredicto, cargas, ROI, valoración e intervinientes requieren cuenta y plan Pro o superior; si algo está cerrado se devuelve locked con upgradeUrl. Sin plan con scoring, orden: score pasa a recent y solo_viables se ignora (campo degradado). Máximo 20 por página (por_pagina, o su alias limite); no acepta parámetros que no estén declarados.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Zona rectangular en grados (lon/lat) | |
| tipo | No | Tipos de inmueble, valores EXACTOS de `estadisticas_publicas.tipos` (p. ej. `Vivienda`, `Garaje`) | |
| cerca | No | Radio alrededor de un punto (máximo 50 km) | |
| orden | No | `recent` (por defecto), `ending`, `discount`, `price`; `score` solo con plan Pro (si no, pasa a `recent`) | |
| texto | No | Texto libre (calle, barrio, juzgado…), máximo 120 caracteres | |
| estado | No | `activas` (por defecto), `todas`, `adjudicadas` o `desiertas` | |
| limite | No | Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`. | |
| pagina | No | Página (≥1; máximo 25 sin cuenta, 50 con cuenta) | |
| area_max | No | Superficie construida máxima (m²) | |
| area_min | No | Superficie construida mínima (m²) | |
| municipio | No | Claves `provincia:municipio` (de `estadisticas_publicas` con `municipio_q`) | |
| provincia | No | Slugs de provincia (p. ej. [`madrid`, `barcelona`]); ver `estadisticas_publicas` | |
| por_pagina | No | Resultados por página (1..20) | |
| precio_max | No | Valor de subasta máximo (euros) | |
| precio_min | No | Valor de subasta mínimo (euros) | |
| solo_viables | No | Ocultar las no recomendables: solo con plan Pro (si no, se ignora) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| items | Yes | |
| total | Yes | |
| locked | No | |
| pagina | Yes | |
| hasMore | Yes | |
| paginas | Yes | |
| degradado | No | |
| disclosure | No | |
| por_pagina | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial behavioral detail: official BOE data plus per-listing URL, `locked` responses with `upgradeUrl` for gated fields, silent degradation of `orden: score` to `recent` and ignoring `solo_viables` (surfaced via a `degradado` field), a 20-per-page cap, and rejection of undeclared parameters. This is exactly the extra context structured fields cannot carry.
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?
The purpose is front-loaded in sentence one, followed by access model, plan gating, and pagination in a logical order. It is dense and somewhat run-on, but nearly every clause carries actionable information.
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 and full annotations present, the description still covers the tricky operational details an agent needs: plan-gated fields and their fallbacks, alias resolution, page limits, and parameter rejection. Nothing essential for correct invocation appears to be 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 100%, so the baseline is 3. The description goes beyond it by documenting the `limite`/`por_pagina` alias precedence, the 20-item page cap, the plan-conditional behavior of `orden: score` and `solo_viables`, and the strict rejection of undeclared params, adding real meaning to specific parameters.
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?
The first sentence gives a specific verb ('Busca') and resource ('subastas judiciales de inmuebles del BOE') and enumerates the full filter surface (provincia, municipio, tipo, precio, superficie, texto, zona, estado). It clearly conveys scope, though it never names a sibling (e.g. buscar_por_codigo, similares) to distinguish itself from the other search-like tools.
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?
It states the tool is public and requires no account, and explains that certain fields need a Pro plan, which implies the usage context. However, it never says when to choose this over alternatives like buscar_por_codigo or similares, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_checkoutCancelar checkout (UCP)ADestructiveIdempotentInspect
Cancela una sesión de checkout UCP abierta (libera cualquier borrador de pedido). Una sesión completada o cancelada no cambia. Requiere meta['idempotency-key'] además de meta['ucp-agent'].
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la sesión de checkout a cancelar (de create_checkout). | |
| meta | Yes | Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ucp | Yes | |
| buyer | No | |
| links | No | |
| order | No | |
| status | No | |
| totals | No | |
| payment | No | |
| currency | No | |
| messages | No | |
| expires_at | No | |
| line_items | No | |
| continue_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true, idempotentHint=true), the description discloses that the operation releases an order draft, that completed/cancelled sessions are left unchanged, and that an idempotency-key is required in addition to ucp-agent. This is meaningful behavioral context, not a restatement of annotations.
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, each carrying distinct information: what the tool does, its state semantics, and its required metadata. The core action is front-loaded and there is no filler or repetition of the title.
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?
For a mutation with an output schema and full parameter documentation, the description covers the main invocation needs: object to cancel, effect on drafts, idempotence, and required metadata. It could be more complete by explicitly routing to complete_checkout for finishing a checkout, but nothing essential for a correct call 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 description coverage is 100%, so the baseline is 3. The tool-level mention of meta['idempotency-key'] is useful for emphasis but duplicates what the meta property description already states ('Obligatoria en complete_checkout y cancel_checkout'); the id parameter's source ('de create_checkout') is also already in the schema.
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?
The description opens with a specific action and resource: 'Cancela una sesión de checkout UCP abierta', and adds a concrete effect ('libera cualquier borrador de pedido'). This clearly separates cancel_checkout from siblings like create_checkout, complete_checkout, get_checkout, and update_checkout.
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?
It states the applicable context—only an open checkout session should be cancelled—and that completed or cancelled sessions are unaffected ('Una sesión completada o cancelada no cambia'). It does not explicitly name alternatives or say when to use complete_checkout instead, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_checkoutCompletar checkout (UCP)AIdempotentInspect
Completa una sesión de checkout UCP. Sin manejador de pago nativo: si checkout.payment.instruments[] trae una credencial Shared Payment Token de Stripe (handler_id 'stripe', credential.token 'spt_…') se cobra y se entrega al instante; si no, la sesión pasa a requires_escalation y el comprador termina en continue_url. Un informe incluido en el plan se completa sin cobro. Requiere meta['idempotency-key'] además de meta['ucp-agent'].
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la sesión de checkout a completar (de create_checkout). | |
| meta | Yes | Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout. | |
| checkout | No | Datos finales del pedido si han cambiado. Aquí viaja la credencial de pago: un Shared Payment Token de Stripe en `payment.instruments[]` se cobra al instante. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ucp | Yes | |
| buyer | No | |
| links | No | |
| order | No | |
| status | No | |
| totals | No | |
| payment | No | |
| currency | No | |
| messages | No | |
| expires_at | No | |
| line_items | No | |
| continue_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and readOnlyHint=false, so the description goes beyond that by detailing the exact payment flow: if a Stripe Shared Payment Token is present, it charges and delivers instantly; otherwise it escalates and redirects. It also notes that included reports complete without charge and that meta['idempotency-key'] is required. This is rich behavioral context beyond the structured hints.
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?
The description is a single paragraph but packs several essential details: the main action, two payment paths, the report exception, and the idempotency-key requirement. It is front-loaded with the purpose and then explains conditions. It is appropriately sized for the complexity, though slightly dense; a bullet list might improve readability, but it remains efficient.
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?
Given the 3 parameters, nested objects, and an output schema (not shown but present), the description covers all necessary behavior for correct invocation: the payment decision logic, the escalation path, the report exception, and the required metadata fields. Nothing an agent needs to call this tool correctly 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?
While schema coverage is 100% with parameter descriptions, the description adds critical semantic value: it specifies that the checkout parameter carries the payment credential and precisely defines the trigger (handler_id 'stripe' and credential.token starting with 'spt_'). It also emphasizes the mandatory idempotency-key in meta, which the schema only marks as optional. This goes well beyond the schema's generic text.
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?
The description states a specific verb and resource ('Completa una sesión de checkout UCP') and clearly differentiates from siblings like create_checkout, update_checkout, cancel_checkout, and get_checkout by focusing on the finalization step. It also explains the two payment outcomes, making the tool's purpose unmistakable.
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?
The description explains the conditions under which the tool charges instantly vs escalates, and mentions the report case. It does not explicitly say 'use this instead of X', but the context is clear that this is the checkout finalization tool, and the payment logic gives a strong sense of when to invoke it. It could name the alternative for non-finalized sessions but that is implied by the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkoutCrear checkout (UCP)AInspect
Crea una sesión de checkout UCP 2026-08-25 para comprar un informe de viabilidad, una nota simple registral o una suscripción de Subastech. Productos (item.id): informe:basico: (49 € o incluido según plan), informe:completo: (79 € o incluido), nota-simple: o nota-simple:cru:<14 dígitos> (20 €, solo se cobra con el PDF verificado) y plan:<starter|pro|team|enterprise>:<month|year> (la suscripción se completa en el navegador). Un producto por sesión, quantity 1. Precios con IVA. Indica checkout.buyer.email: se crea o vincula la cuenta del comprador y recibe un enlace de acceso por correo (o autentícate con un token de Subastech). Devuelve el objeto Checkout (status, line_items, totals, messages, links). Requiere meta['ucp-agent'] = { profile: 'https:///.well-known/ucp' } (identificación de la plataforma UCP).
| Name | Required | Description | Default |
|---|---|---|---|
| meta | Yes | Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout. | |
| checkout | Yes | Contenido del pedido: `line_items` con los productos del catálogo (1-10) y, opcionalmente, `buyer` y `payment`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ucp | Yes | |
| buyer | No | |
| links | No | |
| order | No | |
| status | No | |
| totals | No | |
| payment | No | |
| currency | No | |
| messages | No | |
| expires_at | No | |
| line_items | No | |
| continue_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and no destructive/idempotent hints. The description goes beyond this by explaining that the checkout creation may also create or link a buyer account, that subscriptions complete in the browser, and that a UCP-Agent metadata is required. This adds transparency about side effects and prerequisites not evident from the annotations alone.
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?
The description is a single dense paragraph that packs in product IDs, pricing, metadata requirements, and return behavior. It is not broken into sections or bullet points, making it harder to scan, but it does front-load the main purpose and includes essential details without excessive redundancy.
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?
Given the tool's complexity (nested objects, optional fields, multiple product types), the description covers key aspects: it specifies the product ID formats, pricing logic, the requirement for ucp-agent, the effect of providing buyer.email, and the return object structure. This provides a solid overall picture, though it remains somewhat dense and could benefit from clearer separation of concerns.
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?
While the schema already provides full descriptions for parameter structures, the description enriches understanding by specifying the pricing for each product ID (e.g., 49 €, 79 €, 20 €), the condition that nota-simple is charged only with verified PDF, and the idempotency-key requirement for related operations. This extra context goes beyond the schema's basic format descriptions.
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?
The description clearly states the verb 'Crea' (creates) and the specific resource 'sesión de checkout UCP', and lists the exact products it covers (informe de viabilidad, nota simple registral, suscripción de Subastech). It distinguishes itself from sibling tools like update_checkout, complete_checkout, and cancel_checkout by focusing on creation.
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?
The description does not explicitly mention when to use this tool versus the sibling tools (e.g., update_checkout, complete_checkout). It only describes its own function without naming alternatives or providing conditions for choosing among them, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estadisticas_publicasEstadísticas públicas del catálogoARead-onlyIdempotentInspect
Totales del catálogo, provincias con subastas activas e históricas, tipos de inmueble (valores EXACTOS para filtrar) y búsqueda de municipios (claves provincia:municipio). Pública, sin cuenta. No incluye estadísticas de mercado (herramienta mercado, plan Pro).
| Name | Required | Description | Default |
|---|---|---|---|
| estado | No | Ámbito de los tipos de inmueble | |
| municipio_q | No | Buscar municipios por nombre (≥2 caracteres) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| tipos | Yes | |
| totales | Yes | |
| disclosure | No | |
| municipios | No | |
| provincias | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new behavioral context beyond them: no account/authentication is required, and it scopes what data is excluded. It does not mention rate limits or result size, but for a simple read tool that is minor.
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 sentences, zero boilerplate, with the data-scope listed first and the exclusion/alternative note last. The opening sentence packs four distinct capabilities into one long clause, which is dense though still compact and front-loaded.
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, so return-value explanation is unnecessary, and with 100% schema coverage plus the auth and exclusion notes the agent has everything needed to call this correctly. No prerequisites, formatting constraints, or boundaries are left implicit.
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%, so the baseline is 3. The description adds meaning beyond the schema: it flags that property-type values must be EXACT matches for filtering, and documents the returned municipality key format (`provincia:municipio`) that an agent otherwise would not know. The `estado` enum is documented in the schema but not elaborated in the description.
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?
The description enumerates exactly what the tool returns: catalog totals, provinces with active/historical auctions, property types, and municipality lookup. It explicitly draws its boundary against a sibling by stating it does NOT include market statistics and naming `mercado` as the tool that does. An agent can distinguish this from `mercado` and `buscar_subastas` without opening any 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?
It states the access condition ('Pública, sin cuenta') and routes market-statistics needs to the alternative tool with its plan requirement ('herramienta `mercado`, plan Pro'). This gives clear context for when to pick this tool, though it stops short of an explicit 'use this when you need aggregate catalog numbers' instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explicar_conceptoExplicar un concepto de subastas judicialesARead-onlyIdempotentInspect
Explica un concepto de las subastas judiciales en España (depósito, cargas, posesión, cesión de remate, tipos de subasta…) desde la base de conocimiento de Subastech, redactada por personas. Pública, sin cuenta; sin modelo de lenguaje.
| Name | Required | Description | Default |
|---|---|---|---|
| pregunta | Yes | Concepto o pregunta (p. ej. «qué es la cesión de remate») |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| fuente | No | |
| concepto | Yes | |
| disclosure | No | |
| sugerencia | No | |
| relacionados | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds genuinely new behavioral context: it is public, requires no account, and answers come from a human-written knowledge base rather than a language model. This tells the agent what kind of answer to expect, though it omits any limits on scope or length.
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?
Two dense sentences with the core purpose front-loaded and no filler. The parenthetical example list is slightly long but useful for scoping.
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, return values need not be explained, and the single param is fully documented. The description plus annotations give an agent enough to call it 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 coverage is 100% and the single parameter's description already includes an example ('qué es la cesión de remate'). The description's list of concept types is not tied to the parameter and adds little beyond the schema, 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 ('Explica') and resource ('concepto de las subastas judiciales en España') and enumerates example domains (depósito, cargas, posesión, cesión de remate). It does not name a sibling, but the phrase 'desde la base de conocimiento de Subastech, redactada por personas' implicitly separates it from search/analysis tools.
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?
It signals it is a public, no-account, non-LLM knowledge-base lookup, which implies the 'use this to understand a term' context. However, it never states when to prefer this over siblings like search, analisis_subasta, or informe, nor any exclusions. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
favoritos_anadirGuardar en favoritosAIdempotentInspect
Guarda una subasta en tus favoritos. Requiere cuenta (scope favoritos:write). Radar y Starter solo pueden guardar subastas activas (fav.historico es Pro+).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador público de la subasta (10 caracteres) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| cta | No | |
| favorito | Yes | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-destructive, idempotent write (readOnlyHint=false, destructiveHint=false, idempotentHint=true), so the safety profile is covered. The description adds genuinely new behavior: the required auth scope and the tier-gated restriction on historical auctions, neither of which is visible in the 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?
Three short sentences with zero filler: action first, then auth requirement, then the tier restriction. Every sentence carries information the agent needs, and nothing is buried.
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?
The tool is simple (one required param, output schema present so return values need no explanation), and the description covers action, authorization, and plan limits. Only the failure/error behavior when scope or tier requirements are unmet is left unspecified.
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?
There is a single parameter with 100% schema description coverage, including a regex pattern and a human-readable explanation of the 10-character public ID. The description adds no further semantics about the identifier, so the schema does all the work — 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 ('Guarda una subasta en tus favoritos'), which an agent can immediately distinguish from favoritos_quitar and favoritos_listar. It does not explicitly name those siblings, but the action is unambiguous.
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 real preconditions: an account with the `favoritos:write` scope, and the plan-dependent rule that Radar and Starter can only save active auctions while `fav.historico` is Pro+. It stops short of naming alternatives or stating what to do when the precondition fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
favoritos_listarListar mis favoritosARead-onlyIdempotentInspect
Subastas que has guardado como favoritas. Requiere cuenta (scope favoritos:read). Paginada (pagina, por_pagina; máximo 20 por página): usa total, paginas y hasMore para pedir la siguiente. El scoring, veredicto, cargas, ROI, valoración e intervinientes requieren cuenta y plan Pro o superior; si algo está cerrado se devuelve locked con upgradeUrl.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`. | |
| pagina | No | Página (≥1; 1 por defecto) | |
| por_pagina | No | Resultados por página (1..20; 20 por defecto) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| items | Yes | |
| total | Yes | |
| pagina | Yes | |
| hasMore | Yes | |
| paginas | Yes | |
| disclosure | No | |
| por_pagina | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnly, idempotent, closed-world, non-destructive), and the description goes well beyond them: required account scope, per-page cap, plan-gating of scoring/verdict/ROI/participants behind Pro, and the `locked` + `upgradeUrl` fallback when gated. That is exactly the extra context an agent needs.
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?
Dense but front-loaded: what it returns first, then preconditions, then pagination, then entitlement caveats. Every clause carries information, though the entitlement sentence is long and could be split.
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 need not explain return shape, yet it usefully names `total`, `paginas`, `hasMore`, `locked` and `upgradeUrl` so the agent can drive pagination and handle gated fields. Only minor gaps remain, such as what identity the scope binds to.
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%, so the alias rules for `limite` vs `por_pagina` and the 1..20 bounds are already documented. The description repeats the 20-per-page cap but adds no syntax or format detail beyond the schema, which is the expected baseline.
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: it lists the auctions the caller has saved as favorites. That clearly separates it from the write siblings favoritos_anadir and favoritos_quitar without the agent needing to open any 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?
Gives the preconditions (account required, scope `favoritos:read`) and tells the agent how to page using `total`, `paginas` and `hasMore`. It does not explicitly name when to prefer a sibling, but the list/read intent is unambiguous from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
favoritos_quitarQuitar de favoritosADestructiveIdempotentInspect
Quita una subasta de tus favoritos. Requiere cuenta (scope favoritos:write).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador público de la subasta (10 caracteres) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| cta | No | |
| favorito | Yes | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds the required account scope `favoritos:write`, which is valuable auth context not present in the annotations.
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?
Two short sentences, front-loaded with the action followed by the prerequisite. Every word earns its place with no redundancy.
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?
For a simple one-parameter mutation with an output schema and rich annotations, the description covers the purpose and auth requirement adequately. It could mention what happens when the auction is not already favorited, but that is a minor gap.
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 single `id` parameter is fully documented in the schema, so the baseline is 3. The description adds no parameter-level semantics beyond what the schema already provides.
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 (quita) and resource (subasta de tus favoritos), making the action immediately distinguishable from siblings like favoritos_anadir and favoritos_listar. No ambiguity about what the tool does.
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?
Provides no guidance on when to use this tool versus alternatives; the only extra information is a prerequisite (account scope), which is behavioral context rather than usage routing. An agent gets no help deciding between favoritos_quitar, favoritos_anadir, or favoritos_listar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch (ChatGPT)ARead-onlyIdempotentInspect
Lee una ficha de subasta por id (compatible con la búsqueda profunda de ChatGPT): id, title, text con los datos públicos del BOE en Markdown, url y metadata. Pública, sin cuenta. El scoring, veredicto, cargas, ROI, valoración e intervinientes requieren cuenta y plan Pro o superior; si algo está cerrado se devuelve locked con upgradeUrl.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | `id` devuelto por `search` (o URL de la ficha) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations it discloses the access model (public, no account), the gated features (scoring, veredicto, cargas, ROI, valoración, intervinientes need Pro), and the exact failure behavior (`locked` + `upgradeUrl`). This is substantive behavioral context an agent cannot get from the annotations.
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-loads the verb, resource, and returned fields before moving to access rules. Dense but every clause carries signal; only the field enumeration slightly overlaps with what the output schema already provides.
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?
For a single-param lookup with an output schema and read-only annotations, the description covers everything an agent needs: availability, account gating, and the locked/upgrade response path. No meaningful gaps remain.
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?
With a single parameter at 100% schema coverage, the schema already documents that `id` is returned by `search` or can be a ficha URL. The description restates this rather than adding format or edge-case detail, so the baseline 3 is appropriate.
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 (read/lee) and resource (a single auction record by id), and enumerates the returned fields (`id`, `title`, `text` in Markdown, `url`, `metadata`). It is clearly a single-record fetch that consumes an id produced by `search`, distinguishing it from the search/browse siblings.
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 clear context: public access with no account needed, and notes id comes from `search` (or a ficha URL). It also states which capabilities need a Pro account. It does not explicitly name when to prefer this over siblings like `subasta`, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checkoutConsultar checkout (UCP)ARead-onlyIdempotentInspect
Devuelve el estado actual de una sesión de checkout UCP por id (incomplete, ready_for_complete, requires_escalation, complete_in_progress, completed, canceled), con messages, continue_url y order cuando existan. Requiere meta['ucp-agent'] = { profile: 'https:///.well-known/ucp' } (identificación de la plataforma UCP).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la sesión de checkout a consultar (de create_checkout). | |
| meta | Yes | Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ucp | Yes | |
| buyer | No | |
| links | No | |
| order | No | |
| status | No | |
| totals | No | |
| payment | No | |
| currency | No | |
| messages | No | |
| expires_at | No | |
| line_items | No | |
| continue_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to restate those. It adds valuable context beyond annotations: the required UCP-Agent identification and the conditional presence of messages, continue_url, and order.
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?
The description is concise, front-loaded with the main purpose and possible return states, and includes the important authentication requirement in a single additional sentence. Every element earns its place.
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?
Given the full output schema, complete parameter descriptions, and annotations covering safety traits, the description provides the essential behavioral and authentication context needed for correct invocation. Nothing critical 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 description coverage is 100%, and both parameters have clear descriptions in the schema. The description adds a small amount of context by emphasizing the required UCP platform identification, but the schema already carries most of the semantic weight.
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?
The description states a specific verb and resource: it returns the current state of a UCP checkout session by id, enumerates the possible states, and lists the fields that may be returned. This clearly distinguishes it from sibling mutation tools like create_checkout, update_checkout, complete_checkout, and cancel_checkout.
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?
Usage is implied: it queries a checkout session by id created by create_checkout, and the required meta['ucp-agent'] identification is stated. However, there is no explicit guidance about when to use this tool instead of the checkout mutation siblings, though their semantics make the distinction fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
informeInforme de viabilidadARead-onlyIdempotentInspect
Informe de viabilidad de una subasta con las secciones que tu plan permite (resumen, cargas, descripción, catastro, calculadora, valoración, intervinientes, estadísticas); las cerradas se listan en locked. Requiere cuenta verificada (scope informes:read). Los tiers basic/completo solo se sirven si ya están desbloqueados: si no, devuelve unlock_required con la URL para desbloquearlos en el navegador (y, si el comercio para agentes está activo, compra.paymentLink para pagarlos por MPP). Nunca consume cuota ni cobra por sí misma. Parte del texto se genera con IA (disclosure).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador público de la subasta (10 caracteres) | |
| tier | No | `web` (por defecto, según tu plan), `basic` o `completo` (solo si ya están desbloqueados) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ai | No | |
| cta | No | |
| tier | Yes | |
| compra | No | |
| locked | Yes | |
| pdfUrl | No | |
| subasta | Yes | |
| secciones | Yes | |
| disclosure | No | |
| unlock_url | No | |
| informe_url | Yes | |
| analisis_listo | Yes | false si polSaaS aún está generando el veredicto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world, yet the description layers substantial extra behavior: required auth scope, tier gating, the `unlock_required` error path, the MPP payment fallback, the guarantee that it never consumes quota or charges, and an AI-generated-text disclosure. This is exactly the kind of context annotations cannot express.
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 purpose and sections, then progressive detail on auth, tiers, payment and quota. It is dense and sentence-heavy but every clause (sections, `locked`, scopes, tiers, no-quota, AI disclosure) earns its place, with no filler.
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, so return values need not be explained, and the description still covers prerequisites, tier-dependent behavior, the error/payment path and side-effect guarantees. For a gated read tool with payments involved, nothing an agent needs to call it correctly 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 already documents both params at 100% coverage (baseline 3), but the description adds real semantic value: `basic`/`completo` are only served if already unlocked, otherwise `unlock_required` (plus a payment link) is returned, which the enum text alone does not convey.
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 (report) and resource (auction feasibility report), and enumerates the exact sections it returns plus the `locked` behavior, which is far more concrete than the bare title. It does not name sibling tools like analisis_subasta or subasta to draw an explicit boundary, so differentiation is implicit 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 clear preconditions (verified account, `informes:read` scope, tier unlock state) and explains what happens when the condition fails, which is useful context. However, it never says when to reach for this tool versus the sibling `analisis_subasta` or `subasta`, so the routing guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mercadoEstadísticas de mercadoARead-onlyIdempotentInspect
Estadísticas de mercado de subastas resueltas (tasa de adjudicación, descuento real, precios) por provincia y/o tipo de inmueble. Requiere cuenta (scope informes:read) y plan Pro o superior; si no, plan_required con locked.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Tipo de inmueble (valor exacto) | |
| provincia | No | Slug en minúsculas (p. ej. `madrid`) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| stats | Yes | |
| ambito | Yes | |
| locked | No | |
| minimo | No | |
| disclosure | No | |
| muestra_insuficiente | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered; the description adds genuine value beyond them by disclosing the auth scope and the plan-gated error contract. It does not mention result volume, pagination, or cost, but the output schema already covers the return shape.
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?
One sentence states what the tool returns and the dimensions; a second states the access requirement and failure mode. Nothing is repeated and the substantive purpose is front-loaded before the gating detail.
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?
For a read-only, plan-gated statistics tool with a full output schema, the description covers purpose, dimensions, auth, and the denial case. It stops short of saying how both-optional parameters behave when omitted (aggregate across all provinces/types) or any result-size characteristics.
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%, with both `tipo` and `provincia` documented including the lowercase-slug pattern (p. ej. `madrid`). The description names the two dimensions but adds no format, matching, or cardinality detail beyond the schema, so the baseline of 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 concrete resource (estadísticas de subastas resueltas) with the specific metrics returned (tasa de adjudicación, descuento real, precios) and the two grouping dimensions (provincia, tipo de inmueble). This is clearly more specific than a restatement of the title, but it never distinguishes itself from the nearby sibling estadisticas_publicas, which an agent could plausibly confuse it with.
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 preconditions: an account with scope `informes:read` and a Pro-or-higher plan, plus the failure mode (`plan_required` with `locked`). What is missing is any explicit routing guidance against alternatives such as estadisticas_publicas or analisis_subasta, so the agent knows the gating but not the boundary case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mi_cuentaMi cuentaARead-onlyIdempotentInspect
Tu plan, cuota de informes, funciones disponibles, scopes del token, límites de uso y URLs útiles (precios, integraciones). Requiere cuenta (scope cuenta:read).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| org | No | |
| plan | Yes | |
| urls | Yes | |
| token | Yes | |
| limites | Yes | |
| usuario | Yes | |
| funciones | Yes | |
| disclosure | No | |
| cuota_informes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world. The description adds real context beyond them by naming the required auth scope (`cuenta:read`) and that an account is required, which is the key operational gating detail.
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?
Two tight sentences with no filler; the returned content is front-loaded and the auth prerequisite is a single trailing clause. Every part earns its place.
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 to explain the return shape, so the description need not detail return values. It covers what the tool provides and the auth gate, which is everything an agent needs for a no-parameter read tool.
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?
The tool takes zero parameters, so there are no parameter semantics to document; the baseline for a parameterless tool is 4. The description correctly adds no spurious parameter discussion.
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?
Enumerates concretely what the tool returns for the account: plan, report quota, available features, token scopes, usage limits, and useful URLs. The resource (account) is clear and no sibling in the list covers account-level information, so it is effectively distinguishable, though the sentence is a noun list rather than an explicit verb+resource statement.
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?
States a prerequisite (requires an account with `cuenta:read` scope), which helps an agent confirm eligibility before calling. However, it gives no explicit when-to-use guidance or exclusions, and with no competing sibling it relies on implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nota_simple_estadoEstado de una nota simpleARead-onlyIdempotentInspect
Estado de un pedido de nota simple registral y URL para verlo o descargar el PDF cuando esté listo. Requiere cuenta (scope notas:read).
| Name | Required | Description | Default |
|---|---|---|---|
| pedido_id | Yes | Identificador del pedido devuelto por `nota_simple_pedir`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| url | Yes | |
| pedido | Yes | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is low. The description adds two things beyond them: the required auth scope `notas:read` and the fact that a URL may only become available 'cuando esté listo', implying an asynchronous readiness state.
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?
Two sentences, front-loaded with the tool's function, then the auth prerequisite. No wasted words, though it is terse rather than richly structured.
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, so return values need not be detailed, yet the description still usefully flags the URL/PDF payload. Auth scope is included. Missing only the explicit workflow position relative to nota_simple_pedir.
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 documents pedido_id as the identifier returned by nota_simple_pedir. The description adds no further parameter detail, so the baseline 3 is appropriate.
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 resource and outcome: the status of a 'nota simple registral' order plus the URL to view or download the PDF. An agent can tell it apart from nota_simple_pedir (which creates orders) and notas_simples_listar (which lists them), though the description never names those siblings 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?
Provides a real prerequisite ('Requiere cuenta (scope `notas:read`)'), which is useful gating context. However, it never states when to call it rather than alternatives — e.g. that it is the polling step after nota_simple_pedir — leaving the workflow relationship implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nota_simple_pedirPedir una nota simpleAIdempotentInspect
Inicia el pedido de la nota simple registral de una subasta (20 €, retención: solo se cobra con PDF verificado). Requiere cuenta verificada (scope notas:write) y que la subasta tenga CRU/IDUFIR (not_orderable si no). Devuelve pedido_id y la url donde el usuario confirma el pago en el navegador (y, si el comercio para agentes está activo, paymentLink para pagarlo por MPP); el pago nunca se completa desde aquí. Idempotente: si ya hay un pedido vivo devuelve pedido_existente. Máximo 20 inmuebles al día.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador público de la subasta (10 caracteres) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| url | Yes | |
| compra | No | |
| pedido_id | Yes | |
| disclosure | No | |
| paymentLink | No | |
| precio_cents | No | |
| siguiente_paso | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: price (20 €) with retention semantics, scope requirement, the not_orderable error condition, the returned pedido_id/url/paymentLink and the guarantee that payment never completes server-side, the pedido_existente idempotency response, and a 20/day rate limit. This is exactly the extra context annotations cannot carry.
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?
A single dense passage that front-loads the action, then conditions, returns, idempotency and limits in logical order. Every sentence carries information, though it is slightly packed for one paragraph.
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?
Despite an output schema already covering returns, the description still supplies prerequisites, error codes, payment flow, idempotency, and rate limits, leaving no operational gap for a mutation tool with these annotations.
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%, so the `id` parameter's meaning (public auction identifier, 10 chars) is already documented in the schema. The description references CRU/IDUFIR requirements but adds no further detail about the id format beyond what the schema provides – baseline 3 is appropriate.
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 ('Inicia el pedido de la nota simple registral de una subasta'), making it clearly distinct from sibling tools like nota_simple_estado (status) and notas_simples_listar (listing). An agent can identify the action without opening the 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?
Gives concrete preconditions (verified account with scope `notas:write`, auction must have CRU/IDUFIR) and the failure mode (`not_orderable`), plus idempotency behavior. It does not explicitly name an alternative sibling tool for checking an existing order's status, so routing guidance is strong but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notas_simples_listarListar mis notas simplesARead-onlyIdempotentInspect
Pedidos de nota simple registral (20 €) con su estado. Requiere cuenta (scope notas:read). Paginada (pagina, por_pagina; máximo 20 por página): usa total, paginas y hasMore para pedir la siguiente.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`. | |
| pagina | No | Página (≥1; 1 por defecto) | |
| por_pagina | No | Resultados por página (1..20; 20 por defecto) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| total | Yes | |
| pagina | Yes | |
| hasMore | Yes | |
| paginas | Yes | |
| pedidos | Yes | |
| disclosure | No | |
| por_pagina | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, read-only, idempotent, closed-world operation, so the bar is lower. The description adds genuinely useful behavior beyond them: a 20 € cost per nota simple and the required auth scope notas:read, plus the pagination ceiling and how to advance pages.
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 tight sentences, front-loaded with what the tool returns, then auth requirement, then pagination mechanics. Every clause carries information; minor density from the parenthetical detail, but no filler.
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, return values need not be described; the description instead covers the non-obvious prerequisites (scope, cost) and pagination workflow. Complete enough for correct invocation, though it omits any tie-breaker against sibling tools.
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%, so the baseline is 3. The description names pagina and por_pagina and repeats the 20-per-page cap, but it does not explain the limite/por_pagina precedence (which the schema already documents), so it adds no meaning beyond the structured fields.
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: it lists 'pedidos de nota simple registral' along with their estado, so an agent knows exactly what collection is returned. It does not explicitly distinguish itself from close siblings like nota_simple_pedir or nota_simple_estado, which is the only thing keeping it from a 5.
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?
It gives practical usage context (requires an account with scope notas:read, pagination via total/paginas/hasMore), but it never states when to pick this over nota_simple_estado (single note status) or nota_simple_pedir (create a request). Usage is implied by the listing nature rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
planesPlanes y precios de SubastechARead-onlyIdempotentInspect
Planes de Subastech (Radar gratuito, Starter, Pro, Team, Enterprise) con precios y comparativa de funciones. Pública, sin cuenta.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| url | Yes | |
| planes | Yes | |
| disclosure | No | |
| comparativa | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds auth-relevant context the annotations do not ('Pública, sin cuenta'), telling the agent no credentials are needed, though it says nothing about caching or freshness of pricing.
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?
Two tight sentences with the resource and tier list front-loaded, then the access constraint. Nothing is padded or 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?
For a zero-parameter read tool with an output schema present, the description supplies everything the agent needs: what content is returned and that it is publicly accessible. Return-value detail is rightly delegated to the output schema.
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?
The tool takes zero parameters, so the baseline is 4. The description correctly implies a no-argument, fixed-content call, matching the empty schema.
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?
The description names the exact resource (Subastech plans) and enumerates the concrete tiers returned (Radar gratuito, Starter, Pro, Team, Enterprise) along with prices and a feature comparison. No sibling tool covers pricing or plans, so an agent can distinguish this immediately.
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?
It notes the tool is public and requires no account, which is useful context, but it never states when to reach for this versus other informational tools (e.g., estadisticas_publicas, explicar_concepto). Usage is implied rather than guided, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recomendacionesRecomendaciones para tiARead-onlyIdempotentInspect
Subastas recomendadas según tu historial (tipo, precio, provincias), como el bloque «para ti» de la web. Requiere cuenta (scope cuenta:read). Con plan Pro o superior usa el ranking por scoring; si no, se construye con tu perfil y orden por fecha de fin.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| nota | No | |
| items | Yes | |
| titulo | No | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, non-destructive). The description adds real behavioral context beyond them: the auth requirement (scope `cuenta:read`) and the tier-dependent ranking algorithm, which changes the meaning of the returned order. Doesn't state rate limits or full return shape, but output schema exists.
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-loads the resource and anchoring, then tacks on auth and plan-dependent behavior efficiently. Three dense sentences with no filler.
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?
Covers what an agent needs for a no-param, read-only recommendation endpoint: personalization, auth scope, and algorithm variance by plan. An output schema exists so return values need not be described.
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?
Zero parameters, so the baseline is 4. The description's mention of (tipo, precio, provincias) hints at internal ranking signals rather than inputs, which is useful framing for a no-arg tool.
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+resource: recommended auctions personalized to the user's history, with the fields used (tipo, precio, provincias), and anchors it to the known web feature «para ti». This distinguishes it from siblings like buscar_subastas and similares.
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 clear context: personalized recommendations requiring an account, with a distinct behavior difference between Pro+ (scoring ranking) and non-Pro (profile + end-date ordering). No explicit 'use X instead of Y', but the personalization requirement effectively steers agents away from it as a generic search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resultados_recientesAdjudicaciones recientesARead-onlyIdempotentInspect
Últimas subastas del BOE con resultado oficial (adjudicadas), opcionalmente por provincia, con el remate y el descuento real sobre la tasación (aritmética del BOE). Pública, sin cuenta. Máximo 15.
| Name | Required | Description | Default |
|---|---|---|---|
| limite | No | Máximo 15 | |
| provincia | No | Slug en minúsculas (p. ej. `madrid`) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| items | Yes | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful value by stating it is public with no account required, which annotations do not convey, but the 'máximo 15' cap merely repeats the schema and no retry/pagination behavior is disclosed.
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?
A single dense sentence that front-loads the core scope ('últimas subastas del BOE con resultado oficial') followed by the optional filter, then the payout details. Efficient with no filler, though the trailing 'Máximo 15' is redundant with the schema.
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, so return-value explanation is unnecessary, and the description still signals the key returned fields (remate and descuento real). Combined with the auth statement and filter scope, an agent has enough to invoke it correctly; only the omission of sibling routing keeps it from full marks.
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%, so the schema already documents both parameters, including the provincia slug format and the 15-item cap. The description's 'opcionalmente por provincia' and 'máximo 15' add no semantics beyond the structured fields, matching the baseline of 3.
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?
The description names a specific verb+resource: it returns BOE auctions that already have an official adjudication result, optionally filtered by province. This 'adjudicadas' scope meaningfully distinguishes it from generic search siblings like buscar_subastas, though it never names those alternatives 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?
Usage is only implied: an agent can infer this is for querying closed/decided auctions rather than open listings, and that provincia is an optional narrowing filter. There is no explicit 'use this instead of X when...' guidance or statement of when not to use it, despite several overlapping sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch (ChatGPT)ARead-onlyIdempotentInspect
Búsqueda en lenguaje natural de subastas judiciales del BOE (compatible con la búsqueda profunda de ChatGPT): devuelve results con id, title y url. Pública, sin cuenta. Usa fetch con el id para leer la ficha.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Búsqueda en lenguaje natural |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond them: it confirms no account or authentication is needed and describes the response shape and the follow-on `fetch` workflow. Minor tension: it queries an external public corpus while `openWorldHint` is false, though a bounded BOE index can reasonably be treated as closed.
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 purpose, then scope/auth, then the next action. Every clause carries information — no filler and no 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?
An output schema exists, so return values need not be spelled out, yet the description still summarizes them; it also covers authentication and the follow-up call. For a single-parameter read-only search tool this is complete enough to invoke correctly, with only the sibling-routing gap as a minor omission.
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 parameter and schema description coverage is 100%, so the baseline is 3. The description repeats the schema's 'Búsqueda en lenguaje natural' wording without adding syntax, length limits (maxLength 200), or query-construction tips, so it contributes nothing new about the parameter.
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: natural-language search over BOE judicial auctions, plus the ChatGPT deep-search compatibility and the return shape (`results` with `id`, `title`, `url`). However, it never distinguishes itself from the near-identical sibling `buscar_subastas`, leaving an agent unable to tell which search tool to pick without opening both schemas.
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 clear operating context ('Pública, sin cuenta') and an explicit next step: use `fetch` with the returned `id` to read the record. What is missing is exclusionary guidance — no statement of when to prefer this over `buscar_subastas`, `buscar_por_codigo`, or `similares`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
similaresSubastas similaresARead-onlyIdempotentInspect
Subastas parecidas a una dada (mismo tipo de inmueble, banda de precio, cercanía). Requiere cuenta (scope informes:read). Con plan Pro o superior se ordenan por scoring (metodo: scoring); si no, por fecha de fin (metodo: publico).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador público de la subasta (10 caracteres) | |
| limite | No | Número máximo de subastas similares a devolver (1-10). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| base | Yes | |
| items | Yes | |
| metodo | Yes | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior. The description adds genuinely new context beyond that: an auth scope requirement and a plan-gated ordering rule (scoring for Pro+, fecha de fin otherwise). That material behavioral detail is exactly what 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?
A single dense sentence, front-loaded with the purpose before prerequisites and ordering rules. Every clause (similarity definition, scope requirement, plan-based ordering) earns its place with no filler.
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 there's no need to describe return values, and both parameters are fully covered by the schema. Purpose, auth requirement, and plan-dependent ordering are all given; only explicit sibling routing is missing for a full score.
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%, so the schema already documents both `id` and `limite`. The mention of `metodo` in the description describes ordering behavior, not an input parameter, so it adds no parameter-level meaning beyond the schema. 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 resource (subastas similares to a given one) and even spells out the similarity dimensions (mismo tipo de inmueble, banda de precio, cercanía), so the agent understands exactly what is returned. It stops short of distinguishing itself from related siblings like recomendaciones or buscar_subastas.
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?
Surfaces a real prerequisite (requires account with scope `informes:read`) and plan-dependent behavior, which is implied usage context. However, it never says when to prefer this over a sibling such as recomendaciones or buscar_subastas, nor any when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subastaFicha de una subastaARead-onlyIdempotentInspect
Ficha pública de una subasta del BOE por identificador (10 caracteres), URL de app.subastech.com o identificador BOE (SUB-…): dirección, valores, fechas, resultado, lotes y un resumen citable. Pública, sin cuenta. El scoring, veredicto, cargas, ROI, valoración e intervinientes requieren cuenta y plan Pro o superior; si algo está cerrado se devuelve locked con upgradeUrl.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Identificador público de la subasta (10 caracteres) | |
| url | No | URL de la ficha en app.subastech.com | |
| boe_id | No | Identificador del BOE (p. ej. `SUB-JA-2026-123456`): devuelve todos los lotes |
Output Schema
| Name | Required | Description |
|---|---|---|
| cta | No | |
| lotes | No | |
| locked | No | |
| resumen | Yes | Frase citable con los datos del BOE |
| subasta | Yes | |
| disclosure | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds behavior annotations cannot express: a paywall boundary and a `locked` response carrying `upgradeUrl` when a section is gated. It stops short of describing completeness of the returned data or caching.
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 the resource and the returned fields, then the access rules, then the gating behavior. Two dense sentences with essentially no filler; slightly compressed, but every clause carries information.
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, so return values need not be explained, yet the description usefully flags the `locked`/`upgradeUrl` shape that an agent must anticipate. For a read-only lookup tool with full schema coverage and annotations, this is complete enough; only sibling routing is unaddressed.
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%, so the three parameters (id, url, boe_id) are already fully documented with patterns and formats. The description restates the identifier forms (10 chars, SUB-…) and notes that boe_id yields all lots, which mirrors rather than extends the schema. 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 resource (the public auction record) and enumerates the returned content: address, values, dates, result, lots and a citable summary. It also names the three accepted input forms. It never distinguishes itself from siblings such as analisis_subasta or buscar_subastas, so it stops short of a 5.
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?
Clearly frames the access context: the record is public and needs no account, while scoring, verdict, loads, ROI, valuation and participants require a Pro plan or above. That is real when-to-use guidance, though it does not say when to prefer this tool over the sibling search/analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_checkoutActualizar checkout (UCP)AIdempotentInspect
Reemplaza el contenido de una sesión de checkout UCP (line_items y buyer) y recalcula precio y estado. No admite sesiones en complete_in_progress ni terminadas. Requiere meta['ucp-agent'] = { profile: 'https:///.well-known/ucp' } (identificación de la plataforma UCP).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de la sesión de checkout a modificar (de create_checkout). | |
| meta | Yes | Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout. | |
| checkout | Yes | Nuevo contenido del pedido, que sustituye al de la sesión abierta. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| ucp | Yes | |
| buyer | No | |
| links | No | |
| order | No | |
| status | No | |
| totals | No | |
| payment | No | |
| currency | No | |
| messages | No | |
| expires_at | No | |
| line_items | No | |
| continue_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the replacement behavior (destructive in effect, though annotated destructiveHint=false) and the price/status recalculation side-effect. It adds state restrictions and the required ucp-agent identification beyond what annotations convey. No contradiction with annotations exists.
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?
Two sentences with no fluff: the core action is front-loaded, followed by constraints and the authentication requirement. Every clause is informative and earns its place.
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?
For a mutation tool with a rich schema and an output schema, the description covers the essential behavior (replacement, recalculation), state limitations, and required metadata. Nothing critical for calling the tool correctly appears to be 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 description coverage is 100%, so the baseline is 3. The description adds little beyond what the schema already documents: the 'checkout' parameter is described in the schema as 'Nuevo contenido del pedido, que sustituye al de la sesión abierta', which mirrors the description's replacement language. The meta ucp-agent requirement is also already in the schema.
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 ('Reemplaza') and a specific resource ('contenido de una sesión de checkout UCP'), and clearly identifies what is replaced (line_items y buyer) plus the recalculation of price and state. This distinguishes it from the siblings create_checkout, complete_checkout, cancel_checkout, and get_checkout without relying on the title.
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?
Provides clear context: the tool updates an existing UCP checkout session, and it explicitly excludes sessions in complete_in_progress or terminated states. It also states the required meta['ucp-agent'] prerequisite. However, it does not explicitly name the alternative for creating new sessions (create_checkout), so the 'when vs alternatives' guidance is not fully explicit.
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.
27 tool updates
- Changed
alertas_activar1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
alertas_crear3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / criterios / additionalPropertiesAdded value: +false - added
Input schema / properties / quiet_hours / additionalPropertiesAdded value: +false
- Changed
alertas_editar3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / criterios / additionalPropertiesAdded value: +false - added
Input schema / properties / quiet_hours / additionalPropertiesAdded value: +false
- Changed
alertas_eliminar1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
alertas_listar10 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limiteAdded value: +{ + "description": "Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`.", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / paginaAdded value: +{ + "description": "Página (≥1; 1 por defecto)", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / por_paginaAdded value: +{ + "description": "Resultados por página (1..20; 20 por defecto)", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / hasMoreAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / paginaAdded value: +{ + "type": "number" +} - added
Output schema / properties / paginasAdded value: +{ + "type": "number" +} - added
Output schema / properties / por_paginaAdded value: +{ + "type": "number" +} - added
Output schema / properties / totalAdded value: +{ + "type": "number" +} - changed
Output schema / requiredPrevious value: -[ - "alertas" -]New value: +[ + "alertas", + "pagina", + "por_pagina", + "total", + "paginas", + "hasMore" +]
- Changed
alertas_previsualizar2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / criterios / additionalPropertiesAdded value: +false
- Changed
analisis_subasta1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
buscar_por_codigo1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
buscar_subastas4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / bbox / additionalPropertiesAdded value: +false - added
Input schema / properties / cerca / additionalPropertiesAdded value: +false - added
Input schema / properties / limiteAdded value: +{ + "description": "Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`.", + "maximum": 20, + "minimum": 1, + "type": "integer" +}
- Changed
estadisticas_publicas1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
explicar_concepto1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
favoritos_anadir1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
favoritos_listar10 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limiteAdded value: +{ + "description": "Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`.", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / paginaAdded value: +{ + "description": "Página (≥1; 1 por defecto)", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / por_paginaAdded value: +{ + "description": "Resultados por página (1..20; 20 por defecto)", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / hasMoreAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / paginaAdded value: +{ + "type": "number" +} - added
Output schema / properties / paginasAdded value: +{ + "type": "number" +} - added
Output schema / properties / por_paginaAdded value: +{ + "type": "number" +} - added
Output schema / properties / totalAdded value: +{ + "type": "number" +} - changed
Output schema / requiredPrevious value: -[ - "items" -]New value: +[ + "items", + "pagina", + "por_pagina", + "total", + "paginas", + "hasMore" +]
- Changed
favoritos_quitar1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
fetch1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
informe1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
mercado1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
mi_cuenta1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
nota_simple_estado1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
nota_simple_pedir1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
notas_simples_listar10 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limiteAdded value: +{ + "description": "Alias de `por_pagina` (número de resultados por página). Si indicas los dos, manda `por_pagina`.", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / paginaAdded value: +{ + "description": "Página (≥1; 1 por defecto)", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / por_paginaAdded value: +{ + "description": "Resultados por página (1..20; 20 por defecto)", + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Output schema / properties / hasMoreAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / paginaAdded value: +{ + "type": "number" +} - added
Output schema / properties / paginasAdded value: +{ + "type": "number" +} - added
Output schema / properties / por_paginaAdded value: +{ + "type": "number" +} - added
Output schema / properties / totalAdded value: +{ + "type": "number" +} - changed
Output schema / requiredPrevious value: -[ - "pedidos" -]New value: +[ + "pedidos", + "pagina", + "por_pagina", + "total", + "paginas", + "hasMore" +]
- Changed
planes1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
recomendaciones1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
resultados_recientes1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
similares1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
subasta1 field changed- added
Input schema / additionalPropertiesAdded value: +false
12 tool updates
- Changed
alertas_activar2 fields changed- added
Input schema / properties / activa / descriptionAdded value: +"`true` reanuda la alerta; `false` la pausa sin borrarla." - added
Input schema / properties / id / descriptionAdded value: +"Identificador de la alerta (de `alertas_listar`)."
- Changed
alertas_crear2 fields changed- added
Input schema / properties / criterios / descriptionAdded value: +"Filtros que debe cumplir una subasta para disparar la alerta: provincias, municipios, tipo de inmueble, precio, superficie y ocupación." - added
Input schema / properties / quiet_hours / descriptionAdded value: +"Franja en la que no se envían avisos. `paused` la desactiva; `from` y `to` en formato HH:MM; `days` con 0 = domingo … 6 = sábado."
- Changed
alertas_editar3 fields changed- added
Input schema / properties / criterios / descriptionAdded value: +"Filtros que debe cumplir una subasta para disparar la alerta: provincias, municipios, tipo de inmueble, precio, superficie y ocupación." - added
Input schema / properties / id / descriptionAdded value: +"Identificador de la alerta a modificar (de `alertas_listar`)." - added
Input schema / properties / quiet_hours / descriptionAdded value: +"Franja en la que no se envían avisos. `paused` la desactiva; `from` y `to` en formato HH:MM; `days` con 0 = domingo … 6 = sábado."
- Changed
alertas_eliminar1 field changed- added
Input schema / properties / id / descriptionAdded value: +"Identificador de la alerta a eliminar (de `alertas_listar`)."
- Changed
alertas_previsualizar1 field changed- added
Input schema / properties / criterios / descriptionAdded value: +"Filtros que debe cumplir una subasta para disparar la alerta: provincias, municipios, tipo de inmueble, precio, superficie y ocupación."
- Changed
cancel_checkout2 fields changed- added
Input schema / properties / id / descriptionAdded value: +"Identificador de la sesión de checkout a cancelar (de create_checkout)." - added
Input schema / properties / meta / descriptionAdded value: +"Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout."
- Changed
complete_checkout3 fields changed- added
Input schema / properties / checkout / descriptionAdded value: +"Datos finales del pedido si han cambiado. Aquí viaja la credencial de pago: un Shared Payment Token de Stripe en `payment.instruments[]` se cobra al instante." - added
Input schema / properties / id / descriptionAdded value: +"Identificador de la sesión de checkout a completar (de create_checkout)." - added
Input schema / properties / meta / descriptionAdded value: +"Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout."
- Changed
create_checkout2 fields changed- added
Input schema / properties / checkout / descriptionAdded value: +"Contenido del pedido: `line_items` con los productos del catálogo (1-10) y, opcionalmente, `buyer` y `payment`." - added
Input schema / properties / meta / descriptionAdded value: +"Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout."
- Changed
get_checkout2 fields changed- added
Input schema / properties / id / descriptionAdded value: +"Identificador de la sesión de checkout a consultar (de create_checkout)." - added
Input schema / properties / meta / descriptionAdded value: +"Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout."
- Changed
nota_simple_estado1 field changed- added
Input schema / properties / pedido_id / descriptionAdded value: +"Identificador del pedido devuelto por `nota_simple_pedir`."
- Changed
similares1 field changed- added
Input schema / properties / limite / descriptionAdded value: +"Número máximo de subastas similares a devolver (1-10)."
- Changed
update_checkout3 fields changed- added
Input schema / properties / checkout / descriptionAdded value: +"Nuevo contenido del pedido, que sustituye al de la sesión abierta." - added
Input schema / properties / id / descriptionAdded value: +"Identificador de la sesión de checkout a modificar (de create_checkout)." - added
Input schema / properties / meta / descriptionAdded value: +"Metadatos de la llamada UCP: `ucp-agent` identifica la plataforma y es obligatorio; `idempotency-key` (UUID) lo es en complete_checkout y cancel_checkout."
32 tool updates
- First observed
alertas_activar - First observed
alertas_crear - First observed
alertas_editar - First observed
alertas_eliminar - First observed
alertas_listar - First observed
alertas_previsualizar - First observed
analisis_subasta - First observed
buscar_por_codigo - First observed
buscar_subastas - First observed
cancel_checkout - First observed
complete_checkout - First observed
create_checkout - First observed
estadisticas_publicas - First observed
explicar_concepto - First observed
favoritos_anadir - First observed
favoritos_listar - First observed
favoritos_quitar - First observed
fetch - First observed
get_checkout - First observed
informe - First observed
mercado - First observed
mi_cuenta - First observed
nota_simple_estado - First observed
nota_simple_pedir - First observed
notas_simples_listar - First observed
planes - First observed
recomendaciones - First observed
resultados_recientes - First observed
search - First observed
similares - First observed
subasta - First observed
update_checkout
Related MCP Connectors
Spanish public property auctions (judicial, AEAT, Social Security): daily data and risk flags.
Cerca e analizza aste immobiliari italiane, con dati PVP e citazioni dai documenti originali.
Subvenciones, licitaciones y boletines oficiales de España y Europa para tu IA. Gratis, sin login.
Catastro espanol en JSON limpio: inmuebles por referencia catastral, coordenadas o direccion.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for Spain's official BOE auction portal: search judicial foreclosures, notarial and tax-agency auctions, get consolidated per-auction detail (assets, lots, bids, authority contacts) and computed legal thresholds (art. 671 LEC). Clean JSON, GDPR-safe, no headless browser.3AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceSearch Spanish companies, directors and corporate relationships from official BORME registry filings — ~3.2M companies since 2009. Read-only, anonymous.MIT
- FlicenseNot gradedqualityBmaintenanceEnables users to search Spanish judicial rulings and extract text from resolutions using natural language queries.7-
- AlicenseAqualityDmaintenanceEnables querying and analyzing Spanish (BOE) and EU (EUR-Lex) legal documents, with advanced search, PDF extraction, and cross-reference detection.847 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.