MCP server for EquiVault — AI-powered equity research tools for Claude
EquiVault MCP presents a well-organized collection of 37 financial research tools with consistent naming conventions and generally strong descriptions. Tool names follow verb_noun patterns (search_companies, get_financials, create_alert) which is excellent for LLM discoverability. Most descriptions are substantive (100-200+ characters) and explain the purpose and use case. However, the server exhibits several systematic gaps: (1) Input schemas are visible but lack rigorous parameter typing and validation constraints, many string parameters accept free-form input where enums or patterns would improve safety; (2) Output schemas are not explicitly documented in the source code, only inferred from descriptions; (3) Parameters often lack detailed descriptions of expected formats, valid ranges, or constraints; (4) Error handling guidance is absent, tools provide no recovery hints; (5) Tool compositions hint at idempotency concerns (e.g., alerts can be created/updated/deleted) but no explicit idempotency guarantees are documented. The server does NOT expose secrets as parameters (credentials injected via environment), which is correct per pattern:secret-injection. Overall, this is a well-intentioned, domain-complete financial toolkit that would benefit from stricter parameter validation, output schema documentation, and error recovery guidance.
Get a comprehensive company snapshot — profile, financial statements, metrics, and investment narrative — in a single call. Sections the user's tier can't access are marked as unavailable rather than failing the whole call.
Get a full fundamental deep-dive for a company — everything from analyze_company PLUS all profile sections (guidance, segments, capital allocation, risk factors, insider transactions, earnings quality, debt maturities, competitive signals, management statements, accounting snapshots). Sections your tier can't access are marked unavailable.
Compare financial metrics across multiple companies side by side.
Create a new alert rule that fires when a metric meets a condition. Optionally scoped to a specific company_id; if omitted, the alert applies to all followed companies. Requires Advisor tier.
Delete an alert rule. This cannot be undone. Requires Advisor tier.
Output schemas not explicitly documented. Tools describe what they return in free-text descriptions, but structured output schemas with typed fields are not visible in the source code. LLMs cannot reliably infer response field names and types.
Parameter descriptions lack constraint details. Many string parameters (e.g., filters in screen_companies, metric in create_alert) accept free-form input without documented format, regex patterns, or example structures. LLMs will hallucinate invalid values.
No error handling or recovery guidance. Tools provide no error descriptions, categorizations (retryable vs. user-fixable), or hints for recovery. If a call fails, the LLM has no guidance on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Get snapshots of accounting policies and changes from prior periods.
Get current billing status, tier, query usage, and limits for your EquiVault account.
Get the full contents of a specific brief including its scorecard, strategy score, and rendered sections.
Get historical capital allocation: buybacks, dividends, debt repayment, M&A, and capex.
Get detailed information about a specific company by its ID.
Get the investment thesis for a company — including value drivers, headwinds, and tailwinds. Pass history=true to include prior narrative versions.
Get detected competitive signals affecting a company (market share shifts, new entrants, pricing pressure).
Get the debt maturity schedule: principal due per year, interest rates, and instrument types.
Get the earnings quality assessment: accruals ratio, cash conversion, non-GAAP adjustments, and flags.
Get financial statements (income statement, balance sheet, cash flow) for a company.
Get the management guidance tracker for a company — prior guidance commitments and actual outcomes (beat/miss/in-line).
Get portfolio holdings for a prominent investor (guru). Optionally filter by change type: new positions, increased, decreased, or sold.
Get insider transactions (buys, sells, grants, exercises) with 10b5-1 flag. Requires Advisor tier.
Get notable management statements with sentiment analysis and source attribution. Requires Advisor tier.
List all available markets (exchanges) that EquiVault supports — code, name, country, currency, MIC.
Get financial metrics and key performance indicators for a company over time.
Get pre-computed analytics for a portfolio — total return, Sharpe ratio, sector allocation, top winners/losers.
Get the evolution of risk factors disclosed in a company's filings (new, ongoing, resolved, elevated).
Get revenue and operating-income breakdown by business segment for a company.
Get portfolio-wide signal dashboard: recent signals across all followed companies, unread counts, and per-company breakdown.
Get a count-based summary of signals for a company — breakdowns by type and severity, plus unread count.
Get time-bucketed signal activity trends across your followed portfolio. Optional window: '7d', '30d', '90d', '1y'.
Get detected signals for a specific company (earnings surprises, guidance changes, insider activity, etc). Supports pagination.
Get real-time stock quotes for one or more ticker symbols.
Get cross-company trending signals right now — what's moving in the market across all tracked companies.
List investment briefs. Filter by company_id, or by followed=true to only get briefs for companies the user follows.
List media items (earnings calls, podcasts, presentations, investor days, press releases). Filter by company_id, type, or processing status.
Get a daily research summary: signal dashboard, trending signals, recent briefs for followed companies, and optionally portfolio analytics. Sections your tier can't access are marked unavailable.
Build a comprehensive research report for a company: full deep-dive (profile, financials, metrics, narrative, all 10 profile sections), recent signals, and related briefs — all in one call, ready for rendering as a report.
Screen companies using financial filters. Returns companies matching your criteria.
Search for companies by name, ticker symbol, or keyword. Returns a list of matching companies with their IDs.
Update an existing alert rule. Only the fields you provide are changed. Requires Advisor tier.
Idempotency and state mutation not explicitly documented. Alert creation/update/delete tools modify state, but no explicit idempotency guarantees or duplicate-handling semantics are documented. Agents may retry and cause unintended duplicates.
Pagination parameters present but behavior underspecified. get_signals and get_signal_trends accept pagination (page, limit, window) but total count, next_cursor, and result boundary semantics are not documented.
Tier-gated features not clearly marked at tool level. Several tools mention 'Requires Advisor tier' in descriptions (get_insider_transactions, get_management_statements, create_alert), but no toolAnnotation hints (readOnlyHint, etc.) or capability negotiation is visible in the registration code.
screen_companies expects 'filters' as a JSON string, not a structured object. Asking LLMs to format JSON inside strings is error-prone. Example: filters='{"sector":"Technology","market_cap_min":1000000000}' forces LLM to construct and escape JSON.
company_id references across tools are not validated client-side. No cross-references, existence checks, or guidance on how to obtain valid company_ids for tools that depend on them.
Response result limiting not enforced in tool descriptions. Several list/browse tools (list_briefs, list_media, get_signals) accept pagination but lack explicit guidance on max result counts or performance expectations.