Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "explain_concept"
⟨153 unchanged words⟩ , and names where to go next. A trade word works too — "plumbers", "electrician", "lawyer", "locksmith": it is read against the NAME of every code at every level (the Google category "Plumber", the NAICS title "Offices of Lawyers", the SIC group "Legal Services", the MCC description), and the answer says which level named it and gives the broader parent. A SIC or NAICS prefix (`17`, `238`) is ⟨154 unchanged words⟩
Changed the definition of "quote_list"
⟨963 unchanged words⟩ also property_classification, entity_type, reachability_tier, filed_by, formation_month.ARecordsrecordour pipeline has notyetclassified read `Unclassified`: counted with the groups so rows add up, ranked last (never leading a "largest" list), with the classifiedreadsshare`Stillinclassifying``classification` — the classifier places more of them on ⟨32 unchanged words⟩
Changed the definition of "browse_leads", "list_filterable_fields" and "quote_list"
⟨12 unchanged words⟩ (`summary=True`) its counts, facets and price. **Type it the way your buyer says it.** Filter values are understood, not matched literally: "residential", "cell", "CST", "Texas", "on fire", "Denver metro" and "working from home" all resolve (case, spacing, plurals and reviewed words), and every response echoes what was understood in `interpreted_values` (typed → stored). A value that matched nothing comes back with `value_hints` — the closest real values and, for a closed list, every allowed value. Read both before telling a human a count is zero or a field is missing. Two ways to say which records, one contract ⟨1079 unchanged words⟩ ]`, one or more keys over anyof the 76 sortable fields (`asc` / `desc`); a bare field name still works with `sort_dir`. Tier fields sort by rank (reachability_tier On Fire > Very Hot > Hot > Warm > Cold; contact_relevance_tier Decision Maker > Likely Decision Maker > Probable Contact > Uncertain Contact > Unlikely Decision Maker; contact_confidence_tier Verified Contact > Likely Contact > Possible Contact > Uncertain Contact; industry_confidence_tier confirmed > likely > possible > unknown; new_business_tier Confirmed new > Likely new > Uncertain > Likely established > Estao
Changed the definition of "browse_leads", "explain_concept", "interpret_list" and 1 more
⟨24 unchanged words⟩ "default":null,"title":"Filters"},"group_by":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Group By"},"include_existing":{"default":false,"title":"Include ⟨107 unchanged words⟩
MapTranslate a classification code, or map YOUR word for a concept to this surface's fields — ask before concluding absence. **Codes — the crosswalk.** Every record carries NAICS, SIC, the Google Business category and the payment MCC, tied together by our own taxonomy. Give ANY one — `term` "MCC 5812", "SIC 1711", "NAICS 238220", "google category plumber" (or `system` = naics / sic / mcc / google_category plus `code`) — and get the other three back: the equivalents in each system, our industry, the ready-to-use `filters` for each system, and a live count (`total` is the whole crosswalk neighborhood; `total_exact` only industries that carry the code itself; each industry is marked `exact` or `related`). A code we do not carry directly WIDENS — to its parent group, then to the industries the crosswalk ties it to — and `widened` says which step it took; an empty answer means nothing relates to it, and names where to go next. A SIC or NAICS prefix (`17`, `238`) is a whole group. A payments seller starts from an MCC, a web designer from a Google category, a lender from NAICS — all reach the same list. Hand the `filters` to `browse_leads` / `quote_list`. **Concepts.**
Changed the definition of "data_quality_scorecard"
⟨273 unchanged words⟩ Omit to get every state, worst score first.The all-states form evaluates the full book (~800k records, ~40s) — when you only need one state, pass it: per-state responses return in seconds.sample_limit: Max sample offenders to return per ⟨27 unchanged words⟩ (schema_version, freshness, source, score_versions, access_level). Served from a cache refreshed in the background: `computed_at` / `age_seconds` date it, `stale: true` means the refresh is behind (report the numbers with their age), `status: "computing"` means none exists yet. Never call it again for a fresher one.
Changed the definition of "browse_leads", "checkout_list", "list_filterable_fields" and 1 more
⟨542 unchanged words⟩ what the state filing did. The default is Just started (`formation`) — abusiness that did not exist before its filing — so a plaincall never returnsan existing business that the state gave a new documentnumber.AskWidenforwiththe`include_existing=True` (every existing business with a
Changed the definition of "browse_leads", "data_quality_scorecard", "find_lead_by_glid" and 1 more
⟨537 unchanged words⟩ Real Estate", "Finance"]}, ]) `filing_kind` says what the state filing did. The default is `formation` — a business that did not exist before its filing — so a plain call never returns an existing business that the state gave a new document number. Ask for the triggers by name: `filing_kind in ["registration", "conversion", "name_change", "reinstatement", "address_change"]` returns existing businesses the state published a fresh event about (new to market, changed form, new brand, reactivated, moved); `lead_class` on every row carries the same answer in the buyer's words. Never mix the two in one order — they are priced and sold as separate lists. Closed businesses (`dissolution`) are excluded unless named or `include_non_operating=True`. Every row also carries `last_event` and `last_event_date` — the most recent thing the state published and the day it published it. Filter grammar (rendered from the schema — `list_filterable_fields ⟨110 unchanged words⟩ lte, between; `geo_polygon` within; `geo_radius` within; `has_phone_or_email`eq.eq; `filing_kind` eq, neq, in, not_in. `neq`, `not_in`, `does_not_contain`, `not` keep rows where ⟨122 unchanged words⟩ `not` groups). Use `list_filterable_fields` to discover the
Changed the definition of "checkout_list", "create_checkout" and "quote_list"
⟨490 unchanged words⟩ recorded as a request for that CRM). `offer_code`: the offer code your human was given, if any — the same one you quoted with. Every grade then bills at the lower of list and the offer; a code bound to one buyer needs their `customer_email`; a code that cannot cover the whole list answers with the cap to set. Returns: `checkout_url`, `order_id`, `session_id`, `records`, `total_cents` ⟨12 unchanged words⟩ `matching`, `sellable`, `verified_one`, `verified_both`, `no_channel`, `unnamed`), `offer` (when a code priced it), `saved_list` (`id`, `url`, `name`, and ⟨38 unchanged words⟩
⟨84 unchanged words⟩ ":null,"title":"List Id"},"offer_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Offer Code"},"states":{"anyOf":[{"items":{" ⟨14 unchanged words⟩
Changed the definition of "create_checkout", "describe_surface" and "list_products"
Checkout link for aproductlistor(olderlistname)
Mint a hosted Stripe Checkout link—for ashelflistproduct,youorshapedfor—
Changed the definition of "browse_leads"
⟨288 unchanged words⟩ / `entity_type_raw` if you ever need them. "Contacts" is the buyer's word for the records themselves — every record names a person, so "contacts for newbusinessessalons"/needs no extra filter. "decision-makersDecision-makers" = filter `contact_relevance_tier in ["Decision Maker" ⟨5 unchanged words⟩ our scored is-this-the-right-person opinion, available in EVERYstate.state; apply it when the buyer asks for decision-makers, never silently. (`role_is_decision_maker: true` is the stricter, title-attested variant
Certificate recorded, valid to 2027-03-22
Authorization not required
First tool surface recorded: 13 tools (server version 1.27.1)
Showing the latest 13 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨15 unchanged words⟩ before building `browse_leads` filters you haven't used before. Each field lists the `allowed_values` when its vocabulary is closed and its `accepted_words` — the buyer's own words that mean a stored value ("cell" → mobile, "CST" → the Central zones) — so you never have to learn our spellings; typed values are understood anyway. Args: section: `fields` (default) — every ⟨431 unchanged words⟩
⟨185 unchanged words⟩ — relay it instead of a silent $0. **Values are understood, not matched literally.** Filter values are understood, not matched literally: "residential", "cell", "CST", "Texas", "on fire", "Denver metro" and "working from home" all resolve (case, spacing, plurals and reviewed words), and every response echoes what was understood in `interpreted_values` (typed → stored). A value that matched nothing comes back with `value_hints` — the closest real values and, for a closed list, every allowed value. Read both before telling a human a count is zero or a field is missing. **Billing discipline — read before quoting money to ⟨733 unchanged words⟩
{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Code"},"system":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"System"},"term":{"title":"Term","type": ⟨7 unchanged words⟩
⟨31 unchanged words⟩ days with a phone", "NAICS 238220", "SIC 1711", "MCC 5812", "google category plumber") and you get back a list shape ⟨84 unchanged words⟩ a masked field (`contact_name`, `email_primary`, `phone_primary`). Every classification system is an entry point — a seller who thinks in MCC, SIC, NAICS or Google category gets the same list. A code we do not carry directly WIDENS to its parent group or the industries the crosswalk ties it to, and `assumed` names the step; to see the other systems' equivalents for a code, call `explain_concept`. When the buyer asked a question or raised ⟨200 unchanged words⟩
⟨805 unchanged words⟩ offer code your human was given, if any. group_by: Up to two fields to cross-tab the summary by, e.g. `["property_classification", "naics_2_digit"]` — residential vs. commercial by industry in ONE call. Adds a `groups` block: the four counts and the `share` per group, the top 50 groups, the rest rolled into `other`. Groupable — classification: industry_sector, industry_name, naics_2_digit … naics_6_digit, sic_2_digit … sic_4_digit, gmb_category, mcc; geography: state, msa_name, county_fips, principal_city, principal_zip, neighborhood, time_zone, tract_income_band; also property_classification, entity_type, reachability_tier, filed_by, formation_month. A record not yet classified reads `Still classifying` — the classifier places more of them on every pipeline run, so a repeat call later is a better count. Inline shapes only. Returns: The summary contract described above. Keyless ⟨10 unchanged words⟩
⟨24 unchanged words⟩ "default":null,"title":"Filters"},"group_by":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Group By"},"include_existing":{"default":false,"title":"Include ⟨60 unchanged words⟩
⟨24 unchanged words⟩ "default":null,"title":"Filters"},"include_existing":{"default":false,"title":"Include Existing","type":"boolean"},"include_non_operating":{"default":false,"title":"Include ⟨99 unchanged words⟩
⟨490 unchanged words⟩ recorded as a request for that CRM). `include_existing`: the order is Just started only — brand-new businesses — unless you pass this (or name `filing_kind` / `business_origin` in `filters`); then existing businesses with a new filing are in the file too, labeled, and the file's Read Me says you asked for them. `offer_code`: the offer code your human was given ⟨117 unchanged words⟩
⟨66 unchanged words⟩ "default":null,"title":"Filters"},"include_existing":{"default":false,"title":"Include Existing","type":"boolean"},"lane":{"default":"best","title": ⟨42 unchanged words⟩
⟨25 unchanged words⟩ `fields` (default) — every one of the8185 filterable fields as `{"field", "label ⟨23 unchanged words⟩ a narrower pseudo-field override), `sortable` flags the7476 fields `sort` accepts, `masked` flags `contact_name`, `email_primary` ⟨253 unchanged words⟩ geo: within. Narrower pseudo-fields — `run_manifest_id` eq; `cluster_ref` eq; `missing_stage` eq; `created_at` gt, gte, lt, lte, between; `geo_polygon` within; `geo_radius` within; `has_phone_or_email` eq; `filing_kind` eq, neq, in, not_in; `new_business_tier` eq, neq, in, not_in. `neq`, `not_in` ⟨95 unchanged words⟩
⟨728 unchanged words⟩ include_held: Include inactive-or-holding entities (default False). include_existing: Include existing businesses with a new filing (a registration, a conversion, a reinstatement, a move, a rename) — the default quotes Just started only, exactly as Browse and the file do. Naming `filing_kind` / `business_origin` in `filters` widens on its own. lane: `all` / `best` / `contact` — asks ⟨45 unchanged words⟩
⟨24 unchanged words⟩ "default":null,"title":"Filters"},"include_existing":{"default":false,"title":"Include Existing","type":"boolean"},"include_held":{"default":false,"title":"Include ⟨52 unchanged words⟩
⟨44 unchanged words⟩ consistency (names in CRM-ready Title Case, notALL-CAPSALL-CAPS; the address's own state agrees with its ZIP), and standardization (how much of the ⟨279 unchanged words⟩
⟨86 unchanged words⟩ last update, source, score_versions, access_level). Includes `history`: every event the state has published about this business, newest first, each with `published_date`, `event` (plain words) and `effective_date` when it differs; for a business that changed form, `prior_entity_ref` and `prior_entity_formation_date` name the record it came from. The `entity` carries `filing_kind` and `lead_class`. The history is free without a key; only the person is masked. Raises ValueError if the idis notshaped like a Lead ID or no record matches.
⟨25 unchanged words⟩ `fields` (default) — every one of the7781 filterable fields as `{"field", "label ⟨23 unchanged words⟩ a narrower pseudo-field override), `sortable` flags the7174 fields `sort` accepts, `masked` flags `contact_name`, `email_primary` ⟨266 unchanged words⟩ lte, between; `geo_polygon` within; `geo_radius` within; `has_phone_or_email`eq.eq; `filing_kind` eq, neq, in, not_in. `neq`, `not_in`, `does_not_contain`, `not` keep rows ⟨91 unchanged words⟩
⟨84 unchanged words⟩ ":null,"title":"List Id"},"offer_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Offer Code"},"product_id":{"anyOf":[{"type":"string ⟨24 unchanged words⟩
⟨588 unchanged words⟩ / shape, lane and cap to `checkout_list`. **Offer codes.** If your human was given an offer code — a price we agreed with them, like `GL-7K3Q9M` — pass it as `offer_code` here AND on `checkout_list`, so the quote and the payment link carry the same price. A code is a ceiling: every grade bills at the lower of list and the offer, never above list, and the reply adds an `offer` block (what is left on it, when it expires). A code that cannot be used answers with the reason in plain words — relay it, then quote again without the code for list price. Args: list_id: A saved list id. Mutually ⟨52 unchanged words⟩ — the dial the quote is solved against. offer_code: The offer code your human was given, if any. Returns: The summary contract described above. Keyless ⟨10 unchanged words⟩
⟨53 unchanged words⟩ ":null,"title":"List Id"},"offer_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Offer Code"},"states":{"anyOf":[{"items":{" ⟨14 unchanged words⟩
⟨7 unchanged words⟩ :false,"title":"Checkout link for aproductlistor(olderlistname)"}
What GoodLeads is, who buys it and how every record is built — call this to explain or vet us; to price a list, start with interpret_list. It is for anyone who wins by reaching a business owner first: to sell what a new owner needs now, to be the name they already know a year from now, to spot their own customer starting a business, or to build a product on every new business. Never rule your owner out from this description — pass what they sell to `interpret_list` and read the free count from `quote_list`. Leads with what the buyer gets and how ⟨40 unchanged words⟩
Shelfproducts(starter lists)
Thepre-shapedshelf — ready-made business type × statelists.lists, with live counts.EachReturnsproducttheissamealiveready-madedocumentlist`list_starters`ofreturnsnewly— `{"count":formedN,businesses"starters":for[...]}`, oneentry per (state, business typein) withoneitsstatedisplay(or`label`,acrosstheeveryexactlive`filters`state).itReturnsopens`product_id`with, the graded`name`counts (`matching`,`description``sellable`,`state``verified_one`, `verified_both`) and `price_from_cents` (nullthe=name-and-addressallgradelive—states),the`lead_count`floor, not a flat`price_cents`price) — plus a `note`. The shelf is the starter lists: every count here is live,`period`the price is quoted per record by `quote_list`, and`stripe_price_id`.the`period`:payment`monthly`link=comes from `checkout_list`. Every purchase is one-time; astandingbuyerorderwhobilledwantseachnewperiod;filingsabsentto=keepacomingone-timesetspurchase. `stripe_price_id`upisaStripe'sstandingownorderidfromforathatpaidpriceorder's(nullreceipt,untilbilled monthly for the records actually delivered.catalogTheresyncs)are—noinformational,fixed-priceneverproductssomethingandtonothingpasshereback.carriesPricingaeverywhere`product_id`:followspasstheaonestarter'sgraded`filters`ruleto—`quote_list` for the exactpercountrecordand price,bythenwhattothe`checkout_list`recordforcarriesthe(link. name+andaddress;address $0.25 per record · plus one verifiedphone oremail;email $0.50 · plus both,verified)$0.70—(priceandruleonlyv1; live prices always come from the summary call's `prices` block). Only sellable records (thefiling names a person) are everbilled. For a shape of your ownbilled,or to see live graded countsandtheexactselectedpricerecordsbeforearebuying,frozenpreferwhen thebuyingjourney: `list_starters` (thelinkshelfiswithminted,livesocounts)whatoris`interpret_list`billed→is`quote_list`what→is`checkout_list`.delivered. Evaluate beforebuying: `browse_leads` withthe samevertical/state`filters` shows real maskedrecords for free.To buy a shelf product as-is, pass its `product_id` to `create_checkout`.
before
—after
{"additionalProperties":true,"title":"list_productsDictOutput","type":"object"}⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"Shelfproducts(starter lists)"}