Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PropertyList — Spanish Property MLS

REMOTE · MCP.PROPERTYLIST.ES · SCANNED SEP 23

First-party Spanish, Portuguese and Italian property listings with notarial-verified prices.

0 this week 80 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security69
Transport & Reachability100
Schema Quality & AI Usability60
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3985 tokens (~265/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage94
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 78% of tool parameters carry a description.Partial
  • Structured output schemas are declared (33% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the PropertyList — Spanish Property MLS MCP server?

PropertyList — Spanish Property MLS is a hosted endpoint at https://mcp.propertylist.es/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.propertylist.es

# add to Claude Code
claude mcp add --transport http es-propertylist-propertylist 'https://mcp.propertylist.es/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "es-propertylist-propertylist": {
      "url": "https://mcp.propertylist.es/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "es-propertylist-propertylist": {
      "type": "http",
      "url": "https://mcp.propertylist.es/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.es-propertylist-propertylist]
url = "https://mcp.propertylist.es/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "es-propertylist-propertylist": {
      "type": "remote",
      "url": "https://mcp.propertylist.es/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add es-propertylist-propertylist --url 'https://mcp.propertylist.es/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  es-propertylist-propertylist:
    url: "https://mcp.propertylist.es/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "es-propertylist-propertylist": {
      "Transport": "http",
      "Url": "https://mcp.propertylist.es/mcp"
    }
  }
}
# add to Vellum
assistant mcp add es-propertylist-propertylist -t streamable-http -u 'https://mcp.propertylist.es/mcp'
// mcp.json
{
  "mcpServers": {
    "es-propertylist-propertylist": {
      "type": "http",
      "url": "https://mcp.propertylist.es/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 11 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “area_market_summary” rewrote its description, which is the text the model reads security
    • Tool “get_property” rewrote its description, which is the text the model reads security
    • Tool “search_properties” rewrote its description, which is the text the model reads security
    • Tool “submit_enquiry” rewrote its description, which is the text the model reads security
    • Tool “verified_valuation” rewrote its description, which is the text the model reads security
    • Schema quality: 233 → 265 functional
    • Schema quality: excellent → good functional
  • 10 Sept 26 0
    • Tool “find_properties_by_description” rewrote its description, which is the text the model reads security
    • The server no longer declares the “prompts” capability functional
    • The server no longer declares the “resources” capability functional
    • Server version: 0.1.0 → 1.0.0 functional
    • Tool “area_market_summary” changed its title: Area market summary cosmetic
    • Tool “autocomplete_location” changed its title: Autocomplete location cosmetic
    • Tool “create_contact” changed its title: Create contact cosmetic
    • Tool “create_listing” changed its title: Create listing draft cosmetic
    • Tool “find_contacts” changed its title: Find contacts cosmetic
    • Tool “find_properties_by_description” changed its title: Find properties by description cosmetic
    • Tool “get_property” changed its title: Get property details cosmetic
    • Tool “list_agencies” changed its title: List agencies cosmetic
    • Tool “log_note” changed its title: Log note cosmetic
    • Tool “my_leads” changed its title: My leads cosmetic
    • Tool “my_listings” changed its title: My listings cosmetic
    • Tool “my_pipeline” changed its title: My pipeline cosmetic
    • Tool “search_properties” changed its title: Search properties cosmetic
    • Tool “submit_enquiry” changed its title: Submit enquiry cosmetic
    • Tool “verified_valuation” changed its title: Verified valuation cosmetic
  • 9 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
  • 28 Aug 26 0
    • Tool “get_property” rewrote its description, which is the text the model reads security
    • Tool “submit_enquiry” rewrote its description, which is the text the model reads security
  • 26 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Aug 26 0
    • Tool “my_leads” rewrote its description, which is the text the model reads security
    • Schema quality: 3005 → 3367 functional
    • New tool “my_pipeline” functional
  • 23 Aug 26 0
    • Schema quality: 2706 → 3005 functional
    • New tool “create_listing” functional
  • 20 Aug 26 0
    • “verified_valuation” added an optional parameter “build” cosmetic
    • “verified_valuation” added an optional parameter “build_size” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Sept 2026 · Probed https://mcp.propertylist.es/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=propertylist.es CN=WE1,O=Google Trust Services,C=US 11 Aug 2026 9 Nov 2026 ECDSA 256 ECDSA-SHA256 80b83decb29a4b3613583fb7d4edec81
SANs: propertylist.es, *.propertylist.es
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.propertylist.es. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
es. present 54404 8 Verified
propertylist.es. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.propertylist.es/mcp Verified 200
http (plaintext) http://mcp.propertylist.es/mcp Inconclusive 410
MCP tools · 15 exposed · ~3,590 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
area_market_summary ~434

Return aggregate market context for a Spanish area: number of active listings, median price, mean price, median €/m², and the count broken down by bedroom band. Filterable by property type and search type (for-sale / for-rent / holiday-rentals). Use this before recommending a price or commenting on whether a listing is good value. If the place name is not one we hold, the response says so (error: location_not_found, location_match.matched: false) and returns no figures. Figures are NEVER nationwide fallbacks. Price figures follow the search type and are labelled with price_unit: sale prices are totals, for-rent is per MONTH and holiday-rentals is per WEEK. median_price_per_sqm is reported for sales only. The `oracle` block carries the attested transaction price for the area. Check `oracle.verified` before citing it as verified: it is true only for Spanish figures from the notarial register (Consejo General del Notariado) with at least 10 recorded transactions behind them. Outside Spain the figure comes from a national house-price index, carries no transaction count, and must never be described as notary-backed - `oracle.source` names the real source and `oracle.note` says why it is not verified. Transactions are recorded per municipality, so a sub-area (Sotogrande, Puerto Banus, Nueva Andalucia, Orihuela Costa) is answered with the figure for the municipality containing it, with `oracle.rolled_up_from_sub_area` true and `oracle.municipality` / `oracle.municipality_code` naming it. Quote it as the municipality's figure, never as the sub-area's own.

NameTypeReqDescription
locationstringyesPlace name (city, suburb, or urbanisation). e.g. 'Marbella'.
property_typesstringOptional comma-separated slugs: apartments, villas, penthouses, plots, townhouses.
search_typestring
NameTypeReqDescription
by_bedroom_bandobject
errorstring|null
locationstringyes
location_matchobject|null
max_priceinteger|null
mean_priceinteger|null
median_priceinteger|null
median_price_per_sqminteger|null
min_priceinteger|null
notestring|null
oracleobjectyes
price_basisstring
price_unitstring
property_typesstring|null
search_typestring
total_listingsintegeryes

No examples provided.

autocomplete_location ~115

Look up Spanish property areas (city, suburb, urbanisation) by free-text name. Returns up to 10 matches with id, name, and the parent province/city. Use this to resolve place names before calling search_properties, especially for common spellings like 'Nueva Andalucia' (vs 'Nueva Andalucía') or 'Marbella old town'.

NameTypeReqDescription
provincesstringOptional comma-separated province ids to scope the search.
querystringyesFree-text place name. 2+ characters.

No output schema declared.

No examples provided.

create_contact ~154

Add a new contact to YOUR agency's CRM. Use when the agent wants to save a person (buyer, owner, enquirer). If a contact with the same email already exists it is returned rather than duplicated. The contact is created unassigned and flagged as needing attention so it surfaces in the CRM. Requires an agency API key.

NameTypeReqDescription
company_namestringCompany name (for a business contact). Optional.
emailstringEmail address. Optional but recommended (used for de-duplication).
namestringyesContact's first name (or full name).
phonestringPhone number. Optional.
surnamestringContact's surname. Optional.

No output schema declared.

No examples provided.

create_listing ~299

Start a new property listing in YOUR agency's CRM from a description. Use when the agent is describing a property they have taken on and wants it in the system. Creates a DRAFT. It is never published and never appears on the portal from here: the agent adds photographs and the energy rating in the CRM and publishes it themselves. The response includes a direct link to the draft. Location is resolved against the real area tree, so a town, suburb or urbanisation name is enough. Requires an agency API key.

NameTypeReqDescription
bathroomsinteger
bedroomsinteger
build_sqmintegerBuilt area in square metres.
descriptionstringyesThe property description, in the language the agent wrote it.
headlinestringShort headline for the listing. Optional.
languagestringLanguage the description is written in. Defaults to the agency language.
locationstringTown, suburb or urbanisation, e.g. "Nueva Andalucia" or "Menara Beach".
plot_sqmintegerPlot size in square metres.
priceintegerAsking price in euros, or monthly rent for a rental.
property_typestringapartment, villa, penthouse, townhouse, plot or commercial.
search_typestringWhether it is for sale or for long-term rent. Defaults to for-sale.

No output schema declared.

No examples provided.

find_contacts ~86

Search YOUR agency's CRM contacts by name, company, email or phone. Use to look a person up before logging a note or to check if they're already in the CRM. Requires an agency API key; only ever searches the calling agency's own contacts.

NameTypeReqDescription
limitinteger
querystringyesName, company, email or phone fragment to search for.

No output schema declared.

No examples provided.

find_properties_by_description ~146

Match Spanish properties from a free-form description of what the user wants. Best for vague, conditional, or lifestyle-heavy briefs ("3-bed near a good international school, flexible on budget if there's a sea view"). The matcher translates the brief into one to three parallel structured searches across PropertyList's full MLS, then merges and ranks the results. Returns up to 9 listings with match scores and an explanation of how the brief was interpreted (and what couldn't be resolved).

NameTypeReqDescription
briefstringyesPlain-English (or Spanish) description of what the user is looking for. 10-500 chars.
languagestring
NameTypeReqDescription
billedboolean|null
errorstring|null
interpretationobject|null
propertiesarrayyes
summarystring|null
unresolvedarray

No examples provided.

get_property ~288

Fetch the full record for one PropertyList listing by its reference code (the human-readable id like 'PLE-12345'). Use this once the user has settled on a listing from search_properties or find_properties_by_description and wants details or photos. To contact the listing agency, use submit_enquiry - direct phone or email details are not part of the payload. Works without an API key up to a daily per-IP allowance of distinct listings; an API key raises that allowance. `location.city` is whatever tier the listing was filed under and may be a municipality OR a locality inside one. To place a listing administratively use `location.municipality` (with its INE municipality_code); it is null, never guessed, when we cannot resolve it. `location.latitude` / `location.longitude` are present only when we hold a real, publishable coordinate; the fields are absent otherwise, and are never 0,0. `location.coordinates_precision` says what the point is: exact or street is the property itself, locality or administrative_area is an area centroid (accurate to the town, not the building), unknown is a pin we hold no precision record for.

NameTypeReqDescription
languagestring
referencestringyesPropertyList reference, e.g. 'PLE-12345'.
NameTypeReqDescription
propertyobjectyes

No examples provided.

list_agencies ~110

Find PropertyList agencies (estate agents) in a given Spanish area, ranked by how many active listings they carry there. Returns up to 10 agencies with name, location, listing count, and a public URL the user can visit. Use this after a buyer has narrowed in on an area and wants to know which agencies dominate it.

NameTypeReqDescription
limitinteger
locationstringyesPlace name (city, suburb, or urbanisation). e.g. 'Estepona'.

No output schema declared.

No examples provided.

log_note ~132

Log a note against a contact or a listing in YOUR agency's CRM (e.g. record a call outcome or a viewing). Provide the note text plus a contact_id (from find_contacts) and/or a property reference. The note appears on the contact/property timeline. Requires an agency API key.

NameTypeReqDescription
contact_idintegerContact to attach the note to (from find_contacts). Optional if a property reference is given.
notestringyesThe note text to record.
property_referencestringListing reference to attach the note to. Optional if a contact_id is given.

No output schema declared.

No examples provided.

my_leads ~181

List recent enquiries (leads) for YOUR agency's CRM - newest first. Use when the agent asks what has just come in (e.g. "what came in today?"). This is the enquiry inbox: an enquiry that arrived from the portal, a website or a microsite. Once an agent starts working a person they live on a pipeline board instead - for those, use my_pipeline. An agency that works everything off the boards can have a busy CRM and an empty inbox here, which is not the same as having no leads. Requires an agency API key; only ever returns the calling agency's own leads.

NameTypeReqDescription
limitinteger
property_referencestringOnly leads about this listing reference. Optional.
sincestringISO date/time - only leads created on or after this. Optional.

No output schema declared.

No examples provided.

my_listings ~117

List YOUR agency's own property listings (newest first), optionally filtered by status or a specific reference. Use for "show my listings" / "is reference X still online?". Requires an agency API key; only ever returns the calling agency's own properties.

NameTypeReqDescription
limitinteger
referencestringA specific listing reference. Optional.
statusstringListing status. Defaults to 'online'. 'draft' covers listings not yet published (new + in review); 'all' returns every status.

No output schema declared.

No examples provided.

my_pipeline ~289

List the cards on YOUR agency's CRM pipeline boards (Kanban), with each board's own stage names and card counts. Boards: lead, buyer, seller, tenant, nurture (each card is a contact) and property (each card is a listing). Stage names are whatever the agency renamed them to, so read them from the reply rather than assuming. Call with no pipeline for a summary of every board - use this to answer "what's in my pipeline?" or "how many buyers do I have?". Call with a pipeline for that board's cards, newest activity first. This is the board view. For enquiries that have just arrived and have not been worked yet, use my_leads instead. Returns the WHOLE agency's boards, not one agent's cards - an API key belongs to the agency, not to a person. Requires an agency API key; only ever returns the calling agency's own data.

NameTypeReqDescription
limitintegerCards per stage. Counts are always the full stage total, whatever this is set to.
pipelinestringWhich board. Omit for a summary of all of them.
stagestringOnly cards in this stage. Match on the stage name as it reads on the board (case-insensitive); closed stages such as Won or Lost can be asked for by name. Optional.

No output schema declared.

No examples provided.

search_properties ~476

Search PropertyList's full Spanish property MLS by structured filters. Use for queries that translate cleanly to fields: bedrooms, bathrooms, price ceiling, property type, area name. For free-form briefs use find_properties_by_description instead. Returns a paginated list with summary text plus structured JSON. Every property carries `oracle_verified` and `oracle_attestation_url` — true when PropertyList Oracle holds a verified attestation for the listing's municipality and segment. A `location` we do not hold returns zero results with error: location_not_found and location_match.matched: false. It never substitutes listings from other areas. `location.city` is whatever tier the listing was filed under and may be a municipality OR a locality inside one. To place a listing administratively use `location.municipality` (with its INE municipality_code); it is null, never guessed, when we cannot resolve it. `location.latitude` / `location.longitude` are present only when we hold a real, publishable coordinate; the fields are absent otherwise, and are never 0,0. `location.coordinates_precision` says what the point is: exact or street is the property itself, locality or administrative_area is an area centroid (accurate to the town, not the building), unknown is a pin we hold no precision record for.

NameTypeReqDescription
bathrooms_mininteger
bedrooms_maxinteger
bedrooms_mininteger
languagestringPreferred language for property titles and description excerpts.
locationstringFree-text place name (city, suburb, or urbanisation). e.g. 'Marbella', 'Nueva Andalucia', 'Sotogrande'. Pre-resolved with autocomplete_location if you need to confirm match.
pageinteger
page_sizeinteger
price_maxintegerMaximum price in euros (sale) or monthly euros (rent).
price_minintegerMinimum price in euros (sale) or monthly euros (rent).
property_typesstringComma-separated slugs: apartments, villas, penthouses, plots, townhouses, commercial.
search_typestringListing market. Defaults to 'for-sale'.
NameTypeReqDescription
errorstring|null
limitsobject|null
location_matchobject|null
pageintegeryes
page_sizeintegeryes
propertiesarrayyes
totalintegeryes

No examples provided.

submit_enquiry ~253

Submit an enquiry (lead) about a specific listing on behalf of a prospective buyer or tenant. Use this once the user has chosen a property and wants the agency to contact them. The listing agency receives the enquiry in their CRM and follows up directly. This is the supported way to contact a listing agency - direct phone or email details are not exposed by other tools. Works without an API key up to a small daily per-IP allowance; an API key removes that allowance. Provide the property `reference` (from search results) plus the enquirer's contact details. Only submit with the person's clear intent and consent - this sends their details to a real estate agency.

NameTypeReqDescription
emailstringyesEnquirer's email address.
languagestringPreferred language for the agency to reply in.
messagestringOptional message / what they want to know or arrange (e.g. a viewing).
namestringyesEnquirer's full name.
phonestringyesEnquirer's phone number (with country code where possible).
referencestringyesPropertyList listing reference the enquiry is about, e.g. 'PLE-12345'.

No output schema declared.

No examples provided.

verified_valuation ~510

Get a valuation for a property or area from recorded market data, not asking prices. Returns the €/m² for the municipality and segment, an indicative valuation when you give a size (build_sqm) or a listing reference, and a content-hashed attestation URL the figure can be cited from. Check `verified` before citing. It is true ONLY for Spanish figures drawn from the notarial register (Consejo General del Notariado) with at least 10 recorded transactions behind them. Elsewhere - Portugal and Cyprus especially - the figure comes from a national house-price index and is an estimate: `transaction_backed` is false, `source_label` names the real source, and it must not be described as notary-verified. `indicative_band_pct` widens as the evidence thins. Transactions are recorded per municipality, so a query for a sub-area (Sotogrande, Puerto Banus, Nueva Andalucia, Orihuela Costa) is answered with the containing municipality's attestation: `rolled_up_from_sub_area` is true, `location` and `municipality_code` name the municipality, `requested_area` is what you asked for and `rollup_note` is the sentence to repeat. Never quote a rolled-up figure as the sub-area's own price. Only two segment attestations exist per municipality, so a request for penthouse or townhouse resolves to the nearest attested segment. `property_type` is the segment actually used and `requested_property_type` is what you asked for; when they differ the text says so. Also returns our proprietary network achieved-sale figure where available. If no attestation covers the area yet, it says so plainly (use area_market_summary for asking-price stats instead).

NameTypeReqDescription
buildintegerAlias of build_sqm.
build_sizeintegerAlias of build_sqm.
build_sqmintegerBuilt size in m² to value. Optional.
locationstringMunicipality / city name, e.g. "Marbella". Ignored if a reference is given.
property_typestringOptional segment slug: apartment, villa, penthouse, townhouse, plot. Defaults to the municipality-wide figure.
referencestringValue a specific PropertyList listing by reference (uses its municipality, type and size). Optional.
NameTypeReqDescription
attestation_urlstring|null
build_sqminteger|null
content_hashstring|null
indicative_band_pctinteger|null
indicative_rangeobject
locationstring|nullyes
municipality_codestring|null
networkobject|null
on_chainboolean
period_endstring|null
property_typestring|null
requested_areastring|null
requested_property_typestring|null
rolled_up_from_sub_areaboolean
rollup_notestring|null
sample_sizeinteger|null
sourcestring|null
source_labelstring|null
transaction_backedboolean
valuation_estimateinteger|null
verifiedbooleanyes
verified_price_per_sqminteger|null

No examples provided.

Common questions

What is the PropertyList — Spanish Property MLS MCP server?

PropertyList — Spanish Property MLS is an MCP server listed in the public MCP registry as es.propertylist/propertylist. First-party Spanish, Portuguese and Italian property listings with notarial-verified prices. This page covers its hosted endpoint (https://mcp.propertylist.es/mcp).

Is the PropertyList — Spanish Property MLS MCP server safe to use?

PropertyList — Spanish Property MLS scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PropertyList — Spanish Property MLS MCP server expose?

PropertyList — Spanish Property MLS exposes 15 tools: search_properties, find_properties_by_description, autocomplete_location, get_property, area_market_summary, and 10 more. Their descriptions and schemas cost roughly 3,590 tokens of context every time the server is loaded.

Does the PropertyList — Spanish Property MLS MCP server require authentication?

No. We connected to PropertyList — Spanish Property MLS without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the PropertyList — Spanish Property MLS MCP server still maintained?

PropertyList — Spanish Property MLS is still listed as active in the MCP registry. We last reached this channel on 23 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.