Skip to main content
Glama

How to connect Idealista to Claude Code, ChatGPT and any AI agent

Yes, Claude, ChatGPT and other AI agents can work in your Idealista account. Idealista's official ChatGPT app and Claude connector search properties to buy or rent in Spain, Italy and Portugal. Cotlet.dev connects your own signed-in Idealista account to any AI agent, so the AI lists, checks and updates your listings for you.

What you can ask

List all my active listings with price, views and days online.

Lower the price of the flat on Calle Alcalá 120 in Madrid from €385,000 to €369,000.

Rewrite the description of my two-bedroom in Lisbon to highlight the new kitchen and the terrace. Show me the draft first.

Which of my listings got no contacts in the last 14 days? Sort them by price.

Add the 6 new photos to my Barcelona loft listing and put the terrace photo first.

Related MCP server: @inssist/mcp

Connect in 2 minutes

Get your API key at https://cotlet.dev/app and export it as COTLET_API_KEY.

Claude Code

claude mcp add --transport http cotlet https://cotlet.dev/mcp/v1 --header "Authorization: Bearer $COTLET_API_KEY"

ChatGPT

Settings → Apps → add connector URL https://cotlet.dev/mcp/v1, then sign in with Cotlet.dev. No API key needed.

Cursor

Copy .cursor/mcp.json from this repo into your project:

{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": {
        "Authorization": "Bearer ${COTLET_API_KEY}"
      }
    }
  }
}

Run it locally (stdio)

This repo is a real MCP server. It speaks MCP over stdio, lists its Idealista tools without any key, and forwards every tool call to the hosted Cotlet.dev server. The hosted URL above stays the recommended way. Use this when your client only starts local servers.

{"mcpServers":{"idealista":{"command":"uvx","args":["idealista-mcp"],"env":{"COTLET_API_KEY":"your-key"}}}}

Or with Docker:

docker build -t idealista-mcp .
docker run -i --rm -e COTLET_API_KEY idealista-mcp

Tools: idealista_guide, idealista_status, idealista_open, idealista_read, idealista_click, idealista_type, idealista_close. Without COTLET_API_KEY a tool call answers: "Set COTLET_API_KEY. Get a key at https://cotlet.dev/app".

Command line

Python 3.10+, nothing else to install. From PyPI:

pip install idealista-mcp        # or run it once: uvx idealista-mcp connect
idealista-mcp connect

Or straight from this repo:

export COTLET_API_KEY="your-key"
python3 idealista_agent.py connect   # ready config for Claude Code, Cursor, ChatGPT
python3 idealista_agent.py status    # is Idealista ready in your Cotlet.dev account
python3 idealista_agent.py guide     # Idealista screens and sign-in link
python3 idealista_agent.py read      # open Idealista, read the page, close the browser
python3 idealista_agent.py tools     # list Cotlet.dev tools
python3 idealista_agent.py serve     # start the stdio MCP server (same as no argument)

Questions from Idealista users

Does Idealista have an API?

Idealista has no public API for your own listings or contacts (checked 11 Oct 2026). Its Search API is read-only and given only after an application, and its official Claude and ChatGPT app only searches public listings, with no login. Cotlet.dev works in your own signed-in Idealista account, so your AI agent can list and update your listings with no API key and no code.

How do I connect Idealista to ChatGPT?

Idealista's official ChatGPT app searches properties. To work with your own listings, add Cotlet.dev as an app in ChatGPT (Settings → Apps, connector URL https://cotlet.dev/mcp/v1), sign in to Idealista once in your Cotlet.dev Cloud Browser, and ask ChatGPT in plain words. No code and no Idealista API key.

Is there a way to use Claude with Idealista?

Yes. Idealista's own Claude connector covers property search. To manage your listings, run the one-line claude mcp add command above in Claude Code, or add https://cotlet.dev/mcp/v1 as a custom connector in the Claude app. Claude then works in your own Idealista account.

Is there an Idealista MCP server?

