# generect-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/generect/generect_mcp.git  
**GitHub Stars:** 1  
**npm Downloads (last month):** 1270  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/generect-mcp

## Description
B2B lead generation and company search through Generect Live API for sales prospecting.

## Tools
Capabilities this server exposes over MCP:

- **count_leads** — How many leads match an ICP, and what pulling them would cost at this account's prices. Free: this call never spends credits. It is the only way to size an audience without paying per row, which makes it the first step before search_leads. A realtime count is not free ($0.04 flat at the Tier 0 list price); it runs only when mode:"realtime" is passed explicitly.
- **count_companies** — How many companies match an ICP, and what pulling them would cost. Free: this call never spends credits. The first step before search_companies. As with count_leads, a realtime count costs $0.04 at the Tier 0 list price and runs only when mode:"realtime" is passed explicitly.
- **get_balance** — Account balance, month-to-date usage and this account's own per-operation prices. Free: this call never spends credits. balance_usd is the wallet; grants_usd is bonus and plan credit (sign-up bonus, perks, plan allowance), reported apart. Grants are spent first, but only on the operations each one covers: a promo perk or a plan allowance may not pay for API calls, and a perk never pays for phone numbers, so the two figures do not add up to what the account can spend. Useful before a batch of paid work (what the user can afford) and after it (what was spent). These are the account's real rates; prices in tool descriptions are list prices.
- **health** — Liveness check. Free: this call never spends credits. Confirms the MCP server is up, reports its version and (unless disabled) verifies the credential against a free account endpoint. It never touches a paid data endpoint, so it is safe for monitors.
- **preview_leads** — A cheap look at the actual people behind a count, before a full search. Billable: about $0.002 per returned row at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Preview rows carry a Generect `id`, so the usual flow is: preview many, pick the few that fit, then enrich_lead or generate_email only on those. By the API contract preview rows are masked (no LinkedIn URL, domain, email or phone); an account that gets more than that cannot rely on it.
- **search_leads** — Return leads (people) matching an ICP. Free by default while the account has free thin rows left today (a daily quota; detail "thin" guarantees $0). detail "full" is billable: about $0.02 per returned row (0 rows costs $0) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Realtime, and an automatic escalation to it, are billed per row too. count_leads sizes the audience for free first. Rows never include email or phone; generate_email (which takes the lead id) and find_phone add those for the ids you keep. Ordering is not stable, so pages are fetched by passing the ids you already have in exclude_ids rather than by offset.
- **search_companies** — Return companies matching an ICP. Free by default while the account has free thin rows left today (a daily quota; detail "thin" guarantees $0). Thin rows carry no domain; enrich_company adds it for the ones you keep. detail "full" is billable: about $0.02 per returned row (0 rows costs $0) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Realtime is billed per row too. count_companies sizes the result for free first. headcount_range is a snapshot taken when the record was indexed and can lag the company's current size; the filter itself is applied at query time.
- **resolve_profile** — Reveal who is behind an anonymous LinkedIn profile link. Billable: about $0.0005 per resolved profile (an unresolvable reference is free; duplicates in one batch are billed per row) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Takes the obfuscated links that Sales Navigator leaves in exports, CRMs and ad platforms (`linkedin.com/in/ACwAA…`), plus Sales Navigator lead URLs, bare profile ids and urns, and returns the real profile URL and identity. `profiles` (up to 50) resolves a batch in one call. The `id` it returns is the identifier enrich_lead, generate_email and find_phone accept, so this is the cheap first step before a full record. Returns identity only (no location, company or work history; enrich_lead has those). The numeric member id is not accepted as input (LinkedIn answers 403 to it); it comes back as `linkedin_id`.
- **enrich_lead** — Full profile for one known person, by Generect id, LinkedIn URL or work email (reverse lookup). Billable: about $0.02 per record found (not-found is refunded) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Not found costs nothing. The `id` from a search or preview result is the most accurate identifier. start_bulk_job handles many people at once.
- **enrich_company** — Full profile for one known company, by Generect id, LinkedIn URL, domain or name. Billable: about $0.02 per record found (not-found is refunded) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Not found costs nothing. Domain is the most reliable identifier after id; name matching is fuzzy.
- **get_lead_by_url** — Alias of enrich_lead for a LinkedIn profile URL, kept for backwards compatibility. Billable: about $0.02 per record found (not-found is refunded) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. enrich_lead does the same and also accepts a Generect id (the most accurate identifier) or an email for reverse lookup.
- **generate_email** — Find and verify a work email. Billable: about $0.02 per VALID email found (a miss is free) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. Identifies the person by lead_id (most accurate), LinkedIn URL or first name, last name and domain. `candidates` resolves several people in one call; more than 10 go to an async bulk job instead, which returns a job_id for get_bulk_job.
- **validate_email** — Check deliverability of emails you already have. Billable: about $0.005 per email submitted (every address is billed, whatever the verdict) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. This is the one operation where every submitted address is billed: the verdict is the deliverable. An address generate_email returned as valid is already verified, so validating it again only adds cost.
- **find_phone** — Find a phone number for one person. Billable: about $0.4 per phone found (a miss is free) at the Tier 0 list price. Accounts can pay a different rate: get_balance returns this account's prices, and every response reports what was actually spent in cost.amount_charged_usd. The most expensive operation here, roughly 20x an email lookup, so it suits people the user has already qualified rather than a whole list. start_bulk_job takes an approved list.
- **start_bulk_job** — Submit up to 50 records for asynchronous processing and get a job_id back. Billable at the same per-record rate as the single-record tool, and the whole cost is reserved at submit time: a submitted job keeps running (and charging) even if nobody polls it. Meant for a list the user has approved. get_bulk_job polls it, and a webhook (create_webhook) reports when it finishes.
- **get_bulk_job** — Status and results of a bulk job. Free: this call never spends credits. Polling is free (the work was billed at submit time); a few seconds between polls is enough.
- **list_webhooks** — List the webhook endpoints registered for bulk-job completion events. Free: this call never spends credits.
- **create_webhook** — Register a URL that receives bulk-job completion events, so scheduled or unattended workflows are notified instead of polling. Each event carries the job's results (emails, phone numbers or records) in its body. Free: this call never spends credits.
- **update_webhook** — Change the URL, events or signing secret of a registered webhook. Free: this call never spends credits. A new URL changes where completion events, and the results they carry, are delivered; a new event list changes which events are sent.
- **delete_webhook** — Delete a registered webhook; its endpoint stops receiving completion events. Free: this call never spends credits.
- **test_webhook** — Send a test event to a registered webhook endpoint. Free: this call never spends credits.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "generect-mcp": {
    "command": "npx",
    "args": ["-y","generect-ultimate-mcp"],
    "env": {
      "GENERECT_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `GENERECT_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What generect-mcp does

generect-mcp gives MCP-compatible agents access to Generect people and company data. Agents can size lead or company audiences by ICP, search the database, inspect a small preview, resolve obfuscated LinkedIn references, and retrieve full records for selected entities.

The server also supports contact discovery. `generate_email` finds and verifies work addresses, `validate_email` checks addresses already available, and `find_phone` looks for a phone number for a known person. Company and lead enrichment accepts Generect IDs and other identifiers such as LinkedIn URLs, domains, names, or work emails where supported.

Bulk processing handles up to 50 records per submission. Jobs return a `job_id`, can be checked with `get_bulk_job`, and can notify a registered webhook when processing completes.

## How it works

A cost-conscious workflow starts with `count_leads` or `count_companies`, which reports audience size and the account's price for the next operation without spending credits. Thin database rows from `search_leads` and `search_companies` are free while the account's daily quota is available. These rows contain enough information to select people or companies but omit data such as email addresses, phone numbers, domains, and work history.

After selecting records, an agent can call the appropriate enrichment or contact tool by ID. Every response includes the amount actually charged, and `get_balance` reports wallet funds, grants, usage, and account-specific operation prices. Database and realtime modes are available: automatic mode can escalate when a filter is unsupported, database mode does not escalate, and realtime mode queries live data at a charge.

## Setup and configuration

The hosted endpoint is `https://mcp.generect.com/mcp`. Clients with OAuth can connect to that URL and complete the Generect consent flow in a browser. A client without OAuth can pass an API key as an authorization header, including through `mcp-remote`.

For local stdio use, run `generect-ultimate-mcp@latest` with Node.js 20 or newer and set `GENERECT_API_KEY`. `GENERECT_API_BASE` can change the API endpoint, and `GENERECT_TIMEOUT_MS` can adjust request timeouts. A `test_` API key returns fictional data, shows the hypothetical cost, and does not charge the account.

## Tools and capabilities

- Count and search people or companies by ICP.
- Preview leads before paying for broader enrichment.
- Resolve LinkedIn profile references and enrich known leads or companies.
- Find, verify, and validate work email addresses.
- Find phone numbers for qualified people.
- Submit bulk jobs and monitor them by polling or webhooks.
- Check health, balances, usage, and account-specific prices.

## Limitations and notes

Paid operations use account-specific rates; listed examples are Tier 0 prices rather than guaranteed charges. Full searches, realtime queries, previews, enrichments, email operations, phone lookups, and bulk submissions can spend credits. Bulk-job cost is reserved when the job is submitted, even if it is not polled afterward.

Search ordering is not stable, so pagination should use previously returned IDs in `exclude_ids` rather than offsets. Thin rows intentionally omit several identifiers and contact fields. Company headcount ranges reflect the indexing snapshot and may lag current size. `resolve_profile` returns identity only, while full company or person details require enrichment. An API key is not required when the hosted OAuth connection is supported by the client.

_Full upstream README: https://allmcps.com/mcp/generect-mcp/readme_

