GoodLeads
Find new business owner contacts the morning the state posts a filing. Preview free, pay per record.
| Endpoint | https://mcp.goodleads.club/mcp (streamable-http) |
|---|---|
| Registry version | 1.0.0 |
| Now | 14 tools · grade F (38) · pin ts_d81cee1c611499c91fd4f17287733995 · protocol 2025-06-18 |
| First / last listed | 2026-10-24 18:53 UTC / 2026-10-24 18:53 UTC |
| Grade over time | 2026-10-24: F (38), 14 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: find_lead_by_glid data_quality_scorecard field_fill_rates browse_leads interpret_list quote_list list_starters checkout_list list_filterable_fields explain_concept list_live_states describe_surface list_products create_checkout
find_lead_by_glid | One record in full, by its Lead ID (e.g. `GL-CO-00042`).
Use this when you already hold a Lead ID — from a file, a CRM, a receipt —
and want everything we know about that business and its owner: the
business, the primary contact, both scores, every attribute, and where
each field came from.
Args:
glid: The Lead ID, e.g. `GL-CO-00042` — the `lead_ref` field on every
params: glid* |
data_quality_scorecard | How clean is the data a buyer would receive in a state — numbers, not adjectives.
The scorecard grades the records a buyer would receive on mechanical
conformance across four dimensions — format (state/phone/email/zip),
completeness (a name for who filed it, an address present), consistency (names in
CRM-ready Title Case, not ALL-CAPS; the address's own state agrees with its
Z params: state, sample_limit |
field_fill_rates | How complete is every column in the file a buyer receives — exact counts, one call.
Answers "what share of the records carries a value in each field?" for every
delivered column, in the file's own order. It is exact (counted from stored
values over every sellable record, not sampled) and always current (refreshed
whenever the data changes; `computed_at` dates it). Use it before pr params: state |
browse_leads | Browse leads — rows for a shape or a saved list, or (`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 params: state, filters, page, page_size, sort, sort_dir, include_non_operating, include_existing, list_id, states, summary, lane, cap, group_by |
interpret_list | Start here: the buyer's own words become a list we can count, price and sell.
Give it what the buyer would type ("cleaning companies in Texas", "denver
plumbers formed last 30 days with a phone", "NAICS 238220", "SIC 1711",
"MCC 5812", "google category plumber") and you get
back a list shape in the one filter contract — `states`, `filters`, `sort`,
`lane`, `cap` — with a one-s params: text*, state, current |
quote_list | What this list costs before anyone pays: how many records name a person, and the price by grade.
Pass a saved list (`list_id`, the 8-char id in `#browse?list=<id>`) or an inline
shape (`filters` + `states`; omit `states` for every live state:
CO, CT, FL, NY, OR, TX, VA). You get the same numbers the buy page shows a person:
`matching`, `sellable`, `verified_one`, `verified_both`, params: list_id, states, filters, include_held, lane, cap, offer_code, include_existing, group_by |
list_starters | Ready-made lists to start from: every live state × business type, with live counts and a starting price.
Returns one document: `{"count": N, "starters": [...]}` — one entry per
(state, business type): the display `label`, the exact `filters` the card
opens with, the graded counts (`matching`, `sellable`, `verified_one`,
`verified_both`) and `price_from_cents` (the name-and-address params: none |
checkout_list | Turn a quoted list into a payment link a person completes — the buyer gets the file within a minute of paying.
Creating the link costs nothing and charges nobody — payment only happens
if a human opens the returned `checkout_url` and completes it on Stripe's
hosted page; the purchase is complete only when that person finishes
payment. Nothing is charged until a person completes ch params: list_id, filters, states, lane, cap, delivery, customer_email, crm_connection_id, connector_crm_name, offer_code, include_existing |
list_filterable_fields | The filter contract, from the schema endpoint (`GET /api/v1/schema/attributes?include=grammar`): fields, grammar, or recipes.
Call this 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) params: section |
explain_concept | Translate 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 / params: term*, system, code |
list_live_states | Where we are live right now — the state codes, read from production, never a cached page.
Call it before promising a buyer a state: a state not in this list is not
live yet. Returns `[{"state": "CO"}, ...]` — codes only, no counts. For how
many records a state holds, `quote_list` (or `browse_leads(summary=True)`)
on that state returns the live graded counts.
params: none |
describe_surface | 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. Nev params: none |
list_products | The shelf — ready-made business type × state lists, with live counts.
Returns the same live document `list_starters` returns —
`{"count": N, "starters": [...]}`, one entry per (state, business type)
with its display `label`, the exact `filters` it opens with, the graded
counts (`matching`, `sellable`, `verified_one`, `verified_both`) and
`price_from_cents` (the name-and-addres params: none |
create_checkout | Mint a hosted Stripe Checkout link for a list you shaped — the same code as `checkout_list`.
Creating the link costs nothing and charges nobody — payment only happens
if a human opens the returned `checkout_url` and completes it on Stripe's
hosted page; the purchase is complete only when that person finishes
payment.
The dedicated buying journey is: `interpret_list` (the
params: product_id, list_id, filters, states, lane, cap, delivery, customer_email, crm_connection_id, connector_crm_name, offer_code |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.