Valuein MCP
An MCP server providing point-in-time, survivorship-free SEC EDGAR fundamentals and smart-money signals for AI agents. It offers 111 tools for equity research, including historical financial data, backtesting, and persistent state management for watchlists and reports across different AI clients.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.valuein.biz/mcpChecks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Query point-in-time SEC EDGAR financial facts for specific tickers
- Run backtests using historical valuation ratios and factor grids
- Manage persistent watchlists and signals across AI sessions
- Schedule automated tasks and trigger actions based on market data
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- valuein-sec-edgar 3.17.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 0 captured; incomplete (byte-cap)
- Resources
- 30 advertised
- Resource templates
- 2 advertised
- Prompts
- 30 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"listChanged": true
},
"completions": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
0 captured; incomplete (byte-cap)
Prompts
30 advertised
margin_and_moat_teardown — Margin & Moat Teardown
Systematic 10-year analysis of a company's operational efficiency and competitive moat. Chains fundamentals → valuation metrics → peer comparables to produce a structured teardown covering revenue quality, margin trends, ROIC vs WACC spread, ROIC persistence (a moat is a trajectory, not a level), and relative positioning vs sector peers.
- ticker
- Stock ticker symbol, e.g. AAPL (required)
peer_benchmarking_memo — Peer Benchmarking Memo
Produces a structured relative-value memo comparing a company to its closest peers. Chains search_companies → peer_comparables → valuation_metrics → financial_ratios to output an investment committee-ready comparison table with ROIC, valuation multiples, and capital efficiency.
- ticker
- Subject company ticker (required)
survivorship_free_backtest — Survivorship-Free Backtest
Sets up a bias-free quantitative backtest: survivorship-free universe (effective-date membership), a quick bounded in-Worker validation grid, then Parquet URLs for bulk out-of-core compute. Chains get_pit_universe → run_backtest (≤120-cell PIT sanity grid) → get_compute_ready_stream to produce ready-to-run Python/DuckDB code; get_pit_valuation_ratios spot-checks any single (ticker, date) cell.
- start_date
- Backtest start date (YYYY-MM-DD). Universe is defined as of this date. (required)
- end_date
- Backtest end date (YYYY-MM-DD). Used for data range guidance. (required)
- index
- Index to backtest within. Currently 'sp500' only.
- sector
- Optional sector filter, e.g. 'Technology'.
pit_factor_constructor — Point-in-Time Factor Constructor
Guides construction of a quantitative factor (Quality, Value, Momentum) across a sector universe using ratio.parquet data. Chains get_pit_universe → get_financial_ratios → get_compute_ready_stream to produce normalized factor scores.
- factor_type
- Factor category to construct. (required)
- sector
- Sector to run the factor within.
- as_of_date
- Factor construction date (YYYY-MM-DD). Universe and ratios defined as of this date. (required)
quality_and_risk_audit — Quality & Risk Audit
Evaluates capital structure safety and dividend sustainability from the filed figures. Chains fundamentals → capital_allocation → valuation_metrics → financial_ratios (leverage/liquidity) to produce a structured risk scorecard.
- ticker
- Stock ticker symbol, e.g. AAPL (required)
capital_allocation_review — Capital Allocation Review
Evaluates management's capital allocation decisions over a multi-year period. Chains capital_allocation_profile → valuation_metrics → financial_ratios to produce a management quality scorecard: does management create value with retained earnings?
- ticker
- Stock ticker symbol, e.g. AAPL (required)
- lookback_years
- Years of capital allocation history to review (3–10). Defaults to 5.
ratio_deep_dive — Ratio Deep Dive
Comprehensive ratio profile for a single company spanning all 7 ratio categories (profitability, liquidity, leverage, efficiency, per_share, owner_earnings, valuation). Includes TTM and 5-year annual history with trend analysis.
- ticker
- Stock ticker symbol, e.g. AAPL (required)
sector_ratio_screen — Sector Ratio Screen
Cross-sectional ratio ranking across a sector to surface the highest-quality or best-value companies. Chains get_pit_universe → get_compute_ready_stream to screen the full sector using pipeline-computed ratios.
- sector
- Sector to screen, e.g. 'Technology', 'Health Care' (required)
- screen_type
- Screening objective: 'quality' ranks by ROIC+margins, 'value' ranks by EV/EBITDA+P/FCF, 'income' ranks by dividend yield+coverage. (required)
- as_of_date
- Optional historical date (YYYY-MM-DD) for PIT screening. Omit for current.
equity_research_brief — Equity Research Brief
Single-ticker end-to-end research brief in markdown — fundamentals, valuation, ratios, capital allocation, peer comparison, recent catalysts, and SEC lineage. Three depth modes: 'quick' (3 tools, snapshot), 'full' (8 tools, default — institutional brief), 'forensic' (adds restatement audit + fact-level SEC verification). Streams sections in real time as each data phase completes. Renders as an artifact users can export to Word/PDF. PIT-safe via as_of_date for backtests.
- ticker
- Stock ticker, e.g. AAPL (required)
- depth
- Analysis depth. 'quick' = snapshot (≈3 tool calls). 'full' = institutional brief (default, ≈8 calls). 'forensic' = adds restatement audit + fact lineage (≈11 calls).
- as_of_date
- Optional point-in-time date (YYYY-MM-DD) for backtests. Omit for the latest data.
- peers
- Optional comma-separated peer tickers for the comparison table (e.g. 'MSFT,GOOGL'). Omit to auto-derive via get_peer_comparables.
screen_and_shortlist — Screen and Shortlist
PM idea-generation workflow: build a PIT universe, factor-rank it, QC the leaders with a period-over-period change check, and hand off the top-ranked names to equity_research_brief for full write-ups. Survivorship-free via get_pit_universe; renders as a markdown shortlist artifact users can export.
- sector
- Sector to screen (case-insensitive substring match — SIC-derived, GICS-aligned). E.g. 'Technology', 'Health Care', 'Energy'. Omit to screen the full index.
- index
- Universe to screen within. Defaults to sp500 (~500 large caps).
- objective
- Screen objective: 'quality' = ROE + margins + Piotroski; 'value' = inverse of valuation richness via composite_rank discount; 'growth' = revenue_growth_yoy_rank; 'balanced' (default) = composite_rank across all factors.
- as_of_date
- Optional point-in-time date (YYYY-MM-DD) for survivorship-free historical screening. Omit for the current universe.
- top_n
- Shortlist size (5–20). Defaults to 10.
smart_money_brief — Smart Money Brief
Single-ticker smart-money brief: composite flow score, top holders (classified), 13F deltas, activist blockholders, and insider sentiment overlay. Three depth modes: 'quick' (3 composites only), 'standard' (default, + 13F + blockholders), 'deep' (+ insider transactions + company fundamentals for fundamental context). Renders as an exportable markdown artifact. Institutional tier only.
- ticker
- Issuer ticker symbol. (required)
- depth
- Analysis depth. 'quick' = 3 composite tool calls. 'standard' (default) = + 2 primitives. 'deep' = + insider transactions + fundamentals context (7 tools total).
- period_end
- Optional 13F period_end (YYYY-MM-DD). Omit for latest.
activist_surveillance — Activist Surveillance
Event-driven surveillance for activist target / takeover candidates. Surfaces filers flipping 13G → 13D within the lookback window (the strongest activist signal in the dataset), then cross-references defensive insider activity and 8-K item 1.01 filings to check whether a corporate response is already in motion. Banker / event-driven desk workflow. Institutional tier only.
- ticker
- Target ticker. Universe-mode (iterate over many tickers) is a SDK / agent loop — this prompt is single-ticker per call. (required)
- lookback_days
- Window for 13G → 13D detection. Default 365 days.
forensic_earnings_brief — Forensic Earnings-Quality Brief
Hedge-fund-grade earnings-quality red-flag brief for a single ticker. Chains forensic_audit (deterministic Beneish M-Score + solvency-distress proxy + Sloan accruals) → restatement diff → Risk-Factor delta to surface earnings-quality flags and anomalies worth review. These are neutral, thresholded, directional signals — NOT a verdict, and NOT an accusation of fraud or manipulation. Output: structured flag list with citation to specific XBRL tags + 10-K accessions.
- ticker
- Ticker to audit. E.g. ENRN, LEH, HBC. (required)
morning_briefing — Morning Briefing
Daily overnight digest: material SEC filings across the caller's watchlist since the last close. Ranks by likely impact (M-score change candidates, 8-K item types, amendment flags).
- watchlist_name
- No description (required)
- since
- No description (required)
earnings_pulse — Earnings Pulse
Pre-earnings pulse for a single ticker. Pulls last 8 quarters of fundamentals + the existing get_earnings_signals trend + management-credibility cross-check (promise-vs-delivery on key segments). Output: 1-page pre-read for an analyst attending the call.
- ticker
- No description (required)
restatement_radar — Restatement Radar
Daily/weekly sweep for 10-K/A and 10-Q/A amendments across a watchlist (or the caller's full ticker set). Surfaces amendments that materially changed reported revenue, cash flow, or earnings — the highest-signal restatement events for a forensic analyst.
- watchlist_name
- No description (required)
- since
- No description (required)
earnings_war_room — Earnings-Day War Room
The moment a company files (10-Q / 10-K / 8-K), grade every open claim and thesis you hold on that ticker against the fresh numbers and draft a cited 'what changed' memo — before the earnings call. Turns a filing into a cited record: what resolved, what surprised, what stays open. Stage the memo for human approval; never act outward automatically.
- ticker
- No description (required)
- as_of_date
- No description
screen_to_thesis — Screen → Thesis Pipeline
End-to-end idea-generation pipeline: screen → forensic audit → shortlist of the top N candidates. Wraps existing screen_universe + forensic_audit; ends in a saved watchlist of the survivors.
- criteria_name
- Short label for the screen (e.g. 'high-FCF low-debt'). (required)
- max_results
- Top N candidates to keep (cap 25). (required)
smart_money_pulse — Smart-Money Pulse
PM digest: 13F + insider activity across the caller's watchlist. Surfaces top fund accumulators, recent insider clusters, and 13D/13G activist filings worth investigating. Institutional tier (full plan) only.
- watchlist_name
- Caller's named watchlist (from list_watchlists). (required)
- lookback_days
- Look-back window in days (e.g. '30'). (required)
activist_radar — Activist Radar
Detect new SC 13D / 13G filings across the watchlist and pull the activist's historical playbook stats. Surfaces 13G→13D conversions (the strongest 'going active' signal). Institutional tier.
- watchlist_name
- No description (required)
- lookback_days
- No description (required)
sector_overview_flow — Sector Overview
Comprehensive sector / industry landscape brief — market dynamics, top 5-10 players, competitive structure, valuation context, and investment debate. Distinct from `sector_ratio_screen` (which is just a screen) and `screen_and_shortlist` (single-theme idea generation) — this is full sector context. Adapted from anthropics/financial-services equity-research/sector-overview.
- sector
- Sector or sub-sector to map. Free-text; the SOP narrows it via SIC + market-cap filters. Examples: 'cloud infrastructure', 'US regional banks', 'semiconductor capital equipment'. (required)
- as_of_date
- Optional snapshot date for the universe + multiples. Defaults to today. Use for PIT sector retrospectives (e.g. 'what did regional banks look like on 2023-03-01 — pre-SVB?').
- top_n
- Top N players to profile by revenue. Defaults to 8.
dcf_build_flow — DCF Build (Disciplined)
Disciplined forward-DCF construction for a single ticker — pulls fundamentals, justifies each assumption against history + peers, calls `compute_dcf`, and renders the full per-share value + 5×5 sensitivity grid. Wraps Valuein's existing `compute_dcf` math tool with verify-at-each-step discipline. Adapted from anthropics/financial-services financial-analysis/dcf-model.
- ticker
- US-listed ticker. Case-insensitive. (required)
- stage1_years
- Explicit-forecast horizon. Defaults to 5.
- confirm_each_step
- When 'true', the agent pauses after each assumption block and asks the user to confirm before proceeding. Default 'true' — the discipline is the value. Set 'false' for one-shot runs.
watchlist_and_signal_setup — Watchlist & Signal Setup
Operational monitoring setup for a PM/analyst: create a watchlist, attach signal rules, dry-run them, and confirm the inbox is wired. Chains save_watchlist → create_signal → test_signal → list_signals → list_signal_inbox. Tier: sp500+ (watchlists + signals are persisted user state).
- watchlist_name
- Name for the watchlist, e.g. 'AI Semis'. (required)
- tickers
- Comma-separated tickers to watch, e.g. 'NVDA,AMD,AVGO'. (required)
review_and_signoff — Review & Sign-off
Figure-level review coverage loop for one report. Chains verify_report_figures (the machine verdict on every figure in the prose — start here) → get_report (read citations) → list_figure_reviews (see what's already reviewed) → verify_facts (check every unreviewed figure against its filing in one batch call) → save_figure_review (record a verdict per figure) → list_figure_reviews (confirm the new coverage). Produces a coverage summary, not a certificate — issuing a signed attestation is a separate surface this SOP does not touch. Tier: sp500+ (figure reviews are persisted user state).
- report_id
- Id of the report to review, as returned by create_report / list_my_reports / save_freeform_report. (required)
multi_factor_signal — Multi-Factor Signal
Builds a point-in-time-disciplined composite signal across the cross-section. Chains get_pit_universe → get_compute_ready_stream → screen_universe → get_financial_ratios for per-name verification → run_backtest for a bounded forward-return sanity grid on the decile extremes. Enforces an as_of_date through every step so the signal carries zero look-ahead.
- as_of_date
- Point-in-time date (YYYY-MM-DD). The universe AND every factor input are reconstructed as of this date — no look-ahead. (required)
- index
- Index universe to score within. Currently 'sp500' only.
fundamental_deep_dive — Fundamental Deep Dive (10-K Teardown)
The annual-report deep-read ritual as one run: a 10-year financial spread (revenue, margins, FCF, ROIC, share count, leverage) with every figure filing-cited, a quality-of-earnings read (OCF vs net income), the full restatement history with before→after diffs, capital-allocation flags, and fact-level lineage verification on the headline numbers. Chains get_company_fundamentals → get_financial_ratios → get_capital_allocation_profile → list_restatements → compare_periods → verify_fact_lineage. Ends in an exportable teardown artifact.
- ticker
- Stock ticker, e.g. AAPL (required)
- years
- Years of history to spread (5–20). Defaults to 10 — a full cycle.
- as_of_date
- Optional point-in-time cutoff — reconstruct the teardown as it was knowable on this date.
dividend_sustainability_review — Dividend Sustainability Review
Dividend safety from cash-flow articulation, not yield-chasing: 10 years of payout history, FCF coverage trajectory, deployment flags (debt-funded distributions), leverage headroom, and the revision record on the cash-flow concepts — ending in a SAFE / STRETCHED / AT-RISK read with every figure cited. Deliberately performs no dividend-discount arithmetic: capacity is read from returned coverage ratios; growth/required-return inputs are labelled user assumptions. Chains get_company_fundamentals → get_financial_ratios (per_share + leverage) → get_capital_allocation_profile → list_restatements → optional claim + tripwire.
- ticker
- Ticker whose dividend is under review. (required)
- as_of_date
- Optional PIT cutoff.
initiation_of_coverage — Initiation of Coverage
The full idea → IC-ready initiation pipeline: 10-year history, moat evidence, peer positioning, valuation with labelled assumptions (DCF + reverse-DCF expectations read), ranked risks with pre-committed kill criteria, and a variant view — ending in a persisted, citation-carrying report. Chains fundamentals/ratios/valuation/capital-allocation/peers/restatements → compute_dcf + create_report(reverse_dcf) → save_freeform_report → follow-up monitoring. The 1–4-week fund workflow, compressed with provenance intact. Tier: sp500+ (persists the report).
- ticker
- Ticker to initiate coverage on. (required)
- as_of_date
- Optional PIT cutoff for a historical initiation exercise.
value_screen_pipeline — Value Screen Pipeline
The value investor's screen-to-thesis pipeline: survivorship-free universe → cash-flow-yield screen → quality + earnings-quality gates → owner-earnings read (maintenance-capex honesty) → margin-of-safety via reverse-DCF expectations read → a saved, monitored watchlist. Chains get_pit_universe → screen_universe → get_financial_ratios/forensic_audit → get_capital_allocation_profile → get_stock_price + create_report(reverse_dcf) → save_watchlist + create_signal. Tier: sp500+ (persists watchlists/signals).
- sector
- Optional sector filter, e.g. 'Technology'. Omit for the full index.
- index
- Universe to screen within.
- top_n
- Finalists to take through the margin-of-safety step (1–9).
- as_of_date
- Optional PIT date for a historical pipeline exercise.
standing_research_desk — Standing Research Desk
Stand up the whole monitoring desk in one run: watchlist → filing/restatement signal tripwires (dry-run-verified) → a filing-event rule posting to the inbox → a scheduled standing agent for the daily sweep → confirm the plumbing (list_signals/list_rules/list_agents, a smoke run, the inbox). Ends with an honest account of exactly how each future notification arrives. Chains save_watchlist → create_signal/test_signal → create_rule/test_rule → save_agent/run_agent → get_agent_run/list_signal_inbox/get_morning_brief. Tier: sp500+ (Pro+ unlocks price/fundamental-change conditions and agent_run channels — offered tier-honestly).
- watchlist_name
- Name for the monitored watchlist, e.g. 'Core Book'. (required)
- tickers
- Comma-separated tickers the desk watches, e.g. 'AAPL,MSFT,NVDA'. (required)
- focus
- Optional one-line mandate for the standing agent, e.g. 'flag margin compression and any restatement'.
Resources
30 advertised
sp500-universe — S&P 500 universe
Current S&P 500 members as a single JSON roster — ticker, CIK, company name, sector, industry, and primary exchange for every active constituent. Reads as the latest membership snapshot from the references table; for survivorship-free historical universes use the get_pit_universe tool with an as_of_date instead.
reference://sp500{
"audience": [
"assistant"
],
"priority": 0.7
}pricing-current — Pricing & plan tiers
Full tier ladder (Sample → Benchmark (free) → Pro → Institutional → Enterprise) with prices, (a subscription buys data; a separate balance pays for AI compute, with no run limits), Stripe SKUs, breadth/depth coverage, filing types, and feature flags. Plus the per-tool pay-per-call rate card. Read this first when an agent hits a LIMIT_EXCEEDED response and needs to pick between upgrade vs pay-per-request. The same data backs every remediation menu in tool errors.
pricing://current{
"audience": [
"assistant"
],
"priority": 0.7
}signals-feed — Signal inbox feed
Recent in-app signal fires for the calling customer. Read this resource to drain the same notification stream the frontend dashboard bell shows. Returns up to 50 newest-first items; mirror of `list_signal_inbox` output. Use the tool when you need pagination, the resource for a quick snapshot.
valuein://signals/feed{
"audience": [
"assistant"
],
"priority": 0.9
}earnings_signals schema — earnings_signals table schema
Trend-based earnings expectations and surprise metrics per entity. eps_trend_est is a proprietary trailing earnings-trend estimate; eps_surprise_pct measures actual EPS against that estimate. revenue_yoy_pct is the year-over-year revenue change. UNITS: eps_surprise_pct and revenue_yoy_pct are FRACTIONS (0.067 = 6.7%); the momentum_* columns are PERCENT points (6.7 = 6.7%). eps_actual / revenue_actual are the first-disclosed standalone quarter of the primary tag (fact.priority = 1). Before 2005 a Q2 / Q3 filed only as a 6- / 9-month year-to-date total has its revenue_actual derived as the difference of the two year-to-date totals of the same tag and unit (eps_actual stays NULL: per-share figures do not subtract). NULL when insufficient prior history exists. Methodology is proprietary. Derived at export time — not stored in Postgres.
schema://earnings_signals{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}entity schema — entity table schema
Legal structure and profile of reporting companies.
schema://entity{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}fact schema — fact table schema
Standardized financial data points (US-GAAP XBRL mapped to canonical standard_concept labels).
schema://fact{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}factor_scores schema — factor_scores table schema
Cross-sectional factor scores and percentile ranks per entity, computed across the full universe from recent annual filings. _rank columns are normalized to 0.0–1.0 (1.0 = strongest relative standing); composite_rank is a proprietary blend of the individual factor ranks. Methodology is proprietary. Derived at export time — not stored in Postgres.
schema://factor_scores{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}filing schema — filing table schema
Metadata for all SEC filings processed.
schema://filing{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}filing_registrant schema — filing_registrant table schema
Every registrant of an SEC accession. ``filing`` has ONE row per ``accession_id``, owned by the first registrant, so a combined (co-registrant) filing appears under only one CIK there; ``fact.entity_id`` still names each registrant. Join this table to ``filing`` on ``accession_id`` to list a company's filings including the combined ones: ``SELECT f.* FROM filing f JOIN filing_registrant r ON r.accession_id = f.accession_id WHERE r.entity_id = :cik``. A registrant that filed no numeric fact under its own CIK may be absent.
schema://filing_registrant{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}index_membership schema — index_membership table schema
Index constituents keyed on ``cik``. Always JOIN ``references.cik = index_membership.cik`` to attach company metadata (name, sector, ticker). Filter by ``index_name`` for the index, by ``effective_date`` / ``removal_date`` for the as-of window (half-open ``[)`` semantics). Note: ``cik`` is named ``cik`` here (NOT ``entity_id`` like security/filing/fact) so the JOIN with ``references`` uses the same column name on both sides — see migration 0015 for the rationale. HISTORICAL DEPTH AND PROVENANCE DIFFER BY INDEX — read this before using the table for point-in-time work. The ``source`` and ``confidence`` columns are the discriminators, and they are the ones to branch on. * **SP500 — from 1996-01-02; two builds, told apart by ``date_precision``.** (a) Rows with ``date_precision`` set come from the fund-filing build (schema 5.1.0). WHO was a member is the union of the full portfolios seven registered index funds tracking the index file with the SEC (N-30D, N-CSR, N-CSRS and N-Q schedules of investments 1995-2019, Form NPORT-P from 2019), each fund line resolved to a CIK by its era-checked name or CUSIP, never by ticker: about 500 members at every year end from 1996. WHEN a change happened is the day a publicly available constituent list states for it, used only when that day falls inside the bracket of the two fund filings around the change (``source='public_list'``, ``date_precision='day'``); otherwise the day an issuer's forward 8-K names (from 2019), else the measured window around a day a filing states (a trading stop, a closing, a Form 25 / 15, a succession), else the bracket between the two fund filings with the CONSERVATIVE point (the latest plausible join day, the earliest plausible exit day). A ``window`` row keeps both bounds in ``*_earliest`` / ``*_latest``. The public list states few days before 2007, so most changes before 2007 are windows. A change dated after the newest fund filing is ``status='provisional'`` until a fund filing confirms it (60-150 days). ``source`` is ``public_list`` / ``fund_filings`` / ``event_filing`` / ``succession_config``. (b) Rows with ``date_precision`` NULL come from the earlier build (public constituent lists, a public dated-snapshot history and SEC succession filings, ``source`` ``historical_seed`` / ``public_constituent_list`` / ``succession_config``): it under-counts the index before about 2006 (roughly 77 % of the members at the end of 1996), so grade it by ``confidence``; the fund-filing build replaces it whole. * **RUSSELL1000 / RUSSELL2000 / RUSSELL3000 — from 2000-09-30, ``medium`` confidence, ``source='fund_holdings'``.** 3,051 / 10,130 / 11,025 spells, of which 2,059 / 8,214 / 8,117 are closed. Reconstructed from the publicly disclosed portfolio holdings of large funds tracking each index, NOT from the index provider's own constituent lists, which are licensed IP we do not redistribute. Three bounds follow from that derivation and must be carried into any conclusion drawn from the Russell rows. (1) OBSERVATION SPACING VARIES — roughly one to four observations a year from 2000 through 2006, monthly from 2007 on — so a join or leave date is only as precise as the interval between observations, and is never exact to the day in the early years. (2) A tracking fund only PROXIES its index — a few holdings sit outside it and a sampled fund can miss members — so these are our derived membership, not the index. (3) There is NO Russell data before 2000-09-30; an earlier date returns zero rows because we do not carry it, which is not a statement that the index was empty. Confidence is therefore ``medium`` and never ``high``, which correctly leaves the MCP's ``pit_safe`` false. KNOWN GAP — no holdings observation exists anywhere between 2016-12-30 and 2017-07-31, a 213-day window, for any fund read. Russell membership cannot be observed there, so departures collapse onto 2016-12-31 and arrivals onto 2017-07-31, and the June 2017 reconstitution therefore appears to happen on 31 July. A year-end 2016 point-in-time query returns 2,623 RUSSELL3000 members rather than ~2,900 for this reason alone. SP500 is unaffected. Fund-filing SP500 rows sit at ~500 at every year end from 1996: the members a fund filing names and no rung of the name resolution can tie to a CIK are listed per name in the build's worklist, never guessed. Index membership is reconstructed independently by Valuein from public information: SEC filings (index funds' N-PORT, N-CSR, N-30D and N-Q schedules; issuers' 8-Ks, Form 25 / 15, 8-K12B), publicly available constituent lists and public reports of index changes; never from an index provider's licensed constituent data. Index names are trademarks of their owners; Valuein is not affiliated with or endorsed by any index provider.
schema://index_membership{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}industry_classification schema — industry_classification table schema
Point-in-time industry classification (SEC SIC): one row per company and SIC spell, built from the SIC each filer itself reported in its own filings (SGML header, financial-statement data sets, SEC submissions). ``valid_from`` is the acceptance instant of the first filing that showed the SIC; ``valid_to`` (exclusive) is where the next spell starts, NULL for the current one. There are NO rows before a company's first evidence: history is never minted, so a backtest dated earlier must decide for itself (using the first spell is the nearest-in-time choice). A -> B -> A is three spells: a real reassignment is not smoothed. ``references.sector`` / ``industry`` / ``sic_code`` and ``entity`` are CURRENT (the latest SEC submissions value) and are NOT point-in-time: use this table for as-of questions (``valid_from <= t AND (valid_to IS NULL OR t < valid_to)``). ``sector`` is the same SIC-to-sector mapping ``references.sector`` uses, applied to the spell's SIC. No GICS (licensed by MSCI and S&P): SIC 4-digit is the finest level published. Sliced like ``references`` (same companies per bucket), no date window.
schema://industry_classification{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}insider_filing schema — insider_filing table schema
Form 3 / 4 / 5 / SC 13D / SC 13G / 144 (and amendments) — the subject-rooted insider DISCLOSURE filing record. Distinct from ``filing`` (financial-statement forms) so the financial table stays clean. ``subject_cik`` is the issuer the disclosure is about — a SOFT reference (LEFT JOIN to entity.cik when in the fundamentals universe; may be NULL/unmatched for foreign / pre-IPO / delisted issuers). ``filer_party_id`` FKs to ``insider_party`` (the insider / holder). Children ``insider_transaction`` and ``insider_ownership`` FK to this table via accession_id. FULL bucket only — enterprise tier.
schema://insider_filing{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}insider_footnote schema — insider_footnote table schema
Form 3 / 4 / 5 footnotes — the receipt behind a 10b5-1 plan, a weighted-average price or a plan adoption date, which the extraction never parses out of the text. Lines cite them through ``insider_transaction.footnote_refs``. Joins to ``insider_filing`` via accession_id. FULL bucket only; monolithic parquet only (no per-CIK partitions).
schema://insider_footnote{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}insider_ownership schema — insider_ownership table schema
SC 13D / SC 13G beneficial-ownership disclosures (5%+ stakes). One row per (filing, reporting person). Group filings carry multiple reporting persons — each lands as a separate row. Joins to ``insider_filing`` via accession_id; subject_entity_id is the issuer CIK (the company being held — soft ref, LEFT JOIN to entity). FULL bucket only — enterprise tier (full plan).
schema://insider_ownership{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}insider_ownership_purpose schema — insider_ownership_purpose table schema
Schedule 13D Item 4 'Purpose of Transaction', verbatim: raw filed text only, no summary and no classification. 13D / 13D/A only (13G has no Item 4); an amendment that does not restate Item 4 has NO row (never carried forward). Joins to ``insider_filing`` via accession_id. FULL bucket only; monolithic parquet only.
schema://insider_ownership_purpose{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}insider_party schema — insider_party table schema
Directory of every insider / reporting person referenced by Form 3/4/5/144. Keyed on CIK when SEC-registered, otherwise on a normalized name. Joined to insider_transaction via insider_party_id. FULL bucket only — enterprise tier (full plan).
schema://insider_party{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}insider_transaction schema — insider_transaction table schema
Form 3 / 4 / 5 / 144 line items — each row is one transaction, initial holding, or proposed sale by an insider. transaction_type is 'transaction' (Form 4/5), 'initial_holding' (Form 3), or 'proposed_sale' (Form 144). Joins to ``insider_filing`` via accession_id, to ``entity`` (issuer) via entity_id (soft ref), and to ``insider_party`` via insider_party_id. FULL bucket only.
schema://insider_transaction{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}institutional_filing schema — institutional_filing table schema
Form 13F-HR / 13F-NT (and amendments) — the manager-rooted filing record. Distinct from ``filing`` (issuer-rooted) because 13F filings have no single subject issuer (the manager reports a portfolio across many issuers). FK to ``insider_party`` for the manager. FULL bucket only — enterprise tier.
schema://institutional_filing{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}institutional_holding schema — institutional_holding table schema
Form 13F-HR holdings — institutional managers' quarterly position disclosures. One row per filed information-table line (``holding_line_no``): a filing may list one security on several lines (per investment discretion or other manager), and the position is their sum. ``shares_or_principal_type = 'PRN'`` rows are bonds / convertible notes whose ``shares`` is a face amount in dollars: filter ``shares_or_principal_type = 'SH'`` before summing shares. Joins to ``institutional_filing`` via accession_id (the 13F filing record); ``filer_cik`` is the manager CIK (denormalised — same value as institutional_filing.filer_cik). ``subject_entity_id`` is the issuer CIK (NULL until the internal issuer resolution succeeds). FULL bucket only — enterprise tier.
schema://institutional_holding{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}institutional_other_manager schema — institutional_other_manager table schema
13F manager lists. list_kind 'included' = the summary page's 'List of Other Included Managers' (numbered; cited by ``institutional_holding.other_managers``); 'reporting_for' = the cover page's 'Other Managers Reporting for this Manager'. Public SEC / FINRA numbers only. Joins to ``institutional_filing`` via accession_id. FULL bucket only; monolithic parquet only.
schema://institutional_other_manager{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}investment_adviser schema — investment_adviser table schema
SEC Form ADV Part 1A — registered investment advisers and Exempt Reporting Advisers (~23.6K firms). A SEPARATE SEC SOURCE from EDGAR: advisers file into IARD (operated by FINRA Regulation), so rows key on the firm's CRD number, NOT a CIK. Sourced from the daily IAPD bulk feed ``IA_FIRM_SEC_Feed_*.xml.gz``. PIT: the natural key is (crd_number, filing_date) where filing_date is the adviser's own Form ADV filing date. A firm's annual updating amendment APPENDS a new vintage instead of overwriting the prior one — the same append-on-restatement shape as ``ratio.accepted_at``. Filter ``filing_date <= as_of`` and take the latest vintage per crd_number for a point-in-time view, or the whole partition for adviser history. ⚠ Items 5.A–5.F are ABSENT for firm_type='ERA' — Exempt Reporting Advisers file an abbreviated form. That is a different filing obligation, NOT missing data; scope coverage metrics to firm_type='Registered' or you understate completeness by ~28%. FULL (Institutional) bucket only.
schema://investment_adviser{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}investment_adviser_private_fund schema — investment_adviser_private_fund table schema
Form ADV Schedule D, Section 7.B.(1) — private funds advised by a registered investment adviser. One row per (adviser, fund, filing vintage); joins to ``investment_adviser`` on crd_number. ⚠ SOURCE + COVERAGE: the daily IAPD feed carries only the Item 7.B yes/no flag, so fund detail comes from the MONTHLY FOIA bundles (``ADV_Filing_Data_YYYYMMDD_YYYYMMDD.zip``), which are a FILING-EVENT stream — roughly 2.9K of 23.6K advisers per month. Because each adviser files one annual updating amendment, coverage converges on the full fund-reporting population only across ~12 monthly bundles. A partial load looks complete but is not: check ``investment_adviser.has_private_funds`` for the authoritative population count. FULL (Institutional) bucket only.
schema://investment_adviser_private_fund{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}ratio schema — ratio table schema
Pipeline-computed financial ratios per entity per fiscal period. Derived from fact data. Written append-on-restatement: each row's ``accepted_at`` is the PIT vintage = max(accepted_at) of the input facts that produced it, so a restated period (recomputed from a later-filed fact) is a NEW vintage row rather than an overwrite — mirroring fact.parquet. Filter as-of with ``accepted_at <= as_of`` then take the latest vintage to avoid look-ahead bias. No accession_id (ratios derive from multiple filings). ``accepted_at`` is NULL for cross-sectional rank rows (``*_sector_pctile``) and any year whose source facts lacked an acceptance timestamp; ``computed_at`` tracks the latest computation within a vintage. Equity ratios name the equity they use: ``return_on_equity`` = NetIncomeToCommon / average CommonEquity (the default basis); ``return_on_parent_equity`` = NetIncome / average ParentEquity; ``return_on_total_equity`` = NetIncomeIncludingNCI / average TotalEquity; ``book_value_per_share`` = CommonEquity / common shares outstanding at the balance date; ``tangible_book_value_per_share`` and ``return_on_tangible_equity`` are on CommonEquity less goodwill and intangibles; ``debt_to_equity``, ``liabilities_to_equity``, ``long_term_debt_to_equity``, ``debt_to_capital`` and ``equity_multiplier`` are on TotalEquity; ``common_equity_cagr_Ny`` and ``bvps_cagr_Ny`` follow CommonEquity. An average uses the same equity concept at both ends; a missing or non-positive equity leaves the ratio absent.
schema://ratio{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}references schema — references table schema
Denormalized flat join of entity + security. One row per security — covers the company universe (CIK + primary identifiers + sector + ticker) — plus one row with NULL security_id / symbol for every reporting company that has no security (e.g. a wholly-owned subsidiary that files only because it issues public debt, or a delisted registrant). Filter symbol IS NOT NULL for listed securities only. For ANY membership question (current or historical, SP500 or Russell), JOIN with index_membership on cik = cik. The join column has the same name on both sides — this view does NOT carry index-membership flags because they're inherently snapshot-only and single-index, both of which are footguns the index_membership table avoids by design.
schema://references{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}restatement_events schema — restatement_events table schema
Restatement Radar feed — one row per financial fact that a later filing materially changed (>0.5% swing from the originally-reported value), across the full 1993→present archive. Derived in DuckDB from fact.parquet by reproducing the fact_lineage_summary matview's aggregation over every vintage (see data-pipeline/services/restatements.py). Each row carries the original ('as reported') value, the current ('restated') value, the signed delta, a deterministic severity bucket, both filings' accessions for one-click SEC lineage, and a per-company magnitude rank ('Nth largest revision in this company's history'). Public-fact table — served to ALL tiers unsliced (copy-whole), including the free guest/sample tier, so the public /radar surface always shows the complete feed. ``event_id`` is a content hash of the tuple grain (cik, standard_concept, period_end, fiscal_period, unit), stable across re-restatements → stable /radar/[id] URL.
schema://restatement_events{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}security schema — security table schema
Ticker symbols and tradeable instrument metadata (SCD Type 2 with date ranges).
schema://security{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}standard_concept schema — standard_concept table schema
Valuein's curated gold-standard concept catalog (~292 rows) — the dictionary for the ``fact.standard_concept`` column. Each row is one L1/L2 concept (Revenue, GrossProfit, LongTermDebt, …) with its statement/category, definition, default unit, and Bloomberg/FactSet field equivalents. Distinct from ``taxonomy_guide`` (the ~11,966-row raw SEC us-gaap tag reference for the ``fact.concept`` column): join ``fact.standard_concept = standard_concept.standard_concept`` for the curated label, ``fact.concept = taxonomy_guide.standard_concept`` for the raw tag. The 'Other' catch-all row is included.
schema://standard_concept{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}stock_price schema — stock_price table schema
Coarse end-of-day market-price series per entity — period-end-aligned closes (one per fiscal period_end, for value-vs-price overlays) AND a monthly last-trading-day close history (for charting/backtest scaffolding). Filter on ``observation`` to pick the grain. RAW closes (never split/dividend-adjusted — split-invariant ratios need no adjustment); ``div_cash`` / ``split_factor`` carry the corporate-action factors for query-time total-return adjustment. Point-in-time: ``accepted_at`` = the market-close timestamp, so an ``as_of`` before the close never sees that bar. GRAIN: one row per (entity_id, observation, period_end-or-month) — this table is joined to per-CIK fundamentals, so an issuer with several listed securities is resolved to its PRIMARY listing before alignment; ``security_id`` / ``symbol`` record which one, so a P/E is auditable back to the share class it was computed from. ``total_return_index`` (3.3.0) is that listing's daily total-return index sampled at these closes, so the ratio of two month-end rows is the total return between them — dividends between the two month-ends included — and a monthly-rebalanced backtest needs nothing finer. Every tier carries this table. For every listing of a multi-class issuer, and for daily bars, read ``stock_price_daily`` — Institutional and Pro only. Derived at export from the internal licensed price archive. ⚠️ COVERAGE FLOOR: licensed market data, NOT EDGAR — it does NOT start at EDGAR's 1993 floor. No bars exist in 1993; the earliest bar differs per security and is 1994 or later (measured 2026-09-12).
schema://stock_price{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}stock_price_daily schema — stock_price_daily table schema
Daily OHLCV bar series — one row per (SECURITY, trading day), NOT downsampled (unlike the coarse ``stock_price`` table). Powers as-of-arbitrary-date price lookups (latest close on-or-before any calendar date) and total-return backtests. ⚠️ GRAIN IS PER SECURITY, NOT PER COMPANY: an issuer with several listed securities (GOOG + GOOGL, a tracking stock, a contingent value right) contributes one row per listing, and both are real prices. Partition or filter on ``security_id`` — a window function partitioned on ``entity_id`` alone alternates between two unrelated price series. For one row per company per day, add ``WHERE is_primary_listing``. TOTAL RETURN: use ``total_return_index``, not ``adjusted_close`` (which carries NO history before 2026-06-29, so it truncates a backtest instead of failing it) and never raw ``close`` (which drops ~75% on a 4-for-1 split). Point-in-time: ``accepted_at`` = the market-close timestamp, so an ``as_of`` filter before the close never sees that bar. Derived at export time from the internal licensed price archive via the same date-aware ticker→CIK resolution as ``stock_price``. ⚠️ INSTITUTIONAL AND PRO ONLY (since 3.3.0, 2026-09-17): sliced + per-CIK partitioned for full (all history) and pro (15y); NOT published to the free tiers, whose manifests do not list it. The archive is licensed market data on terms that cover derived measures, not redistribution of the series, and the free tiers are read without a contract. On those tiers use the coarse ``stock_price`` table (period-end + month-end closes with ``total_return_index``), the valuation multiples in ``ratio`` and the momentum columns in ``earnings_signals``. ⚠️ COVERAGE FLOOR: this is licensed market data, NOT EDGAR, so it does NOT start at EDGAR's 1993 floor. No bars exist in 1993; the earliest bar differs per security and is 1994 or later (measured against production 2026-09-12). A range before a security's first bar returns no rows on EVERY tier, Institutional included — that is data coverage, not a plan limit.
schema://stock_price_daily{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}taxonomy_guide schema — taxonomy_guide table schema
SEC us-gaap taxonomy tag reference (one row per raw tag, synced yearly from the FASB taxonomy) — the dictionary for ``fact.concept``, joined on ``fact.concept = taxonomy_guide.standard_concept``. Not the dictionary for ``fact.standard_concept``: that is the curated ``standard_concept`` table.
schema://taxonomy_guide{
"audience": [
"assistant"
],
"priority": 0.6,
"lastModified": "2026-10-31T00:00:00Z"
}schema — Parquet table schema
Column-level contract for every R2 Parquet table the server reads (types, primary keys, foreign-key references). Read schema://{table} to learn the exact columns and types before writing a query — e.g. schema://fact (raw observations), schema://ratio (derived ratios), schema://references (one row per security with sector; join to index_membership on cik for index membership).
schema://{table}{
"audience": [
"assistant"
],
"priority": 0.6
}signals-item — Signal inbox item (single)
Read a single in-app signal fire by id. The id comes from the `feed` resource or the `list_signal_inbox` tool; it is also the `delivery_id` returned by `test_signal` when the signal's channel is `dashboard`.
valuein://signals/{inbox_id}{
"audience": [
"assistant"
],
"priority": 0.7
}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1692 ms
- 95th percentile latency
- 1692 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1692 ms · metadata changed · 0 tool(s) (partial: byte-cap), 30 resource(s), 2 resource template(s), 30 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http valuein-mcp https://mcp.valuein.biz/mcpCodex
codex mcp add valuein-mcp --url https://mcp.valuein.biz/mcpCursor
{
"mcpServers": {
"valuein-mcp": {
"url": "https://mcp.valuein.biz/mcp"
}
}
}Cline
{
"mcpServers": {
"valuein-mcp": {
"type": "streamableHttp",
"url": "https://mcp.valuein.biz/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"valuein-mcp": {
"type": "http",
"url": "https://mcp.valuein.biz/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http valuein-mcp https://mcp.valuein.biz/mcpClaude Desktop
https://mcp.valuein.biz/mcpWindsurf
{
"mcpServers": {
"valuein-mcp": {
"serverUrl": "https://mcp.valuein.biz/mcp"
}
}
}Let your agent find its tools
Find servers like Valuein MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.