mcpField
A
angi-mcp

angi-mcp

本地服务
github.com/chrischall商业与营销03 天前更新

关于 angi-mcp

angi-mcp 为 MCP 客户端提供 Angi 家庭服务专业人士的搜索与资料查询,适合按行业和城市寻找服务人员并查看评分、档案和评论。它借助用户已登录的 Angi 浏览器标签页读取公开页面,无需 Angi 账户凭据。

主要功能

  1. 01按行业和城市搜索服务人员
  2. 02查看档案、评分和评论
  3. 03按评分筛选评论
  4. 04查询 Angi 发布的行业与城市
  5. 05读取账户项目及已写评论

适用场景

  1. 01为指定城市寻找水管工等服务人员
  2. 02比较专业人士的评分和评论
  3. 03查找某行业可用的城市
  4. 04查看账户中的项目和待评价服务

MCP 相关

它作为 MCP 服务向客户端提供 Angi 搜索、专业人士资料、评论、分类目录及账户相关工具。页面请求通过 ContextMint Bridge 扩展中的 Angi 标签页转发;行业和城市目录查询不需要浏览器桥接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-angi": {
"command": "npx",
"args": [
"-y",
"@chrischall/angi-mcp"
],
"env": {
"ANGI_WS_PORT": "<ANGI_WS_PORT>",
"ANGI_DEBUG": "<ANGI_DEBUG>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
启动命令npx -y @chrischall/angi-mcp
需要配置的环境变量
ANGI_WS_PORTOverride the fetchproxy WebSocket port (default 37149).
ANGI_DEBUGSet to 1 for verbose bridge logging to stderr.
FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator (default 127.0.0.1; a literal IP only). For a hosted child in its own network namespace only — never bind a laptop's concentrator to the network.
FETCHPROXY_IDENTITY_DIRAbsolute path where fetchproxy stores its long-term identity keypair (default ~/.fetchproxy/identity/). For a host that runs a separate child per caller, so they share one identity.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@chrischall/angi-mcp1.0.8

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
citystring是城市 slug,例如 "charlotte"、"rock-hill"。
pageinteger否从 1 开始的页码。每页 10 位专业人员。
statestring是两位字母的美国州代码,例如 "nc"。
tradestring是行业 slug,例如 "plumbing"、"roofing"、"air-duct-cleaning"。
compactboolean否为每位专业人员返回精简摘要,而非完整记录。浏览或排序时推荐使用。

详细介绍

angi-mcp

适用于 Angi(前身为 Angie's List)的 MCP 服务——按工种和城市查找家居服务专业人士,并查看其评分、个人资料和评价。

Angi 只向真实浏览器提供页面,因此请求会通过 ContextMint Bridge 浏览器扩展(fetchproxy 协议),经由用户自己的 angi.com 标签页发送,并复用现有会话。工种/城市分类数据直接从 Angi 的公开站点地图读取,无需浏览器。

**无需 Angi 账户或凭据。**此服务读取的所有内容都是公开信息。

本项目由 AI(Claude)开发并维护。请自行斟酌使用。

安装

npm install -g @chrischall/angi-mcp

向 MCP 宿主注册:

{
  "mcpServers": {
    "angi": { "command": "angi-mcp" }
  }
}

你还需要安装 ContextMint Bridge 浏览器扩展,并打开一个 angi.com 标签页,且允许该扩展访问 angi.com。从 ContextMint Bridge releases 安装:解压 Chrome 版本,并通过 chrome://extensions → Load unpacked 加载。目前尚未提供 Safari 版本(它将随 ContextMint 应用一同发布,但该应用尚无公开下载),因此请暂时使用 Chrome。首次请求时,扩展会显示配对码以供批准;之后将持续信任此配对。

ContextMint Bridge 是更名后的 fetchproxy 浏览器扩展,由同一维护者开发——fetchproxy 自己的 README (https://github.com/chrischall/fetchproxy#extension) 中也提供了该扩展的链接。其源代码公开于 https://github.com/nullnet-app/contextmint-bridge:你可以自行构建,也可以使用 .sha256 文件校验发布的 zip 文件(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。

运行 angi_healthcheck 确认 Bridge 已连接。

工具

工具功能
angi_search_pros搜索美国城市中某个工种的专业人士,并返回评分、评价数量、经营年限、服务区域和便利设施。每页 10 条。
angi_get_pro获取一位专业人士的完整个人资料和评分明细。
angi_get_reviews获取专业人士个人资料中的评价,包括评分、文本、报告的费用、日期、类别及专业人士的回复。可按评分筛选。
angi_list_trades列出 Angi 发布的所有工种 slug(约 312 个)。无需 Bridge。
angi_list_cities列出 Angi 按工种发布页面的城市。无需 Bridge。
angi_healthcheckBridge 连接状态。

需要登录的工具(浏览器标签页需登录 Angi):

工具功能
angi_get_account你的姓名、邮箱,以及进行中/已完成项目的数量。
angi_list_my_projects你的 Angi 项目,包括进行中和已完成的项目。
angi_list_my_reviews你撰写的评价,以及等待你评分的专业人士。

搜索需要使用 slug,而不是自由文本——请先解析:

angi_list_trades   { contains: "duct" }      -> "air-duct-cleaning"
angi_list_cities   { trade: "plumbing", state: "nc", contains: "char" }
angi_search_pros   { trade: "plumbing", state: "nc", city: "charlotte" }

angi_search_pros、angi_get_pro 和 angi_get_reviews 默认使用精简的 view: "compact" 投影返回结果;传入 view: "full" 可获取 Angi 完整的约 1 KB 记录。(旧版 compact 布尔值仍可作为已弃用的别名使用,并将在后续版本中移除。)

评分

每位专业人士都有两个总体评分,二者有意保持不同:

  • rating(averageRatings.OVERALL)——未取整。请按此值排名。
  • displayRating(averageOverallRating)——Angi 显示的取整值。

完整记录还会提供各维度的评分(质量、性价比、准时性、专业性、响应速度)。

isSponsored: true 表示付费推广位置,并非质量指标。

限制

  • 不支持按邮政编码筛选。 Angi 的 ?zip= 参数不起作用——Charlotte URL 无论如何都会返回 Charlotte 的专业人士。位置由城市 slug 决定。
  • 账户记录结构未经验证。 用于映射 my.angi.com 的账户没有任何项目或评论,因此只观察到了外层结构。angi_list_my_projects 和 angi_list_my_reviews 会原样返回记录,并将 recordFieldsVerified: false 设为 false,而不会映射到没人见过的字段名。参见 docs/ANGI-API.md。
  • 无法读取收件箱。 Angi 的消息基于 Twilio Conversations SDK;代理端点仅凭会话 Cookie 会拒绝请求(401),因此读取消息需要 Twilio 客户端,而非 HTTP GET。
  • 无法远程托管。 与此工具集中的所有浏览器桥接服务一样,它需要在运行所在的机器上有一个已登录的标签页,因此无法从 mcp-host 向 claude.ai 提供服务。

不使用 MCP

skills/angi-fpx/ 是一个调用 fpx CLI 读取相同数据的 shell-out 技能,无需运行服务——适用于脚本,或未安装 MCP 的机器。

开发

npm install
npm run build      # tsc --noEmit + esbuild bundle
npm test

docs/ANGI-API.md 记录了实时捕获的请求/响应结构,包括已验证的否定结果。修改 src/parse.ts 前请先阅读。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。