Skip to main content
Glama
daft-mcp

daft-mcp

by damosullivan

daft-mcp

MCP server that lets AI assistants search Irish property listings on Daft.ie via the daftlistings Python library.

Requirements

  • Python 3.10+

  • uv (recommended) or a standard venv + pip

  • git (the daftlistings dependency is installed from its master branch, which includes a fix not yet on PyPI)

Related MCP server: Airbnb Search & Listings

Install

git clone https://github.com/damosullivan/daft-mcp.git daft-mcp && cd daft-mcp
uv sync          # creates .venv and installs dependencies

Run

daft-mcp                     # entry point
# or: uv run daft-mcp        # run in the project venv
# or: python -m daft_mcp.server

The server speaks MCP over stdio and waits for a client to connect.

Configure your MCP client

The examples below assume you run the client from this repo's directory. For a global config, swap . for an absolute path (e.g. /home/me/src/daft-mcp).

OpenCode

opencode mcp add        # interactive: pick local, name it "daft", use the uv command below

Or add it directly to your opencode.jsonc:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "daft": {
      "type": "local",
      "command": ["uv", "--directory", ".", "run", "daft-mcp"],
      "enabled": true
    }
  }
}

Verify with opencode mcp list, then restart OpenCode.

Claude Desktop / Claude Code

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "daft": {
      "command": "uv",
      "args": ["--directory", ".", "run", "daft-mcp"]
    }
  }
}

Codex

Add to ~/.codex/config.toml:

[mcp_servers.daft]
command = "uv"
args = ["--directory", ".", "run", "daft-mcp"]

No uv? Point the client at the venv python instead: python -m daft_mcp.server (e.g. .venv/bin/python).

Available tools

Tool

What it does

search_properties

Main search with full filtering (price, beds, type, BER, facilities, location, sort…)

suggest_locations

Fuzzy-match Daft location names from a partial query

get_search_types

List search types (residential sale, rent, commercial, sharing…)

get_property_types

List property types (houses, apartments, sites…)

get_facilities

List facility filters valid for a given search type (parking, alarm, garden…)

Example

"Find 3-bed houses for sale in Dublin City between €400k and €500k"

The assistant uses suggest_locations (if needed) and search_properties to return live Daft.ie results.

Development

uv sync                       # install dev deps if added
mypy src/                     # type checks
npx @modelcontextprotocol/inspector uv run daft-mcp   # MCP Inspector

Limitations

  • daftlistings is unofficial and may break if Daft.ie changes their API.

  • Results are bounded by what Daft.ie's search API returns.

  • No auth required; Daft.ie may rate-limit aggressive use.

License

MIT — see LICENSE.

Available Tools

5 tools
get_facilitiesA

List available Daft.ie facility filters, optionally filtered by search type.

Args: search_type: Search type to filter facilities against. If omitted, lists all facilities. Use get_search_types() for valid values.

Inputs: search_type. Returns: result

get_property_typesA

List available Daft.ie property types, optionally filtered by search type.

Args: search_type: Optional search type to filter. If omitted, lists all.

Inputs: search_type. Returns: result

get_search_typesA

List all available Daft.ie search types.

Inputs: no named parameters. Returns: result

search_propertiesA

Search for properties on Daft.ie with full filtering support.

Args: search_type: Search type. Use get_search_types() for valid values. location: Area to search (e.g. "Dublin City", "Cork"). Fuzzy-matched against Daft's location database. Use suggest_locations() to discover valid names. Omit for nationwide search. property_type:Property type. Use get_property_types() for valid values. min_price: Minimum price in euro (sale price or monthly rent). max_price: Maximum price in euro (sale price or monthly rent). min_beds: Minimum number of bedrooms. max_beds: Maximum number of bedrooms. min_baths: Minimum number of bathrooms. max_baths: Maximum number of bathrooms. facilities: List of facility identifiers (e.g. ["parking","alarm"]). Use get_facilities() for valid values per search type. sort_type: Sort order: publishDateDesc | priceAsc | priceDesc min_ber: Minimum BER rating (e.g. "A1", "B2", "C3"). max_ber: Maximum BER rating. added_since: Only show recently-added listings. Valid: now-3d/d | now-7d/d | now-14d/d | now-30d/d max_pages: Pages of results (50 per page). Default 1. min_floor_size: Minimum floor area in m². max_floor_size: Maximum floor area in m².

Inputs: search_type (required), location, property_type, min_price, +13 more. Returns: result

suggest_locationsA

Fuzzy-search Daft.ie location names from a partial query.

Args: query: Partial location name (e.g. "Dublin 4", "Blackrock", "Galway").

Inputs: query (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: get_facilities, get_property_types, get_search_types, search_properties, and suggest_locations cover reference data, search, and location suggestion without overlap.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern (get_, search_, suggest_), making the API predictable and easy to navigate.

    Tool Count5/5

    With 5 tools, the server is well-scoped for its purpose. Each tool provides necessary functionality for searching properties on Daft.ie, neither too few nor too many.

    Completeness4/5

    The tool surface covers reference data, search, and location suggestion comprehensively. A minor gap is the lack of a dedicated tool for retrieving individual listing details, but the search tool likely returns sufficient information for most use cases.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers