MCP-powered investor search and analytics platform for VC firms, family offices, and institutional investors with SEC data scraping and Supabase integration
This server has significant definition quality gaps. Tool descriptions are present but generic (avg ~80 chars, below the 194-char baseline). Input schemas are visible for most tools but lack proper type constraints and enums. Parameters like 'type' in get_investors and trigger_scrape lack enum constraints despite accepting known values ('Venture Capital', 'sec', 'sec_adv', etc.). Output schemas are not documented. Error handling is minimal, most endpoints return generic 500 errors without recovery guidance. The assess_signal and summarize_signal tools (tools 6-7) have minimal descriptions and no visible schema definitions in the source. No tool annotations (readOnlyHint/destructiveHint) are present despite clear read/write distinctions.
Assess a runtime signal and return score, status, and recommendations for product operations
Create a new investor record in Supabase database
Fetch investors from Supabase with filtering by type, state, AI/fintech/music focus, and search query. Supports pagination with limit and offset.
Get available scraping sources and scraping history/status
Fetch aggregated statistics about investors including total count, breakdown by type, AI/fintech/music focus counts, top states, and data freshness status
Summarize a runtime signal assessment into a concise string format
Trigger a scraping job to collect investor data from SEC or other sources. Returns job ID and status.
Missing output schemas for all tools. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
No enum constraints on parameters accepting known values. 'type' in get_investors should enumerate ['Venture Capital', 'Family Office', ...]; 'type' in trigger_scrape should enumerate ['sec', 'sec_adv', 'sec_13f', 'crunchbase']. Free-form strings invite hallucinated values.
assess_signal and summarize_signal have minimal descriptions (<30 chars) and no visible input schemas in src/main.js. Cannot verify parameter types or constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Generic error handling. All endpoints return 'Failed to fetch investors' or 'Failed to create investor' without actionable recovery guidance. LLMs cannot self-correct or retry intelligently.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). create_investor and trigger_scrape are write operations but lack destructiveHint. get_investors, get_stats, get_scrape_status lack readOnlyHint.