prospectapis-mcp 0.8.0 → 0.9.0
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 +14 -0
- package/README.md +2 -1
- package/package.json +1 -1
- package/src/server.js +1 -0
- package/src/tools.js +20 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,20 @@ All notable changes to `prospectapis-mcp` are documented here. The format follow
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.9.0] - 2026-11-01
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `page_profile` (`GET /v1/pages/profile`, $0.012 per live read): read a company page's public fields fresh at request
|
|
14
|
+
time (name, website, description, industry, company type, employee count and size range, headquarters, founded year,
|
|
15
|
+
specialities, follower count, affiliated pages) by its public name or page address. Billed under the same
|
|
16
|
+
`people_reads` go-live switch as the other live reads, default off.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- `company_get` also takes a company's exact name in `domain`. A name shared by several companies answers HTTP 300
|
|
21
|
+
with each `{name, domain}` to choose from, free; a name we hold no rounds for is a free 404.
|
|
22
|
+
|
|
9
23
|
## [0.8.0] - 2026-10-31
|
|
10
24
|
|
|
11
25
|
### Added
|
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
|
|
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 46 tools over the ProspectAPIs API: search and watch funding rounds, read cited company profiles, verify, find and bulk-check email addresses, order a cited research brief, read people and pages live, and act through your own connected account (message, invite, follow, post, react, comment and more). Every account starts with a free $1 balance and no card: records cost $0.009, an email check $0.003, a brief $0.15, a live read $0.012 and an action from $0.005, 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
|
|
|
@@ -29,6 +29,7 @@ Website: https://prospectapis.com/mcp
|
|
|
29
29
|
| `post_engagers` | `GET /v1/posts/engagers` | $0.012 per live read |
|
|
30
30
|
| `post_resharers` | `GET /v1/posts/resharers` | $0.012 per live read; names the reshare type and the with-thoughts commentary |
|
|
31
31
|
| `page_followers` | `GET /v1/pages/followers` | $0.012 per live read; your connected account must administer the page |
|
|
32
|
+
| `page_profile` | `GET /v1/pages/profile` | $0.012 per live read; a page that cannot be read is free |
|
|
32
33
|
| `message_send` | `POST /v1/messages` | $0.03 per action; on your connected account |
|
|
33
34
|
| `person_invite` | `POST /v1/people/invite` | $0.03 per action |
|
|
34
35
|
| `invite_withdraw` | `POST /v1/people/invite/withdraw` | $0.01 per action |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prospectapis-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
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",
|
package/src/server.js
CHANGED
|
@@ -31,6 +31,7 @@ export const INSTRUCTIONS =
|
|
|
31
31
|
export function hintFor(status) {
|
|
32
32
|
if (status === 401) return " (missing or invalid API key: set PROSPECTAPIS_API_KEY to a key from the dashboard)";
|
|
33
33
|
if (status === 402) return ` (out of credits for this call; the body says what it costs: top up at ${TOP_UP_URL})`;
|
|
34
|
+
if (status === 300) return " (several companies have that name: repeat the call with one of the listed domains)";
|
|
34
35
|
if (status === 400) return " (an argument was rejected: the body says which one)";
|
|
35
36
|
if (status === 404) return " (not found: the id may be wrong, or the record is not published)";
|
|
36
37
|
if (status === 429) return " (rate limited: wait a few seconds and retry)";
|
package/src/tools.js
CHANGED
|
@@ -86,14 +86,16 @@ export const TOOLS = [
|
|
|
86
86
|
title: "Get Company Profile",
|
|
87
87
|
write: false,
|
|
88
88
|
description:
|
|
89
|
-
"Read one cited company profile by domain: name, description, HQ, founded year, industry, employee band, social " +
|
|
89
|
+
"Read one cited company profile by domain or by company name: name, description, HQ, founded year, industry, employee band, social " +
|
|
90
90
|
"links, a funding rollup (the amount raised across the rounds we hold, not lifetime total raised) and a careers " +
|
|
91
91
|
"link, with a source URL on every field and each marked `stated` (a page " +
|
|
92
92
|
"states it) or `inferred` (classified from a page); a field no source supports is null, never guessed. Costs " +
|
|
93
93
|
"$0.02 per company returned, drawn from your balance. A domain not built yet returns 202 `building` (retry in " +
|
|
94
|
-
"about 30 seconds), and a domain that does not resolve to a company returns 404; both are free."
|
|
94
|
+
"about 30 seconds), and a domain that does not resolve to a company returns 404; both are free. A company name " +
|
|
95
|
+
"is matched whole against the funding rounds we hold: several companies with that name answer HTTP 300 with each " +
|
|
96
|
+
"`{name, domain}` to choose from (free, never a guess), and no company with that name is a free 404.",
|
|
95
97
|
shape: {
|
|
96
|
-
domain: z.string().min(
|
|
98
|
+
domain: z.string().min(2).max(253).describe("The company's domain, for example `acme.com`, or its exact name, for example `Acme Robotics`."),
|
|
97
99
|
},
|
|
98
100
|
},
|
|
99
101
|
{
|
|
@@ -532,6 +534,21 @@ export const TOOLS = [
|
|
|
532
534
|
cursor: z.string().max(4000).optional().describe("Opaque cursor from the previous page."),
|
|
533
535
|
},
|
|
534
536
|
},
|
|
537
|
+
{
|
|
538
|
+
name: "page_profile",
|
|
539
|
+
method: "GET",
|
|
540
|
+
path: "/v1/pages/profile",
|
|
541
|
+
title: "Read Company Page",
|
|
542
|
+
write: false,
|
|
543
|
+
description:
|
|
544
|
+
"Read a company page's public fields, FRESH at request time: name, website, tagline, description, industry, " +
|
|
545
|
+
"company type, employee count and size range, headquarters (city, region, country, postal code), founded year, " +
|
|
546
|
+
"specialities, follower count and affiliated pages. Costs $0.012 per live read; a page that cannot be read is " +
|
|
547
|
+
"free. Pass the page's public name or its page address as `page`.",
|
|
548
|
+
shape: {
|
|
549
|
+
page: z.string().min(1).max(300).describe("The company page's public name (the part after /company/) or its page address."),
|
|
550
|
+
},
|
|
551
|
+
},
|
|
535
552
|
{
|
|
536
553
|
name: "message_send",
|
|
537
554
|
method: "POST",
|