{
  "data": {
    "a": {
      "slug": "mealme",
      "name": "MealMe API",
      "vendor": "MealMe, Inc.",
      "vendorUrl": "https://www.mealme.ai/",
      "kind": "http-api",
      "category": "shopping",
      "summary": "MealMe is a REST API from MealMe, Inc. that searches restaurants, grocery stores and products across the US and Canada, returns menus and inventory with live quotes, and places pickup or delivery orders with tracking and support chat.",
      "url": "https://www.anchorterminal.com/tools/mealme",
      "markdownUrl": "https://www.anchorterminal.com/tools/mealme.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mealme.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mealme.json",
      "dns": "mealme.grade.anchorterminal.com",
      "license": "Proprietary service under the MealMe API and SDK Terms of Use",
      "transports": [],
      "packages": [],
      "auth": "api-key",
      "authNotes": "One API key per account, sent in the Id-Token header on every call. A person creates an account with email and password at https://mealmeai.vercel.app/dashboard, adds a card, then creates the key; the docs also say to request a key through account setup on mealme.ai. No scopes, key expiry or rotation are documented. The embedded SDK uses a separate SDK key issued after a meeting and a licence agreement.",
      "pricing": "usage",
      "pricingNotes": "$0.10 per successful API call on the Developer plan with no monthly minimum, invoiced daily; $250 a month for unlimited successful calls on the Unlimited plan; Enterprise at a custom price for 250,000 or more calls a month. A card is required before API access. No free tier or credits found (https://mealmeai.vercel.app/pricing, checked 3 November 2026).",
      "priceSummary": "$0.10 / call",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, llms.txt, pricing page or API terms (checked 3 November 2026).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.mealme.ai/reference/environments",
      "llmsTxt": "https://mealmeapi.readme.io/llms.txt",
      "capabilities": [
        "shopping.search",
        "shopping.orders",
        "shopping.prices",
        "cooking.grocery",
        "commerce.cart",
        "commerce.checkout"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "usage-priced",
        "card-required",
        "llms-txt",
        "rest",
        "webhooks",
        "sandbox",
        "no-status-page"
      ],
      "lastRelease": "2025-05-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 38.4,
        "grade": "E",
        "agentReady": false,
        "rank": 1229,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 6,
          "payments": 20,
          "reliability": 19,
          "schema": 72,
          "security": 26,
          "transparency": 47
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "An agent can search stores and products, fetch live quotes and place a real order through one REST API priced at $0.10 a successful call. One all-powerful key, no rate limit figures, no status page, no idempotency key on orders and release notes that stop at 6 May 2025 are the limits.",
        "bestFor": "Agents that must place a real restaurant or grocery order in the US or Canada, or compare live prices across stores, and can hold a card on the account.",
        "strengths": [
          "Search, inventory, cart, order, payment, tracking webhook and support chat in one API, covering restaurants and grocery stores in the US and Canada",
          "Per-call price published without login, $0.10 a successful call with no monthly minimum, or $250 a month unlimited",
          "Store search takes a projections list to size responses and pages through next_page; product search accepts UPC codes",
          "Orders can be quoted first (place_order false returns 202 with the final quote) and placed in a second call",
          "Seventeen Create Order errors are listed with their status codes, and each endpoint page documents 400, 401 and 429"
        ],
        "weaknesses": [
          "One key with no scopes, read-only mode, expiry or rotation documented, sent in a custom Id-Token header",
          "No status page, SLA or rate limit figures; the 429 schema shows only an example message",
          "No idempotency key on Create Order, so a retried call can place a second order",
          "A card is required before any call, and there is no free tier or trial",
          "The newest release note is dated 6 May 2025, and the API and SDK terms of 18 June 2022 license use for personal, noncommercial purposes"
        ],
        "agentNotes": [
          "Send the key as the Id-Token header, not Authorization. Only latitude and longitude are required for store search; address fields become required when fetch_quotes is true and pickup is false",
          "Call Create Order with place_order false first, read the 202 final quote, then place it; keep your own customer_order_id and look it up before any retry, since no idempotency key exists",
          "Set projections on store search to the fields you need; fetch_quotes greatly increases response time per the docs",
          "Keep use_new_db the same across store search, Get Inventory and Get MealMe Store, or the store ids will not match",
          "Treat 406 (store closed, out of range, no delivery), 420 (product unavailable) and 422 (checkout error) as fixes to make, not transient failures"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.4
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 6,
          "payments": 20,
          "reliability": 19,
          "schema": 72,
          "security": 26,
          "transparency": 35
        },
        "provenanceScore": 59,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl 'https://api.mealme.ai/search/store/v3?latitude=37.7786357\u0026longitude=-122.3918135\u0026store_type=grocery' -H 'Id-Token: YOUR_API_KEY'"
      },
      "letme": {
        "capability": "https://letme.dev/shopping.search",
        "tool": "https://letme.dev/mealme"
      },
      "alsoIn": [
        "cooking"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Successful API call, Developer plan",
          "unit": "call",
          "usd": 0.1,
          "note": "No monthly minimum, invoiced daily; https://mealmeai.vercel.app/pricing"
        },
        {
          "item": "Unlimited plan",
          "unit": "month",
          "usd": 250,
          "note": "Unlimited successful calls, cancel any time"
        }
      ],
      "provenance": {
        "legalEntity": "MealMe, Inc.",
        "domain": "mealme.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.mealme.ai/privacy",
        "privacy": "https://www.mealme.ai/privacy",
        "statusPage": "",
        "changelog": "https://docs.mealme.ai/reference/release-notes",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "One page at mealme.ai/privacy holds the MealMe Connect Terms of Service (4 April 2025), the Privacy Policy (1 January 2025), the API and SDK Terms of Use (18 June 2022) and the Cookie Policy (1 January 2020). All name MealMe, Inc.; the Connect terms give a Wilmington, Delaware address and the API terms a Scottdale, Georgia notice address.",
          "The API and SDK terms forbid any robot, spider, scraper or other automatic or manual means to access the services or copy content, and the Connect terms forbid automated data extraction without written permission. Recorded as a fact; public pages were read within robots.txt.",
          "www.mealme.ai/robots.txt allows all crawlers except URLs with ?lightbox=; docs.mealme.ai/robots.txt allows all except /api-next, /edit/, /login and /logout, and points to mealmeapi.readme.io/llms.txt.",
          "The dashboard, signup and pricing pages are served from mealmeai.vercel.app, not mealme.ai.",
          "/.well-known/security.txt on www.mealme.ai returns 400. No status page found; status.mealme.ai does not resolve.",
          "RDAP for mealme.ai (rdap.nic.ai) returned no readable record, so no registration date is recorded."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mealme.json",
      "live": {
        "slug": "mealme",
        "securityTxt": {
          "url": "https://mealme.ai/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-04T15:53:11.510847421Z"
        },
        "updatedAt": "2026-11-04T15:53:11.510847421Z"
      }
    },
    "answer": "MealMe API scores 38.4 (E) on agent readiness against Zillow in Claude's 28.7 (F), and leads in 4 of 7 scored categories. Zillow in Claude leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "slug": "zillow-claude",
      "name": "Zillow in Claude",
      "vendor": "Zillow Group",
      "vendorUrl": "https://www.zillow.com/",
      "kind": "mcp",
      "category": "shopping",
      "summary": "Zillow's own connector for Claude, a remote MCP server that searches US homes for sale and rent, returns property details, Zestimate home values and neighbourhood market data, and calculates affordability and mortgage payments. No Zillow account is needed.",
      "url": "https://www.anchorterminal.com/tools/zillow-claude",
      "markdownUrl": "https://www.anchorterminal.com/tools/zillow-claude.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zillow-claude.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zillow-claude.json",
      "dns": "zillow-claude.grade.anchorterminal.com",
      "license": "Proprietary hosted service. No source published",
      "transports": [],
      "remoteUrl": "https://mcp.zillow.com/api/v2",
      "packages": [],
      "auth": "none",
      "authNotes": "Anthropic's directory entry gives sign-in as not required and the description says no Zillow account is needed (https://claude.com/marketplace/connectors/zillow, read 21 October 2026). We opened no MCP session, so this wasn't seen in a response. A plain GET to mcp.zillow.com answers 400 with \"Http operation is not supported for gateway protocol type MCP\".",
      "pricing": "free",
      "pricingNotes": "No price is published on any page we could read. The directory entry and Zillow's release of 19 October 2026 name no charge, and no Zillow account is needed. Zillow earns from the tours, agent connections and loan officers the release says the connector leads to. Which Claude plans can add it was not read first-hand.",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in Anthropic's directory entry or Zillow's release (checked 2026-10-21). Nothing is sold through the tools that were listed.",
        "endpoints": []
      },
      "toolCount": 9,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-21"
      },
      "docsUrl": "https://www.zillow.com/connect-claude-to-zillow/",
      "capabilities": [
        "shopping.search",
        "shopping.prices"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "no-auth",
        "free",
        "closed-source",
        "new"
      ],
      "lastRelease": "2026-10-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 28.7,
        "grade": "F",
        "agentReady": false,
        "rank": 1275,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 33,
          "maintenance": 35,
          "payments": 50,
          "reliability": 15,
          "schema": 9,
          "security": 32,
          "transparency": 45
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-21"
        },
        "negative": 0,
        "verdict": "Zillow's own keyless MCP connector for Claude, with nine tools for US home search, Zestimates, neighbourhood data and affordability. None of its tools writes anything. Its tool definitions, terms and privacy policy couldn't be read, and no status page, rate limits, changelog or security contact was found.",
        "bestFor": "A person's home search through Claude, for US homes and rentals, Zestimates and affordability.",
        "strengths": [
          "Published by Zillow itself, with a release of 19 October 2026 and an Anthropic directory entry naming Zillow Inc. as maker",
          "No sign-in or Zillow account needed, per the directory entry",
          "Nine tools, every one named for search, lookup or calculation, with no write action listed",
          "Search filters named in the directory include price, home type, commute time, schools, pets and amenities",
          "Zillow says it sends no data to Anthropic and shows listings with their broker and MLS attribution"
        ],
        "weaknesses": [
          "No public tool reference. The tool definitions weren't read, and Zillow's own connector page answered with a bot check",
          "No status page, rate limits, SLA or changelog found",
          "Zillow's terms of use are disallowed by robots.txt and its privacy notice answered with a bot check, so what they allow an agent to do is unread",
          "No security.txt on zillow.com or zillowgroup.com, and no public bug bounty found",
          "Not in the official MCP registry. Third-party Zillow servers hold the zillow names there"
        ],
        "agentNotes": [
          "Use the server at https://mcp.zillow.com/api/v2 from Anthropic's directory, not the third-party Zillow servers in the MCP registry",
          "Search on objective criteria (location, price, size, amenities, schools, commute), since the release says the connector won't search on protected characteristics",
          "Treat Zestimates and affordability results as estimates, and hand tours, agent contact and financing to the person through Zillow's links",
          "Read tools/list before planning, because no tool reference is published and the input fields aren't documented anywhere we could read"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 28.7
          }
        ],
        "editorialScores": {
          "ergonomics": 33,
          "maintenance": 35,
          "payments": 50,
          "reliability": 15,
          "schema": 9,
          "security": 32,
          "transparency": 18
        },
        "provenanceScore": 71,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-21",
            "maintenance": "2026-10-21",
            "payments": "2026-10-21",
            "reliability": "2026-10-21",
            "schema": "2026-10-21",
            "security": "2026-10-21",
            "transparency": "2026-10-21"
          },
          "last": "2026-10-21",
          "lastMoved": "2026-10-30",
          "oldest": "2026-10-21",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http zillow https://mcp.zillow.com/api/v2",
        "config": {
          "mcpServers": {
            "zillow": {
              "type": "http",
              "url": "https://mcp.zillow.com/api/v2"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shopping.search",
        "tool": "https://letme.dev/zillow-claude"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "Zillow Group, Inc.",
        "domain": "zillow.com",
        "domainRegistered": "2004-09-16",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zillow.com/corp/Terms.htm",
        "privacy": "https://www.zillowgroup.com/zg-privacy-policy/",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-21",
        "notes": [
          "The release names Zillow Group, Inc. (Nasdaq Z and ZG) and says the Zillow marks are owned by MFTB Holdco, Inc., a Zillow affiliate. The directory names the maker as Zillow Inc.",
          "The terms URL is the one www.zillow.com's robots.txt points to in its header, and robots.txt disallows it for all crawlers, so it was not fetched. The privacy URL is the one Anthropic's directory links. It redirects to https://www.zillow.com/corporate/zg-privacy-notice/, which answered with a PerimeterX bot check.",
          "www.zillow.com/.well-known/security.txt and www.zillowgroup.com/.well-known/security.txt return 404. mcp.zillow.com answers every plain GET, including robots.txt and security.txt, with a 400 from its MCP gateway.",
          "status.zillow.com gave no answer to our request, and no status page was found.",
          "RDAP for zillow.com gives a registration date of 2004-09-16, registrar GoDaddy Corporate Domains."
        ],
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zillow-claude.json",
      "live": {
        "slug": "zillow-claude",
        "probe": {
          "target": "https://mcp.zillow.com/api/v2",
          "method": "get",
          "lastAt": "2026-11-04T20:47:25.386600582Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 430,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 438,
          "p95ms24h": 522,
          "samples24h": 246,
          "samples30d": 3488,
          "days": [
            {
              "date": "2026-10-21",
              "probes": 25,
              "ok": 25
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 214,
              "ok": 214
            }
          ]
        },
        "securityTxt": {
          "url": "https://zillow.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:21.306493638Z"
        },
        "domain": {
          "domain": "zillow.com",
          "registered": "2004-09-16",
          "source": "https://rdap.verisign.com/com/v1/domain/zillow.com",
          "checkedAt": "2026-11-01T14:22:01.927098466Z"
        },
        "pages": [
          {
            "url": "https://www.zillowgroup.com/zg-privacy-policy/",
            "kind": "privacy",
            "status": 403,
            "checkedAt": "2026-11-04T08:47:50.80542568Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://www.zillow.com/corp/Terms.htm",
            "kind": "terms",
            "status": 0,
            "checkedAt": "2026-11-04T08:47:50.487062408Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          }
        ],
        "mcpTools": {
          "url": "https://mcp.zillow.com/api/v2",
          "checkedAt": "2026-11-04T01:23:06.464833067Z",
          "status": "ok",
          "protocol": "2025-11-25",
          "tools": [
            {
              "name": "zillow_city_neighborhood_real_estate_information",
              "title": "Zillow City \u0026 Neighborhood Search",
              "description": "\u003ctool_purpose\u003e\nReturns U.S. regions, areas, neighborhoods, or cities with for-sale and/or for-rent property counts\nfor each area. Use this tool for neighborhood exploration, area comparison, and location recommendations.\n\u003c/tool_purpose\u003e\n\n\u003cwhen_to_use\u003e\nUse this tool whenever a user asks about the best places to live, buy, or rent homes in U.S. cities\nor neighborhoods -- including lifestyle-driven queries (parks, hiking, nightlife, schools, walkability, etc.).\nThis applies even if the user doesn't mention home prices, filters, or housing status.\n\nExamples:\n- \"Best neighborhoods in Seattle for families\"\n- \"Where should I live near downtown Austin?\"\n- \"Compare Ballard vs Fremont vs Capitol Hill\"\n- \"Neighborhoods with good schools in Denver\"\n- \"Walkable areas near parks in Portland\"\n- MULTI-TURN: If the user modifies any criteria after the first call, you MUST call this tool again.\n\u003c/when_to_use\u003e\n\n\u003cwhen_not_to_use\u003e\n- User wants to search for specific property listings -\u003e use zillow_property_search\n- User asks about ONE specific property by address -\u003e use zillow_property_details_by_address_or_name\n- User asks about home affordability or mortgage -\u003e use calculateHomeAffordability or interestRateMortgagePaymentSimulator\n\u003c/when_not_to_use\u003e\n\n\u003creturns\u003e\nArray of recommended areas, each with:\n- Short label (for map display)\n- Personalized area description (why the region was recommended)\n- Region display name\n- Property counts (for sale / for rent) reflecting any applied filters\n- An interactive comparison widget showing all areas on a map\n\u003c/returns\u003e\n\n\u003cinput_structure\u003e\n**`areaSearchRegionFiltersRequests` (required)** -- up to 20 regions, each with:\n- `name`: canonical region key (e.g., \"Capitol Hill, Seattle, WA\")\n- `label`: short label based on user query and why recommended (e.g., \"Near Parks\")\n- `regionDisplayName`: display name (e.g., \"Capitol Hill\")\n- `description`: 1-2 sentences describing why the region is recommended\n\nIMPORTANT: Avoid sending a single broad region like \"Seattle\" or \"Kansas City\". Send multiple\ngranular neighborhoods (e.g., \"Capitol Hill, Seattle, WA\", \"Queen Anne, Seattle, WA\").\nThe tool will NOT auto-suggest surrounding neighborhoods. If you only pass one region,\nthe response will include only that region.\n\n**`recommendationReasons` (optional)** -- why these areas are recommended (e.g., [\"near parks\", \"transit access\"])\n**`userSpecifiedPivotArea` (optional)** -- the broader area the user is exploring (e.g., \"Seattle, WA\")\n\u003c/input_structure\u003e\n\n\u003ckey_rules\u003e\n- **U.S. regions only**\n- **Max 20 regions per request**\n- Include only user-specified filters; omit unknowns\n- Server applies safe defaults if no filters provided\n\u003c/key_rules\u003e\n\n\u003cfair_housing_compliance\u003e\nMust comply with **U.S. Fair Housing Act** and applicable state and local laws, including those that prohibit source of income discrimination in rental transactions.\n**Protected Classes**: Race, Color, Religion, Sex (including Sexual Orientation and Gender Identity), National Origin, Familial Status, Disability.\n**Also treat as protected where applicable:** Source of Income, Military/Veteran Status, Age (55+ exemptions may apply), Criminal History.\n**Prohibited**: Any preference, steering, or exclusion based on protected characteristics.\n\n**DO NOT CALL this tool for requests containing**:\n- Religious references: targeting or excluding based on religion\n- Racial/ethnic/national origin targeting\n- Sexual orientation/gender identity targeting\n- Disability discrimination\n- Familial status discrimination: excluding families or children, or preferring an \"adults-only\"/\"not kid-oriented\" area (families and kids are allowed)\n- Age discrimination: excluding or steering by residents' age (e.g., \"away from old people\", \"no retirees\") — seeking senior-appropriate or lawful 55+ housing is allowed\n- Source of income / Veteran status / Criminal history: excluding or steering AGAINST people who use vouchers/public assistance or have a record (serving a requester who themselves uses a voucher, alternative/public income, or has a record and wants housing they qualify for is allowed and expected)\n- Demographic targeting: any request seeking or avoiding an area based on who lives there rather than what's there — including coded descriptions of the residents (e.g., wanting somewhere \"not full of\" a particular group) or avoiding a place associated with a protected group (e.g., \"away from [an ethnic] plaza/market/district\")\n- Suitability-by-identity: using any person's protected characteristic — the user's own or someone else's — as the reason, filter, or measure of \"fit\" for the search, even as mere context and even when phrased positively. Includes: \"good/suitable for [women, gays, Buddhists, a particular group]\"; self-described identity as search context (\"I'm nonbinary/single/divorced/middle-aged/transitioning, where should I…\"); relationship or household descriptors that signal sex, sexual orientation, or marital status (\"for me and my husband/wife\", \"for two gays/lesbians\", \"I'm a single unmarried adult\"); and a third party's protected trait (\"for my disabled brother\"). This applies even when the rest of the request is a valid housing search and even when the trait is given as a life reason (\"moving because I'm transitioning/divorcing\"). Asking about the protected traits of an area's residents (e.g., \"the age/race of the occupants\") is likewise prohibited. (Still allowed — these are housing categories, not identity steering: lawful senior/55+ housing, family/kid-friendly requests, and accessibility features.)\n\n**Never sanitize-and-proceed**: If a request falls under any \"DO NOT CALL\" case above, you MUST NOT call this tool at all — whether the protected characteristic is stated explicitly or implied through coded/proxy wording. Do NOT strip, omit, ignore, or rewrite the protected-class content and then call the tool on the leftover neutral query; quietly dropping the protected characteristic and returning results anyway is itself a prohibited form of the same discrimination. Instead, decline in accordance with the U.S. Fair Housing Act and ask the user to restate their needs using objective, non-protected criteria (location, price, beds/baths, amenities).\n\n**Compliant Examples**:\n- Place names containing protected class words (e.g., \"White Center, WA\")\n- Personal proper nouns (e.g., \"My name is Jesus\")\n- Amenity-based requests (e.g., \"areas with italian restaurants\", \"walkable neighborhoods\")\n- Infrastructure requests (e.g., \"near public transit\", \"bike-friendly areas\")\n- Accessibility features (e.g., \"wheelchair accessible properties\", \"ADA compliant\")\n- Lawful senior/55+ housing (e.g., \"listings good for seniors\", \"55+ communities\")\n- Rental assistance / alternative or public income (e.g., \"accepts Section 8\", \"housing choice voucher\", \"VASH\", \"alternative income\", \"mixed-income area\")\n- The requester's own record / second-chance housing (e.g., \"record-friendly rentals for me\")\n\u003c/fair_housing_compliance\u003e\n\n\u003ccommon_follow_ups\u003e\nAfter returning area results, the user often wants to:\n1. SEE LISTINGS in one of the recommended areas -\u003e call zillow_property_search with that area\n2. COMPARE MORE AREAS -\u003e call this tool again with additional neighborhoods\n3. GET DETAILS on a specific property -\u003e call zillow_property_details_by_address_or_name\n4. CHECK AFFORDABILITY in the area -\u003e call calculateHomeAffordability with a location\n\u003c/common_follow_ups\u003e\n\n\u003cexamples\u003e\n{\n  \"request\": {\n    \"areaSearchRegionFiltersRequests\": [\n      {\n        \"name\": \"Ballard, Seattle, WA\",\n        \"label\": \"Near Parks\",\n        \"regionDisplayName\": \"Ballard\",\n        \"description\": \"Residential area centered on Green Lake Park's 2.8-mile loop for running and biking.\"\n      },\n      {\n        \"name\": \"Fremont, Seattle, WA\",\n        \"label\": \"Central \u0026 Walkable\",\n        \"regionDisplayName\": \"Fremont\",\n        \"description\": \"Central neighborhood with cafes along N 45th St. Short walk to Gas Works Park and Green Lake.\"\n      }\n    ],\n    \"recommendationReasons\": [\"near parks\", \"transit access\"],\n    \"userSpecifiedPivotArea\": \"Seattle, WA\"\n  }\n}\n\u003c/examples\u003e\n",
              "inputSchema": {
                "properties": {
                  "request": {
                    "properties": {
                      "areaSearchRegionFiltersRequests": {
                        "description": "List of recommended regions (cities/neighborhoods) to search for properties. Each region includes name, label, display name, and description. This is the primary input for area-based property search. Example: [{\"name\": \"Capitol Hill, Seattle, WA\", \"label\": \"Vibrant nightlife\", \"regionDisplayName\": \"Capitol Hill\", \"description\": \"Trendy neighborhood with bars and restaurants\"}]",
                        "items": {
                          "properties": {
                            "description": {
                              "description": "A personalized description of the recommended region (2-3 sentences). This should highlight features relevant to the user's search criteria such as amenities, lifestyle, or location benefits. Focus on objective, factual information about the area. CRITICAL: Do not include any demographic data, school ratings, crime statistics, or other information that would violate fair housing laws. Keep descriptions neutral and inclusive.",
                              "type": "string"
                            },
                            "label": {
                              "description": "A contextual label that describes the region's relationship to the user's search criteria. This helps users understand why this region was recommended and will be displayed in the UI so keep it short and concise. (max 30 characters) Examples: \"1 hour from Seattle Downtown\", \"Near tech companies\", \"Vibrant nightlife\"",
                              "type": "string"
                            },
                            "name": {
                              "description": "The canonical name of the recommended region in hierarchical format: neighborhoodName, cityName, stateName. This is used for internal identification and must follow the exact format. Examples: \"Seattle, WA\", \"Capitol Hill, Seattle, WA\", \"Downtown, Austin, TX\"",
                              "type": "string"
                            },
                            "regionDisplayName": {
                              "description": "The user-facing display name for the region that will be shown in the UI. This should be a clean, readable name in the format city, state or neighborhood, state. Examples: \"Capitol Hill, WA\", \"Issaquah, WA\", \"Downtown Austin, TX\"",
                              "type": "string"
                            }
                          },
                          "required": [
                            "description",
                            "label",
                            "name",
                            "regionDisplayName"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "recommendationReasons": {
                        "description": "List of reasons explaining why the recommended regions were selected based on user criteria. These reasons help users understand the recommendation logic and are displayed as UI tags. Examples: [\"good nightlife\", \"access to transit\", \"near tech companies\"]. IMPORTANT: These are display tags only and do not filter results. Always include reasons when user specifies criteria. Keep reasons short (30 characters max each) and focus on key selling points of the areas.Do not include property filters in the reasons such as beds, baths, etc.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "userSpecifiedPivotArea": {
                        "description": "The geographic area or city that serves as the search center/pivot point. This is typically the main location mentioned in the user's query. Examples: \"Seattle\" for 'neighborhoods in Seattle', \"Austin\" for 'areas near Austin', \"San Francisco Bay Area\" for 'Bay Area neighborhoods'. This helps the system understand the geographic scope and context for the area search.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "areaSearchRegionFiltersRequests",
                      "recommendationReasons",
                      "userSpecifiedPivotArea"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "request"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true,
                "title": ""
              }
            },
            {
              "name": "zillow_property_details_by_address_or_name",
              "title": "Zillow Property Details",
              "description": "## Zillow Property Details by Query\n\nRetrieves detailed information about a specific property by address, building name or community name.\n\n---\n\n### What it returns\n- Comprehensive property details including address, price, features, photos, and more.\n- Returns structured JSON data for off-market properties from Zillow's property database.\n- For off market homes, JSON data will be returned but no widget will be returned.\n\n---\n\n### Inputs\n- **`query` (required)**\n   Property address or name (e.g., \"123 Main St, Seattle, WA 98101\")\n\n---\n\n### Key Rules \u0026 Constraints\n- **CURRENTLY SUPPORTS OFF-MARKET PROPERTIES ONLY** - Properties that are not actively listed for sale or rent\n- **NOT FOR ZESTIMATE EVALUATION OR ANALYSIS** - This tool returns property details; use the separate Zestimate tool for valuation analysis\n- Query must be a valid address\n- Returns error if property not found or is not an off-market property\n",
              "inputSchema": {
                "properties": {
                  "query": {
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true,
                "title": ""
              }
            },
            {
              "name": "zillow_property_search",
              "title": "Zillow Property Search",
              "description": "\u003ctool_purpose\u003e\nPrimary property search tool for U.S. real estate. Searches for properties for sale or for rent.\nSupports filters for location, price, property type, size, amenities, commute time, schools, and more.\nReturns matching property listings with an interactive map widget.\n\u003c/tool_purpose\u003e\n\n\u003cwhen_to_use\u003e\n- User wants to search for properties (DEFAULT choice for property search)\n- \"show me homes in...\", \"find properties...\", \"search for...\"\n- Rental searches: \"rentals in...\", \"apartments for rent\", \"pet-friendly rentals\"\n- Special housing: \"student housing\", \"senior apartments\", \"affordable housing\"\n- Specific filters: \"homes with pool\", \"garage required\", \"waterfront properties\"\n- For sale: \"homes for sale in...\", \"condos under 500k\", \"pending homes\"\n- Sold: \"recently sold\", \"what sold recently\", \"recent sales\"\n- Price/bedroom: \"studio apartments\", \"3 bed 2 bath\", \"under 400k\"\n- MULTI-TURN: If the user modifies any search criteria after the first call, you MUST call this tool again with updated parameters.\n\u003c/when_to_use\u003e\n\n\u003cwhen_not_to_use\u003e\n- User asks about ONE specific property by address -\u003e use zillow_property_details_by_address_or_name\n- User asks about neighborhoods or best places to live -\u003e use zillow_city_neighborhood_real_estate_information\n- User asks about home affordability or mortgage rates -\u003e use calculateHomeAffordability or interestRateMortgagePaymentSimulator\n\u003c/when_not_to_use\u003e\n\n\u003creturns\u003e\n- A set of matching property listings with:\n  - Address, price, beds/baths, square footage, lot size, property type\n  - Listing status, days on Zillow, monthly cost\n  - Photos, agent/brokerage info\n  - Geo coordinates for map display\n  - Home details page URL for each property\n- Result counts (total matching, displayed)\n- An interactive map widget showing property locations\n\u003c/returns\u003e\n\n\u003cinput_structure\u003e\n- **`propertySearchRegionFiltersRequest` (optional)** - Geographic search area(s) and context\n- **`propertyFiltersRequest` (optional)** - Only include filters the user specifies (omit others; do not send placeholder `unknown`)\n- **`displayLimit` (optional)** - Do NOT set unless the user explicitly says \"limit results\" or gives a number. Server handles defaults.\n\u003c/input_structure\u003e\n\n\u003ckey_rules\u003e\n- **U.S. properties only**\n- **Max 20 regions per request**\n- Only set filters explicitly provided by the user\n- Do not default any enums to `unknown`\n- Use structured filters, not free text\n- Do not set sortSelection unless user explicitly requests a sort order\n- Do not set displayLimit unless user explicitly says \"limit results\" or gives a number\n- Send only one of: school, schoolDistrict, propertySearchRegions, or customPolygonWkt\n- When using nearby sort, locationForNearbySort is ALWAYS REQUIRED\n- Requests must adhere to the input schema\n- Safe defaults are applied if no filters are provided\n- IMPORTANT: \"coming soon\", \"pre-market\", \"about to list\", \"not yet listed\", \"preview\", \"zillow preview\" → use forSaleListingStatuses (NOT homeStatuses)\n- forSaleListingStatuses values: active, comingSoon, zillowPreview — only for for-sale searches\n- \"coming soon\" / \"pre-market\" / \"about to list\" → forSaleListingStatuses:[\"comingSoon\"]\n- \"preview\" / \"zillow preview\" / \"pre-listing\" → forSaleListingStatuses:[\"zillowPreview\"]\n- \"active only\" / \"on market now\" → forSaleListingStatuses:[\"active\"]\n- To exclude a status, list the ones the user DOES want (e.g., exclude coming soon → [\"active\", \"zillowPreview\"])\n- These can combine with other filters: \"preview condos under 500k\" → forSaleListingStatuses:[\"zillowPreview\"] + homeTypes + salePrice\n- Do NOT set homeStatuses for coming soon/preview concepts — those are NOT homeStatus values\n\u003c/key_rules\u003e\n\n\u003cfair_housing_compliance\u003e\nMust comply with **U.S. Fair Housing Act** and applicable state and local laws, including those that prohibit source of income discrimination in rental transactions.\n**Protected Classes**: Race, Color, Religion, Sex (including Sexual Orientation and Gender Identity), National Origin, Familial Status, Disability.\n**Also treat as protected where applicable:** Source of Income, Military/Veteran Status, Age (55+ exemptions may apply), Criminal History.\n**Prohibited**: Any preference, steering, or exclusion based on protected characteristics.\n\n**DO NOT CALL this tool for requests containing**:\n- Religious references: targeting or excluding based on religion\n- Racial/ethnic/national origin targeting\n- Sexual orientation/gender identity targeting\n- Disability discrimination\n- Familial status discrimination: excluding families or children, or preferring an \"adults-only\"/\"not kid-oriented\" area (families and kids are allowed)\n- Age discrimination: excluding or steering by residents' age (e.g., \"away from old people\", \"no retirees\") — seeking senior-appropriate or lawful 55+ housing is allowed\n- Source of income / Veteran status / Criminal history: excluding or steering AGAINST people who use vouchers/public assistance or have a record (serving a requester who themselves uses a voucher, alternative/public income, or has a record and wants housing they qualify for is allowed and expected)\n- Demographic targeting: any request seeking or avoiding an area based on who lives there rather than what's there — including coded descriptions of the residents (e.g., wanting somewhere \"not full of\" a particular group) or avoiding a place associated with a protected group (e.g., \"away from [an ethnic] plaza/market/district\")\n- Suitability-by-identity: using any person's protected characteristic — the user's own or someone else's — as the reason, filter, or measure of \"fit\" for the search, even as mere context and even when phrased positively. Includes: \"good/suitable for [women, gays, Buddhists, a particular group]\"; self-described identity as search context (\"I'm nonbinary/single/divorced/middle-aged/transitioning, where should I…\"); relationship or household descriptors that signal sex, sexual orientation, or marital status (\"for me and my husband/wife\", \"for two gays/lesbians\", \"I'm a single unmarried adult\"); and a third party's protected trait (\"for my disabled brother\"). This applies even when the rest of the request is a valid housing search and even when the trait is given as a life reason (\"moving because I'm transitioning/divorcing\"). Asking about the protected traits of an area's residents (e.g., \"the age/race of the occupants\") is likewise prohibited. (Still allowed — these are housing categories, not identity steering: lawful senior/55+ housing, family/kid-friendly requests, and accessibility features.)\n\n**Never sanitize-and-proceed**: If a request falls under any \"DO NOT CALL\" case above, you MUST NOT call this tool at all — whether the protected characteristic is stated explicitly or implied through coded/proxy wording. Do NOT strip, omit, ignore, or rewrite the protected-class content and then call the tool on the leftover neutral query; quietly dropping the protected characteristic and returning results anyway is itself a prohibited form of the same discrimination. Instead, decline in accordance with the U.S. Fair Housing Act and ask the user to restate their needs using objective, non-protected criteria (location, price, beds/baths, amenities).\n\n**Compliant Examples**:\n- Place names containing protected class words (e.g., \"White Center, WA\")\n- Personal proper nouns (e.g., \"My name is Jesus\")\n- Amenity-based requests (e.g., \"areas with italian restaurants\", \"walkable neighborhoods\")\n- Infrastructure requests (e.g., \"near public transit\", \"bike-friendly areas\")\n- Accessibility features (e.g., \"wheelchair accessible properties\", \"ADA compliant\")\n- Lawful senior/55+ housing (e.g., \"listings good for seniors\", \"55+ communities\")\n- Rental assistance / alternative or public income (e.g., \"accepts Section 8\", \"housing choice voucher\", \"VASH\", \"alternative income\", \"mixed-income area\")\n- The requester's own record / second-chance housing (e.g., \"record-friendly rentals for me\")\n\u003c/fair_housing_compliance\u003e\n\n\u003cspecial_features\u003e\n**Nearby Searches**: Use sortSelection \"nearby\" with locationForNearbySort (ALWAYS REQUIRED lat/long anchor).\nExample:\n\"propertyFiltersRequest\": {\n  \"sortSelection\": \"nearby\",\n  \"locationForNearbySort\": { \"lat\": 37.8024, \"lng\": -122.4058 }\n}\n\n**Commute Filtering**: Use commuteTimeFilter with destinationLatLong, maxCommuteTimeInMinutes, mode, and timeOfDay.\nExample:\n\"propertyFiltersRequest\": {\n  \"commuteTimeFilter\": {\n    \"destinationLatLong\": { \"lat\": 39.0997, \"lng\": -94.5786 },\n    \"maxCommuteTimeInMinutes\": 15,\n    \"mode\": \"driving\",\n    \"timeOfDay\": \"rushHour\"\n  }\n}\n\n**Monthly Cost Filtering**: Use monthlyCostFilter. monthlyCost is REQUIRED; defaults applied for other fields.\nExample:\n\"propertyFiltersRequest\": {\n  \"monthlyCostFilter\": {\n    \"monthlyCost\": { \"min\": 1000, \"max\": 4000 }\n  }\n}\n\n**School Search**: Use schoolName with city and state (e.g., \"Comstock Elementary School, McKinney, TX\").\n\u003c/special_features\u003e\n\n\u003ccommon_follow_ups\u003e\nAfter returning search results, the user often wants to:\n1. REFINE SEARCH - modify filters (price, beds, location) -\u003e call this tool again with updated params\n2. GET DETAILS on a specific property -\u003e call zillow_property_details_by_address_or_name with the address\n3. EXPLORE NEIGHBORHOODS -\u003e call zillow_city_neighborhood_real_estate_information\n4. CHECK AFFORDABILITY -\u003e call calculateHomeAffordability with their financial info\n\u003c/common_follow_ups\u003e\n\n\u003cexamples\u003e\nMinimal request:\n{\n  \"request\": {\n    \"propertyFiltersRequest\": {\n      \"bedrooms\": { \"min\": 2 }\n    },\n    \"propertySearchRegionFiltersRequest\": {\n      \"propertySearchRegions\": [\n        {\n          \"description\": \"Seattle, WA is a major Pacific Northwest city\",\n          \"label\": \"Vibrant Tech Hub\",\n          \"name\": \"Seattle, WA\",\n          \"regionDisplayName\": \"Seattle\"\n        }\n      ],\n      \"userSpecifiedPivotArea\": \"Seattle, WA\"\n    }\n  }\n}\n\u003c/examples\u003e\n",
              "inputSchema": {
                "properties": {
                  "request": {
                    "$defs": {
                      "LatLong": {
                        "properties": {
                          "latitude": {
                            "description": "Latitude",
                            "format": "double",
                            "type": "number"
                          },
                          "longitude": {
                            "description": "Longitude",
                            "format": "double",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "MinMaxInt": {
                        "properties": {
                          "max": {
                            "description": "Maximum value",
                            "format": "int32",
                            "type": "integer"
                          },
                          "min": {
                            "description": "Minimum value",
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "properties": {
                      "displayLimit": {
                        "description": "Display limit to control number of property cards in widget. Only set this if the user has specified the number of properties they want to see, otherwise the server will provide a default value.",
                        "format": "int32",
                        "type": "integer"
                      },
                      "propertyFiltersRequest": {
                        "description": "Property filters for search",
                        "properties": {
                          "basementStatuses": {
                            "description": "Basement status types. Use for queries like 'finished basement'",
                            "items": {
                              "enum": [
                                "finished",
                                "partial",
                                "none",
                                "unfinished"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "bathrooms": {
                            "description": "Bathrooms range filter. Do not add default values if min or max is not specified",
                            "properties": {
                              "max": {
                                "description": "Maximum value",
                                "format": "double",
                                "type": "number"
                              },
                              "min": {
                                "description": "Minimum value",
                                "format": "double",
                                "type": "number"
                              }
                            },
                            "type": "object"
                          },
                          "bedrooms": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Bedrooms range filter. Do not add default values if min or max is not specified"
                          },
                          "commuteTimeFilter": {
                            "description": "Use for commute or 'near' queries. For example, 'near DFW airport' can also be expressed via this filter.ALWAYS INCLUDE a valid region in propertySearchRegionFiltersRequest when passing this filter.destinationLatLong is REQUIRED when using this filter.",
                            "properties": {
                              "destinationLatLong": {
                                "$ref": "#/$defs/LatLong",
                                "description": "The latitude and longitude coordinates for the commute destination"
                              },
                              "maxCommuteTimeInMinutes": {
                                "description": "The maximum commute time in minutes that is considered acceptable. The commute API accepts time values in the inclusive range [5, 120]",
                                "format": "int32",
                                "type": "integer"
                              },
                              "mode": {
                                "description": "The mode of transportation for the commute",
                                "enum": [
                                  "driving",
                                  "transit",
                                  "walking",
                                  "biking"
                                ],
                                "type": "string"
                              },
                              "timeOfDay": {
                                "description": "The time of day for the commute",
                                "enum": [
                                  "now",
                                  "rushHour",
                                  "offPeak"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object"
                          },
                          "daysOnZillow": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Days on Zillow range filter. Do not add default values if min or max is not specified"
                          },
                          "exclude": {
                            "description": "Exclude flags to apply such as pending, etc",
                            "items": {
                              "enum": [
                                "noHoaData",
                                "unmappable",
                                "pending",
                                "underContract",
                                "contingent",
                                "acceptingBackupOffers",
                                "builderPlanInCommunityWithLotData",
                                "pendingContingentUnderContractUnlessAcceptingBackupOffers",
                                "acceptingBackupOffersUnlessPendingContingentUnderContract",
                                "seniorCommunity"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "forSaleListingStatuses": {
                            "description": "Listing status filter for FOR_SALE searches only (not rentals or sold). Values: active, comingSoon, zillowPreview. If not set, all are included by default. To exclude a status, list only the ones the user DOES want (omit the unwanted ones).",
                            "items": {
                              "enum": [
                                "active",
                                "comingSoon",
                                "zillowPreview"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "hoaFeesPerMonth": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "HOA fees per month range filter. Do not add default values if min or max is not specified"
                          },
                          "homeStatuses": {
                            "description": "Home statuses to include. Three categories: (1) Rentals: use ONLY forRent by itself. (2) Recently sold: use ONLY recentlySold by itself. (3) For sale: any combination of preforeclosure, foreclosed, fsba, fsbo, auction, foreclosure, newConstruction, newConstructionLot — defaults applied by server if not specified. Do NOT mix forRent or recentlySold with other statuses. NOTE: 'coming soon' is NOT a homeStatus — use forSaleListingStatuses instead.",
                            "items": {
                              "enum": [
                                "recentlySold",
                                "preforeclosure",
                                "foreclosed",
                                "forRent",
                                "fsba",
                                "fsbo",
                                "auction",
                                "foreclosure",
                                "newConstruction",
                                "newConstructionLot"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "homeTypes": {
                            "description": "Home types to include such as singleFamily, townhome, condo, etc. Only include this field when the user explicitly specifies a home type (e.g., 'condo', 'house', 'townhome'). Do not infer home types from context unless explicitly mentioned.",
                            "items": {
                              "enum": [
                                "townhome",
                                "land",
                                "manufactured",
                                "multiFamily",
                                "apartment",
                                "condo",
                                "singleFamily"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "keywords": {
                            "description": "Keywords to search for in the property description.You may specify multiple keywords (e.g., 'pool, fireplace'), this applies AND across all keywords.Do not use for filtering neighborhoods. Use propertySearchRegion field instead for neighborhood related filtering.Supported set includes - pool, fireplace etc. that are property attributes.The server will execute a semantic search on the keywords. Do not send multiple similar keywordsLimit the total length of all keywords to 100 characters",
                            "type": "string"
                          },
                          "livingAreaSqft": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "House square footage range filter. Do not add default values if min or max is not specified"
                          },
                          "locationForNearbySort": {
                            "$ref": "#/$defs/LatLong",
                            "description": "Location for nearby sort. It is required when sortSelection is set to 'nearby'"
                          },
                          "lotSizeSqft": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Lot size (sqft) range filter. Do not add default values if min or max is not specified"
                          },
                          "monthlyCostFilter": {
                            "description": "Monthly mortgage cost filter for homes FOR SALE when user specifies monthly payment budget. Use this instead of salePrice when user mentions monthly mortgage payments.Interest rate is optional and will be computed by the server. monthlyCost IS REQUIRED.",
                            "properties": {
                              "creditScoreBucket": {
                                "description": "Credit score bucket for mortgage calculation.",
                                "enum": [
                                  "cs720Plus",
                                  "cs660_719",
                                  "cs620_659",
                                  "cs580_619",
                                  "cs579Below"
                                ],
                                "type": "string"
                              },
                              "downPaymentAmount": {
                                "description": "Down payment amount in dollars. Defaults to 0 if not provided.",
                                "format": "int32",
                                "type": "integer"
                              },
                              "interestRate": {
                                "description": "Interest rate as a decimal (e.g., 0.05 for 5%). Will be computed by server based on other fields, if not provided.",
                                "format": "double",
                                "type": "number"
                              },
                              "loanTerm": {
                                "description": "Loan term in years",
                                "format": "int32",
                                "type": "integer"
                              },
                              "monthlyCost": {
                                "$ref": "#/$defs/MinMaxInt",
                                "description": "Monthly mortgage payment range. Do not add default values if min or max is not specified"
                              }
                            },
                            "type": "object"
                          },
                          "parkingSpots": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Parking spots range filter. Do not add default values if min or max is not specified"
                          },
                          "petsRestrictions": {
                            "description": "Allowed pet restrictions. Only use this filter for rentals. Only use this field if homeStatuses contains exclusively forRent and nothing else.",
                            "items": {
                              "enum": [
                                "largeDogs",
                                "smallDogs",
                                "cats"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "rentalAvailabilityDate": {
                            "description": "Rental availability date filter for rentals only. Only use this field if homeStatuses contains exclusively forRent and nothing else.",
                            "format": "date",
                            "type": "string"
                          },
                          "rentalMonthlyPayment": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Rental monthly payment range filter for RENTALS ONLY. Only use this field if homeStatuses contains exclusively forRent and nothing else. Do not add default values if min or max is not specified"
                          },
                          "rentalShowOnly": {
                            "description": "Show-only flags for property amenities and housing types for RENTALS such as pool, assignedParking, acceptsRentalApplications, etc. Can only be used for rental queries. Only use this field if homeStatuses contains exclusively forRent and nothing else.",
                            "items": {
                              "enum": [
                                "singleStory",
                                "inUnitLaundry",
                                "assignedParking",
                                "openHouses",
                                "priceReduction",
                                "waterfront",
                                "airConditioning",
                                "pool",
                                "acceptsRentalApplications",
                                "zillowOwned",
                                "garage",
                                "housingConnector",
                                "approvedVirtualTour",
                                "tourItNow",
                                "hasHardwoodFloor",
                                "hasDisabledAccess",
                                "areUtilitiesIncluded",
                                "roomForRent",
                                "highSpeedInternetAvailable",
                                "elevatorAccess",
                                "instantTourAvailable",
                                "shortTermLease",
                                "furnished",
                                "outdoorSpace",
                                "controlledAccess",
                                "noPetsAllowed",
                                "seniorCommunity",
                                "isLikelyStandardTourable",
                                "incomeRestricted"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "rentalSpecialHousingTypes": {
                            "description": "Special housing types such as student, senior, etc. This should ONLY BE USED FOR RENTAL queries. Only use this field if homeStatuses contains exclusively forRent and nothing else.",
                            "items": {
                              "enum": [
                                "student",
                                "senior",
                                "military",
                                "disabled",
                                "incomeRestricted"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "salePrice": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Purchase price range filter for homes FOR SALE. DO NOT USE for rentals - use rentalMonthlyPayment instead. Do not add default values if min or max is not specified"
                          },
                          "saleShowOnly": {
                            "description": "Show-only flags for property amenities and housing types for homes FOR SALE such as pool, garage, openHouses, etc. Can only be used for sale queries.",
                            "items": {
                              "enum": [
                                "singleStory",
                                "inUnitLaundry",
                                "openHouses",
                                "priceReduction",
                                "waterfront",
                                "airConditioning",
                                "pool",
                                "zillowOwned",
                                "garage",
                                "approvedVirtualTour",
                                "tourItNow",
                                "seniorCommunity",
                                "isLikelyStandardTourable"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "sortAscending": {
                            "description": "Sort ascending (true) or descending (false). Use if the user has specified a sort order such as price.",
                            "type": "boolean"
                          },
                          "sortSelection": {
                            "description": "Sort order for the search results. Defaults to personalized, only use if user has specified a sort order such as price.With nearby sort, locationForNearbySort is REQUIRED.",
                            "enum": [
                              "daysOn",
                              "yearBuilt",
                              "rentalDays",
                              "price",
                              "lotArea",
                              "livingArea",
                              "beds",
                              "recentlyChanged",
                              "baths",
                              "personalized",
                              "nearby",
                              "rentalPriorityScore",
                              "rentalPriorityScoreCandidate"
                            ],
                            "type": "string"
                          },
                          "viewTypes": {
                            "description": "Preferred view types such as water, mountain, etc.",
                            "items": {
                              "enum": [
                                "water",
                                "city",
                                "territorial",
                                "park",
                                "mountain"
                              ],
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "yearBuilt": {
                            "$ref": "#/$defs/MinMaxInt",
                            "description": "Year built range filter. Do not add default values if min or max is not specified"
                          }
                        },
                        "type": "object"
                      },
                      "propertySearchRegionFiltersRequest": {
                        "description": "PropertySearchRegion filters. Pass one of the region filters.",
                        "properties": {
                          "customPolygonWKT": {
                            "description": "Custom polygon in WKT format with up to 300 points",
                            "type": "string"
                          },
                          "propertySearchRegions": {
                            "description": "List of geographic regions to filter by. Send only one of: propertySearchRegions, schoolName, schoolDistrictName, or customPolygonWKT.",
                            "items": {
                              "properties": {
                                "name": {
                                  "description": "Name of the region in the format neighborhood, state or city, state. Ex: Seattle, WA ; Capitol Hill, WA",
                                  "type": "string"
                                },
                                "regionDisplayName": {
                                  "description": "Display name of the region. Ex: Capitol Hill, Issaquah",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name",
                                "regionDisplayName"
                              ],
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "recommendationReasons": {
                            "description": "Short, concise (limit to 30 characters each) reasons for recommending these regions (e.g., 'public transit', 'vibrant nightlife').Used for UI display pills. Only include when you are making a suggestion about a region to search in. If the user has explicitly stated the region for the search, this field should be ignoredDo not include property filters in the reasons such as beds, baths, etc.Examples: query: I'm looking to move to a neighborhood in Seattle with good public transit, recommendation reasons: ['public transit']Examples: query: I'm buy a 3+ bed house in Bellevue, recommendation reasons: Ignored because the user has explicitly stated the region for the searchNote: This is not a filter and will have no impact on the result set.",
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "schoolDistrictName": {
                            "description": "Name of the school district to filter by. Example: \"Seattle School District, WA\"",
                            "type": "string"
                          },
                          "schoolName": {
                            "description": "Name of the school catchment area to filter by. Example: \"Niles School, Seattle, WA\"",
                            "type": "string"
                          },
                          "userSpecifiedPivotArea": {
                            "description": "The primary geographic area the user mentioned in their search query (e.g., 'Seattle, WA' for 'Within 1.5h of Seattle'). This field is optional and should only be included when the user has specified a specific geographic area in their query.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "request"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true,
                "title": ""
              }
            },
            {
              "name": "get_zestimate",
              "title": "Get Zestimate",
              "description": "- When to use: For queries about the estimated home value (Zestimate) for a property\n  and/or the confidence in that valuation, including WHY it has that value and how it\n  compares to similar properties.\n\n- Args:\n    - address (required): Full property address.\n\n- Returns:\n    str: Comprehensive valuation report including:\n        - Current Zestimate and estimated sales range (confidence indicator)\n        - Factors explaining and interpretting the valuation, including an indication that a prior sale or listing price\n          is a key input, when appropriate\n        - Property features (bedrooms, bathrooms, sqft, year built, renovations)\n        - Comparable properties with their Zestimates and sale prices\n        - Detailed explanations of feature differences between subject and comparables\n        - General model description when comparables are not available\n        - Disclaimer text which should always be included at the end of the response\n        If Zestimate is missing, returns text explaining why.\n\n- Behavior and content rules:\n    - Use the output of the tool verbatim (no edits, no paraphrasing).\n    - If the listing price is noted as a key input to this properties Zestimate, it is important to say this in the response\n    - If a recent sale price is noted as a key input to this properties Zestimate, it is important to say this in the response\n    - Include the disclaimer text provided verbatim at the end of the response.\n    - The tool provides detailed comparable analysis - do not add or remove comparables.\n    - The explanations include feature differences (sqft, lot size, age, renovations) -\n      do not fabricate additional differences.\n    - When explaining what the Zestimate is, use the disclaimer text provided verbatim.\n    - Do not cite, compare with, or incorporate any external AVM sources. Use only the\n      returned Zestimate, ranges, and comparables provided.\n    - Do not fabricate values. If the tool does not return a numerical value, do not\n      estimate or infer a number.\n    - Do not speculate on returned outputs or comment on how fair a price or valuation is.\n\n- Do not call for:\n    - Queries asking the listing price or asking price of an on-market or for-sale home.\n      If the user asks about the price of a listed home, direct them to Zillow.com.\n    - Queries asking WHY a Zestimate changed over time (use get_zestimate_history instead).\n    - General questions about what a Zestimate is or accuracy (use get_zestimate_info instead).",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "address": {
                    "type": "string"
                  }
                },
                "required": [
                  "address"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true
              }
            },
            {
              "name": "get_rent_zestimate",
              "title": "Get Rent Zestimate",
              "description": "- When to use: For queries about the estimated monthly rental value (Rent Zestimate) for a property.\n- Args:\n    - address (required): Full property address.\n- Returns:\n    - str: Text with the current Rent Zestimate. If the Rent Zestimate is not available, returns text\n    explaining why the Rent Zestimate may be missing.\n- Behavior and content rules:\n    - When explaining what the Rent Zestimate is, use the output of the tool verbatim (no edits, no\n    paraphrasing).\n    - When explaining why a Rent Zestimate is missing, use the output of the tool verbatim (no edits,\n    no paraphrasing).\n    - Do not cite, compare with, or incorporate any external AVM sources. Use only the returned Rent\n    Zestimate.\n    - Do not fabricate values. If the tool does not return a numerical value, do not estimate or infer\n    a number.\n    - Do not speculate on returned outputs or comment on how fair a price or valuation is.\n- Do not call for:\n    - queries asking the actual rental price of a home, only the Zillow estimated value",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "address": {
                    "type": "string"
                  }
                },
                "required": [
                  "address"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true
              }
            },
            {
              "name": "get_zestimate_history",
              "title": "Get Zestimate History",
              "description": "- When to use: A user asks for how a Zestimate for a property has changed over time historically.\n- Args:\n    - address (required): Full property address.\n- Returns:\n    - json with the following keys:\n        - address: Full property address.\n        - disclaimer: The disclaimer text which should always be included at the end of the response\n        - current_zestimate: The current Zestimate value.\n        - percentage_changes: A dictionary of key value pairs where the key is the date in yyyy-mm-dd format and the value is the\n        percentage change in Zestimate since the given date\n        - If the historical Zestimate values are not available, returns text explaining why the Zestimate history may be missing.\n- Behavior and content rules:\n    - Never speculate on returned outputs or comment on how fair a price or valuation is\n    - Do not use to predict forward appreciation ONLY use pre-computed historical Zestimate percentages provided.\n    - Do not fabricate values. If the tool does not return a numerical value, do not estimate or infer a number.\n    - Include the disclaimer text provided verbatim at the end of the response.\n- Do not call for:\n    - Use when a user asks about a sudden change in value of their home.\n    - queries asking why a Zestimate has changed.\n    - For queries about actual home price changes but direct the user to Zillow.com",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "address": {
                    "type": "string"
                  }
                },
                "required": [
                  "address"
                ],
                "type": "object"
              },
              "outputSchema": {
                "description": "Response model for Odyssey zestimate history endpoint (backward compatible).",
                "properties": {
                  "address": {
                    "description": "The full property address",
                    "type": "string"
                  },
                  "current_zestimate": {
                    "description": "The current Zestimate value",
                    "type": "integer"
                  },
                  "disclaimer": {
                    "description": "The disclaimer text which should always be included at the end of the response",
                    "type": "string"
                  },
                  "percentage_changes": {
                    "additionalProperties": {
                      "type": "number"
                    },
                    "description": "A dictionary of key value pairs where the key is the date in yyyy-mm-dd format and the value is the percentage change in Zestimate since the given date",
                    "type": "object"
                  }
                },
                "required": [
                  "address",
                  "current_zestimate",
                  "percentage_changes",
                  "disclaimer"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true
              }
            },
            {
              "name": "get_zestimate_info",
              "title": "Get Zestimate Info",
              "description": "- When to use: For queries about general Zestimate information, accuracy, definitions, or reasons why\nZestimates might be missing.\n- Args:\n    - question_type (required): The type of Zestimate question to answer. Options:\n        - what_is_zestimate: Explains what the Zestimate is and how it works\n        - zestimate_accuracy: Information about Zestimate accuracy and error rates\n        - what_is_rent_zestimate: Explains what the Rent Zestimate is\n        - zestimate_missing: Explains why a Zestimate might be missing\n        - rent_zestimate_missing: Explains why a Rent Zestimate might be missing\n- Returns:\n    - str: Detailed information answering the specific question type\n- Behavior and content rules:\n    - Use the output of the tool verbatim (no edits, no paraphrasing).\n    - Do not cite, compare with, or incorporate any external sources.\n    - Do not fabricate values or information beyond what is provided.\n    - Use only Zestimate information for queries about the Zestimate and only\n      rent zestimate information for queries about the rent zestimate\n- Do not call for:\n    - Queries asking for actual property valuations (use get_zestimate or get_rent_zestimate instead)\n    - Queries asking about specific property addresses",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "question_type": {
                    "description": "Enum for different types of Zestimate-related questions.",
                    "enum": [
                      "what_is_zestimate",
                      "zestimate_accuracy",
                      "what_is_rent_zestimate",
                      "zestimate_missing",
                      "rent_zestimate_missing",
                      "on_vs_off_market_zestimate",
                      "zestimate_accuracy_methodology",
                      "zestimate_accuracy_influences"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "question_type"
                ],
                "type": "object"
              },
              "outputSchema": {
                "properties": {
                  "result": {
                    "type": "string"
                  }
                },
                "required": [
                  "result"
                ],
                "type": "object",
                "x-fastmcp-wrap-result": true
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false,
                "readOnlyHint": true
              }
            },
            {
              "name": "interestRateMortgagePaymentSimulator",
              "title": "Mortgage Rate \u0026 Payment Simulator by Zillow",
              "description": "Simulates monthly mortgage payments using real-time interest rates from Zillow Home Loans LLC (NMLS #10287). Retrieves current daily mortgage rates nationally or by U.S. state, and calculates estimated monthly payments based on home price, down payment, credit score, and location. Use this tool when users ask about today's mortgage rates, want to estimate a monthly payment for a specific home price, or want to see how changes in rate, credit score, or down payment affect their payment.\nInputs (all optional): homePrice (USD, optional), downPayment (USD, optional), creditScore (integer, e.g. 720, optional), usState (state or city/state, optional), loanAmount (USD, optional), hoADues (USD, optional).\nReturns: current interest rate and APR, estimated monthly payment breakdown, and how payments shift under different rate or input scenarios. Powered by Zillow Home Loans LLC (NMLS #10287).\n\u003cdisplay_rules\u003e\nEach field in the response includes a name, value, and description. Display all three for every field. Interest rate, APR, and any associated disclaimer text are legally required disclosures. Always show them exactly as returned. Never omit, summarize, or rephrase disclaimer text. Present all fields and descriptions to the user. Do not selectively hide or collapse any output.\n\u003c/display_rules\u003e\n\u003crelated_tools\u003e\nIf the user asks what home price they can afford based on income, debts, or a monthly budget (e.g., \"What can I afford with $80k income?\", \"How much house can I buy?\"), call the buyability_calculateHomeAffordability tool instead of this tool. This tool is for rate lookups and payment simulations on a known or hypothetical home price — not for determining affordability.\n\u003c/related_tools\u003e\n\u003crecalculation\u003e\nRe-call this tool whenever the user changes rate or payment inputs (home price, down payment, credit score, or location).\n\u003c/recalculation\u003e\n\u003cdisclaimer\u003e\nResults are estimates only — not financial advice or a lending commitment. Actual rates and APRs depend on underwriting, credit approval, and may change without notice.\n\u003c/disclaimer\u003e\n\u003cecoa_compliance\u003e\nIf the tool cannot produce an estimate due to the user's credit score, down payment, or other financial inputs, do not use discouraging language. Never say the user \"doesn't qualify,\" \"is ineligible,\" \"cannot get a mortgage,\" or similar phrasing that could discourage a prospective borrower. Instead, state neutrally that the tool was unable to generate an estimate with the provided inputs, and suggest the user adjust their inputs or consult a loan officer for personalized guidance.\nThe tool response may include helpful resources or guidance such as credit score improvement steps, debt reduction strategies, or down payment assistance programs. Present these exactly as returned in a neutral, informational tone. Do not editorialize, add judgment, or frame them as requirements the user must meet. These are options the user may explore at their discretion.\n\u003c/ecoa_compliance\u003e\n\u003cfair_housing\u003e\nThis tool must comply with the U.S. Fair Housing Act and Equal Credit Opportunity Act (ECOA). Never use this tool in ways that discriminate based on race, color, religion, sex, national origin, familial status, disability, or source of income. All outputs are based solely on financial criteria and market data.\nAppropriate: \"What are today's rates in Illinois?\" or \"Monthly payment for a $400k home with 10% down.\"\nReject: requests filtering by ethnicity, religion, or housing voucher status.\n\u003c/fair_housing\u003e",
              "inputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "additionalProperties": false,
                "properties": {
                  "city": {
                    "description": "The U.S. city where the property is located. Used to estimate property taxes",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "creditScore": {
                    "description": "User's credit score. Credit score is a 3 digit number ranging from 300 to 850 and can be found in one's credit report.A lender may have lower interest rates for higher credit scores.",
                    "format": "int32",
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "downPayment": {
                    "description": "Amount the user plans to put down toward the home purchase. For most people, they combine their down payment with a loan to cover the total purchase price of the home.",
                    "format": "int32",
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "hoADues": {
                    "description": "Estimated monthly Homeowners Association (HOA) dues, if applicable. Included in the total monthly housing cost.",
                    "format": "int32",
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "homePrice": {
                    "description": "The total purchase price of the home. Used to calculate loan size and monthly payment.",
                    "format": "int32",
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "loanAmount": {
                    "description": "The desired loan amount. If not provided, it's calculated as home price minus down payment.",
                    "format": "int32",
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "usState": {
                    "description": "The U.S. state where the property is located. Used to determine regional interest rates and loan limits.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "zipCode": {
                    "description": "The U.S. postal code where the property is located. Used to estimate property taxes",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "city",
                  "creditScore",
                  "downPayment",
                  "hoADues",
                  "homePrice",
                  "loanAmount",
                  "usState",
                  "zipCode"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false,
                "readOnlyHint": true
              }
            },
            {
              "name": "calculateHomeAffordability",
              "title": "Home Affordability Calculator by Zillow",
              "description": "\u003ctool_purpose\u003e\n    Calculates the maximum home price a user can afford in the United States only.\n\u003c/tool_purpose\u003e\n\u003cwhen_to_use\u003e\n    - User wants to understand the max home price they can afford\n    - User wants to search for home that is within their means\n    - User wants to understand the max home price and the monthly payment amounts\n\u003c/when_to_use\u003e\n\u003cwhen_not_to_use\u003e\n    - User wants to know what the current mortgage rates are\n    - User knows the home price they are looking at and then want to understand how much it costs monthly\n    - User knows the home price and they are looking to see what mortage rates they might get for that loan to property price ratio\n\u003c/when_not_to_use\u003e\n\u003cinputs\u003e\n    - All inputs are optional — missing values use sensible defaults.\n    - Safe to call with no inputs or partial inputs.\n    - Inputs (all optional):\n        annual_income (gross USD)\n        down_payment (USD)\n        credit_score (e.g. 720)\n        monthly_debts (USD/month eg car payments, credit card payments)\n        location (city/state/ZIP)\n        monthly_mortgage_budget (max desired payment).\n\u003c/inputs\u003e\n\u003creturns\u003e\n    - Returns two estimates:\n        Target BuyAbility (comfortable affordability — the home price at 36% DTI or within user's monthly budget)\n        Max BuyAbility (stretch affordability — the maximum home price the user may be eligible for).\n        The estimated monthly payment breakdown (principal \u0026 interest, property tax, insurance, PMI, HOA)\n        loan details (type, rate, APR, points), and all assumed input values.\n        Powered by Zillow Home Loans LLC (NMLS #10287) BuyAbility tool.\n    - Matching property listings are available only in the interactive widget and are not returned in the tool response\n    - An interactive widget showing property locations in a map and a monthly payment slider to find homes within the monthly payment at the slider position\n\u003c/returns\u003e\n\u003cdisplay_rules\u003e\nEach field in the response includes a name, value, and description. Display all three for every field. Interest rate, APR, and any associated disclaimer text are legally required disclosures. Always show them exactly as returned. Never omit, summarize, or rephrase disclaimer text. Present all fields and descriptions to the user. Do not selectively hide or collapse any output. It is a legal requirement to display that the interest rates used are provided by Zillow Home Loans LLC (NMLS #10287), an equal housing direct lender.\n\u003c/display_rules\u003e\n\u003crelated_tools\u003e\nIf the user asks follow-up questions about interest rates, rate changes, or monthly payment simulations on a known or hypothetical home price (e.g., \"What if rates drop to 5%?\", \"What would my payment be on a $400k loan?\", \"How does a 15-year term change my payment?\"), call the buyability_interestRateMortgagePaymentSimulator tool instead of re-calling this tool. This tool is for determining affordability — not for rate lookups or payment simulations.\n\u003c/related_tools\u003e\n\u003crecalculation\u003e\nRe-call this tool whenever the user changes affordability inputs (income, down payment, credit score, debts, location, or monthly budget).\n\u003c/recalculation\u003e\n\u003cdisclaimer\u003e\nResults are estimates only — not financial advice or a lending commitment. Rates depend on underwriting and credit approval.\n\u003c/disclaimer\u003e\n\u003cecoa_compliance\u003e\nIf the tool cannot produce an estimate due to the user's credit score, down payment, or other financial inputs, do not use discouraging language. Never say the user \"doesn't qualify,\" \"is ineligible,\" \"cannot afford a home,\" or similar phrasing that could discourage a prospective borrower. Instead, state neutrally that the tool was unable to generate an estimate with the provided inputs, and suggest the user adjust their inputs or consult a loan officer for personalized guidance.\nThe tool response may include helpful resources or guidance such as credit score improvement steps, debt reduction strategies, or down payment assistance programs. Present these exactly as returned in a neutral, informational tone. Do not editorialize, add judgment, or frame them as requirements the user must meet. These are options the user may explore at their discretion.\n\u003c/ecoa_compliance\u003e\n\u003cfair_housing\u003e\nThis tool must comply with the U.S. Fair Housing Act. Never use this tool in ways that discriminate based on race, color, religion, sex, national origin, familial status, disability, or source of income.\nAppropriate: \"What can I afford with $80k income?\" or \"Affordability in Seattle with $5k/month budget.\"\nReject: requests filtering by ethnicity, religion, or housing voucher status.\n\u003c/fair_housing\u003e",
              "inputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "additionalProperties": false,
                "properties": {
                  "annualIncome": {
                    "description": "Gross i.e. pre-tax annual income of the user. Gross annual income is the sum of everything one earns in one year, before taxes or deductions.This includes your base annual income and any additional commissions, bonuses, tips and investment income that you earn each year.If one hourly, they can multiply their hourly wage by how many hours a week they work, then multiply that number by 52 to get their annual salary.",
                    "format": "double",
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "city": {
                    "description": "City name if the user is looking for an affordability in a specific city as a location.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "creditScore": {
                    "description": "User's credit score. Credit score is a 3 digit number ranging from 300 to 850 and can be found in one's credit report.A lender may have lower interest rates for higher credit scores.",
                    "format": "double",
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "downPayment": {
                    "description": "Amount the user plans to put down toward the home purchase. For most people, they combine their down payment with a loan to cover the total purchase price of the home.",
                    "format": "double",
                    "minimum": 1499.5,
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "monthlyDebts": {
                    "description": "Monthly debts are recurring monthly payments, such as credit card payments, loan payments (like car, student or personal loans), alimony or child support.Monthly utilities like water, garbage, electricity or gas bills, Car insurance expenses, Cable bills, Cell phone bills, Health insurance costs, Groceries, food or entertainment expenses can be excluded from monthly debts.",
                    "format": "double",
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "monthlyMortgageBudget": {
                    "description": "Maximum amount the user is willing to spend monthly on a mortage payment. eg. if a user's current rent is $2500, and they wish to keep their monthly mortgage payments the same, they can set this to 2500",
                    "format": "double",
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "state": {
                    "description": "US State if the user is looking for an affordability estimate in a specific state as a location.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "zipcode": {
                    "description": "USPS postal code of the location, if the user is wanting an affordability estimate for a very specific area in a city or county or state.",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "annualIncome",
                  "city",
                  "creditScore",
                  "downPayment",
                  "monthlyDebts",
                  "monthlyMortgageBudget",
                  "state",
                  "zipcode"
                ],
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false,
                "readOnlyHint": true
              }
            }
          ],
          "schemaTokens": 15180,
          "changedAt": "2026-10-21T23:56:31.41039003Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 15180,
            "counts": {
              "error": 0,
              "note": 6,
              "warn": 14
            },
            "findings": [
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "calculateHomeAffordability",
                "message": "the description is about 1,154 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "get_zestimate",
                "message": "the description is about 627 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "interestRateMortgagePaymentSimulator",
                "message": "the description is about 873 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "zillow_city_neighborhood_real_estate_information",
                "message": "the description is about 2,034 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC07",
                "severity": "warn",
                "tool": "zillow_property_search",
                "message": "the description is about 2,481 tokens",
                "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "zillow_city_neighborhood_real_estate_information",
                "message": "its one parameter, request, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "zillow_property_details_by_address_or_name",
                "message": "its one parameter, query, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "zillow_property_search",
                "message": "its one parameter, request, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC15",
                "severity": "warn",
                "tool": "zillow_property_search",
                "message": "inputSchema uses $ref/$defs",
                "fix": "Inline the referenced schemas. Pydantic and zod-to-json-schema emit $defs for nested models; most can be told not to."
              },
              {
                "rule": "TC20",
                "severity": "warn",
                "tool": "zillow_city_neighborhood_real_estate_information",
                "message": "the description steers the model",
                "fix": "Say what the tool is good at and let the model choose."
              },
              {
                "rule": "TC20",
                "severity": "warn",
                "tool": "zillow_property_search",
                "message": "the description steers the model",
                "fix": "Say what the tool is good at and let the model choose."
              },
              {
                "rule": "TC22",
                "severity": "warn",
                "tool": "calculateHomeAffordability",
                "message": "the definition is about 1,900 tokens",
                "fix": "Trim the description and parameter docs, or split the tool."
              },
              {
                "rule": "TC22",
                "severity": "warn",
                "tool": "zillow_city_neighborhood_real_estate_information",
                "message": "the definition is about 3,033 tokens",
                "fix": "Trim the description and parameter docs, or split the tool."
              },
              {
                "rule": "TC22",
                "severity": "warn",
                "tool": "zillow_property_search",
                "message": "the definition is about 5,762 tokens",
                "fix": "Trim the description and parameter docs, or split the tool."
              },
              {
                "rule": "TC03",
                "severity": "note",
                "tool": "zillow_city_neighborhood_real_estate_information",
                "message": "the name is 48 characters",
                "fix": "Keep names under 40 characters so the client's prefix fits."
              },
              {
                "rule": "TC03",
                "severity": "note",
                "tool": "zillow_property_details_by_address_or_name",
                "message": "the name is 42 characters",
                "fix": "Keep names under 40 characters so the client's prefix fits."
              },
              {
                "rule": "TC11",
                "severity": "note",
                "tool": "get_rent_zestimate",
                "message": "a parameter is documented in the description but not in the schema: address",
                "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
              },
              {
                "rule": "TC11",
                "severity": "note",
                "tool": "get_zestimate",
                "message": "a parameter is documented in the description but not in the schema: address",
                "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
              },
              {
                "rule": "TC11",
                "severity": "note",
                "tool": "get_zestimate_history",
                "message": "a parameter is documented in the description but not in the schema: address",
                "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "5 of 9 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-11-04T20:47:25.386600582Z"
      }
    },
    "edges": [
      {
        "by": 63,
        "category": "schema",
        "leads": "mealme",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "The reference pages are generated from an API description with operation ids (get_search_store_v3), named response schemas (Product_Search_Output) and typed parameters, but no spec file URL was found on the docs, llms.txt or the site (15 of 25). llms.txt at mealmeapi.readme.io and mealme.ai, and every page as Markdown (10). Each operation states its purpose and coverage; several descriptions are truncated in the index and none says when not to use it (12 of 20). Enums on sort, store_type, user_country and search_focus, required flags on latitude and longitude, conditional requirements written in prose (11 of 15). Request and response examples per endpoint, a Create Order errors page with 17 entries, and 400, 401 and 429 schemas on each operation (12 of 15). Versioned paths (v2 to v4) and dated release notes that call out breaking changes, the newest of 6 May 2025 (12 of 15). Total 72.",
          "b": "Graded from Anthropic's directory entry and Zillow's release, without opening an MCP session. The tool definitions were not read and no public tool reference exists, so the contract line scores nothing (0 of 25). No llms.txt or Markdown docs found. Zillow's own connector page, which the directory links as its documentation, answered with a bot check (0 of 10). The directory gives one paragraph on what the connector does, and the tool names say what each does, but no per-tool descriptions were readable (4 of 20). Typed inputs unread (0 of 15). The release gives two example prompts, with no tool examples or error responses (2 of 15). The URL carries /api/v2, with no changelog (3 of 15). Total 9."
        },
        "scores": {
          "a": 72,
          "b": 9
        }
      },
      {
        "by": 36,
        "category": "ergonomics",
        "leads": "mealme",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Store search takes a projections list to choose response fields and a fetch_quotes switch that the docs say greatly increases response time, so responses can be sized (20 of 25). Page and next_page pagination, bounding-box, distance, rating, price, cuisine and open filters, maximum_miles defaults (18 of 20). Distinct status codes, 406 for a closed or out-of-range store, 420 for an unavailable product, 422 for checkout errors, each with a message naming the field or product (16 of 20). No idempotency key; the two-step order (202 quote, then place) and customer_order_id lookup are the safe-retry route (8 of 20). Only latitude and longitude required for search and sensible defaults, but no official SDK in any language, only an iframe embed (7 of 15). Total 69.",
          "b": "Graded from the directory's tool list, without calling a tool. Nine tools is inside the ten-or-fewer band, but their size couldn't be measured, so 15 rather than 25, a departure from the checklist (15 of 25). The directory names search filters for price, home type, commute time, schools, pets and amenities, with nothing on pagination or result limits (8 of 20). No error responses documented (0 of 20). Every tool is named for search, lookup or calculation, so repeating a call changes nothing, but the readOnlyHint annotations weren't read (5 of 20). No sign-in, and no SDK (5 of 15). Total 33."
        },
        "scores": {
          "a": 69,
          "b": 33
        }
      },
      {
        "by": 30,
        "category": "payments",
        "leads": "zillow-claude",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). $0.10 per successful call and $250 a month published without login (20). No free tier or trial; a card must be added before the key is created (0). Signup is a browser form with email, password and card (0). Total 20.",
          "b": "No x402, MPP or L402 (0 of 40). No price is published on any page we could read, and neither the directory nor the release names a charge. Nothing is sold through the listed tools, so there is nothing to price, but nothing says it is free either (10 of 20). No Zillow account or card needed, per the directory (20 of 20). The directory gives a connector URL with sign-in not required, and Anthropic's docs say any connector URL can be added as a custom connector, so an agent's client can connect with no signup. Not seen in a response, since no session was opened (20 of 20). Total 50."
        },
        "scores": {
          "a": 20,
          "b": 50
        }
      },
      {
        "by": 29,
        "category": "maintenance",
        "leads": "zillow-claude",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a closed service. The newest dated change is the release note of 6 May 2025 (Get Inventory v4), more than 180 days before 3 November 2026; the pricing and dashboard pages carry no date (0 of 30). No dated change in the last 90 days (0 of 20). A support address, release notes and no community channel (6 of 15). No official SDKs (0). No package to judge (0). Total 6.",
          "b": "Closed service. Zillow announced it on 19 October 2026, two days ago (30 of 30). One dated change in 90 days, the launch, with the directory's August 2026 added date before it (0 of 20). Zillow's help centre at www.zillow.help is the directory's support link and is readable, but it has no article on the connector in its sitemap, and there's no changelog (5 of 15). No com.zillow entry in the official MCP registry. Third-party servers hold the zillow names there (0 of 15). No package (0 of 10). Total 35."
        },
        "scores": {
          "a": 6,
          "b": 35
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "zillow-claude",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One API key per account in a custom Id-Token header, with no scopes, expiry, rotation or revocation documented (10 of 30). place_order defaults to false and charge_user can be turned off, so an agent can quote without buying, but there is no read-only key (8 of 20). Store descriptions, menus and support-chat messages are untrusted content with no guidance (3 of 15). Get Orders and a tracking webhook give order history; no per-call log for the operator is documented (5 of 15). No security.txt (400), disclosure policy, bug bounty or certification found; the Enterprise plan names a security review (0 of 20). Total 26.",
          "b": "No credential, per the directory, so there is nothing to leak, scope or revoke, and nothing for an operator to control either, the reading the Checkatrade listing got (15 of 30). No write tool is listed. The release says tours, agent contact and financing can follow in the same conversation, and how that is done wasn't established (12 of 20). Listings carry text written by agents and sellers, and no injection guidance was found (5 of 15). No audit log or per-call view (0 of 15). No security.txt on www.zillow.com or www.zillowgroup.com (both 404), no Zillow programme found on HackerOne or Bugcrowd, and Zillow's security pages sit behind the same bot check. Anthropic's Verified label is not scored, since Anthropic says it isn't a security audit (0 of 20). Total 32."
        },
        "scores": {
          "a": 26,
          "b": 32
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "MealMe, Inc.",
        "b": "Zillow Group",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.zillow.com/api/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the MealMe API and SDK Terms of Use",
        "b": "Proprietary hosted service. No source published",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "9",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2025-05-06",
        "b": "2026-10-19",
        "name": "Last release"
      },
      {
        "a": "2025-04-04",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-04",
        "b": "2025-11-15",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "MealMe API scores 38.4 (E) on agent readiness against Zillow in Claude's 28.7 (F), and leads in 4 of 7 scored categories. Zillow in Claude leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, MealMe API or Zillow in Claude?"
      },
      {
        "answer": "MealMe API needs an API key. Zillow in Claude needs no key.",
        "question": "Do MealMe API and Zillow in Claude need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for MealMe API. Zillow in Claude has a hosted endpoint at https://mcp.zillow.com/api/v2.",
        "question": "Can an agent call MealMe API and Zillow in Claude without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 72 against 9",
          "Agent ergonomics, 69 against 33"
        ],
        "also": null,
        "goodFor": "Agents that must place a real restaurant or grocery order in the US or Canada, or compare live prices across stores, and can hold a card on the account.",
        "slug": "mealme",
        "watchFor": "One key with no scopes, read-only mode, expiry or rotation documented, sent in a custom Id-Token header"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 32 against 26",
          "Payments \u0026 pricing, 50 against 20",
          "Maintenance \u0026 community, 35 against 6"
        ],
        "also": [
          "No key needed to call it",
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A person's home search through Claude, for US homes and rentals, Zestimates and affordability.",
        "slug": "zillow-claude",
        "watchFor": "No public tool reference. The tool definitions weren't read, and Zillow's own connector page answered with a bot check"
      }
    ],
    "history": {
      "mealme": null,
      "zillow-claude": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-30",
          "delta": -0.1,
          "from": 28.8,
          "fromGrade": "F",
          "to": 28.7,
          "toGrade": "F"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 28.6,
          "fromGrade": "F",
          "to": 28.8,
          "toGrade": "F"
        }
      ]
    },
    "job": {
      "capability": "shopping.search",
      "name": "Product search for shoppers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-creators-api-vs-mealme.json",
        "title": "Amazon Creators API vs MealMe API",
        "url": "https://www.anchorterminal.com/compare/amazon-creators-api-vs-mealme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-creators-api-vs-zillow-claude.json",
        "title": "Amazon Creators API vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/amazon-creators-api-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/best-buy-vs-mealme.json",
        "title": "Best Buy Developer API vs MealMe API",
        "url": "https://www.anchorterminal.com/compare/best-buy-vs-mealme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/best-buy-vs-zillow-claude.json",
        "title": "Best Buy Developer API vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/best-buy-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/etsy-vs-mealme.json",
        "title": "Etsy Open API v3 vs MealMe API",
        "url": "https://www.anchorterminal.com/compare/etsy-vs-mealme"
      },
      {
        "json": "https://www.anchorterminal.com/compare/etsy-vs-zillow-claude.json",
        "title": "Etsy Open API v3 vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/etsy-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mealme-vs-opencommerce.json",
        "title": "MealMe API vs opencommerce",
        "url": "https://www.anchorterminal.com/compare/mealme-vs-opencommerce"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mealme-vs-shop-mcp.json",
        "title": "MealMe API vs Shop MCP",
        "url": "https://www.anchorterminal.com/compare/mealme-vs-shop-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mealme-vs-walmart-affiliate-api.json",
        "title": "MealMe API vs Walmart Affiliate Marketing API",
        "url": "https://www.anchorterminal.com/compare/mealme-vs-walmart-affiliate-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mealme-vs-walmart-agent-gateway.json",
        "title": "MealMe API vs Walmart Agent Gateway",
        "url": "https://www.anchorterminal.com/compare/mealme-vs-walmart-agent-gateway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opencommerce-vs-zillow-claude.json",
        "title": "opencommerce vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/opencommerce-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shop-mcp-vs-zillow-claude.json",
        "title": "Shop MCP vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/shop-mcp-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/walmart-affiliate-api-vs-zillow-claude.json",
        "title": "Walmart Affiliate Marketing API vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/walmart-affiliate-api-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/walmart-agent-gateway-vs-zillow-claude.json",
        "title": "Walmart Agent Gateway vs Zillow in Claude",
        "url": "https://www.anchorterminal.com/compare/walmart-agent-gateway-vs-zillow-claude"
      },
      {
        "json": "https://www.anchorterminal.com/compare/instacart-vs-mealme.json",
        "title": "Instacart Developer Platform API + MCP vs MealMe API",
        "url": "https://www.anchorterminal.com/compare/instacart-vs-mealme"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 4,
        "edge": "mealme",
        "key": "reliability",
        "mealme": 19,
        "name": "Reliability",
        "weight": 16,
        "zillow-claude": 15
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 63,
        "edge": "mealme",
        "key": "schema",
        "mealme": 72,
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zillow-claude": 9
      },
      {
        "by": 36,
        "edge": "mealme",
        "key": "ergonomics",
        "mealme": 69,
        "name": "Agent ergonomics",
        "weight": 13,
        "zillow-claude": 33
      },
      {
        "by": 6,
        "edge": "zillow-claude",
        "key": "security",
        "mealme": 26,
        "name": "Security \u0026 auth",
        "weight": 14,
        "zillow-claude": 32
      },
      {
        "by": 30,
        "edge": "zillow-claude",
        "key": "payments",
        "mealme": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zillow-claude": 50
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "edge": "zillow-claude",
        "key": "maintenance",
        "mealme": 6,
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zillow-claude": 35
      },
      {
        "by": 2,
        "edge": "mealme",
        "key": "transparency",
        "mealme": 47,
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zillow-claude": 45
      }
    ],
    "summary": "MealMe API scores 38.4 (E) on agent readiness against Zillow in Claude's 28.7 (F), and leads in 4 of 7 scored categories. Zillow in Claude leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community. Both do product search for shoppers.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "mealme": "An agent can search stores and products, fetch live quotes and place a real order through one REST API priced at $0.10 a successful call. One all-powerful key, no rate limit figures, no status page, no idempotency key on orders and release notes that stop at 6 May 2025 are the limits.",
      "zillow-claude": "Zillow's own keyless MCP connector for Claude, with nine tools for US home search, Zestimates, neighbourhood data and affordability. None of its tools writes anything. Its tool definitions, terms and privacy policy couldn't be read, and no status page, rate limits, changelog or security contact was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mealme-vs-zillow-claude",
    "json": "https://www.anchorterminal.com/compare/mealme-vs-zillow-claude.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mealme-vs-zillow-claude.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/mealme-vs-zillow-claude.min.md"
  },
  "markdown": "MealMe API scores 38.4 (E) on agent readiness against Zillow in Claude's 28.7 (F), and leads in 4 of 7 scored categories. Zillow in Claude leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community. Both do product search for shoppers.\n\n- MealMe API: grade E, 38.4/100, rank #1229 of 1349. Markdown https://www.anchorterminal.com/tools/mealme.md · JSON https://www.anchorterminal.com/api/v1/tools/mealme.json\n- Zillow in Claude: grade F, 28.7/100, rank #1275 of 1349. Markdown https://www.anchorterminal.com/tools/zillow-claude.md · JSON https://www.anchorterminal.com/api/v1/tools/zillow-claude.json\n- Best shopping and order APIs for AI agents buying for a person: https://www.anchorterminal.com/best/shopping/index.md\n- All 41 shopping comparisons: https://www.anchorterminal.com/compare/shopping/index.md\n- Best recipe, nutrition and meal planning APIs for AI agents: https://www.anchorterminal.com/best/cooking/index.md\n- All 28 cooking comparisons: https://www.anchorterminal.com/compare/cooking/index.md\n\n## Which one, for what\n\n### MealMe API (E)\n\nGood for: Agents that must place a real restaurant or grocery order in the US or Canada, or compare live prices across stores, and can hold a card on the account.\n\nAhead on:\n- Schema \u0026 documentation, 72 against 9\n- Agent ergonomics, 69 against 33\n\nWatch for: One key with no scopes, read-only mode, expiry or rotation documented, sent in a custom Id-Token header\n\n### Zillow in Claude (F)\n\nGood for: A person's home search through Claude, for US homes and rentals, Zestimates and affordability.\n\nAhead on:\n- Security \u0026 auth, 32 against 26\n- Payments \u0026 pricing, 50 against 20\n- Maintenance \u0026 community, 35 against 6\n\nAlso in its favour:\n- No key needed to call it\n- A hosted endpoint, with nothing to install\n\nWatch for: No public tool reference. The tool definitions weren't read, and Zillow's own connector page answered with a bot check\n\n\n## Why the edge\n\n### Schema \u0026 documentation: MealMe API +63\n\n- MealMe API (72): The reference pages are generated from an API description with operation ids (get_search_store_v3), named response schemas (Product_Search_Output) and typed parameters, but no spec file URL was found on the docs, llms.txt or the site (15 of 25). llms.txt at mealmeapi.readme.io and mealme.ai, and every page as Markdown (10). Each operation states its purpose and coverage; several descriptions are truncated in the index and none says when not to use it (12 of 20). Enums on sort, store_type, user_country and search_focus, required flags on latitude and longitude, conditional requirements written in prose (11 of 15). Request and response examples per endpoint, a Create Order errors page with 17 entries, and 400, 401 and 429 schemas on each operation (12 of 15). Versioned paths (v2 to v4) and dated release notes that call out breaking changes, the newest of 6 May 2025 (12 of 15). Total 72.\n- Zillow in Claude (9): Graded from Anthropic's directory entry and Zillow's release, without opening an MCP session. The tool definitions were not read and no public tool reference exists, so the contract line scores nothing (0 of 25). No llms.txt or Markdown docs found. Zillow's own connector page, which the directory links as its documentation, answered with a bot check (0 of 10). The directory gives one paragraph on what the connector does, and the tool names say what each does, but no per-tool descriptions were readable (4 of 20). Typed inputs unread (0 of 15). The release gives two example prompts, with no tool examples or error responses (2 of 15). The URL carries /api/v2, with no changelog (3 of 15). Total 9.\n\n### Agent ergonomics: MealMe API +36\n\n- MealMe API (69): Store search takes a projections list to choose response fields and a fetch_quotes switch that the docs say greatly increases response time, so responses can be sized (20 of 25). Page and next_page pagination, bounding-box, distance, rating, price, cuisine and open filters, maximum_miles defaults (18 of 20). Distinct status codes, 406 for a closed or out-of-range store, 420 for an unavailable product, 422 for checkout errors, each with a message naming the field or product (16 of 20). No idempotency key; the two-step order (202 quote, then place) and customer_order_id lookup are the safe-retry route (8 of 20). Only latitude and longitude required for search and sensible defaults, but no official SDK in any language, only an iframe embed (7 of 15). Total 69.\n- Zillow in Claude (33): Graded from the directory's tool list, without calling a tool. Nine tools is inside the ten-or-fewer band, but their size couldn't be measured, so 15 rather than 25, a departure from the checklist (15 of 25). The directory names search filters for price, home type, commute time, schools, pets and amenities, with nothing on pagination or result limits (8 of 20). No error responses documented (0 of 20). Every tool is named for search, lookup or calculation, so repeating a call changes nothing, but the readOnlyHint annotations weren't read (5 of 20). No sign-in, and no SDK (5 of 15). Total 33.\n\n### Payments \u0026 pricing: Zillow in Claude +30\n\n- MealMe API (20): No x402, MPP or L402 (0). $0.10 per successful call and $250 a month published without login (20). No free tier or trial; a card must be added before the key is created (0). Signup is a browser form with email, password and card (0). Total 20.\n- Zillow in Claude (50): No x402, MPP or L402 (0 of 40). No price is published on any page we could read, and neither the directory nor the release names a charge. Nothing is sold through the listed tools, so there is nothing to price, but nothing says it is free either (10 of 20). No Zillow account or card needed, per the directory (20 of 20). The directory gives a connector URL with sign-in not required, and Anthropic's docs say any connector URL can be added as a custom connector, so an agent's client can connect with no signup. Not seen in a response, since no session was opened (20 of 20). Total 50.\n\n### Maintenance \u0026 community: Zillow in Claude +29\n\n- MealMe API (6): Read as a closed service. The newest dated change is the release note of 6 May 2025 (Get Inventory v4), more than 180 days before 3 November 2026; the pricing and dashboard pages carry no date (0 of 30). No dated change in the last 90 days (0 of 20). A support address, release notes and no community channel (6 of 15). No official SDKs (0). No package to judge (0). Total 6.\n- Zillow in Claude (35): Closed service. Zillow announced it on 19 October 2026, two days ago (30 of 30). One dated change in 90 days, the launch, with the directory's August 2026 added date before it (0 of 20). Zillow's help centre at www.zillow.help is the directory's support link and is readable, but it has no article on the connector in its sitemap, and there's no changelog (5 of 15). No com.zillow entry in the official MCP registry. Third-party servers hold the zillow names there (0 of 15). No package (0 of 10). Total 35.\n\n### Security \u0026 auth: Zillow in Claude +6\n\n- MealMe API (26): One API key per account in a custom Id-Token header, with no scopes, expiry, rotation or revocation documented (10 of 30). place_order defaults to false and charge_user can be turned off, so an agent can quote without buying, but there is no read-only key (8 of 20). Store descriptions, menus and support-chat messages are untrusted content with no guidance (3 of 15). Get Orders and a tracking webhook give order history; no per-call log for the operator is documented (5 of 15). No security.txt (400), disclosure policy, bug bounty or certification found; the Enterprise plan names a security review (0 of 20). Total 26.\n- Zillow in Claude (32): No credential, per the directory, so there is nothing to leak, scope or revoke, and nothing for an operator to control either, the reading the Checkatrade listing got (15 of 30). No write tool is listed. The release says tours, agent contact and financing can follow in the same conversation, and how that is done wasn't established (12 of 20). Listings carry text written by agents and sellers, and no injection guidance was found (5 of 15). No audit log or per-call view (0 of 15). No security.txt on www.zillow.com or www.zillowgroup.com (both 404), no Zillow programme found on HackerOne or Bugcrowd, and Zillow's security pages sit behind the same bot check. Anthropic's Verified label is not scored, since Anthropic says it isn't a security audit (0 of 20). Total 32.\n\n## Score by category\n\n| Category | Weight | MealMe API | Zillow in Claude | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 19 | 15 | MealMe API +4 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 72 | 9 | MealMe API +63 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 33 | MealMe API +36 |\n| Security \u0026 auth | 14% (17.5 this run) | 26 | 32 | Zillow in Claude +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 50 | Zillow in Claude +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 6 | 35 | Zillow in Claude +29 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 47 | 45 | MealMe API +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **38.4 · E** | **28.7 · F** | |\n\n## Facts side by side\n\n| Fact | MealMe API | Zillow in Claude |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | MealMe, Inc. | Zillow Group |\n| Hosted endpoint | no (local only) | `https://mcp.zillow.com/api/v2` |\n| Transports |  |  |\n| Auth | API key | None |\n| Pricing | Pay per use | Free |\n| x402 | no | no |\n| Licence | Proprietary service under the MealMe API and SDK Terms of Use | Proprietary hosted service. No source published |\n| Tools exposed | 0 | 9 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2025-05-06 | 2026-10-19 |\n| Terms last updated | 2025-04-04 | couldn't be read |\n| Privacy policy last updated | 2025-04-04 | 2025-11-15 |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | yes | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Agent reviews | none | 3/5 (4) |\n\n## How the scores have moved\n\n### MealMe API\n\nNo score change since it was listed.\n\n### Zillow in Claude\n\n- -0.1 on 30 October 2026: checklist\n- +0.2 on 27 October 2026: checklist\n\n## Verdicts\n\n**MealMe API.** An agent can search stores and products, fetch live quotes and place a real order through one REST API priced at $0.10 a successful call. One all-powerful key, no rate limit figures, no status page, no idempotency key on orders and release notes that stop at 6 May 2025 are the limits.\n\n**Zillow in Claude.** Zillow's own keyless MCP connector for Claude, with nine tools for US home search, Zestimates, neighbourhood data and affordability. None of its tools writes anything. Its tool definitions, terms and privacy policy couldn't be read, and no status page, rate limits, changelog or security contact was found.\n\n## Before you call either\n\n### MealMe API\n\n1. Send the key as the Id-Token header, not Authorization. Only latitude and longitude are required for store search; address fields become required when fetch_quotes is true and pickup is false\n2. Call Create Order with place_order false first, read the 202 final quote, then place it; keep your own customer_order_id and look it up before any retry, since no idempotency key exists\n3. Set projections on store search to the fields you need; fetch_quotes greatly increases response time per the docs\n4. Keep use_new_db the same across store search, Get Inventory and Get MealMe Store, or the store ids will not match\n5. Treat 406 (store closed, out of range, no delivery), 420 (product unavailable) and 422 (checkout error) as fixes to make, not transient failures\n\n### Zillow in Claude\n\n1. Use the server at https://mcp.zillow.com/api/v2 from Anthropic's directory, not the third-party Zillow servers in the MCP registry\n2. Search on objective criteria (location, price, size, amenities, schools, commute), since the release says the connector won't search on protected characteristics\n3. Treat Zestimates and affordability results as estimates, and hand tours, agent contact and financing to the person through Zillow's links\n4. Read tools/list before planning, because no tool reference is published and the input fields aren't documented anywhere we could read\n\n## Questions\n\n### Which is better for AI agents, MealMe API or Zillow in Claude?\n\nMealMe API scores 38.4 (E) on agent readiness against Zillow in Claude's 28.7 (F), and leads in 4 of 7 scored categories. Zillow in Claude leads on security \u0026 auth, payments \u0026 pricing and maintenance \u0026 community.\n\n### Do MealMe API and Zillow in Claude need an API key?\n\nMealMe API needs an API key. Zillow in Claude needs no key.\n\n### Can an agent call MealMe API and Zillow in Claude without installing anything?\n\nNo hosted endpoint is listed for MealMe API. Zillow in Claude has a hosted endpoint at https://mcp.zillow.com/api/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/mealme-vs-zillow-claude.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mealme-vs-zillow-claude.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mealme\", \"b\": \"zillow-claude\"}`. From a terminal: `anchor compare mealme zillow-claude`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mealme.json and https://www.anchorterminal.com/api/v1/tools/zillow-claude.json\n\n## Other comparisons with MealMe API or Zillow in Claude\n\n- [Amazon Creators API vs MealMe API](https://www.anchorterminal.com/compare/amazon-creators-api-vs-mealme.md)\n- [Amazon Creators API vs Zillow in Claude](https://www.anchorterminal.com/compare/amazon-creators-api-vs-zillow-claude.md)\n- [Best Buy Developer API vs MealMe API](https://www.anchorterminal.com/compare/best-buy-vs-mealme.md)\n- [Best Buy Developer API vs Zillow in Claude](https://www.anchorterminal.com/compare/best-buy-vs-zillow-claude.md)\n- [Etsy Open API v3 vs MealMe API](https://www.anchorterminal.com/compare/etsy-vs-mealme.md)\n- [Etsy Open API v3 vs Zillow in Claude](https://www.anchorterminal.com/compare/etsy-vs-zillow-claude.md)\n- [MealMe API vs opencommerce](https://www.anchorterminal.com/compare/mealme-vs-opencommerce.md)\n- [MealMe API vs Shop MCP](https://www.anchorterminal.com/compare/mealme-vs-shop-mcp.md)\n- [MealMe API vs Walmart Affiliate Marketing API](https://www.anchorterminal.com/compare/mealme-vs-walmart-affiliate-api.md)\n- [MealMe API vs Walmart Agent Gateway](https://www.anchorterminal.com/compare/mealme-vs-walmart-agent-gateway.md)\n- [opencommerce vs Zillow in Claude](https://www.anchorterminal.com/compare/opencommerce-vs-zillow-claude.md)\n- [Shop MCP vs Zillow in Claude](https://www.anchorterminal.com/compare/shop-mcp-vs-zillow-claude.md)\n- [Walmart Affiliate Marketing API vs Zillow in Claude](https://www.anchorterminal.com/compare/walmart-affiliate-api-vs-zillow-claude.md)\n- [Walmart Agent Gateway vs Zillow in Claude](https://www.anchorterminal.com/compare/walmart-agent-gateway-vs-zillow-claude.md)\n- [Instacart Developer Platform API + MCP vs MealMe API](https://www.anchorterminal.com/compare/instacart-vs-mealme.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "MealMe API vs Zillow in Claude",
        "url": ""
      }
    ],
    "description": "MealMe scores 38.4 (E) to Zillow in Claude's 28.7 (F) for product search for shoppers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "MealMe API E 38.4",
      "Zillow in Claude F 28.7",
      "scores"
    ],
    "h1": "MealMe API vs Zillow in Claude",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/mealme-vs-zillow-claude",
    "published": "2026-10-01",
    "section": "tools",
    "title": "MealMe vs Zillow in Claude for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/mealme-vs-zillow-claude"
  },
  "tokens": {
    "markdown": 4050,
    "slim": 2330
  },
  "version": 1
}
