MCP server for Rightmove.co.uk property search
npm install 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.
- 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
The easiest way to use this MCP server is with npx:
``bash`
npx rightmove-mcp-server
No installation required! This will automatically download and run the latest version.
To use with Claude Desktop or other MCP clients, add this configuration:
`json`
{
"mcpServers": {
"rightmove": {
"command": "npx",
"args": ["rightmove-mcp-server"]
}
}
}
If you want to modify or contribute to this project:
1. Clone this repository
2. Install dependencies:
`bash`
npm install
3. Build the project:
`bash`
npm run build
`bash`
npm start
Or for development with auto-reload:
`bash`
npm run dev
#### 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:
`json`
{
"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:
`json`
{
"propertyId": "123456789"
}
#### 3. get_area_statistics
Get price statistics and market data for an area.
Parameters:
- location (required): Location to get statistics for
Example:
`json`
{
"location": "Shoreditch, London"
}
If you've installed the package locally instead of using npx, you can use:
`json`
{
"mcpServers": {
"rightmove": {
"command": "node",
"args": ["/path/to/rightmove-mcp-server/build/index.js"]
}
}
}
For global npm installation (npm install -g rightmove-mcp-server):
`json`
{
"mcpServers": {
"rightmove": {
"command": "rightmove-mcp-server"
}
}
}
Currently, no environment variables are required. The server uses web scraping to access publicly available data from Rightmove.
- 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
- 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
- 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
`
src/
├── index.ts # Main server implementation
├── types.ts # TypeScript type definitions
└── utils.ts # Utility functions
build/ # Compiled JavaScript output
tests/ # Test files
`
`bash`
npm run build
`bash`
npm test
`bash`
npm run lint
1. Network Errors: Rightmove may block requests that appear automated. Try:
- Adding delays between requests
- Using different User-Agent strings
- Implementing proxy rotation
2. Parsing Errors: If Rightmove changes their HTML structure:
- Update the CSS selectors in the scraping code
- Check for changes in their page structure
3. Rate Limiting: If you're getting blocked:
- Reduce request frequency
- Implement exponential backoff
- Consider using multiple IP addresses
The server includes comprehensive error handling and will return error messages when:
- Network requests fail
- HTML parsing encounters issues
- Invalid parameters are provided
This project uses automated CI/CD with semantic versioning. Here's how to contribute:
1. Fork the repository
2. Create a feature branch: git checkout -b feat/your-featurenpm test && npm run build && node final-test.js
3. Make your changes
4. Ensure tests pass: feat: add new feature
5. Commit with conventional commit format:
6. Submit a pull request
We use Conventional Commits for automatic versioning:
- feat: or minor: → Minor version bump (new features)fix:
- → Patch version bump (bug fixes) major:
- or breaking: → Major version bump (breaking changes)docs:
- , style:, refactor:, test:, chore: → Patch version bump
When you merge a PR to main`:
1. 🏗️ Build & Test: Runs linting, tests, and builds
2. 📦 Version: Automatically bumps version based on commit message
3. 🚀 Publish: Publishes new version to NPM
4. 🏷️ Tag: Creates git tag and GitHub release
5. 📝 Release Notes: Auto-generated from commits
Maintainers can trigger manual releases via GitHub Actions:
1. Go to Actions → Manual Release
2. Choose version bump type (major/minor/patch)
3. Add optional release notes
4. Run workflow
MIT License - see LICENSE file for details.
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.