Skip to content

Releases: amineremache/dafty-mcp

v0.2.4

03 Jul 23:44

Choose a tag to compare

feat(server): Refactor scraper, add LLM parsing, and switch to HTTP

This commit introduces a major refactoring of the Daft.ie scraper and adds several new features, including natural language query parsing and a move to an HTTP-based server.

Refactoring:

  • The core scraping logic in daftScraper.service.ts has been decomposed into smaller, single-responsibility services for fetching (fetch.service.ts), parsing (parser.service.ts), and filtering (filter.service.ts). This significantly improves modularity, maintainability, and testability.
  • Input parameters across the application have been standardized to use camelCase (e.g., minPrice instead of min_price) for consistency.

New Features:

  • LLM Query Parsing: A new parse_query tool has been added. It leverages llamaindex with an Ollama model to interpret natural language queries (e.g., "find a 2-bed apartment in Dublin under €2000") and convert them into structured JSON for the search tool.
  • HTTP SSE Server: The server transport has been upgraded from StdioServerTransport to SSEServerTransport using Express, transforming the application into a web server that communicates over HTTP and Server-Sent Events.
  • Docker Support: A Dockerfile is now included, enabling easy containerization and deployment of the server.

Enhancements:

  • Error Handling: A robust, centralized error handling system has been implemented using custom error classes (ScraperError, ValidationError, etc.) and a utility function (createErrorResponse) to generate standardized error payloads.
  • Testing: Comprehensive new unit tests have been added for the server, scraper, and filter services, with coverage reporting configured in package.json.

Other Changes:

  • Added .session to .gitignore.
  • Updated package.json with new dependencies (dotenv, llamaindex, @types/express) and bumped the version to 0.2.4.

feat: Major refactor, tooling, and improved scraping

20 Jun 18:14

Choose a tag to compare

feat: Major refactor, tooling, and improved scraping

This commit introduces a significant overhaul of the project to improve code structure, add developer tooling, and enhance the web scraping capabilities.

Key Changes:

  • Project Structure: Source code has been reorganized into services, utils, config, and types for better modularity.
  • Tooling & DX: Added ESLint, Prettier, and Winston for logging.
  • Configuration: Centralized all configuration into a new src/config.ts file.
  • Scraping Enhancements: The search_rental_properties tool now accepts an array of locations and has improved parsing logic.
  • Dependencies: Added winston, eslint, prettier, and related plugins.

Initial commit of Daft.ie MCP Server

20 Jun 18:11

Choose a tag to compare

Initial commit of Daft.ie MCP Server

Initial commit

20 Jun 18:11

Choose a tag to compare

Initial commit

feat(scraper): Refactor scraper for detailed property fetching

20 Jun 18:14

Choose a tag to compare

feat(scraper): Refactor scraper for detailed property fetching

Implements a two-pass scraping system to visit each property's detail page, enabling the extraction of more accurate data like coordinates and BER ratings.
This change significantly improves the scraper's robustness by using multiple fallback selectors and adds support for parsing multi-unit developments.
Also includes build script fixes and a version bump.

feat: Implement unit tests and enhance scraper reliability

20 Jun 18:13

Choose a tag to compare

feat: Implement unit tests and enhance scraper reliability

This commit introduces Vitest for unit testing and significantly refactors the Daft.ie scraper for improved reliability, error handling, and maintainability.

Key changes include:

  • Unit Testing:
    • Added Vitest and configured it to run tests from the src directory.
    • Implemented comprehensive unit tests for parsePrice, parseBeds, and slugify helper functions in daftScraper.ts.
  • Scraper Enhancements (daftScraper.ts):
    • Refined client-side location filtering for "Ringsend".
    • Added detailed logging for CSS selector fallbacks.
    • parsePrice now returns a structured object { value, type }.
    • Enhanced pagination robustness with retries and better logging.
  • Error Handling & Logging:
    • MCP tools return structured JSON errors.
    • Server-side logs for errors are more detailed.
    • Added logging for selector fallbacks and pagination termination.
  • API Disclaimer (daftApi.ts):
    • Added disclaimer about API key requirement.
  • Build & Dependencies:
    • Updated package.json for Vitest.
    • Updated .gitignore.

Addresses BUG-001, ENH-001, ENH-002, ENH-003, ENH-004, ENH-005, TASK-001 (disclaimer part), and TASK-002 from the project roadmap.

feat: Implement Daft.ie scraper and refactor MCP server

20 Jun 18:13

Choose a tag to compare

feat: Implement Daft.ie scraper and refactor MCP server

Replaces API with scraping for property search. Refactors server into modules (scraper, api, index). Improves URL construction, parsing, filtering. Fixes TS/ESLint issues. Cleans logs. Adds CHANGELOG.