daft-adverts-mcp
MCP server for Irish classifieds, providing tools to search Daft.ie property listings and Adverts.ie marketplace ads, retrieve details, and optionally manage authenticated accounts. Supports both stdio and HTTP transports.
README
Irish classifieds toolkit (Daft + Adverts)
Bun monorepo: unofficial HTTP clients and MCP servers for two Irish sites —
| Site | Domain | Focus |
|---|---|---|
| Daft.ie | property | sale / rent / sharing search, listing details, Keycloak auth |
| Adverts.ie | marketplace | ad search, refine/facets, ad details, optional account |
Not affiliated with Distilled Media, Daft, or Adverts. Protocols and shapes come from the Android apps.
Disclaimer
This repository was written entirely by AI coding agents under human direction. Experiment / personal tooling — not a supported product.
- No warranty — correctness and API compatibility are not guaranteed; upstream apps change.
- Tests are minimal — do not treat a green test run as production-ready.
- Use at your own risk. Respect ToS and rate limits; do not scrape, spam, or abuse accounts.
Packages
packages/
daft-api/ @daft-ie/api HTTP client → gateway.daft.ie / auth.daft.ie
daft-mcp/ @daft-ie/mcp MCP tools (stdio) over daft-api
adverts-api/ @adverts-ie/api HTTP client → new.api + api.adverts.ie
adverts-mcp/ @adverts-ie/mcp MCP tools (stdio) over adverts-api
mcp-host/ @daft-ie/mcp-host one Fastify process: both MCPs over HTTP (+ Docker)
| Package | README | What you get |
|---|---|---|
@daft-ie/api |
packages/daft-api |
DaftApi: residential/commercial/new-homes search, geo helpers, property details, saved ads/searches, inbox, Keycloak login + refresh rotation |
@daft-ie/mcp |
packages/daft-mcp |
Agent tools: search_for_sale / for_rent / sharing, get_property, autocomplete, resolve_area, optional auth_* |
@adverts-ie/api |
packages/adverts-api |
AdvertsApi: legacy search.json browse + facets/locations; fresh advert/{id}, account, media, place-ad surface; app enums |
@adverts-ie/mcp |
packages/adverts-mcp |
Agent tools: search_ads, refine/price facets, counties/areas, get_ad, discover/config, optional auth_* |
@daft-ie/mcp-host |
packages/mcp-host |
Streamable HTTP: /mcp/daft, /mcp/adverts, /health; Cursor / OpenCode / Hermes / Docker |
Layering:
Cursor / OpenCode / Hermes / your code
│
├─ stdio ──► daft-mcp ──► daft-api ──► Daft
├─ stdio ──► adverts-mcp ──► adverts-api ──► Adverts
└─ HTTP ──► mcp-host ──► both MCP servers (shared process)
Quick start
bun install
cp .env.example .env # fill DAFT_* and/or ADVERTS_* as needed
Library use
import { DaftApi } from "@daft-ie/api";
import { AdvertsApi } from "@adverts-ie/api";
const daft = new DaftApi({ platform: "android", appVersion: "9.8.1" });
const adverts = new AdvertsApi();
MCP over HTTP (both tools, one process) — preferred for multi-client setups:
bun packages/mcp-host/src/index.ts
# http://127.0.0.1:3100/mcp/daft
# http://127.0.0.1:3100/mcp/adverts
Docker: see packages/mcp-host.
MCP stdio (single server per process)
bun packages/daft-mcp/src/index.ts
bun packages/adverts-mcp/src/index.ts
Wire-up for Cursor CLI, OpenCode, and Hermes is documented in packages/mcp-host/README.md.
Environment
Shared root .env (gitignored). Rough split:
| Vars | Used by |
|---|---|
DAFT_CLIENT_ID, DAFT_REFRESH_TOKEN, DAFT_ACCESS_TOKEN, … |
@daft-ie/api / @daft-ie/mcp |
ADVERTS_NEW_API_KEY, ADVERTS_OLD_API_KEY, ADVERTS_ACCESS_TOKEN, … |
@adverts-ie/api / @adverts-ie/mcp |
HTTP_PROXY |
optional outbound proxy for both APIs |
TS_AUTHKEY |
Docker mcp-host Tailscale → Pi exit node |
MCP_HOST, MCP_HOST_PORT |
@daft-ie/mcp-host |
Token files after login: .daft-tokens.json, .adverts-tokens.json (override with *_TOKEN_FILE).
You can run only Daft, only Adverts, or both — unused keys are simply unused.
Tests
Per package (bun test in that folder). Coverage is intentionally thin; see disclaimer.
License
MIT (unless a package says otherwise).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.