- Sizing an audience is free. You can learn how many people match an ICP, and what pulling them would cost, without spending anything.
- Every response reports what it actually cost. Each tool returns a
costblock containing the API’s ownmeta.amount_charged, so an agent telling a human what it spent is quoting the biller, not guessing.
Requires MCP server 0.9.0 or newer for resources, prompts and the
vocabulary guard; the tools themselves work from 0.7.0. Remote users
(
https://mcp.generect.com/mcp) are always on the deployed version. Local
users should run npx generect-ultimate-mcp@latest.Free tools
Billable tools
Exact per-operation prices for your account are in
billing settings, and
get_balance
returns them too. See Pricing for the list rates.
Filter values are matched exactly — and two of them are not validated
This is the most expensive thing to get wrong, so it is worth stating plainly. The search endpoints do not validate all filters the same way:company_industries: ["Fintech"] is not a LinkedIn industry, so it matches
nothing and you get a perfectly successful count of zero. That is
indistinguishable from a real empty audience, and it is how an agent ends up
telling a user “there is nobody like that” when the truth is “that is not the
name of an industry”.
From 0.9.0 the MCP server checks these values before it sends anything:
- an unknown industry, headcount bucket or company type is refused locally,
with the closest valid names —
Fintech→Financial Services,50-200→51-200. Nothing is sent and nothing is charged; - a value that is merely mis-spelled or mis-cased is corrected
(
software development→Software Development), because matching is exact; - an unknown seniority or job function is a warning rather than a refusal:
the engine does match loosely (
Ownerfinds people even though the canonical label isOwner / Partner); allow_unlisted_values: trueoverrides the check, for the case where the API has gained a value the server’s snapshot does not have yet.
Resources
The vocabularies are exposed as MCP resources, so a client can read the exact list once instead of guessing:
Reading a resource is free and touches no data endpoint.
Prompts
The server also ships workflow prompts, which appear as slash commands in clients that support them:size_an_audience, build_prospect_list,
enrich_my_list, spend_report. Each starts from the free step.
Spend ceiling
A row cap bounds how many results you get, not how much you pay — the per-row price depends on the mode and your tier. So any call whose worst case exceeds the server’s per-call ceiling (default $5,MCP_MAX_SPEND_PER_CALL) is refused
with the exact figure, and has to be repeated with confirm_spend_usd set to at
least that amount.
This is checked before start_bulk_job submits, because a bulk job reserves
its whole cost at submit time and cannot be called back.
Database or realtime
Every search and enrich exists in two modes — cacheddatabase (sub-second,
cheaper, free counts, core filters) and live realtime (5–60s, pricier,
billable counts, every filter). See
Database vs Real-time.
Tools take a mode parameter:
Counting is deliberately stricter: a realtime count costs money, so
count_leads
and count_companies never run one implicitly. If your filters need the live
index, the tool returns the blocking filter names and the price, and waits for
you to ask again with mode: "realtime".
The order to call things in
id across preview, search and enrich, so once a lead is
in your list you never have to search for them again — pass the id to
enrich_lead, generate_email or find_phone directly.
When to use the REST API instead
MCP is the right surface when a model is choosing what to fetch. Call the REST API directly when you need something MCP deliberately does not do:- pulling more than 100 rows in one request
- pipelines with no model in the loop (nightly syncs, CRM backfills)
- your own retry, concurrency and storage policy