Angi Mcp

io.github.chrischallPublished by GitHub account chrischallv1.1.0Updated Nov 7, 2026

Angi for Claude — find home-service pros by trade and city, read ratings and reviews

Overview

AI-generated overview

Reads Angi home-service pro listings, profiles and reviews for a US trade and city, routing requests through the user's own signed-in browser tab.

What you can do
  • Search pros by trade and city, with ratings, review counts, years in business and service area
  • Read one pro's full profile, hours, amenities, awards and per-dimension ratings breakdown
  • Read a pro's reviews, including rating, text, reported job cost, date and the pro's response, filterable by rating
  • List trade slugs and city slugs from Angi's public sitemaps to resolve free text before searching
  • Read the signed-in user's account summary, projects and written reviews
  • Check bridge connection state and diagnostics
When to use it
Useful when comparing home-service contractors in a US city — plumbing, roofing, air-duct cleaning and similar — or when checking a specific pro's ratings and review complaints before hiring. Also handy for reviewing one's own Angi projects and past reviews.
Requirements
Runs locally as an npm package (Node.js) over stdio. Needs the ContextMint Bridge browser extension in Chrome with an open angi.com tab and site access for angi.com; the first request shows a pairing code to approve. Trade and city listing tools work without the bridge. Optional variables: ANGI_DEBUG, ANGI_WS_PORT, FETCHPROXY_IDENTITY_DIR, FETCHPROXY_WS_HOST.
Before you install
Requests are proxied through your own signed-in angi.com browser tab, so the extension sees that session; install it from a verified release and check the published checksum. Signed-in tools expose your name, email and project data to the assistant. The README states the project is AI-developed and used at your own discretion. Sponsored results are paid placement, not quality signals, and zip-code filtering does not work.

Installation

In SourceWeft

  1. Open Angi Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

angi-mcp

