Attom MCP Server
🚀 与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
功能模块
自动重试算法
- 首次调用ATTOM服务,使用提供的参数。
- 如果响应中包含 "无法找到物业记录" 且这是第一次尝试:
- 使用
/property/buildingpermits
端点获取livingSize
(当可用时使用attomid
)。 - 根据
livingSize
扩展sqFeetRange
,增加30%(或使用2000平方英尺作为占位符)。 - 设置
yearBuiltRange → 40
年。 - 重新发出比较请求。
- 使用
- 返回第一个成功的响应或传播原始错误。
此算法在实际测试中将命中率提高了约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秒内运行。
开发注意事项
- ESM Only – 所有导入都需要显式地使用
.js
。 - 动态导入 – 尽量少用,以避免循环依赖。
- 日志记录 –
writeLog
写入标准输出;通过交换实用工具来替换为其他日志记录方式。 - 缓存机制 – 使用Redis进行缓存,默认端口6379。
- 配置管理 – 使用
.env
文件加载环境变量。
故障排除
常见问题
- 确保ATTOM服务的API密钥已正确设置。
- 检查网络连接,确保能够访问外部服务。
- 查看日志以获取更多错误信息。
解决方案
- 使用
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.
⚠️ 重要提示
- 确保所有环境变量已正确设置。
- 在生产环境中启用错误处理和监控。
- 定期备份重要数据和日志文件。
精选MCP服务推荐

Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
7.0K
4.5分

Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
1.2K
4.3分

Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
4.4K
5分

Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
992
4.5分

Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
5.6K
4.7分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
426
4.8分

Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
2.1K
5分

Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
1.1K
4.8分