prospectapis-mcp 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +6 -6
- package/package.json +2 -1
- package/src/playbooks.js +2 -2
- package/src/server.js +2 -2
- package/src/tools.js +9 -8
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,27 @@ All notable changes to `prospectapis-mcp` are documented here. The format follow
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.4.3] - 2026-10-31
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Tool descriptions, the server instructions, the playbooks and the README state the lower API prices (roadmap PA-C.1):
|
|
14
|
+
`funding_search` and `funding_get` $0.009 per record returned, `email_verify` and verification jobs $0.003 per valid
|
|
15
|
+
or invalid result, `email_find` $0.009 per found address, a watchlist delivery $0.009. No change to tools, inputs or
|
|
16
|
+
outputs.
|
|
17
|
+
- `funding_search`/`funding_get` describe the headquarters as `location` (the place as the source states it, often a
|
|
18
|
+
city) alongside `country` (the country name) and `country_code`, and the `country` filter matches a name or ISO code
|
|
19
|
+
against the country and any other text against the stated place. Reflects the API's country/location split.
|
|
20
|
+
|
|
21
|
+
## [0.4.2] - 2026-10-29
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- `server.json` lists the hosted endpoint `https://api.prospectapis.com/mcp` under `remotes` again. It moved here from
|
|
26
|
+
the earlier `io.github.ProspectAPIs/prospectapis-mcp` entry, which is retired in favour of this one (its 0.2.4
|
|
27
|
+
version, the one that listed the endpoint, is deleted from the registry). No code change; the tools, inputs and
|
|
28
|
+
outputs are the same as 0.4.1.
|
|
29
|
+
|
|
9
30
|
## [0.4.1] - 2026-10-26
|
|
10
31
|
|
|
11
32
|
### Changed
|
|
@@ -13,6 +34,9 @@ All notable changes to `prospectapis-mcp` are documented here. The format follow
|
|
|
13
34
|
- The Official MCP Registry name is now `com.prospectapis/prospectapis-mcp` (`mcpName` in `package.json` and `name` in
|
|
14
35
|
`server.json`), proved by a DNS record on prospectapis.com instead of a GitHub sign-in. No code change; the tools,
|
|
15
36
|
inputs and outputs are the same as 0.4.0.
|
|
37
|
+
- `server.json` no longer lists the hosted endpoint under `remotes`: the registry keeps each remote URL on one entry,
|
|
38
|
+
and `https://api.prospectapis.com/mcp` is already listed on the earlier `io.github.ProspectAPIs/prospectapis-mcp`
|
|
39
|
+
entry, which stays live. This entry lists the npm package.
|
|
16
40
|
|
|
17
41
|
## [0.4.0] - 2026-10-25
|
|
18
42
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# prospectapis-mcp
|
|
2
2
|
|
|
3
|
-
prospectapis-mcp is the MCP server for ProspectAPIs (https://prospectapis.com), for sales and prospecting teams and the AI agents they run in Claude Code, Claude Desktop, Cursor and other MCP clients. It gives your agent twenty-five tools over the ProspectAPIs API: search funding rounds by date, round, amount, company, investor and country, get new matching rounds pushed to your webhook, verify, find and bulk-check email addresses, report what bounced, and order a cited research brief on any company or person. Funding records carry the public announcement URL when there is one. Every account starts with a free $1 balance and no card: records cost $0.
|
|
3
|
+
prospectapis-mcp is the MCP server for ProspectAPIs (https://prospectapis.com), for sales and prospecting teams and the AI agents they run in Claude Code, Claude Desktop, Cursor and other MCP clients. It gives your agent twenty-five tools over the ProspectAPIs API: search funding rounds by date, round, amount, company, investor and country, get new matching rounds pushed to your webhook, verify, find and bulk-check email addresses, report what bounced, and order a cited research brief on any company or person. Funding records carry the public announcement URL when there is one. Every account starts with a free $1 balance and no card: records cost $0.009, an email check $0.003 and a completed brief $0.15, with no seats and no subscription. It needs Node.js 22 or later.
|
|
4
4
|
|
|
5
5
|
Install (Claude Code): `claude mcp add prospectapis -e PROSPECTAPIS_API_KEY=pa_live_... -- npx -y prospectapis-mcp`
|
|
6
6
|
|
|
@@ -10,14 +10,14 @@ Website: https://prospectapis.com/mcp
|
|
|
10
10
|
|
|
11
11
|
| Tool | Endpoint | Cost |
|
|
12
12
|
|---|---|---|
|
|
13
|
-
| `funding_search` | `GET /v1/funding` | $0.
|
|
14
|
-
| `funding_get` | `GET /v1/funding/:id` | $0.
|
|
13
|
+
| `funding_search` | `GET /v1/funding` | $0.009 per record returned; no match is free |
|
|
14
|
+
| `funding_get` | `GET /v1/funding/:id` | $0.009 when found; a missing id is free |
|
|
15
15
|
| `research_submit` | `POST /v1/research` | one research at `research_price_usd` (see `account_balance`), charged only when the brief completes; refunded on failure |
|
|
16
16
|
| `research_get` | `GET /v1/research/:id` | free; poll until `status` is `completed` or `failed` |
|
|
17
|
-
| `email_verify` | `POST /v1/email/verify` | $0.
|
|
17
|
+
| `email_verify` | `POST /v1/email/verify` | $0.003 per `valid` or `invalid` result; `catch-all` and `unknown` are free; 1 to 25 addresses a call |
|
|
18
18
|
| `email_verify_stats` | `GET /v1/email/verify/stats` | free |
|
|
19
19
|
| `email_outcomes_report` | `POST /v1/email/outcomes` | free; 1 to 100 outcomes a call |
|
|
20
|
-
| `email_verify_job_create` | `POST /v1/email/verify/jobs` | free to start; $0.
|
|
20
|
+
| `email_verify_job_create` | `POST /v1/email/verify/jobs` | free to start; $0.003 per `valid` or `invalid` result as it is checked; up to 50,000 addresses |
|
|
21
21
|
| `email_verify_job_get` | `GET /v1/email/verify/jobs/:id` | free |
|
|
22
22
|
| `email_verify_job_results` | `GET /v1/email/verify/jobs/:id/results` | free; 1,000 a page |
|
|
23
23
|
| `watchlist_create`, `watchlist_list`, `watchlist_get`, `watchlist_deliveries`, `watchlist_test`, `watchlist_delete` | `/v1/watchlists` | free to manage; a delivered event costs one record, only when your webhook answers 2xx |
|
|
@@ -66,7 +66,7 @@ Claude Code: `claude mcp add prospectapis -e PROSPECTAPIS_API_KEY=pa_live_... --
|
|
|
66
66
|
|
|
67
67
|
**Where does the funding data come from?** Records carry the public announcement URL when there is one.
|
|
68
68
|
|
|
69
|
-
**What is free?** A $1 balance when you sign up (about
|
|
69
|
+
**What is free?** A $1 balance when you sign up (about 111 funding records, 333 email checks or 6 research briefs), any search that matches nothing, catch-all and unknown email results, watchlist management, and the balance, pricing and version tools.
|
|
70
70
|
|
|
71
71
|
**Which clients work?** Claude Code, Claude Desktop, Cursor and any client that reads an mcpServers config, through `npx -y prospectapis-mcp`.
|
|
72
72
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prospectapis-mcp",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"mcpName": "com.prospectapis/prospectapis-mcp",
|
|
5
5
|
"description": "MCP server for ProspectAPIs: search funding rounds, verify email addresses, run paid prospect research briefs, manage funding watchlists, read your balance and the live price list.",
|
|
6
6
|
"type": "module",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"test": "node --test \"test/**/*.test.js\"",
|
|
29
29
|
"prepublishOnly": "npm test && node scripts/prepublish-tenant-check.mjs",
|
|
30
30
|
"check:registry-drift": "node scripts/registry-drift.mjs",
|
|
31
|
+
"export:public": "node scripts/export-public.mjs",
|
|
31
32
|
"postpublish": "node scripts/registry-drift.mjs --publish"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
package/src/playbooks.js
CHANGED
|
@@ -20,8 +20,8 @@ const NEWLY_FUNDED = `# Newly funded prospects
|
|
|
20
20
|
|
|
21
21
|
Build a short list of companies that just raised, worth reaching out to while the round is fresh.
|
|
22
22
|
|
|
23
|
-
1. \`account_balance\` first. Each funding record returned costs $0.
|
|
24
|
-
with $1, about
|
|
23
|
+
1. \`account_balance\` first. Each funding record returned costs $0.009, drawn from your balance (a new account starts
|
|
24
|
+
with $1, about 111 records), so know what is left before you pull pages.
|
|
25
25
|
2. \`funding_search\` with a tight window and the filters that describe the buyer: \`since\` (for example the last 30
|
|
26
26
|
days), \`round\` (such as \`seed,series_a\`), \`country\`, and \`min_amount_usd\` or \`max_amount_usd\`. Start with
|
|
27
27
|
\`limit\` 10 to 25. A search that matches nothing costs nothing, so narrow before you widen.
|
package/src/server.js
CHANGED
|
@@ -19,8 +19,8 @@ export const TOP_UP_URL = "https://prospectapis.com/dashboard/billing?utm_source
|
|
|
19
19
|
|
|
20
20
|
export const INSTRUCTIONS =
|
|
21
21
|
"ProspectAPIs MCP server: funding rounds data, email verification and prospect research briefs. Every account starts with a free $1 balance " +
|
|
22
|
-
"(no card, no monthly reset), and each paid call draws from it at its own price. funding_search and funding_get cost $0.
|
|
23
|
-
"a search that matches nothing costs nothing. email_verify checks 1 to 25 addresses for $0.
|
|
22
|
+
"(no card, no monthly reset), and each paid call draws from it at its own price. funding_search and funding_get cost $0.009 per record returned; " +
|
|
23
|
+
"a search that matches nothing costs nothing. email_verify checks 1 to 25 addresses for $0.003 per valid or invalid result; catch-all and " +
|
|
24
24
|
"unknown results are free. account_balance, pricing_get and api_version are free. " +
|
|
25
25
|
"Use filters (dates, round, amount, domain, investor, country) to keep result sets small, and call account_balance before a large paged search. " +
|
|
26
26
|
"research_submit starts a cited brief on one prospect and returns a research_id; poll research_get (free) until it is completed or failed. " +
|
package/src/tools.js
CHANGED
|
@@ -48,8 +48,9 @@ export const TOOLS = [
|
|
|
48
48
|
write: false,
|
|
49
49
|
format: { min_amount_usd: formatAmount, max_amount_usd: formatAmount },
|
|
50
50
|
description:
|
|
51
|
-
"Search funding rounds (venture rounds, debt, grants, IPOs), newest announcement first. Costs $0.
|
|
52
|
-
"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`."
|
|
51
|
+
"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. " +
|
|
52
|
+
"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`. " +
|
|
53
|
+
"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).",
|
|
53
54
|
shape: {
|
|
54
55
|
since: DATE.describe("Earliest announcement date, inclusive (YYYY-MM-DD)."),
|
|
55
56
|
until: DATE.describe("Latest announcement date, inclusive (YYYY-MM-DD)."),
|
|
@@ -62,7 +63,7 @@ export const TOOLS = [
|
|
|
62
63
|
company: z.string().min(1).max(100).optional().describe("Company name contains this text (case-insensitive)."),
|
|
63
64
|
domain: z.string().min(3).max(253).optional().describe("Exact company domain, for example `example.com`."),
|
|
64
65
|
investor: z.string().min(1).max(100).optional().describe("Exact investor name, case-insensitive."),
|
|
65
|
-
country: z.string().min(1).max(60).optional().describe("Headquarters country as a name or ISO code, such as US, United States or DE. Other text, such as a city, matches the stated location."),
|
|
66
|
+
country: z.string().min(1).max(60).optional().describe("Headquarters country as a name or ISO code, such as US, United States or DE. Other text, such as a city, matches the stated place (the record's `location`)."),
|
|
66
67
|
limit: z.number().int().min(1).max(100).optional().describe("Records per page, 1 to 100 (default 25). Each record returned is billed."),
|
|
67
68
|
cursor: z.string().max(200).optional().describe("Opaque cursor from the previous page's `next_cursor`."),
|
|
68
69
|
},
|
|
@@ -73,7 +74,7 @@ export const TOOLS = [
|
|
|
73
74
|
path: "/v1/funding/{id}",
|
|
74
75
|
title: "Get Funding Round",
|
|
75
76
|
write: false,
|
|
76
|
-
description: "Read one funding record by id. Costs $0.
|
|
77
|
+
description: "Read one funding record by id. Costs $0.009 when found; a missing id is free.",
|
|
77
78
|
shape: {
|
|
78
79
|
id: z.string().uuid().describe("The funding record id from a `funding_search` result."),
|
|
79
80
|
},
|
|
@@ -134,7 +135,7 @@ export const TOOLS = [
|
|
|
134
135
|
body: true,
|
|
135
136
|
description:
|
|
136
137
|
"Check whether 1 to 25 email addresses can receive mail. Each result has `status` (valid, invalid, catch-all or unknown), " +
|
|
137
|
-
"`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.
|
|
138
|
+
"`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 " +
|
|
138
139
|
"balance; catch-all and unknown results are free (pricing_get lists which statuses are charged). When the balance covers only " +
|
|
139
140
|
"some addresses, the rest come back `unknown` with reason `not_checked_insufficient_credits`, free. " +
|
|
140
141
|
"`depth: \"quick\"` never contacts the mail server: syntax, disposable and free lists, DNS, parked and new-domain flags " +
|
|
@@ -176,7 +177,7 @@ export const TOOLS = [
|
|
|
176
177
|
description:
|
|
177
178
|
"Find a person's work email from `first_name`, `last_name` and company `domain`. The common patterns are checked in order " +
|
|
178
179
|
"against the mail server, most common first. Returns `status` (found, catch_all, unknown, not_found), `email`, `pattern`, " +
|
|
179
|
-
"`score`, `recommendation` and the addresses `checked`. Costs $0.
|
|
180
|
+
"`score`, `recommendation` and the addresses `checked`. Costs $0.009 only when an address is found; on a catch-all domain " +
|
|
180
181
|
"it returns the most likely address as `best_guess`, free.",
|
|
181
182
|
shape: {
|
|
182
183
|
first_name: z.string().min(1).max(80).describe("The person's first name."),
|
|
@@ -252,7 +253,7 @@ export const TOOLS = [
|
|
|
252
253
|
body: true,
|
|
253
254
|
description:
|
|
254
255
|
"Check up to 50,000 addresses in the background. Returns 202 with a job `id`; poll email_verify_job_get. A slow or " +
|
|
255
|
-
"greylisting server is retried about 5, 15 and 30 minutes later, free. Each valid or invalid result costs $0.
|
|
256
|
+
"greylisting server is retried about 5, 15 and 30 minutes later, free. Each valid or invalid result costs $0.003 as " +
|
|
256
257
|
"it is checked; catch-all and unknown are free. An optional https `callback_url` gets one signed POST when the job " +
|
|
257
258
|
"completes (verify with the returned `secret`). At most 5 jobs run at once per account.",
|
|
258
259
|
shape: {
|
|
@@ -306,7 +307,7 @@ export const TOOLS = [
|
|
|
306
307
|
description:
|
|
307
308
|
"Save a funding-signal alert: a set of funding_search filters plus an https webhook. Each NEW funding event that " +
|
|
308
309
|
"matches is POSTed to the webhook, signed with the returned `secret` (header Prospect-Signature: t=..,v1=HMAC-SHA256). " +
|
|
309
|
-
"Creating is free; each delivered event costs one record ($0.
|
|
310
|
+
"Creating is free; each delivered event costs one record ($0.009), charged only when the webhook " +
|
|
310
311
|
"answers 2xx. The `secret` is shown once. Max 20 active per account.",
|
|
311
312
|
shape: {
|
|
312
313
|
name: z.string().min(1).max(100).describe("A label, such as 'Series A robotics'."),
|