Alpaca Trading API integration for Model Context Protocol (MCP)
Valuein — SEC EDGAR Fundamentals & Smart-Money Data is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Point-in-time, survivorship-free SEC EDGAR fundamentals + smart-money signals for AI agents.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http valuein-sec-edgar-fundamentals-smart-money-da-mcp https://mcp.valuein.biz/mcp
# 2 — ask your agent for something these tools do
# search_companies, get_company_fundamentals, get_valuation_metrics and 118 more
Valuein — SEC EDGAR Fundamentals & Smart-Money Data costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http valuein-sec-edgar-fundamentals-smart-money-da-mcp https://mcp.valuein.biz/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
121 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search for US public companies by name, ticker symbol, CIK (SEC identifier), or SIC industry code. Returns ticker, company name, sector, industry, exchange, and current S&P 500 membership status. Use this tool to resolve a company name to ticker/CIK before calling get_company_fundamentals, get_valuation_metrics, or other tools that require a ticker — they do not fuzzy-match company names. **U
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text search over company name and ticker. Case-insensitive. E.g. 'Apple', 'AAPL', 'Microsoft', 'semiconductor'. |
| cik | string | no | SEC CIK identifier (exact match). E.g. '0000320193' for Apple. |
| sic_code | string | no | 4-digit SIC industry code. E.g. '7372' for Prepackaged Software. |
| is_active | boolean | no | Filter on whether the LISTING is current. true = currently trading; false = superseded listings only (delisted, or a ticker that moved to a new registrant). Omit to return both. |
| is_sp500 | boolean | no | Filter to current S&P 500 members only. |
| include_inactive | boolean | no | Whether delisted / superseded listings may appear in results. Defaults to true — this is a survivorship-free product, so a search must not silently hide dead companies by default. Set to false to rest |
| limit | integer | no | Maximum number of results to return (1–50). Defaults to 25. |
Retrieve standardized SEC EDGAR fundamental financial metrics for a US public company. Returns revenue, gross profit, operating income, net income, EPS (diluted), total assets, total liabilities, stockholders' equity, cash & equivalents, total debt, operating cash flow, and capital expenditures for one or more fiscal periods. Data sourced from 10-K (annual) and 10-Q (quarterly) filings. Point-in-t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'. |
| fiscal_year | integer | no | Fiscal year (YYYY). Omit to return the most recent available years. |
| period | string | no | Filing period granularity. Annual uses 10-K; quarterly uses 10-Q. |
| as_of_date | string | no | Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias for backtesting. Omit for the full dataset. |
| limit | integer | no | Maximum number of periods to return (1–40). Defaults to 5. |
| strict | boolean | no | When true, fail with PLAN_LIMIT_EXCEEDED if the plan cannot satisfy the requested limit. Default false: return what's available and explain the gap in _meta.truncation. |
| lineage_detail | string | no | Per-period provenance envelope + per-metric availability/provenance sidecars. 'compact' (default) returns source_filing + source_url (the SEC Inline-XBRL viewer with every tagged fact highlighted when |
| response_format | string | no | Output shape. 'flat' (default) returns the legacy metrics object plus the additive metrics_availability/metrics_provenance/metrics_display sidecars — metrics_display holds each figure alread |
| min_confidence | number | no | Withhold any metric whose backing fact scores below this confidence [0, 1]. The score is a PENALTY FROM EVIDENCE — every fact starts at 1.0 and is docked only for something checkable: a failed account |
Get what a US public company is TRADING AT, plus two parameter-free reference points. This is NOT an opinion of intrinsic worth — for that, call compute_dcf with assumptions you state explicitly, and present the result as a scenario, never as "the" fair value. Returns per-period data combining computed ratios (gross_margin, operating_margin, net_margin, ROE, ROA, ROIC, debt_to_equity, FCF, FCF m
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| fiscal_year | integer | no | Fiscal year (YYYY). Omit to return most recent periods. |
| period | string | no | Filing period granularity. Annual uses 10-K; quarterly uses 10-Q. |
| as_of_date | string | no | Point-in-time date (YYYY-MM-DD). Only returns data with accepted_at on or before this date. Eliminates look-ahead bias for backtesting. |
| limit | integer | no | Maximum number of periods to return (1–40). Defaults to 5. |
Get pipeline-computed financial ratios from ratio.parquet. Served categories: profitability (margins, ROE, ROA, ROIC), liquidity (current ratio, quick ratio), leverage (D/E, interest coverage, net debt/EBITDA), efficiency (asset turnover, inventory days), per_share (EPS, BVPS, FCF/share), owner_earnings (Buffett FCF, owner yield), valuation (pe_ratio, pb_ratio, ev_ebitda, market_cap, dividend_yiel
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| categories | array | no | Ratio categories to include (see the enum). Omit to return every category this ticker has. valuation (pe_ratio, pb_ratio, ev_ebitda, market_cap, dividend_yield) is LIVE since schema 2.18.0 — price-d |
| fiscal_period | string | no | Filter to a specific fiscal period type. Use 'TTM' for trailing twelve months. Omit to return both annual (FY) and TTM rows. |
| as_of_date | string | no | Historical cutoff (canonical cross-tool date param). PIT by SEC accepted_at when the ratio data carries it (latest value knowable on/before the date, zero look-ahead, _meta.pit_safe=true), else by rat |
| period_end_before | string | no | Alias of as_of_date (as_of_date preferred — the canonical name). Returns ratios with period_end on or before this date. |
| limit | integer | no | Number of distinct period_end dates to return (1–20). Defaults to 5. Within each period, all matching ratio_names are included. |
Get direct links to original SEC EDGAR filings for any US public company. Returns four per-filing deep links: sec_url (the EDGAR filing-index page listing every document), viewer_url (the cgi-bin Financial-Report viewer for the specific accession), inline_viewer_url (the SEC Inline-XBRL viewer opened on the rendered primary document — the strongest provenance link, null when the filing is
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| form_types | array | no | Filing form types to include. Defaults to 10-K and 10-Q. |
| start_date | string | no | Inclusive lower bound on filing_date (YYYY-MM-DD). E.g. '2023-01-01'. |
| end_date | string | no | Inclusive upper bound on filing_date (YYYY-MM-DD). E.g. '2023-12-31'. |
| event_types | array | no | 8-K item codes to filter by. E.g. ['1.01'] for material agreements, ['2.01'] for asset acquisitions, ['5.02'] for director/officer changes. Only relevant when form_types includes '8-K'. |
| limit | integer | no | Maximum number of filings to return (1–50). Defaults to 10. |
Get a multi-year capital allocation breakdown for a US public company. Shows how management deploys cash across all six categories — capex, R&D, M&A, dividends, buybacks, and debt — plus pre-computed deployment ratios (% of operating cash flow) and over-distribution flags. Use this tool when the user asks: how does a company allocate capital, what's the buyback-vs-dividend mix, is the company over
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| lookback_years | integer | no | Number of fiscal years to look back from the most recent filing (1–20). Defaults to 5 years for a full capital allocation cycle. |
| as_of_date | string | no | Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias. |
Get ratio-based peer comparison for a company and its closest competitors. Peers are selected by matching 2-digit SIC industry code. Returns pipeline-computed ratios from up to 10 peers alongside the subject company for direct benchmarking. Ratio categories: profitability, liquidity, leverage, efficiency, per_share, owner_earnings, valuation. TTM (trailing twelve months) ratios are used when avail
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Subject company ticker or CIK, e.g. AAPL or '0000320193'. Peers are auto-selected by SIC code. |
| categories | array | no | Ratio categories to include in the comparison. Defaults to profitability, valuation, and leverage. |
| as_of_date | string | no | Historical date (canonical cross-tool date param). Peers are the companies listed on this date, including ones delisted since, ranked by S&P 500 membership on this date. Figures are point-in-time by S |
| period_end_before | string | no | Alias of as_of_date (as_of_date preferred — the canonical name). Only include ratios with period_end on or before this date. |
| limit | integer | no | Maximum number of peers to return alongside the subject company (1–10). Defaults to 5. |
Use this tool to answer questions about historical index membership — e.g. "Was Company X in the S&P 500 on date Y?" or "Which companies were in the Russell 2000 on 2010-01-01?" Use this INSTEAD OF search_companies when the question involves a specific historical date or whether a company was an index member in the past — search_companies only returns current membership and cannot answer histo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| index | string | no | Index filter. 'sp500' (~500 large caps, curated history back to 1996), 'russell1000' (~1000 large/mid), 'russell2000' (~2000 small caps), 'russell3000' (~3000 broad market) — the three Russell indices |
| sector | string | no | Sector filter (case-insensitive substring) over the SIC-derived, GICS-aligned label (not licensed GICS — see tool description). E.g. 'Technology', 'Energy'. |
| as_of_date | string | no | Historical date (YYYY-MM-DD) for survivorship-free construction. Index queries use index_membership join/leave dates (entrants after the date excluded, later-removed members kept); sector queries use |
| is_active | boolean | no | Filter to active (currently trading) companies only. Omit to include all. WARNING: setting this to true on a HISTORICAL query reintroduces survivorship bias — companies that were active on as_of_date |
| include_share_classes | boolean | no | false (default) collapses to one row per CIK (index-provider convention — BRK counts once, not BRK-A + BRK-B). true returns every share-class row (GOOG and GOOGL separately) — for security-level analy |
| as_of_basis | string | no | Which date column drives historical construction. 'effective' (default) = effective_date/removal_date (first trading day; passive replication). 'announcement' = announcement_date/removal_announcement_ |
| limit | integer | no | Maximum companies to return (1–3500). Defaults to 100 — which is SMALLER THAN EVERY INDEX, so the default call returns a slice, reports limit_truncated: true and withholds survivorship_free. `univ |
| offset | integer | no | Zero-based row offset for paging a large universe. At most 250 rows are inlined per call; when more match, the response carries a truncation envelope — pass its next_offset here (keeping the same |
Returns a short-lived (15-min) download URL for a bulk Parquet object that can be piped directly into Python/DuckDB/Polars for high-throughput computation that exceeds the MCP context window. The URL streams the object straight from Valuein storage and supports HTTP range reads, so duckdb.read_parquet(url) / pl.read_parquet(url) work without downloading the whole file first. Datasets: fact (pe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dataset_type | string | yes | Dataset to access. 'fact' requires ticker (per-entity partition). All others are full-universe tables. |
| ticker | string | no | Required when dataset_type is 'fact'. Resolves to the per-entity fact/{CIK}.parquet partition for that company. |
Returns the Parquet schema for all tables in the Valuein SEC data warehouse. Includes table descriptions, column names, types, primary keys, and foreign-key references. Use this tool to understand the data model before querying with other tools. No data reads required — schema is embedded in the manifest. Available on all plans.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| table | string | no | Filter to a single table name (e.g. 'fact', 'entity', 'references'). Omit to return the full schema for all tables. |
List Valuein's expert research playbooks — the step-by-step procedures a senior equity analyst follows, each encoding the exact tool sequence, parallel-wave grouping, and output structure for one task (research brief, screen and shortlist, forensic quality audit, capital-allocation review, survivorship-free backtest, smart-money brief, thesis lifecycle, and more). CALL THIS FIRST for any multi-st
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filter | string | no | Case-insensitive substring matched against each playbook's name, title, and description — e.g. 'smart money', 'thesis', 'backtest'. Omit to list all. |
Load one expert research playbook by name (discover names with list_sops). Returns the full procedure: the ordered tool sequence, which calls to group into parallel waves, the provenance and citation rules, and the exact output structure. Supply the playbook's arguments (e.g. ticker) to get a concrete, ready-to-execute plan. Omit them to read the generic template with {{ARG}} placeholders.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | SOP slug from list_sops, e.g. 'equity_research_brief'. |
| args | object | no | Playbook arguments as string values, e.g. { ticker: 'AAPL', depth: 'full' }. Omit to read the generic template with {{ARG}} placeholders. |
Use this tool when the user asks BOTH what a financial figure is AND which filing reported it — e.g. "What was Apple's most recently reported revenue, and which 10-Q filed it?" or "Show me the accession ID for Tesla's latest net income." Returns a single fact plus its complete filing provenance: entity, concept, period, value, accession ID, filing URL, and form type (10-K, 10-Q, etc.). Use this I
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'. |
| fact_id | string | no | Deterministic fact identity hash: SHA-256(entity_id|accession_id|concept|period_end|unit). 64-char lowercase hex. Use this when you already have the hash from a previous query. Provide either fact_id |
| concept | string | no | Standard concept to look up the most recently known fact for (see the enum for the full fundamentals + capital-allocation set). Use this when you don't have a fact_id. Provide either concept OR fact_i |
| period_end | string | no | [DEPRECATED — pass as_of_date instead.] Filing-acceptance cutoff (YYYY-MM-DD) used with concept; despite the name it filters on filing accepted_at, not the returned fact's period_end. Kept one rel |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD) used with concept — returns the latest fact whose 10-K/10-Q was accepted by SEC on or before this date (true PIT, no lookahead; any calendar date works). Canonical |
Resolve MANY cited facts to their SEC filings in ONE call — the batch form of verify_fact_lineage. Use this whenever you are checking a LIST of figures rather than a single number: reviewing a report's citations, auditing a thesis's evidence, or confirming every figure in a draft before you sign it. A 30-figure report is one call here and 30 calls with verify_fact_lineage. Use `verify_fact_li
| Parameter | Type | Required | Notes |
|---|---|---|---|
| facts | array | yes | The facts to verify, 1–50 of them. Group a report's whole citation list here rather than calling once per figure. Duplicate (ticker, fact_id) pairs are resolved once and returned once, in first-seen o |
Compare a company's core financial metrics across two fiscal periods side-by-side. Shows absolute and percentage changes with significance classification (minor < 5%, notable 5–15%, significant > 15%). The response includes a material_changes count: this is the number of metrics whose significance ∈ {notable, significant} (i.e. absolute percentage change > 5%). Use it as a quick scalar to tri
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'. |
| period_a | string | yes | Earlier fiscal period. Format: 'FY2023' for annual or 'Q1-2023' for quarterly. |
| period_b | string | yes | Later fiscal period. Format: 'FY2024' for annual or 'Q1-2024' for quarterly. |
| as_of_date | string | no | Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias for backtesting. |
Rank companies by cross-sectional factor scores from factor_scores.parquet. Returns the underlying factors (roe, gross_margin, operating_margin, net_profit_margin, revenue_growth_yoy, fcf_to_assets, debt_to_equity, asset_turnover, current_ratio, piotroski_f_score) plus their percentile ranks (1.0 = best in universe, 0.0 = worst). composite_rank (the default sort) is a one-number multi-factor sho
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | no | If provided, show only this ticker's factor scores (single-entity mode). Omit to screen the full universe. |
| sector | string | no | Filter to a specific sector (case-insensitive partial match). E.g. 'Technology', 'Healthcare'. |
| sort_by | string | no | Which factor rank to sort by (see the enum). Defaults to composite_rank. An unrecognized column is rejected with INVALID_ARGUMENT (no silent fallback). |
| limit | integer | no | Number of results to return (1-100). Defaults to 25. |
| offset | integer | no | Zero-based row offset for paging within the requested limit window. At most 250 rows are inlined per call; if the response carries a truncation envelope, pass its next_offset here. Defaults to 0 |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD). When set, the screen is reconstructed as of this date via factor_scores.accepted_at — each entity ranked at its latest-knowable period, zero look-ahead, survivorship |
| exclude_outliers | boolean | no | Optional data-quality guard (default false). When true, additionally drops rows with implausible raw factor values (non-finite, or e.g. asset_turnover > 50x, |FCF/assets| > 10) from shell companies wi |
Reported earnings results and a model-derived earnings-trend signal for a company, by fiscal period: actual reported EPS, a trailing-trend EPS estimate (eps_trend_est), the deviation of actual vs that trend (eps_surprise_pct), reported revenue, and year-over-year revenue growth. IMPORTANT: eps_trend_est is NOT Wall Street analyst consensus — Valuein is sourced purely from SEC EDGAR and carri
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| as_of_date | string | no | Point-in-time filter: only return signals with accepted_at on or before this date. Use for backtesting to avoid look-ahead bias. |
| limit | integer | no | Maximum number of periods to return (1–40), most recent first. Defaults to 8 — covers 2 years of quarterly signals plus their TTM equivalents. earnings_signals.parquet currently emits one row per (ent |
List financial-statement restatements — facts a later SEC filing materially changed (>0.5% swing) from what was originally reported. Each event carries the as-reported value, the restated value, the signed delta, a severity bucket, the RAW XBRL tag both filings used (the diff is same-tag, so it is apples-to-apples and checkable), both filings' accession numbers for one-click lineage, an analyst-im
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | string | no | Fetch exactly one event by its id (from a prior response). |
| ticker | string | no | Restrict to one company — ticker (e.g. 'AAPL') or CIK (e.g. '0000320193'). |
| sector | string | no | Restrict to one GICS-style sector (e.g. 'Technology'). |
| severity | string | no | high = |Δ|≥10%, medium = ≥2%, low = ≥0.5%. |
| min_abs_delta_pct | number | no | Only events whose absolute restatement is at least this percent (e.g. 5 = ≥5% swings). |
| max_importance | integer | no | Only lines at or above this importance tier: 1 = headline only (revenue, net income, EPS, total assets, operating cash flow), 2 = + primary statement lines, 3 = everything incl. footnotes. Severity sa |
| amendments_only | boolean | no | Only restatements that arrived in an AMENDED filing (10-K/A, 10-Q/A) — the company formally telling the SEC it got a number wrong. The sharpest cut there is: it separates real restatements from routin |
| disclosure | array | no | Filter by HOW the company told the market. 'non_reliance' = it filed an 8-K Item 4.02 ('Non-Reliance on Previously Issued Financial Statements') — formally telling the SEC not to rely on what it alrea |
| filed_since | string | no | Only restatements FILED on or after this date — the 'what changed recently' window. |
| sort | string | no | 'recent' = newest restating filing first (a market-wide radar). 'significance' = importance tier, then swing size (one company's history). |
| limit | integer | no | Page size (1-100, default 25). |
| cursor | string | no | Opaque pagination cursor from a prior response's next_cursor. |
File product feedback to the Valuein team — a bug, feature request, experience note, or data-quality issue — directly from the agent surface. Available on EVERY tier including guest/sample (no token required), so an agent can report a rough edge in-band without the human leaving the conversation. Provide a category and a message (other fields optional — see params). Authenticated callers can p
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | yes | What kind of feedback this is: 'bug' (something broke), 'feature_request' (something missing), 'experience' (UX / clarity / docs), 'data_quality' (a wrong/missing/stale figure), or 'other'. |
| message | string | yes | The feedback body (1–4000 chars). Be specific: what you expected, what happened, and any reproduction steps. May contain the user's own words — it is stored for triage and never used for arithmetic. |
| subject | string | no | Optional short title (≤140 chars) summarizing the feedback. |
| severity | string | no | Optional impact classification: 'low', 'medium', or 'high'. |
| surface | string | no | Optional product surface the feedback concerns: 'mcp', 'workspace', 'sdk', 'dashboard', or 'api'. |
| context | object | no | Optional free-form context object (stored as JSON), e.g. { tool: 'get_company_fundamentals', ticker: 'AAPL', request_id: 'abc123' }. Avoid secrets. |
| idempotency_key | string | no | Optional client-supplied key (1–64 chars). For authenticated callers, reusing the same key files the feedback exactly once — safe to retry on a network error. Ignored for guest/sample callers (no acco |
| sentiment | string | no | Optional sentiment of this feedback: 'positive' (worked well), 'negative' (something was wrong), or 'correction' (you are supplying the right value). |
| reason | string | no | Optional structured error-mode reason: 'wrong_number', 'bad_citation', 'missing_data', 'wrong_company', 'formatting', 'hallucinated_fact', 'tool_error', 'coverage_gap', or 'other'. |
| target_type | string | no | Optional kind of artifact the feedback targets: 'chat_message', 'report', 'thesis', 'claim', 'tool_call', 'schema', or 'other'. |
| target_id | string | no | Optional id of the artifact this feedback targets (e.g. a report or thesis id). |
| request_id | string | no | Optional _meta request id of the turn that produced the artifact, for correlation. |
| fact_id | string | no | Optional disputed fact_id (for wrong_number / bad_citation feedback). |
| expected_value | string | no | Optional caller-asserted correct value, in your own words. Stored verbatim for triage — NEVER computed or trusted as data. |
File EXPLICIT, structured feedback about a specific artifact you (or the model) produced — a chat message, a report, a thesis, a claim, a tool call, or the schema. Use this (not submit_feedback) when you can name WHAT was judged and HOW: pass target_type + target_id + a sentiment (positive/negative/correction), and optionally a structured reason (e.g. wrong_number, bad_citation, hallucin
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target_type | string | yes | REQUIRED. The kind of artifact this feedback is about: 'chat_message', 'report', 'thesis', 'claim', 'tool_call', 'schema', or 'other'. |
| target_id | string | yes | REQUIRED. The id of the artifact this feedback targets (a report id, thesis id, claim id, message id, tool-call id, or table/schema name). |
| sentiment | string | yes | REQUIRED. How you judge the artifact: 'positive' (it was right/useful), 'negative' (it was wrong/unhelpful), or 'correction' (you are supplying the right value via expected_value). |
| reason | string | no | Optional structured error-mode: 'wrong_number', 'bad_citation', 'missing_data', 'wrong_company', 'formatting', 'hallucinated_fact', 'tool_error', 'coverage_gap', or 'other'. |
| request_id | string | no | Optional _meta request id of the turn that produced the artifact. Folded into the idempotency key so a retried submission of the same judgement files once. |
| fact_id | string | no | Optional disputed fact_id (most useful for wrong_number / bad_citation). |
| ticker | string | no | Optional ticker the disputed figure belongs to (e.g. 'AAPL', 'BRK.B'). ALWAYS send this alongside fact_id — a fact_id is a one-way hash that does not contain the symbol, so without it nobody can l |
| expected_value | string | no | Optional: what the value SHOULD have been, in your own words. Stored verbatim for triage — NEVER computed, restated, or trusted as data by Valuein. |
| message | string | no | Optional free-text detail (≤4000 chars). What you expected and what happened. |
| idempotency_key | string | no | Optional explicit dedupe key (1–64 chars). Used to dedupe when no request_id is supplied; safe to retry on a network error. |
Form 3 / 4 / 5 / 144 line items for a US public company. Returns each transaction (or initial holding / proposed sale) with the insider's name, role, transaction code, share count, price, and notional. Filters by lookback window, transaction code (P=purchase, S=sale, A=grant, M=option exercise, F=tax withholding, etc.), insider role, and minimum share threshold. Institutional tier only — sample /
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'. |
| lookback_days | integer | no | How many days back from today to scan transactions for. Ignored when as_of_date is set. |
| transaction_codes | array | no | SEC transaction codes to keep (uppercase, single-letter): P=purchase, S=sale, A=grant, M=option exercise, F=tax withholding, G=gift, J=other. Unknown codes are rejected. Omit to include all codes. |
| roles_in | array | no | Insider roles to keep. Omit to include any role. |
| min_shares | number | no | Minimum |shares| per transaction. Omit for no floor. |
| as_of_date | string | no | Point-in-time date (YYYY-MM-DD). Only returns transactions with accepted_at <= this date — eliminates look-ahead bias. When set, lookback_days is ignored. |
| limit | integer | no | Maximum rows to return. Default 100, max 500. |
| lineage_detail | string | no | Per-row provenance envelope. 'compact' (default) returns source_filing + source_url. 'full' adds accepted_at. 'off' omits lineage. |
Returns top-N institutional holders of a US public company at a specific period_end (latest by default), with aggregate institutional shares, total market value, holder count, and HHI concentration (sum of squared share-of-total percentages). Sourced from Form 13F-HR via the by-issuer partition. Institutional tier only. 13F filings carry a ~45-day reporting lag — staleness_warning fires when la
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the issuer — or a CIK (SEC identifier). |
| period_end | string | no | Quarter-end of the 13F reporting period (YYYY-MM-DD). Omit to use the latest period available. This is a REPORTING period, NOT a point-in-time cutoff — use as_of_date for that. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD): only 13F filings ACCEPTED by SEC on or before this date are considered, applied BEFORE the latest period is resolved. A 13F/A amendment or late filing accepted after |
| top_n | integer | no | Maximum holders to return, ranked by market_value_usd. Default 25, max 200. |
| lineage_detail | string | no | Per-row provenance envelope. compact / full / off. |
Returns a 13F filer's full portfolio at a specific period_end (latest by default), with QoQ deltas vs the prior quarter (new / increased / decreased / exited / unchanged). Specify the filer either by filer_cik (preferred) or filer_name (fuzzy match against entity.name; multiple matches raise an ambiguity error so you can disambiguate by CIK). Institutional tier only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filer_cik | string | no | CIK of the 13F filer (1-10 digits; will be zero-padded to 10). Preferred over filer_name when known. |
| filer_name | string | no | Filer name to fuzzy-match against entity.name. Case-insensitive substring match. Multiple matches raise INVALID_ARGUMENT — use filer_cik in that case. |
| period_end | string | no | Quarter-end (YYYY-MM-DD). Omit to use latest available. This is a REPORTING period, NOT a point-in-time cutoff — use as_of_date for that. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD): only 13F filings ACCEPTED by SEC on or before this date are considered, applied BEFORE the latest + prior periods (and the QoQ basis) are resolved. A 13F/A amendment |
| top_n | integer | no | Maximum positions to return, ranked by market_value_usd. Default 25. |
| lineage_detail | string | no | Per-row provenance envelope. |
Returns SC 13D / SC 13G blockholder disclosures (5%+ stakes) for a US public company. Each row carries percent_owned, sole/shared voting + dispositive split, schedule_type, and the first-class `going_active` flag — TRUE when the same filer flipped 13G → 13D within the lookback window (the single most actionable activist signal in this dataset). Use latest_only=true (default) to dedupe to the mos
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the issuer — or a CIK (SEC identifier). |
| schedule_filter | string | no | Which schedule(s) to return. '13D' = activist (intent to influence). '13G' = passive. 'both' = no filter. |
| as_of_date | string | no | PIT filter on accepted_at — only filings on or before this date. |
| latest_only | boolean | no | When true (default), keep only the most recent filing per (filer, schedule prefix) — typically what analysts want. Set false to see the full filing history. |
| collapse_groups | boolean | no | When true, fold multi-reporting-person filings into a single row, with secondary persons in the `persons[]` field. Default false: each person stays as its own row. |
| lookback_days | integer | no | Window for the going_active (13G → 13D) detection. Default 365 days. |
| lineage_detail | string | no | Per-row provenance envelope. |
Role-weighted insider sentiment score on a fixed [-100, +100] scale for a single issuer over a lookback window. Role weights: CEO/CFO = 3.0 (via officer_title pattern), other NEO Officer = 2.0, 10%-Owner = 1.5, Director = 1.0. P = +1, S = -1; option exercises, grants, and tax withholdings are neutralised. Cluster flag = TRUE when ≥3 distinct insiders transacted within any 30-day window inside t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Issuer ticker symbol — or a CIK (SEC identifier). |
| lookback_days | integer | no | Days back from today to scan transactions for. Default 180. |
| cluster_window_days | integer | no | Sliding window for the cluster_flag detection. Default 30 days. |
Classification-aware UNION across insider transactions (latest post_transaction_shares per insider), 13F institutional holdings, and SC 13D / 13G blockholder filings for one issuer. Each row carries holder_class ∈ {insider, institutional, blockholder_13D, blockholder_13G}. Dedupes overlapping filers by precedence (13D > 13G > institutional > insider). One call, classified cap table — Bloomberg
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Issuer ticker symbol — or a CIK (SEC identifier). |
| top_n | integer | no | Maximum holders to return, ranked by shares. Default 25. |
| period_end | string | no | 13F REPORTING period_end. Omit for latest. NOT a point-in-time cutoff — use as_of_date. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD): only filings ACCEPTED by SEC on or before this date are considered across all three sources (institutional via accepted_at, insider via accepted_at, blockholders via |
Composite flow score on [-100, +100] aggregating insider transactions, 13F institutional Δ-shares vs the prior quarter, and SC 13D/13G blockholder changes over a lookback window. Each component normalised independently, then combined with configurable weights (default: institutional 0.4, blockholder 0.4, insider 0.2). Returns per-component attribution so an agent can see WHY the score is what it i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Issuer ticker symbol — or a CIK (SEC identifier). |
| lookback_days | integer | no | Lookback window for insider + blockholder components. Default 90. |
| weight_institutional | number | no | Weight applied to the institutional component (0–1). |
| weight_blockholder | number | no | Weight applied to the blockholder component (0–1). |
| weight_insider | number | no | Weight applied to the insider component (0–1). |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD) applied to all three legs (institutional, insider, blockholder) via SEC accepted_at — filings accepted after this date are excluded so the composite is computed with |
Persist a directional investment thesis (bull / bear / neutral) on a ticker. The thesis becomes part of the caller's private research diary; pair with list_theses + score_thesis_outcome to track conviction-vs-outcome over time. Pass idempotency_key for at-most-once semantics from a retrying agent. Use this AFTER the agent has finished its analysis, not before — the thesis records the co
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | US-listed ticker. Case-insensitive — normalised to upper. E.g. 'AAPL'. |
| view | string | yes | Directional view: bull (expect outperformance), bear (under), neutral (mean-revert). |
| conviction | integer | yes | 1 = low conviction (gut feel) → 5 = high conviction (deep analysis). |
| horizon_days | integer | yes | Investment horizon in days. 1 day–5 years (1825d). The grader uses this to pick the as-of period. |
| notes | string | no | Free-form rationale, ≤4000 chars. Stored verbatim; trim before submitting. |
| thesis_at_price_cents | integer | no | Optional snapshot of the ticker's market price (integer cents) at thesis creation. Used by future versions of the grader that mix in price returns; null for now is fine. |
| source_report_id | string | no | Optional id of a report (from create_report / publish_report) that contains the supporting analysis. |
| idempotency_key | string | no | Optional client-supplied key. If a previous save_thesis from the same user used this key, the existing thesis is returned instead of creating a duplicate. |
| visibility | string | no | Phase 3: 'private' (default) is owner-only; 'unlisted' is visible at a known direct URL; 'public' surfaces on the author's /[handle] profile and contributes to their reputation score. |
Return the caller's saved theses, newest-first. Filters: ticker (exact), view, status. Cursor-based pagination — pass next_cursor from the previous response to fetch the next page. Sample tier rejected (no per-user state).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | no | Filter to theses on this ticker (case-insensitive). |
| view | string | no | Filter to a single view. |
| status | string | no | 'active' (default) hides archived theses; pass 'all' to include them. |
| limit | integer | no | Page size, 1–100. Defaults to 20. |
| cursor | string | no | Pagination cursor returned by the previous list_theses call's next_cursor. |
Fetch a single saved thesis by its id. Returns the full record including outcome (if scored). Returns NOT_FOUND if the id is unknown or belongs to another user. For the claims composing a thesis use list_claims_for_thesis; for an individual claim use get_claim. Tier: paid + free (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id returned by save_thesis or list_theses. |
Soft-delete a saved thesis: status flips to archived (the row stays for audit / re-scoring). Idempotent — archiving an already-archived thesis succeeds. Hard-delete is not supported by design; future versions may expire archived theses after N years. This does not delete the claims linked to the thesis — use delete_claim for those. Tier: paid + free (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id returned by save_thesis or list_theses. |
Undo a soft-delete: restores a thesis, watchlist, signal, claim or report that delete_* archived. The record returns to the state it held before the delete — a closed thesis comes back closed, a paused signal comes back paused. When the item was deleted before the server began recording its prior state, prior_status_known is false and the response says which default was used. A restored report
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | Which record type to restore. Citation overrides are not restorable. |
| id | string | yes | The record's id. For a watchlist this is the watchlist_id returned by delete_watchlist — NOT its name, because deleting a watchlist frees its name for reuse. |
Grade a saved thesis against fundamental momentum since its creation. Pulls revenue / operating-margin / EPS / OCF deltas and aggregates into a score in [-1, +1]. Bull theses are graded by directional alignment, bear by inverse, neutral by closeness-to-flat. The grade is persisted back to the thesis row; re-call to refresh once new fundamentals land. Note (PR 2): scoring is fundamental-only —
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id returned by save_thesis or list_theses. |
| as_of | string | no | Snapshot date for the 'current' fundamentals window. Defaults to today UTC. The scorer picks the fiscal period closest to this date. |
Find every thesis past its horizon with no outcome yet, and grade each via score_thesis_outcome. Operates on the caller's OWN theses — omit customer_id. Targeting another user's customer_id is reserved for Valuein's internal scoring service and is rejected for every plan, including Institutional. Returns a summary + per-thesis results. Idempotent — a re-call only re-grades anything not alrea
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customer_id | string | no | Stripe customer_id of the target user. Defaults to the caller's own — leave it unset. Supplying a DIFFERENT customer_id is restricted to Valuein's internal scoring service and is rejected on every pla |
| max | integer | no | Soft cap on theses scored per call. Defaults to 100. The frontend cron walks users serially so a low cap per user keeps each MCP request bounded. |
| as_of | string | no | Snapshot date for the 'current' fundamentals window. Defaults to today UTC. |
Resolve a saved workflow by id and return a structured execution plan for a single ticker. Each plan entry names a real MCP tool or SOP plus its ticker-substituted arguments; the calling agent invokes them in order, applying any skip_if predicate against the previous step's output. This tool does NOT execute the steps server-side. It plans; the agent runs. Iterate through plan[] in order,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| workflow_id | string | yes | Workflow id returned by the frontend workflow builder. |
| ticker | string | no | US-listed ticker the workflow should run against, e.g. 'AAPL'. Pass either ticker (single) or tickers (batch up to 50). Exactly one is required. |
| tickers | array | no | Batch mode — array of US-listed tickers, up to 50. When provided, the response has plans[] (one plan per ticker) instead of plan. Parity with the frontend batch-runner so agents can request 'plan |
Return the PUBLIC theses + reputation aggregate for a user identified by Stripe customer_id. Used by the /[handle] profile page to render an analyst's track record. Only entries with visibility='public' are surfaced — private theses never leak. Reputation is correct/(correct+wrong) over graded theses; null when n < 5 (sample too small). Sample tier rejected; sp500+ only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customer_id | string | yes | Target user's Stripe customer_id (resolved by the frontend from the handle). |
| limit | integer | no | Max public theses to return. Defaults to 20. |
Make a saved thesis discoverable by flipping its visibility: public (default) surfaces it on the author's /[handle] profile and counts toward their reputation aggregate; unlisted makes it reachable at a known direct link but keeps it off the profile. Use AFTER save_thesis to promote an existing thesis (save_thesis sets visibility only at creation). Idempotent. Pair with unpublish_thesis to rev
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id returned by save_thesis or list_theses. |
| visibility | string | no | public (default) → profile + reputation; unlisted → direct-link-only, off the profile. To revert to private, use unpublish_thesis. |
Revert a published thesis (public or unlisted) back to private — removes it from the author's /[handle] profile and excludes it from the public reputation aggregate. The inverse of publish_thesis. Owner-only, idempotent. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id returned by save_thesis or list_theses. |
Persist a single falsifiable, evidence-backed CLAIM — the atomic unit of the research graph. Use this for each discrete assertion an analysis produces (e.g. 'NVDA gross margin stays above 70% through FY2026'), then compose claims into a thesis with link_claim_to_thesis. Claims are scored independently of theses, so claim accuracy is tracked as its own track record. Pick claim_type by HOW it's
| Parameter | Type | Required | Notes |
|---|---|---|---|
| statement | string | yes | The atomic, falsifiable statement. One claim, not a paragraph. |
| tickers | array | yes | Entities referenced (uppercased). 1 for most claims; 2+ for a comparison claim. |
| claim_type | string | yes | Epistemic type — drives scoring. assertion=true now (verified vs data); prediction=future (resolves at horizon via verifiable_condition); judgment=qualitative (not auto-scored). |
| tags | array | no | Topical labels (controlled vocab). Multi-valued; drives filtering + learning segmentation, not scoring. |
| direction | string | yes | Directional polarity of the claim. |
| confidence | number | yes | Author confidence in [0,1]. Used as the Brier/log-loss weight when scored. |
| eval_mode | string | no | How the outcome is resolved: auto (deterministic grade vs data via verifiable_condition), agent (an LLM judges at resolution), manual (a human marks it). |
| verifiable_condition | no | Machine-evaluable condition for eval_mode='auto'. Null otherwise. | |
| antecedent | no | Scenario precondition — the claim only resolves when this holds. Null = unconditional. | |
| horizon_days | no | Resolution horizon in days (predictions). Null for assertions/judgments. | |
| evidence | object | no | Evidence grounding the claim. |
| source_report_id | string | no | Optional id of a report that contains the supporting analysis. |
| visibility | string | no | 'private' (default) owner-only; 'unlisted' visible at a direct URL; 'public' surfaces on the author's profile and contributes to the claim-accuracy reputation. |
| idempotency_key | string | no | Optional client key for at-most-once semantics from a retrying agent. |
List the caller's saved claims, most-recent-first, with AND-composed filters and cursor pagination. Filter by ticker, claim_type (assertion/prediction/judgment), tag, or lifecycle status (open/confirmed/refuted/expired/stale/needs_review). Archived claims are excluded unless include_archived is set. Tier: all paid + free tiers (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | no | Filter to claims referencing this ticker. |
| claim_type | string | no | Filter by epistemic type. |
| tag | string | no | Filter to claims carrying this topical tag. |
| status | string | no | Filter by lifecycle status, or 'all'. |
| include_archived | boolean | no | Include soft-deleted claims. |
| limit | integer | no | Page size (max 100). |
| cursor | string | no | Pagination cursor from a previous page's next_cursor. |
Fetch a single claim by id, plus the ids of theses it supports/refutes and its full append-only score history. Use this to inspect a claim's evidence, current status, and how its outcome has evolved. Tier: all paid + free tiers (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claim_id | string | yes | Id returned by save_claim or list_claims. |
Soft-delete a claim by id. The row and its score history are preserved for audit (archived, not erased); the claim drops out of default list_claims results. Idempotent — deleting an already-archived claim succeeds. Tier: all paid + free tiers (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claim_id | string | yes | Id of the claim to archive. |
Attach a claim to a thesis with a role: 'supports' (the claim, if true, strengthens the thesis), 'refutes' (if true, weakens it — track disconfirming evidence first-class), or 'context' (relevant but not directional). Idempotent — re-linking updates the role. A claim can support one thesis and refute another. This composes theses from claims; it does NOT make the thesis score a function of claim
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id of the thesis (from save_thesis/list_theses). |
| claim_id | string | yes | Id of the claim (from save_claim/list_claims). |
| role | string | yes | Relational role of the claim toward the thesis. |
Remove the link between a claim and a thesis. Idempotent — succeeds whether or not the link existed. The claim and thesis themselves are untouched. Tier: paid + free (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Identifier of the thesis to unlink the claim from, as returned by save_thesis or list_theses. |
| claim_id | string | yes | Identifier of the claim to unlink, as returned by save_claim or list_claims. |
List the claims composing a thesis, each with its role (supports/refutes/context). This is how you read a thesis as the structured argument it is — its supporting and disconfirming claims with their current statuses. Archived claims are omitted. Tier: paid + free (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| thesis_id | string | yes | Id of the thesis whose claims to list. |
Resolve a claim's outcome. By default auto-grades an auto claim by evaluating its verifiable_condition against SEC fundamentals (confirmed/refuted), or marks it needs_review when it can't be resolved deterministically (judgment, antecedent, or missing data). To record a human/agent judgment instead, pass manual_status (+ optional score/reason). Idempotent — re-scoring the same resolution is
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claim_id | string | yes | Id of the claim to resolve. |
| as_of | string | no | Snapshot date for the fundamentals window (auto mode). Defaults to today UTC. |
| manual_status | string | no | Provide to record a human/agent outcome instead of auto-grading. |
| manual_score | no | Outcome score in [-1,1] for a manual resolution. Null for non-scored statuses. | |
| manual_reason | string | no | Explanation for a manual resolution. |
Find every auto-gradable claim that is due (assertions in open/needs_review/stale; predictions whose horizon has passed) and resolve each against fundamentals. Operates on the caller's OWN claims — omit customer_id. Targeting another user's customer_id is reserved for Valuein's internal scoring service and is rejected for every plan, including Institutional. Returns a summary + per-claim resul
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customer_id | string | no | Target user's Stripe customer_id. Defaults to the caller's own — leave it unset. Supplying a DIFFERENT customer_id is restricted to Valuein's internal scoring service and is rejected on every plan, In |
| max | integer | no | Soft cap on claims scored per call (default 100). |
| as_of | string | no | Snapshot date for the fundamentals window. Defaults to today UTC. |
Return the PUBLIC claims + claim-accuracy reputation for a user identified by Stripe customer_id. Used by the /[handle] profile to render an analyst's claim-level track record — a separate signal from thesis-outcome accuracy. Only visibility='public' claims surface; private state never leaks. Accuracy is confirmed/(confirmed+refuted) over resolved claims; null when n < 5. Sample tier rejected; sp5
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customer_id | string | yes | Target user's Stripe customer_id (resolved by the frontend from the handle). |
| limit | integer | no | Max public claims to return. Defaults to 20. |
Make a saved claim discoverable by flipping its visibility: public (default) surfaces it on the author's /[handle] profile and counts toward their claim-accuracy reputation; unlisted makes it reachable at a known direct link but keeps it off the profile. Use AFTER save_claim to promote an existing claim. Idempotent. Pair with unpublish_claim to revert to private. Tier: sp500+ (sample rejected)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claim_id | string | yes | Id returned by save_claim or list_claims. |
| visibility | string | no | public (default) → profile + reputation; unlisted → direct-link-only, off the profile. To revert to private, use unpublish_claim. |
Revert a published claim (public or unlisted) back to private — removes it from the author's /[handle] profile and excludes it from the public claim-accuracy aggregate. The inverse of publish_claim. Owner-only, idempotent. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claim_id | string | yes | Id returned by save_claim or list_claims. |
Persist a correction of a citation value. The correction is keyed on the canonical fact_id (a stable hash of CIK + accession + concept + period) so it applies to every report that references that same fact — including agent-regenerated reports. Re-saving the same fact_id replaces the prior correction in place (no duplicate row). The fact_id is VERIFIED against live SEC data (scoped to `ticker
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fact_id | string | yes | Canonical fact identifier — usually returned in a citation's fact_ids array by get_report or any compute tool. Stable across report regenerations. Verified against live SEC data (scoped to ticker) |
| corrected_value | string | yes | User-corrected value, stringified. The frontend interprets it based on the fact's known datatype (number, string, ISO date). |
| ticker | string | yes | Ticker the fact belongs to (REQUIRED) — scopes fact_id resolution against live SEC data and denormalises the row for fast filtering (the workspace UI's 'my corrections on AAPL' view). |
| source_report_id | string | no | Optional report id the user was viewing when they applied the correction (provenance). |
| notes | string | no | Optional free-form rationale, ≤500 chars. |
Author-only newest-first listing of the caller's citation corrections. Filterable by ticker (e.g. all AAPL corrections) or by a single fact_id (returns 0 or 1 row). Pair with save_citation_override and delete_citation_override. Sample tier rejected. Agent use: call with ticker to introspect what corrections the user has previously applied on that ticker — useful for system prompts that resp
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | no | Optional ticker filter, case-insensitive. Uppercased internally. |
| fact_id | string | no | Optional fact_id filter — returns at most one row. |
| limit | integer | no | Maximum number of citation overrides to return (1–100). Defaults to 20. |
| cursor | integer | no | Cursor from the previous response's next_cursor — the updated_at of the last row on that page. Omit for first page. |
Remove a user-authored citation correction by fact_id. Idempotent — deleting a missing override returns deleted=false without error. Once deleted, reports that previously rendered the corrected value revert to the canonical fact value on next regeneration. Tier: paid + free (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fact_id | string | yes | Fact identifier whose citation override should be removed, as returned by save_citation_override or list_citation_overrides. |
Record (or update) the review state of ONE figure inside a report — the durable answer to 'has a human traced this number back to its filing?' Upsert keyed on (report_id, figure_key): re-reviewing a figure REPLACES its prior mark, it never appends, so this is always the figure's current state, never a history. figure_key is an opaque id you mint yourself for one figure — for a dataset-backed fig
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report the figure belongs to, as returned by create_report / list_my_reports / save_freeform_report. |
| figure_key | string | yes | Opaque id you mint for one figure inside the report. Never parsed or validated beyond length — use the exact same key to update this figure's review later. Shape for a dataset-backed figure: 'fact:{fa |
| state | string | yes | verified = traced to its filing and correct. corrected = wrong (supply corrected_value). external = legitimately not from Valuein data (analyst's own source). rejected = unsupported, should be removed |
| note | string | no | Optional free-text reviewer note (e.g. what was checked, or why it was rejected). |
| corrected_value | string | no | The correct value. REQUIRED when state='corrected'; must be omitted for every other state (a corrected_value on a non-corrected review is rejected). |
List every figure review recorded for one report, plus a state-count summary — the coverage view for 'which figures in this report still need a human?' A report with no reviews yet returns an empty list and an all-zero summary; that is a legitimate answer, not an error. Owner-scoped — only returns your own review marks. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report to list figure reviews for. |
Fetch the Auditable Research File behind one of the caller's own agent runs — the complete evidence chain an examiner asks for: the originating prompt, every tool the agent called in order, every fact_id it cited, every human approval, and which models were used. Assembled from the immutable audit ledger written as the run executed; nothing here is reconstructed or inferred. Name the subject EIT
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | no | Report identifier — from create_report, list_my_reports or search_reports. Resolves the run behind that report and adds the human_review + sources sections. Pass this OR run_id, not both. |
| run_id | string | no | Run identifier, as returned by list_agent_runs. Pass this OR report_id, not both. |
| format | string | no | json (default) = the assembled file inline. pdf = a presigned download URL for the branded compliance PDF — the human-facing artifact; rendered fresh on every call, never cached. |
Request a Valuein compliance certificate for one of the caller's OWN reports — a signed, publicly verifiable attestation at valuein.biz/verify/{id} that every fact the report cited was knowable at the time it was used (absence of lookahead bias). It attests provenance ONLY: it says nothing about whether the report's conclusions are correct or profitable, and must never be presented as though it di
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report to certify, as returned by create_report / list_my_reports / save_freeform_report. Must be authored by the calling customer. |
Check EVERY number in one of your own reports against the filing it cites, in one call. Returns a verdict per figure: matches (the prose quotes the filing's own rendered string), differs (positive evidence the filing says something else — the report is wrong), or not_checkable (no comparison was possible). CALL THIS BEFORE publish_report OR sign_off_report. publish_report REFUSES a rep
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report to verify, as returned by create_report / list_my_reports / save_freeform_report. Must be authored by the calling customer. |
Upsert a named watchlist with a list of tickers. Replace semantics — the full ticker list is the source of truth for that name. Use this for both creation AND modification (delete + recreate is not required for edits). 500-ticker cap per list. Names are case-insensitive uniqueness. Optional weights (ticker → relative number) marks a list the user HOLDS rather than merely follows; omit it entirel
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Unique-per-user display name. |
| tickers | array | yes | US tickers. Normalised to uppercase, deduped. |
| criteria | string | no | Optional free-form screening criteria description. |
| weights | no | Optional relative position weights, ticker → number (e.g. {"AAPL": 40, "MSFT": 60}). They need NOT sum to 1 or 100 — normalisation is a display decision. Any ticker not in tickers is dropped. Omit t |
Paginated newest-first listing of the caller's watchlists (id, name, tickers, status, counts). Filter by status (active/archived/all). Returns metadata only — use get_watchlist for one list's full ticker set, or watchlist_diff for new filings across a list. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by state; defaults to active. Use all to include archived watchlists. |
| limit | integer | no | Maximum number of watchlists to return (1–100). Defaults to 20. |
| cursor | string | no | Opaque pagination cursor from a previous response; omit for the first page. |
Fetch a single watchlist (full ticker set + criteria) by its name, not an id (case-insensitive). NOT_FOUND if the name is unknown to this user. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Watchlist name to fetch (case-insensitive, 1–80 chars). |
Soft-delete a watchlist by its name (not id): status flips to archived (still readable via list_watchlists status=all/archived). The name is freed for reuse by a new save_watchlist. Idempotent. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Watchlist name to soft-delete (case-insensitive, 1–80 chars); frees the name for reuse. |
Store or update ONE durable memory entry (key → value) for this user so context survives across sessions — preferences, prior conclusions, working context. Replace semantics per key (reusing a key overwrites it). Do NOT store a number you would later cite as a fact: financial figures come from data tools and carry fact_ids; memory values are never treated as verified figures. Caps: 200 entries / 8
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | Memory key (1–128 chars). Reusing an existing key overwrites its value. |
| value | string | yes | The note to remember (≤8000 chars). Never store a figure you would cite as a fact — those come from data tools. |
Recall this user's durable memory. Omit key (or pass null) to read EVERYTHING you have remembered, newest-first — do this at the START of a task to re-ground yourself. Pass a specific key to fetch one entry. An absent key returns an empty list, never an error (absence is a first-class answer). Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | no | A specific key to fetch, or omit/null to recall all memory (newest-first). |
Forget ONE durable memory entry by key — use it when a note you stored is now wrong, superseded, or was only ever scratch. Every entry is re-read into your context at the start of every future run, so leaving a stale one behind means re-grounding yourself in something false; deleting is the correction. Idempotent: deleting a key that is not there returns deleted:false, not an error. Also how you f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | The memory key to forget. Discover keys with get_agent_memory (no key = list all). |
Return new SEC filings across a set of companies since a given date. Name the companies EITHER with name (a watchlist you have already saved) OR with tickers (a list you are holding right now) — pass exactly one. Use tickers for an ad-hoc question: there is no need to create a watchlist just to ask, and you should not, because a saved watchlist is a durable record in the user's account. Read
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Name of a watchlist the caller has already saved. Pass this OR tickers, never both. |
| tickers | array | no | Tickers or CIKs to scan, passed directly. Use this for an ad-hoc question — do NOT create a watchlist in order to ask one, since that writes a durable record into the user's account. Pass this OR `nam |
| since | string | yes | Cutoff date (YYYY-MM-DD); the diff returns SEC filings whose filing_date is on or after this date. |
| form_types | array | no | Filing forms to include. Defaults to 10-K + 10-Q + 8-K. |
Persist a signal and register it with the firing pipeline. Five condition shapes: * filing_event — fire when a ticker files a chosen form type (8-K, 10-K, etc.). * ratio_threshold — fire when a ticker's financial ratio crosses a threshold (e.g. interest_coverage < 1.5). * watchlist_change — fire when any ticker in a named watchlist files; takes the same optional forms filter as `fili
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Human-readable label. |
| condition | yes | Condition evaluated each cron tick — a discriminated union of filing_event (a watched ticker files a new form), ratio_threshold (a financial ratio crosses a comparator/threshold), `watchlist_chang | |
| channel | no | ONE delivery channel for a match — email (filing conditions: the morning digest; other conditions: one transactional email per signal per UTC day, the rest go to the inbox), webhook (HMAC-SHA256-s | |
| channels | array | no | SEVERAL delivery channels for a match, in order (up to 4, each a distinct type+target) — e.g. [{type:'dashboard'},{type:'email',target:'you@fund.com'}] to get the inbox item AND the email. The first |
| replaces_signal_id | string | no | Optional. The id of a signal this call REPLACES with a NEW one. Prefer update_signal, which edits in place and keeps the fire history; use this only when you deliberately want a fresh record. A veri |
Edit an existing signal IN PLACE — rename it, change what it watches, or change where it delivers — keeping its id, its fire history (trigger_count, last_triggered_at) and every inbox item and delivery already tied to it. Pass only the fields to change; omitted fields keep their stored value. channels REPLACES the whole delivery list (1–4, distinct type+target); a webhook entry that keeps it
| Parameter | Type | Required | Notes |
|---|---|---|---|
| alert_id | string | yes | The signal's id from list_signals / create_signal. |
| name | string | no | New human-readable label. |
| condition | no | New condition — the same discriminated union create_signal takes. Replaces the stored condition entirely. | |
| channels | array | no | New delivery list (up to 4, each a distinct type+target). Replaces the stored list entirely; the first entry becomes channel. |
Paginated newest-first listing of the caller's signals (id, condition, channel, status, trigger_count, evaluator health). Filter by status (active/paused/deleted/all). Use the returned signal id with delete_signal or test_signal. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by lifecycle state; defaults to active. Use all to include paused and soft-deleted signals. |
| limit | integer | no | Maximum number of signals to return (1–100). Defaults to 20. |
| cursor | string | no | Opaque pagination cursor from a previous response; omit for the first page. |
Soft-delete a signal by its id (from create_signal/list_signals): status flips to deleted and it is removed from the cron evaluator index so it stops firing. Signals are immutable — to change one, delete then create_signal. Idempotent. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| signal_id | string | yes | Identifier of the signal to soft-delete, as returned by create_signal or list_signals. |
Fire a synthetic notification through EVERY channel the signal is configured with. Use this immediately after create_signal to verify the channels (email address valid / webhook URL reachable + HMAC verification on the receiver). The synthetic fire is logged with a [TEST] summary so it affects neither the real fire counter nor the one-email-per-day cap — the next genuine match still fires norm
| Parameter | Type | Required | Notes |
|---|---|---|---|
| signal_id | string | yes | Identifier of the signal to fire a synthetic test notification through, as returned by create_signal or list_signals. |
Newest-first listing of the caller's in-app inbox. Items are signal FIRES with a dashboard channel — written by the cron evaluator (or test_signal) — plus platform notifications written by the edge-gateway (agent run completions, morning briefs, skipped runs); use list_signals instead for the signal definitions themselves. By default dismissed items are hidden and read items are included. Curs
| Parameter | Type | Required | Notes |
|---|---|---|---|
| unread_only | boolean | no | When true, return only items where read_at IS NULL. |
| include_dismissed | boolean | no | When true, also return items the caller previously dismissed. |
| limit | integer | no | Maximum number of inbox items to return (1–100). Defaults to 20. |
| cursor | integer | no | Pagination cursor — the fired_at of the last item on the previous page. |
Set read_at on a single inbox item by its id (from list_signal_inbox or the signals feed resource) — not a signal id. Idempotent — re-marking does NOT reset the first-read timestamp; there is no unmark. Returns the new unread_count so the agent/UI can update its badge without a follow-up call. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| inbox_id | string | yes | Identifier of the inbox item to mark read, as returned by list_signal_inbox or the signals feed resource. |
Soft-delete a single inbox item by its id (from list_signal_inbox) — not a signal id; sets dismissed_at. The row stays queryable via list_signal_inbox(include_dismissed=true) for audit. Idempotent. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| inbox_id | string | yes | Identifier of the inbox item to dismiss (soft-delete), as returned by list_signal_inbox. |
Propose an MCP tool call for human approval BEFORE running it. Call this — instead of calling the tool directly — whenever an autonomous or unattended caller (a scheduled standing agent, an unattended agent-runner run, or any MCP client operating without a human watching) is about to perform a write it knows or suspects is risky. The target tool's OWN registered risk hints (readOnlyHint/destructiv
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tool_name | string | yes | The MCP tool this action would call once approved (e.g. 'save_thesis', 'create_signal', 'publish_report'). |
| tool_args | object | no | The exact arguments to replay through that tool if/when a human approves. |
| origin | string | yes | Free-form label identifying who/what is proposing this action — e.g. 'agent-runner:managed', 'claude-connector', 'cursor', or any caller-supplied identifier. Lets a human distinguish which session/age |
List the caller's own staged actions still awaiting a human decision (status='proposed'), newest-first. Use this to check what an autonomous run has queued up before you approve or reject it with approve_staged_action / reject_staged_action. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Page size (max 100). |
| cursor | string | no | Pagination cursor from a previous page's next_cursor. |
Approve a staged action by id and RUN the underlying tool call it proposed, using the caller's own current credentials — never the original proposer's. Idempotent and race-safe: an action already decided (approved by a concurrent call, rejected, executed, or failed) is NEVER re-executed — this returns the action's current state with executed_now: false instead. On a fresh approval, `executed_now
| Parameter | Type | Required | Notes |
|---|---|---|---|
| staged_action_id | string | yes | Id of the staged action to approve, from stage_action or list_pending_approvals. |
Reject a staged action by id. Terminal — the underlying tool is NEVER called, and a rejected (or otherwise already-decided) action can never be flipped back by a later approve/reject call; transitioned tells you whether THIS call is what moved it to 'rejected' or whether it was already decided. An id belonging to a different customer's token is indistinguishable from an unknown id (returns NOT_F
| Parameter | Type | Required | Notes |
|---|---|---|---|
| staged_action_id | string | yes | Id of the staged action to reject. |
| reason | string | no | Optional free-text reason recorded on the staged action. |
Defer a follow-up task ("re-check AAPL margin compression in 30 days") for up to 90 days. This is an AGENT-facing primitive — call it mid-conversation/mid-run when you decide something is worth re-checking later; it is NOT a human-authorable "new task" form (use the Workspace's standing-agent scheduler for recurring, human-configured monitoring instead). On wake, an inbox item ALWAYS lands for the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task | string | yes | Human-readable description of the deferred work. |
| wake_in_days | number | yes | How many days from now this task becomes due (0 < n <= 90). |
| context | object | no | Saved thesis/claim/report ids and any other state needed to reconstitute a fresh prompt at wake time. Set managed: true + team_id: "<standing_agent id>" to also kick off a live managed re-run of t |
Paginated newest-first listing of the caller's own scheduled (deferred) tasks — transparency into what an agent has queued for the future. Filter by status (pending/completed/cancelled/cancelled_owner_inactive/all). Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by lifecycle state; defaults to pending. |
| limit | integer | no | — |
| cursor | integer | no | Pagination cursor from a previous response's next_cursor. |
Cancel a pending scheduled task by id (from schedule_task or list_scheduled_tasks). Only a pending task can be cancelled — one that already woke (completed) cannot be un-woken. Idempotent: cancelling an already-cancelled task is a no-op. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task_id | string | yes | Identifier of the scheduled task to cancel. |
Persist a trigger -> action rule and register it with the evaluator. 7 trigger types accepted (alert_fired, schedule_tick, inbox_item, price_threshold, filing_event, manual, scheduled_task_wake) x six action types (run_team, send_alert, create_report, score_thesis, schedule_task, post_inbox). These trigger types have a live event source and DO dispatch today: alert_fired, schedule_tick, inbox_item
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Human-readable label. |
| trigger | yes | Discriminated union — which signal fires this rule. | |
| condition_expr | string | no | Optional single comparison against the trigger payload, e.g. "price_change_pct gt 5". Omit to fire on the trigger alone. |
| action | yes | Discriminated union — what happens when the rule fires. | |
| replaces_rule_id | string | no | Optional. The id of a signal this call REPLACES — set it when saving an edit, which is stored as create-then-delete because neither engine has an update tool. A verified live record you own is discoun |
Paginated newest-first listing of the caller's own rules. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
| cursor | integer | no | Pagination cursor from a previous response's next_cursor. |
Delete a rule by id (from create_rule/list_rules) — removes it from both the catalog and the evaluator's scan index, so it stops firing immediately. Rules are immutable — to change one, delete then create_rule. Idempotent. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rule_id | string | yes | Identifier of the rule to delete. |
Dry-run a rule's condition_expr against a SYNTHETIC trigger payload — reports whether it WOULD have fired, but NEVER dispatches the action (no report generated, no team run, no message sent, no inbox write). Use this immediately after create_rule to sanity-check the condition before it starts evaluating against real events. Pass sample_payload_override to test against specific field values (e.g.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rule_id | string | yes | Identifier of the rule to dry-run, from create_rule or list_rules. |
| sample_payload_override | object | no | Merged over the built-in synthetic payload for this rule's trigger_type — lets you test a specific value. |
Read the caller's Morning Brief — a daily AI-generated market digest covering overnight moves across the customer's own watchlists and theses, produced by the Workspace. Omit day to get the most recent brief available (not necessarily today's); pass a specific day (YYYY-MM-DD) to fetch that day's brief. It is normal for no brief to exist yet if the customer hasn't set up or recently generated
| Parameter | Type | Required | Notes |
|---|---|---|---|
| day | string | no | Specific day to fetch (YYYY-MM-DD). Omit to get the most recent brief available for this customer. |
List the caller's own standing-agent runs, newest first — status, goal, cost, and timing for each. A run may have been kicked off by this same agent (e.g. via create_rule's run_team action, a schedule_task wake, or run_agent) OR by the customer's own Workspace UI; this tool lets any MCP client check on ANY run belonging to the authenticated customer regardless of what triggered it. Filter by an ex
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max runs to return (1-50, default 10). |
| status | string | no | Filter to an exact status match. |
| agent_id | string | no | Filter to runs belonging to one agent (from save_agent/list_agents). |
Fetch full detail for one of the caller's own standing-agent runs by id (from list_agent_runs) — status, goal, tickers, cost, artifact ids, role breakdown, and any error. A run may have been triggered by this same agent or by the customer's own Workspace; this tool works either way. Returns found: false (not an error) for an unknown id OR an id belonging to another customer — there is no disting
| Parameter | Type | Required | Notes |
|---|---|---|---|
| run_id | string | yes | Run identifier, from list_agent_runs. |
Create or update a standing agent — a saved {goal + tickers + schedule} that fires either a fixed step recipe (agent_type="workflow", free/deterministic) or an AI-directed team (agent_type="autonomous", charged — settles against the owner's BYO key first, falling back to the managed wallet only if funded). Upsert semantics: omit agent_id to CREATE a new agent; pass an existing agent_id to UPDA
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | no | Omit to create a new agent; pass an existing agent's id (from save_agent/list_agents/get_agent) to update it. |
| name | string | yes | Human-readable label. |
| goal | string | yes | What this agent is trying to accomplish — drives an autonomous agent's AI-directed team, and documents intent for a workflow agent's fixed steps. |
| tickers | array | yes | US tickers this agent operates over. Normalised to uppercase. |
| agent_type | string | yes | STRUCTURAL and immutable. "workflow" = fixed step recipe, free/deterministic, requires steps. "autonomous" = AI-directed team, charged, may set managed_model. |
| when | string | yes | Trigger mode. "manual" fires only via run_agent/the UI; "schedule" requires the schedule object. |
| schedule | object | no | Required when when="schedule"; ignored otherwise. |
| managed_model | string | no | Managed-lane model override for agent_type="autonomous" only (e.g. when no BYO key is connected). Omit to use the account default. |
| steps | array | no | Fixed step recipe for agent_type="workflow". Required + non-empty when CREATING a workflow agent; must be omitted for agent_type="autonomous". |
List the caller's own standing agents (id, name, goal, tickers, agent_type, trigger config, schedule, enabled state, last/next run). Optionally filter by agent_type ("workflow" or "autonomous"). Use get_agent for one agent's full detail, list_agent_runs for run history, or run_agent to fire one now. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max agents to return (1-50, default 20). |
| agent_type | string | no | Filter to one agent_type. |
Fetch full detail for one of the caller's own standing agents by id (from save_agent/list_agents). Returns found: false (not an error) for an unknown id OR an id belonging to another customer — there is no distinguishing signal, by design, matching get_agent_run's posture. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent identifier, from save_agent or list_agents. |
Delete one of the caller's own standing agents by id. System agents (is_system:true on get_agent/list_agents — built-in agents the platform provisions) cannot be deleted and are rejected with a clear message. Idempotent in effect: deleting an already-deleted or unknown id returns NOT_FOUND. Tier: sp500+ (sample rejected).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Identifier of the agent to delete. |
Fire one of the caller's own standing agents now, out of band from its schedule. For agent_type="autonomous" this costs money — it settles against the owner's own BYO LLM key first, falling back to the managed wallet only if funded; agent_type="workflow" runs are free/deterministic. This call can be a legitimate NO-OP: it may report a run was SKIPPED for a real business reason (no usable compute l
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Identifier of the agent to run now. |
Synchronously generate a research report and persist it under the caller's authorship. Two subtypes: • reverse_dcf — solves the stage-1 free-cash-flow growth rate the market price implies, with a 5×5 sensitivity grid across WACC × terminal-growth assumptions. Returns full markdown + structured JSON + every numerical claim's citation chain to the originating SEC accession. • thesis — snapshot
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_type | string | yes | Subtype. reverse_dcf requires ticker + params; thesis requires thesis_id (from save_thesis / list_theses). |
| ticker | string | no | US-listed ticker — required for report_type=reverse_dcf. Case-insensitive. |
| params | object | no | Reverse-DCF parameters — required for report_type=reverse_dcf. |
| thesis_id | string | no | Id of a saved thesis owned by the caller — required for report_type=thesis. |
| title | string | no | Optional human-supplied title; auto-generated when omitted. |
| idempotency_key | string | no | Optional key for at-most-once semantics. Same key from the same user always yields the same report id. |
Fetch the current HEAD of a report by id. format=markdown returns the rendered body, format=json returns the full structured payload (sections + citations + report-type-specific data), format=preview returns abstract-only. Authors see any of their own reports; non-authors only get preview of listed reports and need the report's required tier for full bodies. Sample-tier non-authors are dow
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Id from create_report or list_my_reports. |
| format | string | no | Response shape. Defaults to markdown. |
Cursor-paginated newest-first listing of the caller's own reports (owner-scoped). Filters compose with AND; status defaults to 'ready' so pass status='draft' or 'all' to see drafts. Use cursor from the previous response's next_cursor to fetch the next page (limit max 100). Sample tier rejected (no per-author state).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by status. Default 'ready' (excludes drafts + delisted). |
| report_type | string | no | Filter by report type. |
| ticker | string | no | Filter to a single ticker (case-insensitive). |
| limit | integer | no | Page size. |
| cursor | string | no | Cursor from previous next_cursor. |
Soft-delete a report owned by the caller: status flips to delisted, visibility to private — not a hard delete, the row and R2 artifact are preserved (90-day audit window). Idempotent (deleting an already-delisted report succeeds). Sample tier rejected.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Id from create_report or list_my_reports. |
Publish a report for FREE at listed or unlisted visibility to build your public author profile. listed makes it discoverable via search_reports (keyword catalog search); unlisted keeps it out of the catalog but accessible by direct id (shareable link). Author can set a tier_required no higher than their own plan. All listings are free today (omit price_cents or set it to 0); paid lis
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | — |
| visibility | string | no | — |
| price_cents | integer | no | Currently must be omitted or 0 — all listings are free. A non-zero value is rejected until paid listings ship. |
| tier_required | string | no | Minimum subscriber tier to read the full body. Defaults to the author's plan. |
Revert a published report (listed or unlisted) back to private visibility, removing it from the public catalog. Author-only. Idempotent.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | — |
Search the catalog of published research reports. All listings are free to read. Filters: free-text (matches title + abstract), ticker, report_type. Sort: newest (default) or oldest. Tier-gated: callers only see reports their plan tier can read.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text query over title + abstract (case-insensitive). |
| ticker | string | no | Filter to a single subject ticker. |
| report_type | string | no | Filter by report type. |
| price_max_cents | integer | no | Reserved for future paid listings; currently ignored (all reports are free). |
| sort | string | no | — |
| limit | integer | no | — |
| cursor | string | no | — |
Forward discounted-cash-flow valuation (two-stage Gordon-growth model): caller provides growth + WACC + terminal assumptions, returns per-share intrinsic value (value_per_share_cents, cents USD) + 5×5 sensitivity grid. Pulls FCF base + net debt + shares from R2; caller can override any field. Definitions (consistent with get_financial_ratios / get_capital_allocation_profile): FCF base = oper
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the company to value, e.g. AAPL, MSFT, BRK.B. |
| stage1_growth_rate | number | yes | Stage-1 FCF growth rate (e.g. 0.12 = 12%/yr). |
| wacc | number | no | Discount rate. Default 0.09. |
| terminal_growth_rate | number | no | Long-run growth. Default 0.025. |
| stage1_years | integer | no | Number of explicit high-growth projection years before the terminal stage (3–15). Defaults to 5. |
| fcf_base_override | number | no | Override the auto-pulled FCF base (USD). Leave unset to use R2-derived. |
| shares_override | number | no | Override shares outstanding. Leave unset to use R2-derived. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD) for the auto-pulled inputs. Fundamentals are filtered by SEC accepted_at (strict PIT); valuation.parquet inputs are best-effort PIT (filtered by created_at, its accep |
| fcf_source | string | no | "trend" (default): compound fcf_base by stage1_growth_rate every year (unchanged original behavior). "three_statement": derive the FCF stream from a full linked 3-statement projection instead — see th |
| three_statement_assumptions | object | no | Only used when fcf_source is "three_statement". Overrides for the underlying projection; unset fields use project_three_statement's defaults. |
Deterministic forensic-accounting scores for a single ticker: partial Beneish M-Score, Sloan accruals, and a solvency snapshot. Returns a red-flag narrative ranked by severity, with citations to source filings. Used by the forensic_earnings_brief SOP. Note: full Beneish needs AR / current assets / PPE / SGA / current liabilities, which aren't in our fundamentals model. We compute the recoverabl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the company to audit, e.g. AAPL, MSFT, BRK.B. |
End-of-day closing price for a company AS OF any calendar date. Pass date to get the close on that day; if the date falls on a weekend or market holiday, it resolves backward to the most recent prior trading day's close (the price_date field tells you which day was actually used, and resolved_backward flags when it stepped back). Omit date for the latest available close. Closes are RAW (no
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| date | string | no | As-of calendar date (YYYY-MM-DD). Returns the close of the most recent trading day on or before this date — a weekend/holiday resolves to the prior trading close. Omit to get the latest available clos |
Daily EOD bar series (OHLCV) for a company over a date range. Returns up to 252 trading-day bars oldest-first — one bar per trading day. Each bar carries: open / high / low / close (raw, unadjusted), total_return_index (dividends reinvested and splits neutralized, forward-compounded from an arbitrary base so only RATIOS of it are meaningful — TOTAL RETURN BETWEEN TWO DATES IS tri_b / tri_a - 1; it
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| start_date | string | no | Inclusive start of the date range (YYYY-MM-DD). Bars on or after this date are returned (up to limit). Omit to receive the limit most-recent bars before end_date. |
| end_date | string | no | Inclusive end of the date range (YYYY-MM-DD). Defaults to today (the latest available close). Weekends and holidays resolve to the last trading close on or before this date. |
| limit | integer | no | Maximum number of bars to return. Daily plans (Pro, Institutional): 1–252, default 252 ≈ 1 trading year. Free plans (sample, benchmark), which return month-end bars: 1–360, covering up to the full ~30 |
Current and historical valuation multiples for a company. Omit as_of_date and it returns today's P/E, P/S, P/B, EV/EBITDA, EV/Revenue and FCF yield, computed from the latest EOD close and the latest TTM financials. Use it for any "what is X's P/E " / "how is X valued right now" question — never derive a multiple yourself by dividing a price by an earnings figure; that is exactly the arithmetic t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'. |
| as_of_date | string | yes | The historical date for the valuation snapshot (YYYY-MM-DD). The EOD close on the nearest prior trading day will be used. All financials are PIT-filtered to filings accepted on or before this date. Us |
A SMALL, BOUNDED, in-Worker sanity-check backtest — NOT a full-universe backtesting engine. Answers a quick question like 'does this factor actually work on these 5 names over the last year' inline, mid-conversation, without leaving MCP. Composes two existing tools (get_pit_universe + get_pit_valuation_ratios) across up to 10 tickers x 12 rebalance dates (120 cells): for each rebalance date, c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tickers | array | yes | 1-10 stock ticker symbols, e.g. ["AAPL","MSFT"]. |
| rebalance_dates | array | yes | 1-12 historical dates (YYYY-MM-DD) to snapshot valuation multiples on. Order does not matter — the tool sorts them chronologically. Forward return is computed from each date to the NEXT one in the sor |
| factors | array | no | Which of get_pit_valuation_ratios's own output fields to include as factor_values. One or more of: pe_ratio, ps_ratio, pb_ratio, ev_ebitda, ev_revenue, fcf_yield_pct, gross_margin_pct, operating_margi |
Linked forward Income Statement / Balance Sheet / Cash Flow projection, seeded from the company's latest historical annual period. The balance sheet ties out (assets == liabilities + equity) EVERY projected year by algebraic construction — each year's tie_out_ok field is a live correctness check, not decoration. Interest is computed on beginning-of-period debt balances (no circular cash-sweep/re
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. AAPL, MSFT, BRK.B. |
| years | integer | no | Projection horizon in years (1-15). Defaults to 5. |
| revenue_growth_rate | number | yes | Flat annual revenue growth rate applied every year (e.g. 0.08 = 8%/yr). |
| interest_rate_on_debt | number | no | Annual interest rate on beginning-of-period debt. Assumption — default 0.06. |
| tax_rate | number | no | Effective tax rate on positive pretax income. Default 0.21 (US statutory). |
| gross_margin_pct_override | number | no | Override the seed period's gross margin (held flat across all years). Leave unset to use the historical ratio. |
| operating_margin_pct_override | number | no | Override the seed period's operating margin. Leave unset to use the historical ratio. |
| capex_pct_of_revenue_override | number | no | Override the seed period's capex-as-%-of-revenue ratio. Leave unset to use the historical ratio. |
| cash_sweep_pct | number | no | Fraction (0-1) of each year's free cash flow swept to debt paydown. Default 0 (going-concern; use ~1.0 for an LBO-style paydown). |
| dividend_payout_pct | number | no | Fraction (0-1) of net income paid out as dividends each year. Default 0. |
| new_debt_draw_year1 | number | no | New debt drawn at year 1 only (absolute USD) — e.g. acquisition financing. Default 0. |
| new_equity_draw_year1 | number | no | New equity contributed at year 1 only (absolute USD) — hits cash + equity symmetrically. Default 0. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD) for the seed period. Omit to use the latest knowable annual period. |
Leveraged buyout returns analysis: caller provides entry/exit multiples, leverage, and a hold period; the tool builds a Day-1 pro-forma opening balance sheet from the deal's own sources & uses (cash-free, debt-free convention — entry_debt = leverage_multiple x EBITDA, sponsor_equity = entry_enterprise_value + minimum_cash - entry_debt), then runs it through the same linked three-statement engine a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the LBO target, e.g. AAPL. |
| entry_multiple | number | yes | EV/EBITDA multiple paid at entry (e.g. 10 = 10x). |
| exit_multiple | number | no | EV/EBITDA multiple assumed at exit. Defaults to entry_multiple (no multiple expansion/contraction) when omitted. |
| leverage_multiple | number | yes | Debt/EBITDA raised at entry (e.g. 5 = 5x leverage). |
| hold_period_years | integer | no | Hold period in years (1-10). Defaults to 5. |
| revenue_growth_rate | number | yes | Flat annual revenue growth rate applied every year of the hold (e.g. 0.05 = 5%/yr). |
| interest_rate_on_debt | number | no | Annual interest rate on beginning-of-period LBO debt. Default 0.08 (leveraged debt typically prices above IG). |
| tax_rate | number | no | Effective tax rate on positive pretax income. Default 0.21. |
| cash_sweep_pct | number | no | Fraction (0-1) of each year's FCF swept to debt paydown. Default 1.0 (standard LBO — 100% sweep). |
| dividend_payout_pct | number | no | Fraction (0-1) of net income distributed to the sponsor each year (dividend recap style). Default 0 — most LBOs return capital only at exit. |
| minimum_cash | number | no | Minimum operating cash left on the pro-forma opening balance sheet. Default 0. |
| entry_ebitda_override | number | no | Override the EBITDA figure used for both entry and exit multiples. Without this, EBITDA is proxied by operating income. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD) for the seed period. Omit to use the latest knowable annual period. |
M&A accretion/dilution: the standard sell-side/banker quick-screen for whether a proposed acquisition adds to (accretive) or subtracts from (dilutive) the acquirer's EPS in the first pro-forma year. Pulls net income + shares outstanding for both companies, and each side's latest EOD close (acquirer's price converts stock consideration into new shares issued; target's price is used only to disclose
| Parameter | Type | Required | Notes |
|---|---|---|---|
| acquirer_ticker | string | yes | Acquirer's stock ticker symbol, e.g. MSFT. |
| target_ticker | string | yes | Target's stock ticker symbol, e.g. ATVI. |
| offer_price_per_share | number | yes | Offer price per target share (USD). |
| cash_pct | number | yes | Fraction (0-1) of deal value paid in cash; the remainder (1 - cash_pct) is paid in acquirer stock. |
| synergies_pretax | number | no | Pretax annual run-rate cost/revenue synergies (USD). Default 0. |
| cash_financing_source | string | no | Where the cash consideration is funded from. "new_debt" (default) applies an after-tax interest drag; "balance_sheet_cash" applies none. |
| new_debt_interest_rate | number | no | Annual interest rate on new acquisition debt (only used when cash_financing_source is "new_debt"). Default 0.06. |
| tax_rate | number | no | Effective tax rate applied to synergies and the interest drag. Default 0.21. |
| acquirer_share_price_override | number | no | Override the acquirer's live EOD close. Leave unset to use the latest R2-derived price. |
| target_share_price_override | number | no | Override the target's live EOD close (used only for the disclosed premium). Leave unset to use the latest R2-derived price. |
| as_of_date | string | no | Point-in-time cutoff (YYYY-MM-DD) for both companies' fundamentals + prices. Omit to use the latest knowable data. |
Replace one or more sections of an existing report owned by the caller. Useful for authoring workflows where the agent's first draft (create_report) is refined by additional analysis before publishing. Pass citations for figures in the edited prose — they are MERGED into the report's existing set, never replacing it, so omitting them preserves the lineage already recorded. Bumps version. Doe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report to update, as returned by create_report or list_my_reports. |
| title | string | no | Optional new title. |
| abstract | string | no | Optional new abstract. |
| sections | array | yes | Sections to replace. Sections not listed are preserved — to DELETE one, name it in remove_section_ids. Section ids must match the existing payload. |
| remove_section_ids | array | no | Section ids to DELETE outright. Without this, a merge-only update cannot express a deletion: an editor that drops a section simply omits it, the omitted section is preserved, and the caller sees a bum |
| citations | array | no | Lineage for figures in the edited sections. MERGED into the report's existing citations (first claim wins), never replacing them — so an editor autosave that sends none preserves every citation the re |
| expected_version | integer | no | Optimistic concurrency check. If supplied and the current HEAD version is different, the call returns a version_conflict error WITHOUT writing. Pass the version you loaded so a concurrent agent edit |
Author-only newest-first listing of a report's archived version history. Each entry summarises what changed (sections edited, etc.) so the workspace UI can render a clickable history without loading every artifact. Pair with get_report_version to fetch a specific version's content for diffing against HEAD.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report whose version history to list, as returned by create_report or list_my_reports. |
| limit | integer | no | Maximum number of archived versions to return (1–100). Defaults to 20. |
| cursor | integer | no | Cursor from the previous response's next_cursor — the smallest version number on the previous page. Omit for the first page. |
Author-only fetch of a specific archived version of one of your reports, by positive-integer version. Returns metadata + the full payload (sections, citations, structured, markdown) — enough to render a diff against the current HEAD in the workspace editor. Use after list_report_versions identifies the version number you want; for the current HEAD use get_report instead.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Identifier of the report whose archived version to fetch, as returned by create_report or list_my_reports. |
| version | integer | yes | Version number to fetch (from list_report_versions). |
Return a 15-minute presigned download URL for a report in the requested binary format. format=md presigns the cached markdown — instant, no compute. format=docx and format=pdf return the SAME branded research-note design in the two media: a masthead-first page 1 (Valuein letterhead — brand rule, wordmark, 'EQUITY RESEARCH' kicker + date), the ticker eyebrow and title, the named analyst's by
| Parameter | Type | Required | Notes |
|---|---|---|---|
| report_id | string | yes | Id from create_report or list_my_reports. |
| format | string | yes | md = raw markdown (the same body the editor renders). docx = branded Word document; pdf = the same branded research-note design as a shareable PDF (Geist faces embedded, clickable citation links). |
| force_regenerate | boolean | no | If true, ignore the cached DOCX/PDF and re-render. No effect on md (markdown is canonical). |
| author_name | string | no | Display name of the report's author, shown as a named byline ('By {name}') on the masthead — the way a real research note credits an analyst. Omit to show 'Valuein Research'. Only affects the binary f |
Save free-form markdown (e.g. a chat synthesis) as a DRAFT report you can refine in the editor and export to Word/PDF. Unlike create_report (which computes a structured reverse_dcf or thesis report), this accepts raw markdown and splits it into sections. PASS citations with the fact_ids behind the figures you wrote — without them every number in the report reads as unsourced and the report can
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | Report title. |
| markdown | string | yes | Free-form markdown body (≤100k chars). Headings become sections. |
| ticker | string | no | Optional ticker for context/catalog. Case-insensitive. |
| abstract | string | no | Optional 1–2 sentence summary. |
| idempotency_key | string | no | Optional key for at-most-once semantics. Same key from the same user always yields the same report id. |
| citations | array | no | Lineage you already hold for the figures in markdown — pass it rather than dropping it. Each claim should quote the figure exactly as the prose writes it, so figure review can link the two. Persiste |
Read the extracted text of a file uploaded via POST /v1/uploads (a plain REST route, not this JSON-RPC endpoint). Use this to pull a user-attached document's content into context by its upload_id. Uploads are ephemeral (24h) and owner-scoped — an expired or missing id both read back as not-found.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | The upload_id returned by POST /v1/uploads. |
List the caller's currently-active uploaded documents (filename, size, char count — no full text; call get_uploaded_document for that). Uploads expire 24h after upload.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max uploads to return (default 20, the same cap as MAX_ACTIVE_UPLOADS_PER_CUSTOMER). |
Delete an uploaded document before its 24h TTL. Deleting a missing/already-expired/foreign id returns deleted:false rather than an error.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | The upload_id returned by POST /v1/uploads. |
Render a forward DCF result into a professional Excel workbook (Summary + 5×5 Sensitivity heatmap + Inputs sheet). Native conditional formatting — no chart images needed. Returns a 15-minute presigned R2 download URL. SERVER-TRUST: the DCF is re-derived in-Worker from the supplied inputs_echo (the math is pure + deterministic) and the workbook renders Valuein's recomputed figures — never the ca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the company the DCF workbook is built for, e.g. AAPL. |
| company_name | string | no | Optional — surfaces on the cover row. Falls back to ticker only. |
| dcf_result | object | yes | Structured DCF result — typically the result field returned by compute_dcf. |
Render a structured research brief into a professionally-styled Word document — a branded masthead-first page (Valuein letterhead: brand rule, wordmark, 'EQUITY RESEARCH' kicker + date, then the ticker eyebrow, the title as hero, and the named analyst's byline), the body (abstract, optional snapshot table with figures in mono, markdown sections incl. GFM tables, and a citations table with clickabl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol the brief covers, e.g. AAPL, MSFT, BRK.B. |
| company_name | string | no | Optional display name shown in the masthead subtitle; falls back to the ticker if omitted. |
| title | string | yes | Document title rendered in the page-1 masthead (1–200 chars). |
| abstract | string | no | Optional executive-summary paragraph (≤2000 chars) shown after the masthead. |
| snapshot | array | no | Optional at-a-glance metric rows (≤20) rendered as the snapshot table. |
| sections | array | yes | Ordered body sections of the brief (1–20); each has a heading and body text. |
| citations | array | no | Optional source citations (≤60) rendered as a table with clickable SEC EDGAR hyperlinks. |
| author_name | string | no | Display name of the analyst producing this brief, shown as a named byline ('By {name}') on the masthead — the way a real research note credits an analyst. Omit to show just the date. |
Render a peer comparables table into an Excel workbook. The Comps sheet is formatted as a named Excel Table (ValueinPeerComps) so the user gets one-click Insert Chart on any column — the cleanest workaround for not embedding chart objects server-side. Subject-row highlight makes side-by-side comparison instant. A Summary sheet adds subject vs peer-median deltas. SERVER-TRUST: the ratios you pas
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subject_ticker | string | yes | Stock ticker symbol of the subject company the comps sheet is built around, e.g. AAPL. |
| subject_company_name | string | no | Optional display name for the subject company; falls back to the ticker if omitted. |
| peers | array | yes | Peer companies to tabulate against the subject (1–50 rows); each row carries the peer's ticker, name, and comparable ratio values. |
| notes | string | no | Optional free-text note (≤500 chars) rendered on the Summary sheet. |
Render an LBO result into a professional Excel workbook (Summary + year-by-year Projection table + Inputs sheet). Returns a 15-minute presigned R2 download URL. SERVER-TRUST: the deal is re-derived in-Worker from the supplied lbo_result.inputs_echo (the math is pure + deterministic) and the workbook renders Valuein's recomputed figures — never the caller's claimed values. If the claimed figures
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol of the LBO target, e.g. AAPL. |
| company_name | string | no | Optional — surfaces on the cover row. Falls back to ticker only. |
| lbo_result | object | yes | Structured LBO result — typically the result field returned by compute_lbo. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Valuein — SEC EDGAR Fundamentals & Smart-Money Data or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 3.3.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Valuein — SEC EDGAR Fundamentals & Smart-Money Data can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.