mcp-server-attom

nkbud/mcp-server-attom

3.2

If you are the rightful owner of mcp-server-attom and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The ATTOM API MCP Server is a middleware solution that provides real estate data through the Model Context Protocol (MCP), making it accessible to AI agents.

Tools
  1. property_address

    Get property address information

  2. property_detail

    Get detailed property information

  3. property_basic_profile

    Get basic property profile information

  4. property_expanded_profile

    Get expanded property profile information

  5. property_detail_with_schools

    Get property details including school information

  6. assessment_detail

    Get detailed assessment information

  7. assessment_snapshot

    Get assessment snapshot

  8. assessment_history_detail

    Get assessment history

  9. sale_detail

    Get detailed sales information

  10. sale_snapshot

    Get sales snapshot

  11. sales_history_detail

    Get sales history

  12. sales_history_snapshot

    Get sales history snapshot

  13. avm_detail

    Get detailed AVM information

  14. avm_snapshot

    Get AVM snapshot

  15. avm_history_detail

    Get AVM history

  16. attom_avm_detail

    Get ATTOM AVM information

  17. home_equity

    Get home equity information

  18. rental_avm

    Get rental AVM information

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

  1. Clone this repository:
git clone https://github.com/nkbud/mcp-server-attom.git
cd mcp-server-attom
  1. Install dependencies:
uv sync --locked --all-extras --dev
  1. Create a .env file 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 .

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:

VariableDescriptionRequiredDefault
ATTOM_API_KEYYour ATTOM API keyYes-
ATTOM_HOST_URLBase URL for the ATTOM APINohttps://api.gateway.attomdata.com
ATTOM_PROP_API_PREFIXPrefix for property API endpointsNo/propertyapi/v1.0.0
ATTOM_DLP_V2_PREFIXPrefix for DLP v2 API endpointsNo/property/v2
ATTOM_DLP_V3_PREFIXPrefix for DLP v3 API endpointsNo/property/v3
LOG_LEVELLogging level (DEBUG, INFO, WARNING, ERROR)NoINFO
LOG_FORMATLog format (json or console)Nojson

Available Tools

Property Tools

  • property_address: Get property address information
  • property_detail: Get detailed property information
  • property_basic_profile: Get basic property profile information
  • property_expanded_profile: Get expanded property profile information
  • property_detail_with_schools: Get property details including school information

Assessment Tools

  • assessment_detail: Get detailed assessment information
  • assessment_snapshot: Get assessment snapshot
  • assessment_history_detail: Get assessment history

Sale Tools

  • sale_detail: Get detailed sales information
  • sale_snapshot: Get sales snapshot
  • sales_history_detail: Get sales history
  • sales_history_snapshot: Get sales history snapshot

Valuation Tools

  • avm_detail: Get detailed AVM information
  • avm_snapshot: Get AVM snapshot
  • avm_history_detail: Get AVM history
  • attom_avm_detail: Get ATTOM AVM information
  • home_equity: Get home equity information
  • rental_avm: Get rental AVM information

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:

  1. Ensure you have the latest version of uv:
pip install -U uv
  1. 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-attom project
    • Save the token securely
  2. Build the package:

uv build --no-sources
  1. 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.