Releases: amineremache/dafty-mcp
v0.2.4
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.tshas 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.,
minPriceinstead ofmin_price) for consistency.
New Features:
- LLM Query Parsing: A new
parse_querytool has been added. It leveragesllamaindexwith 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
StdioServerTransporttoSSEServerTransportusing Express, transforming the application into a web server that communicates over HTTP and Server-Sent Events. - Docker Support: A
Dockerfileis 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
.sessionto.gitignore. - Updated
package.jsonwith new dependencies (dotenv,llamaindex,@types/express) and bumped the version to0.2.4.
feat: Major refactor, tooling, and improved scraping
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
Initial commit of Daft.ie MCP Server
Initial commit
Initial commit
feat(scraper): Refactor scraper for detailed property fetching
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
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
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.