Idealista's official connectors focus on property search in Spain, Italy and Portugal. Cotlet.dev is a hosted MCP server that works in your own Idealista account for you, 24/7, with Claude, ChatGPT, Cursor, Codex, n8n, Make and Zapier.

Find it on

Also works with


More: https://cotlet.dev/integrations/idealista-api-mcp-server?utm_source=github&utm_medium=readme&utm_campaign=idealista

Start free: https://cotlet.dev/signup?app=idealista&utm_source=github&utm_medium=readme&utm_campaign=idealista

Available Tools

7 tools
idealista_clickB

Click a numbered element on the current Idealista page.

NameRequiredDescriptionDefault
elementYesElement number from the last read.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. It does not disclose whether clicking navigates, submits a form, triggers side effects, waits for a page load, requires prior read state, or what happens on failure.

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?

The definition is a single, front-loaded sentence with no wasted wording. It is concise and readable, though its brevity leaves several behavioral gaps that a slightly longer definition could address.

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

Completeness3/5

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

For a simple one-parameter click tool, the description gives enough information to identify the target element. However, with no annotations and no output schema, it should do more to explain post-click behavior, dependencies on the last read, and potential page navigation or side effects.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already explains that "element" is an element number from the last read. The description adds only the page context and the word "numbered," so it does not meaningfully extend parameter meaning beyond the schema.

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

Purpose4/5

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

The description uses a specific verb and resource: "Click a numbered element," making the action clear. It scopes the action to "the current Idealista page," but it does not explicitly distinguish this from siblings like idealista_open or idealista_type.

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

Usage Guidelines3/5

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

The phrase "numbered element on the current Idealista page" implies that element numbers come from a prior read and that the tool acts on the active page. However, there is no explicit when-to-use guidance, no exclusions, and no comparison with alternatives such as idealista_open, idealista_read, or idealista_type.

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

idealista_closeA

Close the Idealista browser session when the work is done, so credits stop running.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden, and it does disclose the key consequence of omission — credits keep running until the session is closed. It does not say whether the call is idempotent, what happens if no session exists, or whether any session state is lost.

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

Conciseness5/5

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

A single front-loaded sentence pairing the action with its rationale. Every clause earns its place and there is no redundant restatement of the title or name.

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

Completeness4/5

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

For a zero-parameter, no-output tool this is nearly sufficient: the action, the timing, and the cost motivation are all present. The only gap is edge-case behavior when no session is open, which matters little for a cleanup call.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already conveys. Baseline 4 applies.

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

Purpose4/5

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

The description states a specific verb and resource — closing the Idealista browser session — and contrasts implicitly with the sibling idealista_open. It is unambiguous about what the tool does, though it never names the counterpart tool explicitly.

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 gives a concrete trigger condition ('when the work is done'), which tells an agent exactly when to call it. It stops short of explicit exclusions, such as what to do if the session is already closed or if a follow-up read is still pending.

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

idealista_guideA

How to work in Idealista (list and update your listings): its screens and the sign-in link. Call this first.

NameRequiredDescriptionDefault
taskNoWhat you want done in Idealista, in your words.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It indicates that the tool provides screens and a sign-in link, but it does not explicitly state that it only returns guidance, performs no site actions, or whether authentication is required before other tools can be used.

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

Conciseness5/5

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

The description is compact and front-loaded: it states the tool's role, lists what it covers, and ends with the key ordering instruction. Every phrase contributes useful context without repetition.

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

Completeness4/5

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

For a simple one-parameter guide tool with no output schema, the description provides enough context to know it should be called before the action tools. A small gap remains around whether it returns instructions only versus interacting with the Idealista interface itself.

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

Parameters3/5

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

The single optional 'task' parameter is fully documented in the schema, including the instruction to describe the desired task in the user's own words. The description does not add any further meaning about how the task influences the returned guidance, so the schema baseline of 3 applies.

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

Purpose4/5

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

The description states that this is a guide for working in Idealista and names the covered domain areas (listing and updating listings, screens, and the sign-in link). It is clearly distinct from the sibling action tools, though the verb phrase 'How to work' is less specific than a direct 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.

