Attom MCP Server
A

Attom MCP Server

ATTOM MCP Server是一个功能全面的模型上下文协议服务器,为AI代理和传统应用提供ATTOM房产数据访问。支持HTTP和stdio传输,具备智能回退策略、自动重试机制和严格类型安全。
2分
5.7K

安装

复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

🚀 与ATTOM服务交互项目

这是一个用于与ATTOM服务交互的项目,具备丰富的功能,能有效提升与ATTOM服务交互的效率和准确性,为用户提供更优质的服务体验。

🚀 快速开始

配置命令

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 运行测试
npm test

# 生成OpenAPI文档
npm run build-openapi

✨ 主要特性

  • MCP协议支持
  • 自动重试算法
  • 地址和Property ID两种变体的支持
  • 高级过滤功能
  • 缓存机制
  • OpenAPI文档生成

📦 安装指南

运行以下命令安装项目依赖:

npm install

💻 使用示例

示例测试

fetchMock.mockRejectedValueOnce(noCompsError)   // 第一次调用失败
fetchMock.mockResolvedValueOnce({ comps: [] })  // 重试成功
const result = await service.executeSalesComparablesPropIdQuery({ propId })
expect(fetchMock).toHaveBeenCalledTimes(2)

📚 详细文档

项目结构

attom-mcp/
├─ src/
│  ├─ runMcpServer.ts         # 传输启动文件(MCP入口)
│  ├─ mcp/
│  │   ├─ groupedTools.ts      # 分组的MCP工具
│  │   └─ mcpServer.ts        # MCP核心桥接与注册
│  ├─ services/
│  │   └─ attomService.ts     # 高层次的ATTOM orchestrator(协调器)
│  ├─ utils/
│  │   ├─ fetcher.ts          # 重试、日志记录、缓存钩子
│  │   └─ fallback.ts         # attomId / geoId 衍生
│  ├─ config/endpointConfig.ts# 中央端点映射
│  └─ mcp/mcpServer.test.ts   # 基本Vitest测试规范
├─ openapi/attom-api-schema.yaml
├─ .env.example
└─ tsconfig.json

功能模块

自动重试算法

  1. 首次调用ATTOM服务,使用提供的参数。
  2. 如果响应中包含 "无法找到物业记录" 且这是第一次尝试
    • 使用 /property/buildingpermits 端点获取 livingSize(当可用时使用 attomid)。
    • 根据 livingSize 扩展 sqFeetRange,增加30%(或使用2000平方英尺作为占位符)。
    • 设置 yearBuiltRange → 40 年。
    • 重新发出比较请求。
  3. 返回第一个成功的响应或传播原始错误。

此算法在实际测试中将命中率提高了约35%。

高级过滤功能

  • 必填项

    • 地址变体:street, city, county, state, zip
    • Property ID变体:propId
  • 可选默认值

    • searchType="Radius"
    • minComps=1, maxComps=10, miles=5
  • 高级过滤器

    • include0SalesAmounts(布尔)
    • includeFullSalesOnly(布尔)
    • onlyPropertiesWithPool(布尔)

测试

  • 使用Vitest,这是一个轻量级的Jest替代品。
  • 所有网络交互都被** mocked** (vi.mock('../utils/fetcher.js'))。
  • npm test 在不到1秒内运行。

开发注意事项

  1. ESM Only – 所有导入都需要显式地使用 .js
  2. 动态导入 – 尽量少用,以避免循环依赖。
  3. 日志记录writeLog 写入标准输出;通过交换实用工具来替换为其他日志记录方式。
  4. 缓存机制 – 使用Redis进行缓存,默认端口6379。
  5. 配置管理 – 使用.env文件加载环境变量。

故障排除

常见问题

  1. 确保ATTOM服务的API密钥已正确设置。
  2. 检查网络连接,确保能够访问外部服务。
  3. 查看日志以获取更多错误信息。

解决方案

  • 使用DEBUG=attom:server环境变量启用调试模式。
  • 定期清理缓存,避免数据过时。
  • 更新OpenAPI文档以反映最新的API变化。

🔧 技术细节

自动重试算法

该算法通过首次调用ATTOM服务,根据响应情况进行参数调整和重新请求,有效提高了命中率。在实际测试中,将命中率提高了约35%。具体流程为:首次调用使用提供的参数,若响应包含特定错误且为第一次尝试,则通过特定端点获取相关信息,扩展参数范围后重新发出请求,最终返回第一个成功的响应或传播原始错误。

📄 许可证

MIT License

Copyright (c) 2023 Your Name

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

⚠️ 重要提示

  • 确保所有环境变量已正确设置。
  • 在生产环境中启用错误处理和监控。
  • 定期备份重要数据和日志文件。

替代品

R
Rsdoctor
Rsdoctor 是一款专为 Rspack 生态系统打造的构建分析工具,全面兼容 webpack,提供可视化构建分析、多维度性能诊断及智能优化建议,帮助开发者提升构建效率与工程质量。
TypeScript
7.9K
5分
N
Next Devtools MCP
Next.js开发工具MCP服务器,为Claude、Cursor等AI编程助手提供Next.js开发工具和实用程序,包括运行时诊断、开发自动化和文档访问功能。
TypeScript
9.5K
5分
T
Testkube
Testkube是一个面向云原生应用的测试编排与执行框架,提供统一平台来定义、运行和分析测试,支持现有测试工具和Kubernetes基础设施。
Go
6.2K
5分
M
MCP Windbg
一个MCP服务器,将AI模型与WinDbg/CDB集成,用于分析Windows崩溃转储文件和进行远程调试,支持自然语言交互执行调试命令。
Python
9.8K
5分
R
Runno
Runno是一个JavaScript工具包集合,用于在浏览器和Node.js等环境中安全地运行多种编程语言的代码,通过WebAssembly和WASI实现沙盒化执行,支持Python、Ruby、JavaScript、SQLite、C/C++等语言,并提供Web组件、MCP服务器等集成方式。
TypeScript
7.6K
5分
P
Praisonai
PraisonAI是一个生产就绪的多AI智能体框架,具有自反思功能,旨在创建AI智能体来自动化解决从简单任务到复杂挑战的各种问题。它通过将PraisonAI智能体、AG2和CrewAI集成到一个低代码解决方案中,简化了多智能体LLM系统的构建和管理,强调简单性、定制化和有效的人机协作。
Python
7.4K
5分
N
Netdata
Netdata是一个开源实时基础设施监控平台,提供每秒级指标收集、可视化、机器学习驱动的异常检测和自动化告警,无需复杂配置即可实现全栈监控。
Go
9.7K
5分
M
MCP Server
Mapbox MCP服务器是一个Node.js实现的模型上下文协议服务器,为AI应用提供Mapbox地理空间API的访问能力,包括地理编码、兴趣点搜索、路线规划、等时线分析和静态地图生成等功能。
TypeScript
8.8K
4分
F
Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
68.7K
4.5分
D
Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
77.0K
4.3分
F
Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
134.7K
5分
B
Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
45.6K
4.5分
E
Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
30.6K
4.8分
M
Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
59.0K
4.8分
E
Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
50.9K
5分
C
Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
96.3K
4.7分
AIBase
智启未来,您的人工智能解决方案智库