rightmove-mcp-server
v2.0.1
Published
MCP server for Rightmove.co.uk property search
Maintainers
Readme
Rightmove MCP Server
A Model Context Protocol (MCP) server for accessing Rightmove.co.uk property data. This server provides tools to search properties, get detailed property information, and retrieve area statistics from the UK's largest property portal.
✨ Now available on NPM! Use npx rightmove-mcp-server to get started instantly.
Features
- Property Search: Search for properties with various filters (location, price range, property type, bedrooms, etc.)
- Property Details: Get detailed information about specific properties including images, descriptions, and agent details
- Area Statistics: Retrieve market data and price statistics for specific areas
Quick Start
Using NPX (Recommended)
The easiest way to use this MCP server is with npx:
npx rightmove-mcp-serverNo installation required! This will automatically download and run the latest version.
Using with MCP Clients
To use with Claude Desktop or other MCP clients, add this configuration:
{
"mcpServers": {
"rightmove": {
"command": "npx",
"args": ["rightmove-mcp-server"]
}
}
}Installation for Development
If you want to modify or contribute to this project:
- Clone this repository
- Install dependencies:
npm install- Build the project:
npm run buildRunning for Development
npm startOr for development with auto-reload:
npm run devAvailable Tools
1. search_properties
Search for properties on Rightmove with various filters.
Parameters:
location(required): Location to search (e.g., 'London', 'Manchester', 'SW1A 1AA')minPrice: Minimum price filtermaxPrice: Maximum price filterpropertyType: Type of property ('houses', 'flats', 'bungalows', 'land', 'commercial', 'other')bedrooms: Number of bedroomsradius: Search radius in milessortType: Sort order (1=highest price, 2=lowest price, 6=newest listed, 10=oldest listed)index: Starting index for pagination
Example:
{
"location": "London",
"minPrice": 300000,
"maxPrice": 500000,
"propertyType": "flats",
"bedrooms": 2,
"radius": 5
}2. get_property_details
Get detailed information about a specific property.
Parameters:
propertyId(required): The property ID from Rightmove
Example:
{
"propertyId": "123456789"
}3. get_area_statistics
Get price statistics and market data for an area.
Parameters:
location(required): Location to get statistics for
Example:
{
"location": "Shoreditch, London"
}Configuration
Alternative MCP Client Configuration
If you've installed the package locally instead of using npx, you can use:
{
"mcpServers": {
"rightmove": {
"command": "node",
"args": ["/path/to/rightmove-mcp-server/build/index.js"]
}
}
}For global npm installation (npm install -g rightmove-mcp-server):
{
"mcpServers": {
"rightmove": {
"command": "rightmove-mcp-server"
}
}
}Environment Variables
Currently, no environment variables are required. The server uses web scraping to access publicly available data from Rightmove.
Important Notes
Rate Limiting and Ethical Use
- This server uses web scraping to access Rightmove data
- Be respectful of Rightmove's servers and implement appropriate delays between requests
- Consider Rightmove's Terms of Service and robots.txt
- For production use, consider implementing rate limiting and caching
Data Accuracy
- Property data is scraped from Rightmove's public pages
- Data structure may change if Rightmove updates their website
- Always verify important information directly on Rightmove's website
Legal Considerations
- This tool is for educational and personal use
- Ensure compliance with Rightmove's Terms of Service
- Do not use for commercial purposes without proper authorization
- Respect copyright and data protection laws
Development
Project Structure
src/
├── index.ts # Main server implementation
├── types.ts # TypeScript type definitions
└── utils.ts # Utility functions
build/ # Compiled JavaScript output
tests/ # Test filesBuilding
npm run buildRunning Tests
npm testLinting
npm run lintTroubleshooting
Common Issues
Network Errors: Rightmove may block requests that appear automated. Try:
- Adding delays between requests
- Using different User-Agent strings
- Implementing proxy rotation
Parsing Errors: If Rightmove changes their HTML structure:
- Update the CSS selectors in the scraping code
- Check for changes in their page structure
Rate Limiting: If you're getting blocked:
- Reduce request frequency
- Implement exponential backoff
- Consider using multiple IP addresses
Error Handling
The server includes comprehensive error handling and will return error messages when:
- Network requests fail
- HTML parsing encounters issues
- Invalid parameters are provided
Contributing
This project uses automated CI/CD with semantic versioning. Here's how to contribute:
Development Process
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes
- Ensure tests pass:
npm test && npm run build && node final-test.js - Commit with conventional commit format:
feat: add new feature - Submit a pull request
Commit Message Format
We use Conventional Commits for automatic versioning:
feat:orminor:→ Minor version bump (new features)fix:→ Patch version bump (bug fixes)major:orbreaking:→ Major version bump (breaking changes)docs:,style:,refactor:,test:,chore:→ Patch version bump
Automated Release Process
When you merge a PR to main:
- 🏗️ Build & Test: Runs linting, tests, and builds
- 📦 Version: Automatically bumps version based on commit message
- 🚀 Publish: Publishes new version to NPM
- 🏷️ Tag: Creates git tag and GitHub release
- 📝 Release Notes: Auto-generated from commits
Manual Releases
Maintainers can trigger manual releases via GitHub Actions:
- Go to Actions → Manual Release
- Choose version bump type (major/minor/patch)
- Add optional release notes
- Run workflow
License
MIT License - see LICENSE file for details.
Disclaimer
This project is not affiliated with Rightmove plc. It is an independent tool that accesses publicly available data from Rightmove.co.uk. Users are responsible for ensuring compliance with Rightmove's Terms of Service and applicable laws.