Usage Guidelines4/5

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

The phrase 'Call this first' gives explicit sequencing guidance relative to the sibling tools. It does not describe exclusions or alternatives beyond that first-call instruction, but for a guide tool the main usage guidance is present.

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

idealista_openB

Open a Idealista page in your signed-in Cloud Browser (default https://www.idealista.com) to work with list and update your listings.

NameRequiredDescriptionDefault
urlNoPage to open. Default: https://www.idealista.com

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the authenticated 'signed-in Cloud Browser' context and the default domain, but says nothing about what happens to an already-open page (replace, new tab, navigate), whether session state persists for subsequent click/type calls, or what is returned on success.

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?

A single front-loaded sentence with no boilerplate or repetition. The trailing purpose clause is awkwardly worded ('to work with list and update your listings') but is short enough not to undermine the structure.

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

Completeness3/5

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

This is a simple one-parameter navigation tool with no output schema, so the description needn't explain return values. However, for a browser-session tool it omits how the opened page relates to subsequent sibling operations and what the caller should expect after opening — relevant context that is cheap to include.

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

Parameters3/5

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

There is one optional parameter and schema description coverage is 100%, so the schema already fully documents the url field and its default. The description merely restates the same default URL, adding no format, constraint, or validation meaning beyond the schema.

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

Purpose4/5

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

The description gives a specific verb and resource — 'Open a Idealista page in your signed-in Cloud Browser' — which is clearly distinguishable from siblings like idealista_read, idealista_click, and idealista_close. It does not explicitly name the sibling boundary, and the trailing clause 'to work with list and update your listings' is grammatically garbled and muddies the purpose slightly.

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

Usage Guidelines3/5

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

Usage is only implied: the phrase 'to work with list and update your listings' hints that this is the entry point before read/click/type operations. There is no explicit statement of when to call this versus idealista_read or idealista_status, and no prerequisites or exclusions are given.

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

idealista_readA

Read the current Idealista page: its text and numbered buttons, links and fields.

NameRequiredDescriptionDefault
elementNoRead only inside this element.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden. It discloses the shape of the return (text plus numbered buttons/links/fields) and "read" implies a non-mutating operation, but it does not state that numbering is the handle used by click/type, whether the read triggers a fresh page load or waits for it, or whether numbers remain valid across reads.

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?

A single front-loaded sentence with no filler, and the payload enumeration is packed efficiently. It is arguably too terse for its role, but that is a completeness issue rather than verbosity.

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

Completeness4/5

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

For a one-param read tool with no annotations and no output schema, the description covers what the tool returns and the page scope. The remaining gap is the element scoping parameter and the tie-in of numbered references to the click/type siblings, which the agent would have to infer.

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

Parameters3/5

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

Schema description coverage is 100% and the single optional parameter 'element' is documented there as 'Read only inside this element.' The description never mentions scoping to an element, so it adds no semantics beyond the schema; baseline 3 applies.

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

Purpose4/5

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

States a specific verb (read) plus the exact resource (the current Idealista page) and enumerates what comes back: text, numbered buttons, links and fields. That return enumeration also implicitly separates it from the action siblings (idealista_click, idealista_type, idealista_open, idealista_close), though none is named.

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

Usage Guidelines3/5

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

"Current Idealista page" implies a page must already be loaded via idealista_open, and the mention of numbered buttons hints that the output feeds the numbered-reference tools. But nothing is explicit: no statement of when to read vs. re-read, and no named alternative or exclusion.

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

idealista_statusB

Check that your Cotlet.dev account and Idealista are ready: account, credits and Idealista connection.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says what is inspected (account, credits, connection) but never states that the call is read-only, what happens if a check fails, or what the response contains — for a diagnostic tool, failure/return behavior matters most.

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?

One front-loaded sentence with no filler, but there is mild redundancy between 'account' appearing twice and the 'ready' framing duplicating the list that follows.

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

Completeness3/5

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

For a simple zero-parameter tool this is close, but with no annotations and no output schema the agent gets no sense of the result shape (per-check status? overall boolean?) or what a failing state looks like.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The enumerated check subjects loosely map to the internal checks performed.

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

Purpose4/5

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

Names a specific verb ('Check') and a concrete subject: account, credits, and Idealista connection readiness. It is distinguishable from siblings like idealista_open/read/click/type, though the description never explicitly frames it as a preflight check relative to those tools.

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

Usage Guidelines3/5

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

The phrase 'check that ... are ready' implies this is a prerequisite/diagnostic step before using the browser tools, but usage is only implied. There is no explicit when-to-use, when-not-to-use, or named alternative.

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

idealista_typeB

Type text into a numbered field on the current Idealista page.

NameRequiredDescriptionDefault
textYesText to type.
elementYesField number from the last read.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it omits key traits for an input-mutating action: whether existing text is cleared or appended, whether typing submits/triggers the form, and what happens if the element number is stale or the page is not open.

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?

A single efficient sentence with the action front-loaded and no filler. It is perhaps over-terse for an interaction tool, but nothing is wasted.

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

Completeness3/5

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

For a simple two-parameter tool with full schema coverage this is close to adequate, but the absence of annotations and an output schema leaves the agent without information on side effects, success/failure signals, or interaction with siblings like read and click.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented (text as 'Text to type', element as 'Field number from the last read'). The phrase 'numbered field' adds nothing 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.

Purpose4/5

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

The description gives a specific verb and resource ('Type text into a numbered field') scoped to the current Idealista page, which separates it from read/click/open siblings. It stops short of explicitly naming which sibling to use instead for other interactions.

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

Usage Guidelines3/5

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

Usage is only implied: 'numbered field' and 'current page' suggest the page must first be opened and fields discovered via a prior read, but no explicit when-to-use, prerequisites, or alternatives (e.g. click vs type) are stated.

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. 7 tool updatesv1.1.0
    • First observedidealista_click
    • First observedidealista_close
    • First observedidealista_guide
    • First observedidealista_open
    • First observedidealista_read
    • First observedidealista_status
    • First observedidealista_type

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation4/5

The tools form a clear browser-automation loop (open → read → click/type → close) with distinct roles. The only soft overlap is between idealista_guide and idealista_status, since both are 'call first' onboarding/readiness checks, which could cause hesitation about which to invoke initially.

Naming Consistency5/5

All seven tools use the same vendor-prefixed snake_case pattern (idealista_verb), with consistent verb-style suffixes (guide, status, open, read, click, type, close). No mixed conventions or casing deviations.

Tool Count5/5

Seven tools is well-scoped for a browser-driven listing-management wrapper: each one maps to a distinct step (guidance, status, session lifecycle, and page interaction primitives). Nothing feels redundant or bloated.

Completeness3/5

The core session lifecycle and interaction primitives are covered, but the browser-control surface has notable gaps: no scroll, no select/dropdown handling, no keypress/submit, and no screenshot or wait-for-load. Since the actual listing create/update operations must be reproduced through this thin primitive set, agents may hit dead ends on common Idealista form flows.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables access to Idealista API for searching and retrieving property listings across Spain, Portugal, and Italy. Supports various property types including homes, apartments, garages, commercial properties, offices, and land with detailed filtering options.
    14
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to manage a personal Instagram account through a logged-in browser session, supporting actions like reading profiles and DMs, publishing posts, reels, and stories, scheduling content, and accessing insights and audience reports.
    60
    233 npm
    15
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables extension-free sign-in to a marketplace and gives AI agents tools for searching and paginating listings, comparing sellers and asking prices, reading inbox conversations, and preparing owner-approved seller messages with a WhatsApp handoff. It can be shared across local agents over a Unix socket or remote agents through an authenticated OAuth relay, without ever exposing passwords or cookies.
    21
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Lets AI agents search Vinted listings, view items and sellers, favourite, follow, chat, negotiate offers, read orders and wallet, and manage their own listings (publish, edit, hide, delete, drafts), with writes gated behind an opt-in flag. Checkout and payment are deliberately left manual.
    29
    167 PyPI
    3
    MIT