Skip to main content
Glama

HammerMap: Spanish court auctions and State sales

Server Details

Spain's court auctions and State sales from BOE open data, updated each working day. Free, no key.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.6/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct role: get_facets returns aggregate counts/filter discovery, search_listings finds short listing records, and get_listing retrieves one full record by id. The descriptions explicitly explain the workflow, so an agent can reliably choose the right tool.

Naming Consistency5/5

All tool names use consistent snake_case verb_noun patterns: get_facets, get_listing, search_listings. The use of singular/plural nouns is natural and predictable.

Tool Count5/5

Three tools are well-scoped for a read-only search and detail API: facet discovery, search, and record retrieval. No unnecessary tools are present, and each earns its place.

Completeness4/5

The tool set covers the core read-only lifecycle: discover filters/freshness, search listings, and retrieve full listing details with official links. Minor gaps may exist for ancillary workflows such as saved searches or alerts, but they are not central to the stated purpose.

Available Tools

3 tools
get_facetsFilter values, counts and data freshnessA
Read-onlyIdempotent
Inspect

Counts of current listings by type, procedure, asset type and province, the starting-price range, covered countries, and data freshness (data_updated, latest_boe_publication, update_frequency). Use it to discover valid filter values for search_listings or to answer "how many / how fresh" questions. No arguments.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
facetsYes
attributionYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds behavioral context beyond that by disclosing data-freshness semantics (data_updated, latest_boe_publication, update_frequency) and confirming the call takes no arguments, though it says nothing about result size or whether counts can be stale.

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

Conciseness4/5

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

Three short sentences with no filler; the facet inventory leads and the usage guidance follows. Slightly better front-loading would put the purpose before the field enumeration, and the parenthetical freshness list is dense but earns its place.

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

Completeness5/5

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

With an output schema present, the description does not need to explain return shapes, and annotations carry the safety profile. For a no-argument, read-only discovery tool, everything an agent needs to decide to call it is present.

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

Parameters4/5

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

There are zero parameters and the description explicitly confirms 'No arguments,' matching the empty schema with additionalProperties false. No further parameter meaning is needed.

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

Purpose5/5

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

The description names the specific resource (facet counts of current listings by type, procedure, asset type, province) and the extra data returned (price range, countries, freshness fields). It is instantly distinguishable from get_listing (single record) and search_listings (the consumer of these filter values).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states two use cases: discovering valid filter values for search_listings, and answering 'how many / how fresh' questions, which routes the agent away from the search siblings. It never states a when-not-to-use condition, but the positive routing is clear enough to act on.

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

get_listingGet one listingA
Read-onlyIdempotent
Inspect

Full record for one listing by id from search_listings (SUB-… for court auctions, BOE-B-… for State sales): lots with starting price and deposit, bid deadline, auction session date, bidding mode, approximate place, HammerMap's general risk analysis with legal basis (not legal advice), corrections, official BOE and portal links, and data freshness (attribution.data_updated). Returns an error if the id is not listed any more. Bids and payments happen only on the official channel in urls / bidding.where.

NameRequiredDescriptionDefault
idYesListing id exactly as returned by search_listings, e.g. SUB-JA-2026-267510 or BOE-B-2026-35250

Output Schema

NameRequiredDescription
licenceNo
listingYes
attributionYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered; the description adds genuinely new behavior: it errors when the id is no longer listed, exposes data freshness via attribution.data_updated, and flags the risk analysis as non-legal-advice. It omits auth/rate or pagination behavior, keeping it short of a 5.

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

Conciseness4/5

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

Front-loaded with the core action and keyed on the id, then a single long enumeration of returned fields. Dense but every clause maps to real content (lots, deposit, deadline, mode, place, risk analysis, links, freshness); the official-channel caveat at the end is short and useful.

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

Completeness5/5

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

With an output schema present, return-value explanation is optional, yet the description still previews the payload, states the error condition, identifies the freshness field, and redirects bidding/payment to official urls. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and the pattern already constrains the id format, so the baseline is 3. The description adds meaning beyond the schema by decoding what the two id prefixes represent (court auctions vs State sales), helping the agent validate provenance.

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

