mcrentcast/docs/claude-setup.md
Ryan Malloy c91588ee6e Add Claude MCP integration and setup files
- Add mcp.json configuration for claude mcp add command
- Create install.sh script for easy setup
- Add comprehensive Claude setup documentation
- Include both quick setup and manual configuration options
- Document all available tools and environment variables
2025-09-09 12:08:16 -06:00

136 lines
3.8 KiB
Markdown

# Adding mcrentcast to Claude MCP
## Quick Setup with `claude mcp add`
The easiest way to add the mcrentcast MCP server to Claude:
```bash
# 1. Navigate to the mcrentcast directory
cd /path/to/mcrentcast
# 2. Install dependencies and initialize
./install.sh
# 3. Add to Claude
claude mcp add .
```
## Manual Configuration
If you prefer manual configuration, add this to your Claude MCP config file (usually `~/.config/claude/mcp.json` or similar):
```json
{
"servers": {
"mcrentcast": {
"command": "uv",
"args": ["run", "python", "-m", "mcrentcast.server"],
"cwd": "/home/rpm/claude/mcrentcast",
"env": {
"PYTHONPATH": "/home/rpm/claude/mcrentcast/src:${PYTHONPATH}",
"RENTCAST_API_KEY": "your_api_key_here",
"USE_MOCK_API": "false",
"DATABASE_URL": "sqlite:////home/rpm/claude/mcrentcast/data/mcrentcast.db"
}
}
}
}
```
## Configuration Options
### Environment Variables
You can configure the server behavior through environment variables:
| Variable | Default | Description |
|----------|---------|-------------|
| `RENTCAST_API_KEY` | - | Your Rentcast API key (required for real API) |
| `USE_MOCK_API` | `false` | Use mock API for testing (no credits) |
| `MOCK_API_URL` | `http://mock-rentcast-api:8001/v1` | Mock API URL |
| `CACHE_TTL_HOURS` | `24` | Cache expiration time in hours |
| `DAILY_API_LIMIT` | `100` | Daily API request limit |
| `MONTHLY_API_LIMIT` | `1000` | Monthly API request limit |
| `REQUESTS_PER_MINUTE` | `3` | Rate limit per minute |
| `DATABASE_URL` | `sqlite:///./data/mcrentcast.db` | Database connection URL |
### Testing with Mock API
To test without consuming API credits:
```json
{
"servers": {
"mcrentcast-mock": {
"command": "uv",
"args": ["run", "python", "-m", "mcrentcast.server"],
"cwd": "/home/rpm/claude/mcrentcast",
"env": {
"USE_MOCK_API": "true",
"RENTCAST_API_KEY": "test_key_basic"
}
}
}
}
```
## Available Tools
Once added, you'll have access to these MCP tools in Claude:
- `set_api_key` - Configure your Rentcast API key
- `search_properties` - Search property records by location
- `get_property` - Get specific property details
- `get_value_estimate` - Property value estimates
- `get_rent_estimate` - Rental price estimates
- `search_sale_listings` - Properties for sale
- `search_rental_listings` - Rental properties
- `get_market_statistics` - Market analysis data
- `expire_cache` - Manage cache entries
- `get_cache_stats` - View cache performance
- `get_usage_stats` - Track API usage and costs
- `set_api_limits` - Configure rate limits
- `get_api_limits` - View current limits
## Usage Examples
After adding the server, you can use it in Claude like this:
```
User: Search for properties in Austin, Texas
Claude: I'll search for properties in Austin, Texas using the Rentcast API.
[Uses search_properties tool with city="Austin", state="TX"]
```
```
User: What's the estimated value of 123 Main St, Dallas, TX?
Claude: I'll get the value estimate for that property.
[Uses get_value_estimate tool with address="123 Main St, Dallas, TX"]
```
## Troubleshooting
### Server won't start
- Ensure `uv` is installed: `curl -LsSf https://astral.sh/uv/install.sh | sh`
- Check Python version: Requires Python 3.13+
- Verify dependencies: Run `uv sync` in the project directory
### API key issues
- For production: Set `RENTCAST_API_KEY` with your actual key
- For testing: Set `USE_MOCK_API=true` to use test keys
### Database errors
- Delete `data/mcrentcast.db` and restart to recreate
- Ensure write permissions in the data directory
### Rate limiting
- Adjust limits in environment variables
- Use mock API for unlimited testing
## Support
- Documentation: `/docs` directory
- Mock API guide: `/docs/mock-api.md`
- GitHub issues: Create an issue in the repository