mcp-server-attom
Exposes ATTOM's real estate API as MCP tools, enabling property details, valuations, assessments, sales, and area data via natural language.
README
ATTOM API MCP Server
An MCP server for the ATTOM API, providing real estate data via the MCP protocol. This server acts as middleware, exposing the ATTOM API endpoints as MCP tools that can be used by AI agents.
Features
- MCP interface for ATTOM API endpoints
- Comprehensive API coverage for property data, valuations, assessments, and sales
- Structured error handling and logging
- Configurable via environment variables
- Packaged as a Python CLI tool for easy deployment
Prerequisites
- Python 3.11 or higher
- uv for dependency management
- An ATTOM API key
Installation
Using UVX (Recommended)
The easiest way to install and run the ATTOM API MCP Server is via uvx:
uvx mcp-server-attom --help
This will download and run the tool directly without requiring a permanent installation.
To install it permanently:
uv tool install mcp-server-attom
Local Development
- Clone this repository:
git clone https://github.com/nkbud/mcp-server-attom.git
cd mcp-server-attom
- Install dependencies:
uv sync --locked --all-extras --dev
- Create a
.envfile with your ATTOM API key:
cp .env.example .env
# Edit .env and add your ATTOM API key
Usage
MCP Client Integration
For detailed instructions on using this server with various MCP clients (Claude Desktop, mcp-inspector, mcp-cli) and stdio communication, see the Client Integration Guide.
Quick Start Examples:
# With Claude Desktop - add to configuration file
{
"mcpServers": {
"attom-api": {
"command": "uvx",
"args": ["mcp-server-attom"],
"env": {"ATTOM_API_KEY": "your_api_key_here"}
}
}
}
# With MCP Inspector
npx @modelcontextprotocol/inspector uvx mcp-server-attom
# With MCP CLI
mcp list tools uvx mcp-server-attom
mcp call uvx mcp-server-attom property_detail '{"attom_id": "145423726"}'
# Direct stdio communication
export ATTOM_API_KEY=your_api_key_here
uvx mcp-server-attom
Running as a CLI Tool
Start the server using the mcp-server-attom command:
# If installed via uv tool install
mcp-server-attom --port 8000 --host 0.0.0.0
# Or run directly via uvx
uvx mcp-server-attom --port 8000 --host 0.0.0.0
Available command-line options:
--host: Host to bind the server to (default: 0.0.0.0)--port: Port to bind the server to (default: 8000)--log-level: Logging level (debug, info, warning, error)--reload: Enable auto-reload on code changes
Running Locally During Development
Start the server during development:
python -m src.server
This will start the server using stdio transport for MCP communication.
Making Requests
The server exposes MCP tools for various ATTOM API endpoints. Here's an example of using the property_detail tool:
await mcp.tools.property_detail(
attom_id="145423726" # OR
# address="123 Main St, New York, NY 10001" # OR
# address1="123 Main St", address2="New York, NY 10001" # OR
# fips="36061", apn="12345"
)
Configuration
The server can be configured using the following environment variables:
| Variable | Description | Required | Default |
|---|---|---|---|
| ATTOM_API_KEY | Your ATTOM API key | Yes | - |
| ATTOM_HOST_URL | Base URL for the ATTOM API | No | https://api.gateway.attomdata.com |
| ATTOM_PROP_API_PREFIX | Prefix for property API endpoints | No | /propertyapi/v1.0.0 |
| ATTOM_DLP_V2_PREFIX | Prefix for DLP v2 API endpoints | No | /property/v2 |
| ATTOM_DLP_V3_PREFIX | Prefix for DLP v3 API endpoints | No | /property/v3 |
| LOG_LEVEL | Logging level (DEBUG, INFO, WARNING, ERROR) | No | INFO |
| LOG_FORMAT | Log format (json or console) | No | json |
Available Tools
This MCP server provides complete 1:1 coverage of ATTOM's Data API with 55+ endpoints across all major categories. For detailed API coverage mapping, see ATTOM_API_COVERAGE.md.
Core Categories
- Property Tools (14 endpoints): Address lookup, property details, profiles, building permits, sales history
- Assessment Tools (3 endpoints): Assessment details, snapshots, and history
- Sale Tools (6 endpoints): Sales details, history, comparables, and trends analysis
- Valuation Tools (6 endpoints): AVM data, home equity, rental valuations
- Area & Location Tools (8 endpoints): Geographic boundaries, hierarchy lookups, CBSA data
- POI Tools (2 endpoints): Points of interest search with 14+ business categories
- Community Tools (1 endpoint): Comprehensive neighborhood data (crime, population, education, weather, commute times)
- School Tools (3 endpoints): School profiles, districts, and search functionality
- Event Tools (2 endpoints): Property events and snapshots
- Utility Tools (3 endpoints): Field definitions, transportation noise, preforeclosure data
Tool Parameters
All property-related tools support multiple identification methods:
- AttomID: Direct property identifier
- Address: Full property address string
- Address1 + Address2: Split address format (street + city/state/zip)
- FIPS + APN: County FIPS code + Assessor Parcel Number
Area and location tools support geographic identifiers:
- GeoIDv4: Version 4 geographic identifiers
- Latitude/Longitude: Coordinate-based searches
- WKT Strings: Well-Known Text geometric representations
- Radius: Search radius for location-based queries
Development
Running Tests
uv run pytest
Linting
uv run ruff check .
uv run black .
uv run isort .
Building and Publishing
To build and publish the package to PyPI:
- Ensure you have the latest version of
uv:
pip install -U uv
-
Set up a PyPI token:
- Create an account on PyPI if you don't have one
- Go to Account Settings > API Tokens
- Create a token with scope restricted to the
mcp-server-attomproject - Save the token securely
-
Build the package:
uv build --no-sources
- Publish the package using your PyPI token:
uv publish --token YOUR_PYPI_TOKEN
Alternatively, you can store your token in a .pypirc file or as an environment variable:
export PYPI_TOKEN=YOUR_PYPI_TOKEN
uv publish
License
MIT
Support
For issues with this MCP server, please open an issue on the GitHub repository.
For issues with the ATTOM API itself, please contact ATTOM Data Solutions support.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.