Purpose5/5

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

States a specific verb (retrieve full record) and resource (one listing), scoped by id, and immediately distinguishes itself from the sibling search_listings by requiring an id that came from that search. The id prefix conventions (SUB-… court auctions, BOE-B-… State sales) further pin down the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the call as a follow-up to search_listings and gives the exact id forms it accepts, so an agent knows when this tool applies. It does not spell out an exclusion case (e.g. what to do instead when the id is unknown) beyond noting an error is returned.

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

search_listingsSearch Spanish auction listingsA
Read-onlyIdempotent
Inspect

Search current Spanish court auctions (BOE section IV) and State/public-body sales (BOE section V-B). Use it first to find listings by province, town, type, asset type, starting price or dates; then call get_listing with an id for the full record. Returns total count, paging (limit/offset) and short records: id, title in 5 languages, approximate place, seller, starting price in EUR when the notice gives one, publication date, deadline, HammerMap risk light and links (HammerMap page, official channel, BOE notice). Coverage: Spain only. Data are updated once per working day; attribution.data_updated and attribution.latest_boe_publication show how fresh they are. Court auction notices in BOE open data have no price, description or closing date (those are on the official portal). All filters are optional and combine with AND.

NameRequiredDescriptionDefault
qNoFree text, accent-insensitive, matched in title, seller, town, province and lot description, e.g. "vivienda" or "Puerto de Valencia"
sortNopublished_desc = newest first (default), deadline_asc = closing soonest, price_asc / price_desc = by starting price (no price last)published_desc
typeNocourt_auction = judicial auction (BOE IV); state_sale = sale by the State or a public body (BOE V-B)
limitNoResults per page, 1-100
offsetNoNumber of results to skip, for paging
countryNoISO 3166-1 alpha-2 country code. Only ES (Spain) has data; any other value returns 0 results.ES
provinceNoSpanish province, exact name, accent-insensitive, e.g. Madrid, Valencia, Illes Balears. Call get_facets for the list.
max_priceNoMaximum starting price in EUR. Only listings with a known price match.
min_priceNoMinimum starting price in EUR. Only listings with a known price match.
procedureNoapremio = enforcement for debt, voluntaria = voluntary court sale, concursal = insolvency, estado = State sale
asset_typeNovivienda = home, local = commercial premises, garaje = parking, solar = building plot, rustica = rural land, inmueble = other real estate, vehiculo = vehicle, otros = other goods, unknown = not stated in the notice
deadline_toNoBid deadline to; only listings with a known deadline match (YYYY-MM-DD)
municipalityNoTown, exact name: the court's town for court auctions, the asset's town for State sales
published_toNoBOE publication date to (YYYY-MM-DD)
deadline_fromNoBid deadline from; only listings with a known deadline match (YYYY-MM-DD)
published_fromNoBOE publication date from (YYYY-MM-DD)

Output Schema

NameRequiredDescription
itemsYesShort listing records
limitNo
totalYesNumber of matching listings
offsetNo
licenceNo
attributionYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld=false, so safety is covered. The description adds genuinely useful behavioral context: Spain-only coverage, once-per-working-day refresh with attribution fields exposed, and the important caveat that BOE court-auction notices lack price, description and closing date. It could note more about pagination limits or result caps, but the missing-data caveat is exactly the kind of context annotations can't convey.

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

Conciseness4/5

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

Front-loaded with purpose and usage, then returns, then caveats and freshness. It is dense but nearly every sentence carries information; the short-record field list overlaps slightly with the existing output schema, but that is minor.

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

Completeness5/5

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

With 16 optional parameters, an output schema and annotations present, the description supplies everything an agent still needs: coverage, freshness, the AND-combination rule, the price/deadline absence caveat and the get_listing handoff. Nothing material is missing.

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

Parameters4/5

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 adds real semantic value beyond the schema by stating that all filters are optional, combine with AND, and that Spain-only coverage ties to the country parameter. That AND-combination rule is not obvious from the schema alone.

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

Purpose5/5

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

