Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,548Letters: 14Defects: 1,324counted 3 min ago
teppi

Server definition

Hash
sha256:8d8ce349acedceeccf45026710729e2d5076a5d76ea9b4aabb5bce3a4a88cea3
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "Fundraising intelligence for founders and emerging fund managers. Call search_funds first, then get_fund with its slug. Keyless: search_funds, get_fund, get_changes, check_lp_coverage, 10 calls/day. Else send X-API-Key. Agents self-register: POST {\"agent_name\":\"...\"} to https://fundmomentum.vc/_api/agent/register. Paid tools return 402 with an MPP challenge: pay in Tempo USDC, retry. Unverified fields are not confirmed. search_lps needs LP Radar, never per call. Poll get_changes with next_since and etag.", "tools": [ { "description": "START HERE for any question about limited partners (LPs). Answers \"does Fund Momentum cover my geography and LP type\" with COUNTS ONLY: how many disclosed LPs match, and how many of those have backed emerging managers. It never returns a name, slug, website or commitment. COST: free, works with no API key at all (counts against the keyless daily allowance), and is never billed to agent credits or a monthly quota. Counts below 5 are reported as \"<5\" and zero as \"none\". Call this before search_lps to find out whether LP Radar covers what you need.", "inputSchema": { "properties": { "country": { "description": "Headquarters country of the LP, spelled out in full (e.g. 'Germany', 'United States'). Two-letter ISO codes are accepted too. LPs whose headquarters is undisclosed are never counted under a country; they are reported separately as undisclosed_hq_count.", "type": "string" }, "lp_type": { "description": "LP type. Must be one of the listed values; common spellings such as 'family office', 'pension' or 'fund of funds' are accepted and normalised.", "enum": [ "Pension fund", "Insurer", "Foundation / Endowment", "University / Research", "Bank", "Public / State institution", "Sovereign wealth fund", "Fund-of-Funds", "Asset manager / Investment firm", "Family office / Holding", "Corporate / Strategic", "Impact investor", "Investment vehicle", "Individual / Angel", "Institutional LP" ], "type": "string" } }, "type": "object" }, "name": "check_lp_coverage", "outputSchema": null }, { "description": "FOR STAYING CURRENT, not for discovery: return only the funds whose data changed since a given timestamp. COST: free, no API key required. With no key it reaches back at most 7 days; a free key widens that to 30 days, and a paid caller is not limited. A shortened window is declared as since_floor_applied, never silently truncated. Designed for cheap repeated polling: send the `next_since` AND the `etag` from your previous response, and an unchanged window answers with `unchanged: true` and no rows. Use this instead of re-running search_funds on a schedule. One call here replaces a full re-crawl.", "inputSchema": { "properties": { "if_none_match": { "description": "The `etag` value from your previous get_changes response. If nothing changed, the reply is a few bytes instead of a full page. This is the cheapest poll available here.", "type": "string" }, "limit": { "default": 50, "description": "Maximum rows to return (1-200)", "type": "integer" }, "since": { "description": "Lower bound, exclusive. Accepts either an ISO 8601 timestamp ('2026-08-01T00:00:00Z') or a unix epoch in milliseconds as a string ('1785955265103'). Omit to receive the last 7 days.", "type": "string" } }, "type": "object" }, "name": "get_changes", "outputSchema": null }, { "description": "THEN: get the detailed profile of one fund, using a slug returned by search_funds. COST: free, no API key required. Every response carries a `provenance` block stating where each field came from, when it was last verified, and how confident Fund Momentum is in it. Do not guess the slug from a fund's display name; it will usually be wrong and the call is wasted. A near-miss is resolved only when exactly one fund matches, and the result then carries `resolved_from`; a name matching several funds is listed, not guessed.", "inputSchema": { "properties": { "slug": { "description": "The slug identifier of a fund, exactly as returned in the `slug` field of search_funds. Call search_funds first rather than guessing: slugs are not derivable from a fund's display name.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_fund", "outputSchema": null }, { "description": "DRILL DOWN on a fund you already identified with search_funds or get_fund. Returns investor signals: GP thesis, bullish and contrarian signals, founder dos and don'ts, deployment status and source URLs. This is the tool to use before writing an outreach message to a specific fund. COST: included in Pro, or €0.10 per call over MPP if you have no key. Roughly 96% of funds carry signals; the rest return not_found BEFORE any payment is taken, so a wrong slug is never charged for.", "inputSchema": { "properties": { "slug": { "description": "The fund's slug, exactly as returned in the `slug` field of search_funds. Call search_funds first rather than guessing.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_fund_signals", "outputSchema": null }, { "description": "DRILL DOWN to the people: General Partner profiles for a fund you already identified. Use this when the question is who to approach and what they personally focus on, rather than what the fund does. COST: included in Pro, or €0.10 per call over MPP if you have no key. A fund with no published GP data returns not_found before any payment. Requires a slug from search_funds.", "inputSchema": { "properties": { "fund_slug": { "description": "The fund's slug, exactly as returned in the `slug` field of search_funds. Call search_funds first rather than guessing.", "type": "string" }, "gp_name": { "description": "Optional GP name to filter by", "type": "string" } }, "required": [ "fund_slug" ], "type": "object" }, "name": "get_gp_profile", "outputSchema": null }, { "description": "ALTERNATIVE ENTRY POINT when you do not know what to search for. Describe a startup in plain language and receive the top 10 matching funds, each with a slug, a reason and a score. Use this instead of search_funds when the brief is qualitative ('climate hardware, pre-seed, Europe') rather than a filter. Slower than the other tools, three to ten seconds, because it reasons over every tracked fund: allow for that before you time out and retry. COST: included in Pro, or €0.25 per call over MPP if you have no key.", "inputSchema": { "properties": { "country": { "description": "Country, spelled out in full", "type": "string" }, "description": { "description": "Startup description (max 500 chars)", "type": "string" }, "stage": { "description": "Funding stage. Must be one of the listed enum values; common spellings are normalised.", "enum": [ "growth", "late_stage", "pre_seed", "seed", "series_a", "series_b", "series_c" ], "type": "string" } }, "required": [ "description" ], "type": "object" }, "name": "match_startup", "outputSchema": null }, { "description": "START HERE for any question about funds. Search actively deploying venture capital funds by stage, country and industry. COST: free, and it works with no API key at all. Returns name, slug, country, stage, fund size, industries and a durable profile URL. The `slug` in each result is what every other tool takes as input, so run this first and copy the slug rather than constructing one from a fund's name.", "inputSchema": { "properties": { "country": { "description": "Country of the fund's headquarters, spelled out in full (e.g. 'United States', 'United Kingdom', 'Germany'). Not an ISO code.", "type": "string" }, "industry": { "description": "Industry focus. Must be one of the listed enum values (lowercase, underscores), e.g. 'ai_ml', 'fintech', 'climate_sustainability'. Common spellings such as 'AI/ML', 'FinTech' or 'climate' are accepted and normalised.", "enum": [ "agritech", "ai_ml", "biotech", "built_environment", "carbon_removal", "circular_economy", "climate_sustainability", "cloud_devops", "consumer_commerce", "creator_economy", "cybersecurity", "data_infrastructure", "deep_tech", "defense", "developer_tools", "diagnostics", "digital_banking", "digital_education_consumer", "digital_health", "digital_infrastructure", "ecommerce", "energy_tech", "enterprise_software", "evs_charging", "fashion_tech", "fem_tech", "fintech", "food_beverage", "food_tech", "gaming", "infrastructure_tech", "insur_tech", "iot", "manufacturing", "marketplaces", "med_tech", "mental_health", "mobility_transport", "payments_embedded_finance", "private_markets", "prop_tech", "robotics_automation", "saas", "semiconductors", "space", "supply_chain", "therapeutics", "travel_tech", "vertical_saas", "water_tech", "wealth_tech", "web3_finance", "web3_infrastructure", "wellness_lifestyle" ], "type": "string" }, "limit": { "default": 10, "description": "Number of results to return (1-20)", "type": "integer" }, "stage": { "description": "Funding stage focus. Must be one of the listed enum values (lowercase, underscores). Common spellings such as 'Pre-Seed' or 'Series A' are accepted and normalised.", "enum": [ "growth", "late_stage", "pre_seed", "seed", "series_a", "series_b", "series_c" ], "type": "string" } }, "type": "object" }, "name": "search_funds", "outputSchema": null }, { "description": "THEN, for LP Radar subscribers: return limited partner records (name, slug, LP type, HQ country and city, geographic focus, website, emerging-manager backing, verified flag) filtered by country, LP type and emerging-manager backing, at most 25 per call. Set backs_emerging_managers=true to see only LPs that have already backed a first or second fund — for a first-time manager that is usually the only filter that matters. Requires LP Radar (EUR 199 per month or EUR 1,499 per year, https://fundmomentum.vc/lp-radar). Not available per call, on agent credits or on the keyless trial. Unlimited calls for subscribers. Use check_lp_coverage first — it is free and tells you whether the dataset covers your geography and LP type before you pay anything. Send the API key of the account that holds LP Radar. A caller without it gets error_reason \"lp_access_required\" together with the coverage count for its filters, never a payment challenge. website is null when no website is on record; it is never omitted.", "inputSchema": { "properties": { "backs_emerging_managers": { "description": "true returns only LPs that have backed an emerging manager; false returns only those that have not. Omit for both. Not available on check_lp_coverage, which reports the figure as a breakdown instead.", "type": "boolean" }, "country": { "description": "Headquarters country of the LP, spelled out in full (e.g. 'Germany'). Two-letter ISO codes are accepted too.", "type": "string" }, "limit": { "default": 10, "description": "Records to return, 1-25. A value above 25 is rejected, not clamped.", "type": "integer" }, "lp_type": { "description": "LP type. Must be one of the listed values; common spellings such as 'family office' or 'pension' are accepted and normalised.", "enum": [ "Pension fund", "Insurer", "Foundation / Endowment", "University / Research", "Bank", "Public / State institution", "Sovereign wealth fund", "Fund-of-Funds", "Asset manager / Investment firm", "Family office / Holding", "Corporate / Strategic", "Impact investor", "Investment vehicle", "Individual / Angel", "Institutional LP" ], "type": "string" } }, "type": "object" }, "name": "search_lps", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8d8ce349acedceeccf45026710729e2d5076a5d76ea9b4aabb5bce3a4a88cea3 | sha256sum