MCP server for Angi (formerly Angie's List) — find home-service pros by trade and city, and read their ratings, profiles and reviews.

Angi serves its pages only to a real browser, so requests route through the user's own angi.com tab via the ContextMint Bridge browser extension (fetchproxy protocol), reusing their existing session. The trade/city taxonomy is read directly from Angi's public sitemaps and needs no browser at all.

No Angi account or credentials are required. Everything this server reads is public.

This project was developed and is maintained by AI (Claude). Use at your own discretion.

Install

sh
npm install -g @chrischall/angi-mcp

Register it with your MCP host:

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

You also need the ContextMint Bridge browser extension, with an open angi.com tab and its site access allowing angi.com. Install it from the ContextMint Bridge releases: unzip the Chrome build and load it via chrome://extensions → Load unpacked. Safari isn't available yet (it will ship inside the ContextMint app, which has no public download), so use Chrome for now. On the first request the extension shows a pairing code to approve; the trust then persists.

ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer — fetchproxy's own README (https://github.com/chrischall/fetchproxy#extension) points to it. Its source is public at https://github.com/nullnet-app/contextmint-bridge: build it yourself, or check a release zip against the .sha256 file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).

Run angi_healthcheck to confirm the bridge is connected.

Tools

ToolWhat it does
angi_search_prosPros for a trade in a US city, with ratings, review counts, years in business, service area, amenities. 10 per page.
angi_get_proOne pro's full profile and ratings breakdown.
angi_get_reviewsReviews on a pro's profile — rating, text, reported cost, date, categories, the pro's response. Filterable by rating.
angi_list_tradesEvery trade slug Angi publishes (~312). No bridge needed.
angi_list_citiesCities Angi publishes pages for, per trade. No bridge needed.
angi_healthcheckBridge connection state.

Signed-in tools (need the browser tab signed in to Angi):

ToolWhat it does
angi_get_accountYour name, email and open/closed project counts.
angi_list_my_projectsYour Angi projects, open and closed.
angi_list_my_reviewsReviews you've written, plus pros awaiting a rating.

Searches take slugs, not free text — resolve them first:

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 and angi_get_reviews answer in the slim view: "compact" projection by default; pass view: "full" for Angi's whole ~1KB records. (The old compact boolean still works as a deprecated alias and will be removed in a later release.)

Ratings

Each pro carries two overall ratings and they differ on purpose:

  • rating (averageRatings.OVERALL) — unrounded. Rank on this.
  • displayRating (averageOverallRating) — the rounded value Angi shows.

Per-dimension ratings (quality, value, punctuality, professionalism, responsiveness) come through in the full record.

isSponsored: true marks paid placement, not a quality signal.

Limits

  • No zip-code filtering. Angi's ?zip= parameter is inert — a Charlotte URL returns Charlotte pros regardless. Location comes from the city slug.
  • Account record shapes are unverified. The account used to map my.angi.com held zero projects and zero reviews, so only the envelopes were observed. angi_list_my_projects and angi_list_my_reviews return records raw and set recordFieldsVerified: false rather than projecting onto field names nobody has seen. See docs/ANGI-API.md.
  • The inbox is not readable. Angi's messages run on the Twilio Conversations SDK; the proxy endpoints reject the session cookie alone (401), so messages need the Twilio client rather than an HTTP GET.
  • Cannot be hosted remotely. Like every browser-bridge server in this fleet, it needs a signed-in tab on the machine it runs on, so it cannot be served to claude.ai from mcp-host.

Without the MCP

skills/angi-fpx/ is a shell-out skill that reads the same data with the fpx CLI and no running server — useful in scripts or on a machine where the MCP isn't installed.

Development

sh
npm installnpm run build      # tsc --noEmit + esbuild bundlenpm test

docs/ANGI-API.md records the live-captured request/response shapes, including the verified negative results. Read it before changing src/parse.ts.

License

MIT

Source: README.md at commit 5539f48

Tools

9

angi_search_pros

Search Angi pros

Find home-service pros on Angi for a trade in a US city. Returns each pro with ratings (overall plus per-dimension: quality, value, punctuality, professionalism, responsiveness), review count, percent-recommended, years in business, service area and amenities. `trade` and `city` are Angi slugs — resolve them with angi_list_trades and angi_list_cities first. 10 pros per page; use `page` to walk further. Note Angi has no zip-code filter: location comes from the city slug only.

Parameterscityrequiredpageviewstaterequiredtraderequiredcompact

angi_get_pro

Get Angi pro

Read one Angi pro's full profile: business details, service area, hours, amenities, awards, tasks offered, contact address, and the ratings breakdown. Also reports how many reviews the page carries (fetch them with angi_get_reviews).

ParametersviewcompactprofileUrlrequired

angi_get_reviews

Get Angi reviews

Read the reviews on an Angi pro's profile page: rating, body text, reported job cost, date, service categories, verification flag, and the pro's public response where one exists. Filter by rating to isolate complaints or praise.

ParametersviewlimitcompactmaxRatingminRatingprofileUrlrequired

angi_list_trades

List Angi trades

List every trade slug Angi publishes (~312, e.g. "plumbing", "air-duct-cleaning", "basement-waterproofing"). Call this to resolve a free-text trade to the slug angi_search_pros needs. Reads Angi's public sitemap directly — no browser bridge required.

Parameterscontains

angi_list_cities

List Angi cities

List every US state/city that Angi publishes pages for, for one trade. Use it to confirm a city slug exists before searching, or to discover nearby cities. Reads Angi's public sitemap directly — no browser bridge required.

Parametersstatetraderequiredcontains

angi_get_account

Get Angi account

The signed-in Angi user: first name, email address, user/entity ids, unread message count, and how many open and closed projects they have. Requires the browser tab to be signed in.

Takes no parameters.

angi_list_my_projects

List my Angi projects

The signed-in user's Angi projects (service requests and bookings), open and closed. Records are returned exactly as Angi sends them — the response sets `recordFieldsVerified: false` because no populated project has been observed yet, so field names should be read from the data rather than assumed.

Parametersstatus

angi_list_my_reviews

List my Angi reviews

Reviews the signed-in user has written, plus pros Angi is prompting them to rate (`unratedPros`). Same caveat as projects: records pass through raw and the response sets `recordFieldsVerified: false`.

Takes no parameters.

angi_healthcheck

Verify the ContextMint Bridge connection end-to-end

Round-trips a small public www.angi.com URL (/robots.txt) through ContextMint Bridge (your signed-in browser tab) and returns diagnostics: the bridge's role (host/peer/null), port, version, the extension link (linked / pair pending / not attached / never answered), the elapsed round-trip time, and a plain-English hint distinguishing 'bridge never came up' from 'extension not connected' from 'this browser can't serve a capability' from 'real www.angi.com-side problem'. Read-only, no auth required. Call this when a real tool fails and you want to know which hop broke.

Takes no parameters.

Version history

12
  1. v1.1.0LatestNov 4, 2026
  2. v1.0.8Oct 16, 2026
  3. v1.0.7Oct 10, 2026
  4. v1.0.6Oct 7, 2026
  5. v1.0.5Oct 5, 2026
  6. v1.0.4Oct 3, 2026
  7. v1.0.3Sep 28, 2026
  8. v1.0.2Sep 23, 2026
  9. v1.0.1Sep 23, 2026
  10. v1.0.0Sep 20, 2026
  11. v0.4.0Sep 18, 2026
  12. v0.3.4Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts