# ProspectAPIs [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/ProspectAPIs/prospectapis-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 1671  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/prospectapis

## Description
MCP server for prospectapis.com: funding rounds and cited prospect research briefs.

## Tools
Capabilities this server exposes over MCP:

- **funding_search** — Search funding rounds (venture rounds, debt, grants, IPOs), newest announcement first. Costs $0.009 per record returned, drawn from your balance (every account starts with a free $1); a search that matches nothing is free. Page with `cursor`: pass back `next_cursor` exactly as returned; a null `next_cursor` means there are no more matches. Narrow with filters before raising `limit`. Each record gives the headquarters as `location` (the place as the source states it, often a city) and `country` (the country name), plus `country_code` (the ISO 3166-1 alpha-2 code).
- **funding_get** — Read one funding record by id. Costs $0.009 when found; a missing id is free.
- **launch_search** — Search launch events, newest launch first: a tech company said in public that it launched something usable now (`stage` post) or that it is about to (`stage` pre, what the company said itself, never a prediction). Each record gives the company and its domain, `launch_type` (new_company, new_product, major_version or feature), the product name, `launched_at`, a link to the company's own post or page (`source_url`), and the founder or poster as an opaque `person_ref` plus their public name. Not on sale yet: while launches are not available on the price list this tool answers 503 temporarily_unavailable, and nothing is charged. Page with `cursor`.
- **launch_get** — Read one launch event by id. Not on sale yet: answers 503 temporarily_unavailable while launches are not available, and nothing is charged; a missing id is a free 404.
- **company_get** — Read one cited company profile by domain or by company name: name, description, HQ, founded year, industry, employee band, social links, a funding rollup (the amount raised across the rounds we hold, not lifetime total raised) and a careers link, with a source URL on every field and each marked `stated` (a page states it) or `inferred` (classified from a page); a field no source supports is null, never guessed. Costs $0.02 per company returned, drawn from your balance. A domain not built yet returns 202 `building` (retry in about 30 seconds), and a domain that does not resolve to a company returns 404; both are free. A company name is matched whole against the funding rounds we hold: several companies with that name answer HTTP 300 with each `{name, domain}` to choose from (free, never a guess), and no company with that name is a free 404. While GET /pricing shows companies not available this route answers 503 temporarily_unavailable and nothing is charged.
- **company_funding** — The funding rounds for one company domain, newest announcement first: the same records as funding_search filtered to this domain. Costs $0.009 per record returned; a company with no rounds is free. Page with `cursor`.
- **ads_search** — LAUNCHING SOON: answers 503 until the ads library goes live (GET /pricing ads.available). Whether a company runs ads now on the public Meta, Google, LinkedIn and TikTok ad libraries, by its domain. Returns a one-line `summary`, a `platforms` entry per library with its `status` (ok, no_ads, not_resolved, not_covered, unreadable with a `reason`), the advertiser and how it was resolved, and the live ads (text, media, first and last seen, countries, landing URL, status, format). Only `no_ads` means the company runs no ads there; `not_resolved` means the advertiser was not found, so pass its id (google_advertiser_id, meta_page_id, linkedin_company_id or tiktok_advertiser) and ask again. A field the library does not show is null. Costs $0.006 per library whose status is ok, on the first page; everything else is free, and one unreadable library never fails the call. Page with `cursor`. Coverage: Meta worldwide (active ads; inactive ones only when they reached the EU); Google worldwide (the last 30 days); LinkedIn ads run since 2023-06-01, with run dates and reach only for ads shown in the EU; TikTok only ads shown in the EEA, Switzerland and the UK.
- **ad_get** — LAUNCHING SOON: answers 503 until the ads library goes live. One ad in full by its id from `ads_search`, with the facts its library shows only on the single ad (for example the countries it ran in). Costs $0.006 when found; an unknown id is free, and a library that cannot be read right now answers 503 (free).
- **research_submit** — Start a cited pre-call research brief on one prospect: company, funding, traction, competitors, news, people, risks, regions, social (their X account and Reddit mentions, when found), plus a `fit` section when you pass `context`. Give exactly ONE identifier (domain, website_url, company_name, company_linkedin_url, a work email, or linkedin_url), or person_name together with company_name. Returns `research_id` at once; the brief takes 20 to 90 seconds, so poll research_get every 10 to 15 seconds until `status` is `completed` or `failed`. Costs one research at the price account_balance reports as `research_price_usd`, held when you submit, charged only when the brief completes and refunded in full if it fails.
- **research_get** — Read a research job by the `research_id` research_submit returned: `status` (queued, running, completed, failed), `input`, `result` (the brief, once completed) and `error` (once failed). Every brief field is {value, sources, confidence}. `result.social` holds `x` (handle, followers, bio, posting_cadence, recent_topics, notable_posts) and `reddit` (mention_count_90d, top_threads, communities, tone, tone_basis); a platform with nothing found is absent, and with neither `social` is absent. Free; only your own account's jobs are visible.
- **email_verify** — Check whether 1 to 25 email addresses can receive mail. Each result has `status` (valid, invalid, catch-all or unknown), `reason`, `reason_text`, `score` (0 to 100), `recommendation` (send, send_with_caution, retry_later or do_not_send), `charged`, `flags`, `smtp_code`, `catch_all_tier`, `did_you_mean` (a likely domain typo), `mail_provider` and `checked_at`. Costs $0.003 per valid or invalid result, drawn from your balance; catch-all and unknown results are free (pricing_get lists which statuses are charged). When the balance covers only some addresses, the rest come back `unknown` with reason `not_checked_insufficient_credits`, free. `depth: "quick"` never contacts the mail server: syntax, disposable and free lists, DNS, parked and new-domain flags and a recently measured catch-all verdict, at $0.001 per address whatever the status; an address that needs a mailbox check comes back `unknown` with reason `not_probed`. `depth: "cache"` (or `cache_only: true`) answers only from verdicts already on record from any account (valid within 30 days, invalid within 90): it never contacts the mail server and never counts against the probe budget, a known verdict is billed like a full check, and anything not on record comes back `miss`, free. A `paced` or `provider_cooldown` result carries `retry_after_s`: retry after that many seconds.
- **email_domain_check** — What is known about one email domain without contacting its mail server: `exists`, `accepts_mail`, `null_mx`, `mx` hosts, `mail_provider`, `spf`, `dmarc`, `disposable`, `free_provider`, `parked`, `domain_age_days`, `new_domain`, `did_you_mean`, and `catch_all` (true or false only when our own check measured it recently, else null) with `catch_all_checked_at`. Free, up to 300 lookups an hour per account.
- **email_find** — Find a person's work email from `first_name`, `last_name` and company `domain`. The common patterns are checked in order against the mail server, most common first. Returns `status` (found, catch_all, unknown, not_found), `email`, `pattern`, `score`, `recommendation` and the addresses `checked`. Costs $0.009 only when an address is found; on a catch-all domain it returns the most likely address as `best_guess`, free.
- **email_verify_calibration** — What each verification score band has meant in practice: the measured bounce rate per band from delivery outcomes customers reported over the last 90 days. A band with fewer than 30 reports shows a null rate. Free.
- **email_clean_list** — Clean a list of up to 1,000 addresses in one call with quick checks (no mail server is contacted): returns `keep`, `review` (role, free, parked, new or typo addresses, with a reason) and `remove` (cannot receive mail), plus `counts`. $0.001 per well-formed address. Run email_verify on the kept addresses you will actually send to.
- **email_verify_stats** — Your own email verification mix over the last `days` (1 to 90, default 30): `total`, `by_status` (valid, invalid, catch-all, unknown), `charged`, `served_from_cache`, `catch_all_share` and `unknown_share`. Free.
- **email_outcomes_report** — Report what happened when you sent: `bounced` or `delivered`, 1 to 100 addresses per call. A bounce you report makes your later email_verify checks of that address come back invalid (reason `reported_bounce`); a delivered report on a catch-all address raises its score. Returns `stored`. Free.
- **email_verify_job_create** — Check up to 50,000 addresses in the background. Returns 202 with a job `id`; poll email_verify_job_get. A slow or greylisting server is retried about 5, 15 and 30 minutes later, free. Each valid or invalid result costs $0.003 as it is checked; catch-all and unknown are free. An optional https `callback_url` gets one signed POST when the job completes (verify with the returned `secret`). At most 5 jobs run at once per account.
- **email_verify_job_get** — A job's `status` (queued, running, completed), `total`, `done`, `charged_count` and `amount_usd`. Free.
- **email_verify_job_results** — A job's results in input order, up to 1,000 a page (`limit`), from `cursor`; `next_cursor` is null on the last page. An address not yet checked shows status `pending`. Free.
- **email_verify_job_stop** — Turn off a job's monitoring (its regular re-checks); a job still running is cancelled, and what it already checked stays readable. Free.
- **watchlist_create** — Save a signal alert: a set of filters plus an https webhook. `kind` funding (the default) watches funding_search filters, $0.009 per delivered record. `kind` launches watches launch_search filters (stage, launch_type, domain, company, category, country) and is refused while launches are not available; launch deliveries are not charged while launches are not on sale. `kind` ads watches one company's ads, filters `{domain, platform?, level?}`: its advertiser_started, advertiser_stopped and new_creatives (or, with level `ad`, every ad's own ad_started, ad_stopped and new_creative), $0.006 per delivered event. Each new match is POSTed to the webhook, signed with the returned `secret` (header Prospect-Signature: t=..,v1=HMAC-SHA256). Creating is free; a delivery is charged only when the webhook answers 2xx. The `secret` is shown once. Max 20 active per account.
- **watchlist_list** — Your funding-signal alerts (without their secrets). Free.
- **watchlist_get** — One funding-signal alert: its name, filters, webhook URL, whether it is active and why it was paused (never its secret). Free.
- **watchlist_deliveries** — The last 50 deliveries of one alert and their outcome (delivered, retry, failed, no_credit). Free.
- **watchlist_test** — Send a signed sample event to the alert's webhook now, to build and verify the receiver. Free; 5 a minute.
- **watchlist_delete** — Delete a funding-signal alert and its delivery history. Free.
- **people_profile** — Read one person's public professional profile, fetched FRESH at request time (never from a stored cache). Costs $0.012 per live read, drawn from your balance; a profile that cannot be read is free. Pass a public identifier or profile address as `profile_ref`.
- **people_search** — Search people by keywords and filters, read FRESH at request time. Returns the first 1,000 results per query; page with `start`. Costs $0.012 per live read. Give `keywords` or at least one filter.
- **people_posts** — Read a person's recent public posts, FRESH at request time. Costs $0.012 per live read. Page with `cursor` (pass back the returned cursor) or `start`.
- **post_engagers** — Read who reacted to or commented on a public post, FRESH at request time. Costs $0.012 per live read. Set `kind` to reactions or comments and give one of post_id, share_id or post_url.
- **post_resharers** — Read who reshared a public post, FRESH at request time, with each resharer enriched. Costs $0.012 per live read. Each result carries reshare_type (repost or repost_with_thoughts) and, for a with-thoughts reshare, the added commentary text. Give one of post_id, share_id or post_url. While GET /pricing does not list this route in its family's available_routes it answers 503 temporarily_unavailable and nothing is charged.
- **page_followers** — Read the followers of a page your connected account administers, FRESH at request time. Costs $0.012 per live read. Give `page`, or the `cursor` of the previous page. Requires a connected account (people_search aside, this read runs on your own account).
- **page_profile** — Read a company page's public fields, FRESH at request time: name, website, tagline, description, industry, company type, employee count and size range, headquarters (city, region, country, postal code), founded year, specialities, follower count and affiliated pages. Costs $0.012 per live read; a page that cannot be read is free. Pass the page's public name or its page address as `page`.
- **account_connect** — Connect YOUR OWN account with its signed-in session string, so the write tools and page_followers act as you. The session is checked live once, stored encrypted, never returned and deleted on account_disconnect; it replaces any account connected before. Free. A session string is a credential: pass it only when the user gives it.
- **account_login** — Connect YOUR OWN account by signing in with its email or phone and password. When the account asks for a two-factor code, an emailed code or a check a person must finish, the answer carries a `challenge_id` (and a `handoff_url` for a check): call again with `code` and `challenge_id` within 15 minutes. With `totp_secret` (the authenticator setup key) the two-factor code is typed for you; `remember: true` keeps the details encrypted so a later sign-out is signed back in automatically. Free. A password is a credential: pass it only when the user gives it.
- **account_status** — What is connected: `connected`, `status` (active, or dead when it signed out and needs connecting again), the account's handle and name, and its dates. Never returns the session. Free. Check it before a batch of writes.
- **account_disconnect** — Disconnect your account: its stored session is deleted. Safe to repeat; works at a zero balance. Free.
- **message_send** — Send a direct message from YOUR connected account. Costs $0.03 per action, drawn from your balance; billing turns on with the write go-live switch (free until then). Requires a connected account (account_connect).
- **person_invite** — Send a connection invite from your connected account. Costs $0.03 per action. Requires a connected account.
- **writes_queued** — List the writes that were sent while your connected account was signed out. Each is queued and sent automatically once the account is connected again. Free.
- **write_queued_cancel** — Cancel a write that is still queued, so it is never sent. Free.
- **invite_withdraw** — Withdraw a connection invite you sent. Costs $0.01 per action. Requires a connected account.
- **person_follow** — Follow a person, or unfollow with `unfollow: true`. Costs $0.01 per action. Requires a connected account.
- **person_visit** — Visit a profile from your connected account (the 'viewed you' signal). Costs $0.01 per action. Give person_ref or profile_ref. Requires a connected account.
- **post_create** — Create a post (share) from your connected account. Costs $0.05 per action. Requires a connected account.
- **post_react** — React to a post, or remove your reaction with `remove: true`. Costs $0.005 per action. Give one of post_id, share_id or post_url. Requires a connected account.
- **post_comment** — Comment on a post, or reply to a comment with `parent_comment`. Costs $0.02 per action. Give one of post_id, share_id or post_url. Requires a connected account.
- **post_repost** — Repost a post (instant repost, no commentary). Costs $0.01 per action. Give one of post_id, share_id or post_url. Requires a connected account.
- **post_quote** — Quote a post with your own thoughts (repost with commentary). Costs $0.02 per action. Give one of post_id, share_id or post_url. Requires a connected account.
- **messages_list** — Read your connected account's recent conversations, incremental by `since`/`cursor`. Costs $0.01 per read; billing turns on with the messaging go-live switch (free until then). Requires a connected account. While GET /pricing does not list this route in its family's available_routes it answers 503 temporarily_unavailable and nothing is charged.
- **message_thread** — Read the messages of one conversation thread, incremental by `since`/`cursor`. Costs $0.01 per read. Pass the `thread_id` from messages_list. Requires a connected account. While GET /pricing does not list this route in its family's available_routes it answers 503 temporarily_unavailable and nothing is charged.
- **account_balance** — Your credit balance and the prices you pay (record, research, email verification). Free. Check it before a large paged search.
- **feedback_send** — Report a bug, a wrong or empty field, a missing capability or a question about ProspectAPIs to the team. Free; limited to 10 delivered reports an hour per account (a 429 means wait, do not retry in a loop). Before reporting that a field is wrong or a parameter is ignored, re-run the call with a value that could only match if it were honoured. Put the exact call, what came back and what you expected in `details`; never include secrets or API keys. Send only when the user agrees.
- **feedback_list** — The reports this account sent with feedback_send (from any of its keys), newest first, each with its status (received, triaged, fixed, wont_fix, needs_info), the team's response and responded_at. Free. Use it to check whether a reported bug was fixed before reporting it again. Page with `cursor` from the previous `next_cursor`.
- **feedback_get** — One report this account sent, by the feedback_id feedback_send returned: its status (received, triaged, fixed, wont_fix, needs_info), the team's response and responded_at. Free. A report from another account answers 404.
- **pricing_get** — The live price list: the balance a new account starts with, funding records (price per record), research (whether it is available and its price per brief), email verification (price per check, which statuses are charged and which are free) and watchlist deliveries. Free, needs no key. Use it to quote a cost before a large call.
- **api_version** — The API's version and deployed build. Free, needs no key.

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

```json
"mcpServers": {
  "prospectapis": {
    "command": "npx",
    "args": ["-y","prospectapis-mcp"],
    "env": {
      "PROSPECTAPIS_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `PROSPECTAPIS_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 ProspectAPIs MCP server does

ProspectAPIs connects MCP clients to the ProspectAPIs API for sales and prospecting workflows. Its tools cover four main areas: funding intelligence, prospect research, email verification, and watchlists. Additional tools expose account balance, live pricing, API version information, and a feedback endpoint.

Funding searches can be filtered by date range, round type, investment amount, company, domain, investor, and country. Results support limits from 1 to 100 and cursor-based pagination. A separate lookup retrieves a funding record by ID. Records include a public announcement URL when one exists.

Research jobs accept one company or person identifier, with a company name also required when searching by person name. Supported identifiers include a domain, website URL, company name, company LinkedIn URL, work email, or LinkedIn URL. An optional context string and purpose can tailor the request. Completed briefs are cited and intended for company or person research.

## How it works

The package runs through `npx` as an MCP process. The client starts the process and supplies `PROSPECTAPIS_API_KEY`; the server then calls the configured ProspectAPIs API. `PROSPECTAPIS_BASE_URL` can replace the default API URL when needed.

Research submission returns a research ID immediately. The agent must poll the corresponding research result tool until the job is completed or failed; typical completion takes 20 to 90 seconds. Watchlists can deliver matching funding events to a webhook. A delivery consumes one record only when the webhook responds with HTTP 2xx.

Email verification supports one to 25 addresses per direct request. Results include status, reason, score, recommendation, charge state, and additional diagnostic fields. Larger checks can be created as jobs for up to 50,000 addresses, with paginated results of up to 1,000 records per page.

## Setup and configuration

Node.js 22 or later is required. For Claude Code, register the process with:

```bash
claude mcp add prospectapis -e PROSPECTAPIS_API_KEY=pa_live_... -- npx -y prospectapis-mcp
```

Other MCP clients can run `npx -y prospectapis-mcp` and pass the key through their MCP server configuration. A typical configuration is:

```json
{
  "mcpServers": {
    "prospectapis": {
      "command": "npx",
      "args": ["-y", "prospectapis-mcp"],
      "env": { "PROSPECTAPIS_API_KEY": "pa_live_..." }
    }
  }
}
```

`PROSPECTAPIS_API_KEY` is needed for all tools except pricing and API version. `PROSPECTAPIS_BASE_URL` defaults to `https://api.prospectapis.com` and is optional. Accounts begin with a free $1 balance and no card requirement. Usage is metered: funding records cost $0.02 each, valid or invalid email results cost $0.004, and completed research briefs use the price returned by the account or pricing tools.

## Tools and capabilities

- Search and retrieve funding rounds with filters and pagination.
- Submit and poll cited research briefs for companies or people.
- Verify individual email batches or create bulk verification jobs.
- Report email outcomes and inspect verification statistics.
- Create, list, inspect, test, and delete watchlists and review deliveries.
- Check balance, retrieve pricing and API version data, and send product feedback.

## Limitations and notes

Funding searches with no matches are free. Missing funding IDs are also free. Catch-all and unknown email results are not charged; insufficient balance can leave some requested addresses as unknown and uncharged. Research is charged only when a brief completes and is refunded if it fails. Watchlist management is free, but delivered events consume records under the webhook response condition described above.

_Full upstream README: https://allmcps.com/mcp/prospectapis/readme_