States a specific verb and two precisely defined resources (BOE section IV court auctions and section V-B state sales) and explicitly distinguishes from get_listing by naming it as the follow-up for full records. An agent can tell exactly what this tool returns versus its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it first to find listings by province, town, type, asset type, starting price or dates; then call get_listing with an id for the full record' gives an explicit ordering and the alternative tool. Nothing is left to inference about when to choose this versus get_listing.

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.

  1. 2 tool updates
    • Changedget_listing1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Listing id, e.g. SUB-JA-2026-267510 or BOE-B-2026-35250"New value: +"Listing id exactly as returned by search_listings, e.g. SUB-JA-2026-267510 or BOE-B-2026-35250"
    • Changedsearch_listings18 fields changed
      • addedInput schema / properties / asset_type / description
        Added value: +"vivienda = home, local = commercial premises, garaje = parking, solar = building plot, rustica = rural land, inmueble = other real estate, vehiculo = vehicle, otros = other goods, unknown = not stated in the notice"
      • changedInput schema / properties / country / description
        Previous value: -"ISO country code. Only ES has data."New value: +"ISO 3166-1 alpha-2 country code. Only ES (Spain) has data; any other value returns 0 results."
      • addedInput schema / properties / deadline_from / description
        Added value: +"Bid deadline from; only listings with a known deadline match (YYYY-MM-DD)"
      • addedInput schema / properties / deadline_to / description
        Added value: +"Bid deadline to; only listings with a known deadline match (YYYY-MM-DD)"
      • addedInput schema / properties / limit / description
        Added value: +"Results per page, 1-100"
      • changedInput schema / properties / max_price / description
        Previous value: -"EUR; only listings with a known starting price"New value: +"Maximum starting price in EUR. Only listings with a known price match."
      • changedInput schema / properties / min_price / description
        Previous value: -"EUR; only listings with a known starting price"New value: +"Minimum starting price in EUR. Only listings with a known price match."
      • changedInput schema / properties / municipality / description
        Previous value: -"Town (court town for court auctions)"New value: +"Town, exact name: the court's town for court auctions, the asset's town for State sales"
      • addedInput schema / properties / offset / description
        Added value: +"Number of results to skip, for paging"
      • changedInput schema / properties / procedure / description
        Previous value: -"apremio (debt), voluntaria, concursal (insolvency), estado (State sale)"New value: +"apremio = enforcement for debt, voluntaria = voluntary court sale, concursal = insolvency, estado = State sale"
      • changedInput schema / properties / province / description
        Previous value: -"Spanish province, e.g. Madrid, Valencia, Illes Balears (accent-insensitive)"New value: +"Spanish province, exact name, accent-insensitive, e.g. Madrid, Valencia, Illes Balears. Call get_facets for the list."
      • addedInput schema / properties / published_from / description
        Added value: +"BOE publication date from (YYYY-MM-DD)"
      • addedInput schema / properties / published_to / description
        Added value: +"BOE publication date to (YYYY-MM-DD)"
      • changedInput schema / properties / q / description
        Previous value: -"Free text: title, seller, town, lot description"New value: +"Free text, accent-insensitive, matched in title, seller, town, province and lot description, e.g. \"vivienda\" or \"Puerto de Valencia\""
      • addedInput schema / properties / sort / description
        Added value: +"published_desc = newest first (default), deadline_asc = closing soonest, price_asc / price_desc = by starting price (no price last)"
      • changedInput schema / properties / type / description
        Previous value: -"court_auction or state_sale"New value: +"court_auction = judicial auction (BOE IV); state_sale = sale by the State or a public body (BOE V-B)"
      • addedOutput schema / properties / items / description
        Added value: +"Short listing records"
      • addedOutput schema / properties / total / description
        Added value: +"Number of matching listings"
  2. 3 tool updates
    • First observedget_facets
    • First observedget_listing
    • First observedsearch_listings

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP 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.
    3
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI clients to query Spain's official BDNS subsidy and grant listings and BOE open-data publications live, with exact counts, computed deadlines, forecast calendars, and literal PDF text of grant bases. It also surfaces BOE oposiciones and licitaciones, flagging uncertainty instead of inventing data.
    10
    0
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources