{
  "markdown": "# angi-mcp\n\nMCP server for [Angi](https://www.angi.com) (formerly Angie's List) — find\nhome-service pros by trade and city, and read their ratings, profiles and\nreviews.\n\nAngi serves its pages only to a real browser, so requests route through the\nuser's own `angi.com` tab via the [fetchproxy](https://github.com/chrischall/fetchproxy)\nbrowser extension, reusing their existing session. The trade/city taxonomy is\nread directly from Angi's public sitemaps and needs no browser at all.\n\n**No Angi account or credentials are required.** Everything this server reads\nis public.\n\n> This project was developed and is maintained by AI (Claude). Use at your own\n> discretion.\n\n## Install\n\n```sh\nnpm install -g @chrischall/angi-mcp\n```\n\nRegister it with your MCP host:\n\n```json\n{\n  \"mcpServers\": {\n    \"angi\": { \"command\": \"angi-mcp\" }\n  }\n}\n```\n\nYou also need the fetchproxy **Transporter** browser extension, with an open\n`angi.com` tab and its site access allowing `angi.com`. On the first request\nthe extension shows a pairing code to approve; the trust then persists.\n\nRun `angi_healthcheck` to confirm the bridge is connected.\n\n## Tools\n\n| Tool | What it does |\n| --- | --- |\n| `angi_search_pros` | Pros for a trade in a US city, with ratings, review counts, years in business, service area, amenities. 10 per page. |\n| `angi_get_pro` | One pro's full profile and ratings breakdown. |\n| `angi_get_reviews` | Reviews on a pro's profile — rating, text, reported cost, date, categories, the pro's response. Filterable by rating. |\n| `angi_list_trades` | Every trade slug Angi publishes (~312). No bridge needed. |\n| `angi_list_cities` | Cities Angi publishes pages for, per trade. No bridge needed. |\n| `angi_healthcheck` | Bridge connection state. |\n\nSigned-in tools (need the browser tab signed in to Angi):\n\n| Tool | What it does |\n| --- | --- |\n| `angi_get_account` | Your identity and open/closed project counts. |\n| `angi_list_my_projects` | Your Angi projects, open and closed. |\n| `angi_list_my_reviews` | Reviews you've written, plus pros awaiting a rating. |\n\nSearches take **slugs**, not free text — resolve them first:\n\n```\nangi_list_trades   { contains: \"duct\" }      -> \"air-duct-cleaning\"\nangi_list_cities   { trade: \"plumbing\", state: \"nc\", contains: \"char\" }\nangi_search_pros   { trade: \"plumbing\", state: \"nc\", city: \"charlotte\", compact: true }\n```\n\nPass `compact: true` when browsing or ranking — it projects each record to a\nslim summary instead of the full ~1KB payload.\n\n### Ratings\n\nEach pro carries two overall ratings and they differ on purpose:\n\n- `rating` (`averageRatings.OVERALL`) — unrounded. **Rank on this.**\n- `displayRating` (`averageOverallRating`) — the rounded value Angi shows.\n\nPer-dimension ratings (quality, value, punctuality, professionalism,\nresponsiveness) come through in the full record.\n\n`isSponsored: true` marks paid placement, not a quality signal.\n\n## Limits\n\n- **No zip-code filtering.** Angi's `?zip=` parameter is inert — a Charlotte URL\n  returns Charlotte pros regardless. Location comes from the city slug.\n- **Account record shapes are unverified.** The account used to map\n  `my.angi.com` held zero projects and zero reviews, so only the *envelopes*\n  were observed. `angi_list_my_projects` and `angi_list_my_reviews` return\n  records raw and set `recordFieldsVerified: false` rather than projecting onto\n  field names nobody has seen. See `docs/ANGI-API.md`.\n- **The inbox is not readable.** Angi's messages run on the Twilio\n  Conversations SDK; the proxy endpoints reject the session cookie alone (401),\n  so messages need the Twilio client rather than an HTTP GET.\n- **Cannot be hosted remotely.** Like every browser-bridge server in this fleet,\n  it needs a signed-in tab on the machine it runs on, so it cannot be served to\n  claude.ai from mcp-host.\n\n## Without the MCP\n\n`skills/angi-fpx/` is a shell-out skill that reads the same data with the `fpx`\nCLI and no running server — useful in scripts or on a machine where the MCP\nisn't installed.\n\n## Development\n\n```sh\nnpm install\nnpm run build      # tsc --noEmit + esbuild bundle\nnpm test\n```\n\n`docs/ANGI-API.md` records the live-captured request/response shapes, including\nthe verified negative results. Read it before changing `src/parse.ts`.\n\n## License\n\nMIT\n",
  "bytes": 4275,
  "sha": "aa0604d809f767110674958548339c6546ef93f17ca64809045fc273dfc108a5",
  "repo_slug": "chrischall/angi-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_chrischall_angi_mcp_6dcd7df8/readme"
}