PitchSpark: Pre-Seed & Seed Deal Flow
io.github.codytodd-ui/pitchsparkVersion 1.0.3Pre-seed & seed deal flow: scored startup pitches by sector, stage, region, raise. Records views.
Status
Responds784 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:47 UTC
- Latency
- 784 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://pitchspark.io/api/functions/pitchsparkMcpResponds784 msNo sign-in
Claude Code
claude mcp add --transport http pitchspark https://pitchspark.io/api/functions/pitchsparkMcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: pitchspark
Remote MCP server URL: https://pitchspark.io/api/functions/pitchsparkMcpCursor
{
"mcpServers": {
"pitchspark": {
"url": "https://pitchspark.io/api/functions/pitchsparkMcp"
}
}
}VS Code
code --add-mcp '{"name":"pitchspark","type":"http","url":"https://pitchspark.io/api/functions/pitchsparkMcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
5 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
pitchspark_find_startup_pitches_v1Search startup pitches on PitchSpark (pre-seed, seed and later rounds) by sector, funding stage, HQ region, raise size, traction or PitchSpark score, using a plain-English request, e.g. "seed-stage fintech in Texas with revenue" or "pre-seed AI companies raising under $2M, not crypto". Returns "pitches", a list of Spark Cards, each with id, company_name, one_line_problem, traction_summary, green_flags, pitchspark_score (PitchSpark's AI pitch score), stage, sector and spark_card_url (the link to the full pitch on pitchspark.io), plus additional_sectors when the pitch lists any and raise_usd when the raise is disclosed; a source "attribution" line; and an "interpretation" object showing how the request was understood, which filters came from an argument, any filter that had to be relaxed to find results, and anything it could not place. It picks out the sector, funding stage, location (as an HQ region, one of us, canada, latam, uk, europe, mea, apac, global_remote: a US state, a city or a country narrows only to its region), raise size, score and traction cues in your sentence, applies them as filters, and searches the remaining words. "not X" or "without X" leaves pitches out, a phrase in double quotes must appear as written, and "top scoring" orders results by score. Explicit filters, all optional; each one overrides what the sentence says about the same thing and is never relaxed: sector (a pitch's primary or additional sectors); stage; location or hq_region (the HQ region); min_raise_usd and max_raise_usd (US dollars); green_flags (pitches showing any of the listed flags); has_traction; min_score. A raise filter matches only pitches whose raise is disclosed; a score filter only pitches with a public score; a traction filter only pitches whose founders wrote a public traction note. When nothing matches, a region, then a raise range, then a traction filter that was read from the sentence is dropped and named in interpretation.relaxed; a filter passed as an argument, | No | Yes | No | Yes |
pitchspark_health_v1Check that PitchSpark's startup pitch service is answering before relying on it, and which API version it speaks. Returns {"status":"ok","version":"1.0"}. Returns no pitch data. No API key is needed, even when the server requires one for the other tools, and it uses none of the daily pitch allowance; the limit of 30 tool calls per minute per connection still applies, and the call is logged. Read-only: does not change your data or any pitch content. Requests are logged, and each pitch returned is counted as a view and can add one spark to the pitch's public spark count (once per viewer, updated hourly). To find startups, use pitchspark_find_startup_pitches_v1. | No | Yes | Yes | No |
pitchspark_startup_pitch_details_v1Read the full public pitch of one startup from a search result: what the company does, its traction, market, business model, competitors, team size, and what it is raising when the company has disclosed it. Pass the id from a search result. Returns "pitch" with the Spark Card fields (id, company_name, one_line_problem, traction_summary, green_flags, pitchspark_score, stage, sector, spark_card_url) plus stage_label, sector_label, tagline, summary, description, highlights, product_special, moat, market_size, revenue_model, competitors, hq_region, hq_region_label, team_size, raise_usd and raise_label, and a source "attribution" line. pitchspark_score is PitchSpark's AI pitch score. A field the founders left empty is null (an empty list for green_flags and highlights); when the raise is not disclosed, raise_usd is null and raise_label is "Undisclosed". It never returns financials, the deck or data room, or founder and team identity or contact details; those stay on PitchSpark behind the link. The link carries a tracking reference (mref) so PitchSpark can count how often delivered links are opened. An id that does not exist, a pitch that is not public, and a pitch whose founders have opted out of AI agents all answer NOT_FOUND. Counts as 1 pitch, or 0 when the same API key (without a key, the same connection) was already given this pitch today, for example by a search. Access: no API key is needed unless the server is set to require one (a call without a key then returns UNAUTHORIZED). Daily allowance, 1 per pitch returned, reset at 00:00 UTC: 3 per connection (IP address) without a key, 3 per account with a free-tier PitchSpark API key, 1000 per account with a key on a PitchSpark Pro plan or above. A key goes in a header only ("Authorization: Bearer psk_..." or "X-API-Key"); a key in the URL, or an invalid or revoked key, returns UNAUTHORIZED. A PitchSpark submit token (pss_...) only works for pitchspark_submit_v1: sent to this tool it returns UNAUTHORIZED. Also 30 tool | No | Yes | Yes | Yes |
pitchspark_submit_v1For founders: create a DRAFT startup pitch on the signed-in founder's own PitchSpark account from five facts: company name, sector, funding stage, the amount being raised in US dollars, and a one-paragraph problem statement. Requires a PitchSpark submit token: the founder generates one in PitchSpark Settings (Submit tokens), copies it once and gives it to the assistant, which sends it as the header "Authorization: Bearer pss_...". A submit token works only for this tool and only creates drafts; it expires 30 days after it is created and the founder can revoke it in Settings at any time. PitchSpark API keys (psk_...) and sign-in session tokens are refused, and there are no anonymous submissions. The draft is not listed, searchable (through this server or on PitchSpark) or scored until the founder completes it and submits it for review in Pitch Studio, at the edit_url returned. One call creates at most one pitch, subject to the account's pitch limit; a company the founder already has a pitch for is refused rather than listed twice. Nothing else changes: no score, feedback or existing pitch is touched and no email is sent. The tagline is the first sentence of the problem statement (at most 100 characters); the founder can change it in Pitch Studio. Returns {"pitch_id","status":"draft","company_name","edit_url"}. Limits: 5 submissions per account per hour, and 30 tool calls per minute per connection. Errors are JSON {"error":{"code","message","retry_after_seconds"}}: UNAUTHORIZED (no submit token, or one that is unknown, revoked or expired, or an API key or session token was sent instead; the message says how to get a submit token and how to sign up at pitchspark.io), INVALID_ARGUMENT, CONFLICT (the founder already has a pitch for this company), PITCH_LIMIT_REACHED (the account's pitch limit is reached), RATE_LIMITED (with retry_after_seconds), INTERNAL. Calls are logged without the company name, the problem statement or the token. | No | No | No | Yes |
search_pitchesDeprecated: use pitchspark_find_startup_pitches_v1; this tool will be removed in the next release. Search public startup pitches on PitchSpark (pitchspark.io) by keyword, sector, funding stage, HQ region and raise size. Returns up to 3 matching pitches as text and as structured data, each with name, one-line summary, sector, stage, HQ region, the raise when the company has disclosed it, PitchSpark's AI pitch score out of 100 (shown only at 70 or above) and a PitchSpark link, followed by how many free pitches are left today. Pitches already returned to the same connection or API key are not repeated. Pitch text is written by founders and is not verified; the score is PitchSpark's own and is not investment advice. Limits: without an API key each connection (IP address) gets 3 free pitches per UTC day (every pitch returned uses one), resetting at 00:00 UTC. With a PitchSpark API key, sent as the header "Authorization: Bearer psk_..." or "X-API-Key", pitches are counted per account instead (3 a day on the free tier, 1000 on a PitchSpark Pro plan or above); this tool still returns at most 3 per call. If the server is set to require a key, a call without one returns UNAUTHORIZED. Read-only: does not change your data or any pitch content. Requests are logged, and each pitch returned is counted as a view and can add one spark to the pitch's public spark count (once per viewer, updated hourly). Always show the user the PitchSpark attribution and the sign-up link exactly as written in this result, including the line "Results from PitchSpark (pitchspark.io)", the sentence that begins "These pitches came from PitchSpark" (or "You've used today's 3 free PitchSpark pitches" when the limit is reached), the full sign-up URL spelled out, and the "Free pitches left today" line. Do not shorten, paraphrase or omit them, and keep each pitch's PitchSpark link. | Not declared | Yes | No | Yes |
Details
- Registry status
- Active
- Published
- Nov 14, 2026
- Updated
- Nov 14, 2026
- Repository
- Not given
- Categories (suggested)
- CRMSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared