房地产数据中间件服务

ATTOM API MCP Server 是一个中间件服务,通过MCP协议提供房地产数据,包括房产信息、评估、销售等核心功能,适用于AI代理和开发者集成。

  • by nkbud
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 nkbud/mcp-server-attom

使用说明

ATTOM API MCP服务器

ATTOM API的MCP服务器,通过MCP协议提供房地产数据。该服务器充当中间件,将ATTOM API端点公开为可由AI代理使用的MCP工具。

特性

  • ATTOM API端点的MCP接口
  • API全面覆盖房地产数据、估价、评估和销售
  • 结构化错误处理和日志记录
  • 可通过环境变量进行配置
  • 打包为Python CLI工具,便于部署

先决条件

  • Python 3.11或更高版本
  • 紫外线 用于依赖关系管理
  • ATTOM API密钥

安装

使用UVX(推荐)

安装和运行ATTOM API MCP服务器的最简单方法是通过 uvx:

uvx mcp-server-attom --help

这将直接下载并运行该工具,而不需要永久安装。

要永久安装它:

uv tool install mcp-server-attom

地方发展

  1. 克隆此存储库:
git clone https://github.com/nkbud/mcp-server-attom.git
cd mcp-server-attom
  1. 安装依赖项:
uv sync --locked --all-extras --dev
  1. 创建一个 .env 使用ATTOM API密钥文件:
cp .env.example .env
# Edit .env and add your ATTOM API key

用法

MCP客户端集成

有关将此服务器与各种MCP客户端(Claude Desktop、MCP inspector、MCP-cli)和stdio通信一起使用的详细说明,请参阅 客户集成指南.

快速入门示例:

# 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

作为CLI工具运行

使用启动服务器 mcp-server-attom 命令:

# 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

可用的命令行选项:

  • --host:将服务器绑定到的主机(默认值:0.0.0.0)
  • --port:将服务器绑定到的端口(默认值:8000)
  • --log-level:日志记录级别(调试、信息、警告、错误)
  • --reload:启用代码更改时的自动重新加载

在开发过程中本地运行

在开发过程中启动服务器:

python -m src.server

这将使用用于MCP通信的stdio传输启动服务器。

提出请求

服务器为各种ATTOM API端点公开MCP工具。以下是使用property_detail工具的示例:

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"
)

配置

可以使用以下环境变量配置服务器:

变量 描述 必填 默认
ATTOM_API_KEY 您的ATTOM API密钥 是 -
ATTOM_HOST_URL ATTOM API的基本URL 否 https://api.gateway.attomdata.com
ATTOM_PROP_API_PREFIX 属性API端点的前缀 否 /propertyapi/v.0.0
ATTOM_DLP_V2_PREFIX DLP V2 API终结点的前缀 否 /property/V2
ATTOM_DLP_V3_PREFIX DLP V3 API端点的前缀 否 /property/V3
LOGLEVEL 日志记录级别(调试、信息、警告、错误) 否 信息
LOG_FORMAT 日志格式(json或控制台) 否 json

可用工具

此MCP服务器提供ATTOM数据API的完整1:1覆盖 55+个端点 在所有主要类别中。有关API覆盖范围映射的详细信息,请参阅 附件_API_COVERAGE.md.

核心类别

  • 属性工具 (14个端点):地址查找、房产详细信息、个人资料、建筑许可证、销售历史
  • 评估工具 (3个端点):评估详细信息、快照和历史记录
  • 销售工具 (6个端点):销售详情、历史、可比数据和趋势分析
  • 估价工具 (6个端点):AVM数据、房屋净值、租金估值
  • 区域和位置工具 (8个端点):地理边界、层次查找、CBSA数据
  • POI工具 (2个端点):14个以上业务类别的兴趣点搜索
  • 社区工具 (1个端点):综合邻里数据(犯罪、人口、教育、天气、通勤时间)
  • 学校工具 (3个端点):学校简介、学区和搜索功能
  • 事件工具 (2个端点):属性事件和快照
  • 实用工具 (3个端点):现场定义、交通噪声、预测前数据

刀具参数

所有与物业相关的工具都支持多种识别方法:

  • 收件人ID:直接属性标识符
  • 地址:完整的属性地址字符串
  • 地址1+地址2:拆分地址格式(街道+城市/州/邮政编码)
  • FIPS+APN:县FIPS代码+评估员包裹号

区域和位置工具支持地理标识符:

  • GeoIDv4:第4版地理标识符
  • 纬度/经度:基于坐标的搜索
  • WKT字符串:众所周知的文本几何表示
  • 半径:基于位置的查询的搜索半径

发展

运行测试

uv run pytest

掉毛

uv run ruff check .
uv run black .
uv run isort .

建筑与出版

要构建包并将其发布到PyPI,请执行以下操作:

  1. 确保您拥有最新版本的 uv:
pip install -U uv
  1. 设置PyPI令牌:

    • 在上创建帐户 PyPI 如果你没有
    • 前往账户设置>API代币
    • 创建一个范围限制为的令牌 mcp-server-attom 项目
    • 安全保存令牌
  2. 构建包:

uv build --no-sources
  1. 使用您的PyPI令牌发布包:
uv publish --token YOUR_PYPI_TOKEN

或者,您可以将令牌存储在 .pypirc 文件或作为环境变量:

export PYPI_TOKEN=YOUR_PYPI_TOKEN
uv publish

许可证

麻省理工学院

支持

有关此MCP服务器的问题,请在 GitHub存储库.

有关ATTOM API本身的问题,请联系ATTOM数据解决方案支持。