Screen Universe by Factor Scores
screen_universeRank 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 p...
Example Call
# Using the Valuein MCP server from Python (via MCP SDK)# Or call directly from Claude / Cursor after setup result = await client.call_tool( "screen_universe", arguments={})print(result)Direct tool call:screen_universe(sector="Technology", sort_by="composite_rank", limit=10)
Try it now
Paste this in your terminal — the free tier returns real sample data without authentication.
# No auth required — the Sample tier covers a large-cap US benchmark universe with a 5-year window.# Add -H "Authorization: Bearer $VALUEIN_TOKEN" for the full universe and history.curl -X POST https://mcp.valuein.biz/mcp \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "screen_universe", "arguments": { "limit": 3 } } }'Inputs
| Parameter | Type | Required | Description |
|---|---|---|---|
ticker | string | optional | If provided, show only this ticker's factor scores (single-entity mode). Omit to screen the full universe. |
sector | string | optional | Filter to a specific sector (case-insensitive partial match). E.g. 'Technology', 'Healthcare'. |
sort_by | "roe_rank" | "gross_margin_rank" | "operating_margin_rank" | "net_profit_margin_rank" | "revenue_growth_yoy_rank" | "fcf_to_assets_rank" | "debt_to_equity_rank" | "asset_turnover_rank" | "current_ratio_rank" | "piotroski_f_score_rank" | "composite_rank" | optional | Which factor rank to sort by (see the enum). Defaults to composite_rank. An unrecognized column is rejected with INVALID_ARGUMENT (no silent fallback).Default: "composite_rank" |
limit | integer | optional | Number of results to return (1-100). Defaults to 25.Default: 25 |
offset | integer | optional | 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.Default: 0 |
as_of_date | string | optional | 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-free. Omit for the latest snapshot. |
exclude_outliers | boolean | optional | 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 with near-zero denominators. Rows that do not join to a company (null symbol) are ALWAYS omitted in full-universe mode, regardless of this flag.Default: false |
Output Fields
plansort_bysector_filtertickeras_of_datepit_saferesults_returnednotetruncationdatalineagePaging
limit is the page size and offset is where the page starts. While rows remain, the result carries truncation with next_offset: call again with the same arguments and offset set to truncation.next_offset, until a result has no truncation.
Errors and paging for every tool: the agent contract.
Example Response
[ { "plan": "sp500", "sort_by": null, "sector_filter": null, "ticker": "AAPL", "as_of_date": null, "pit_safe": null, "results_returned": null, "note": null }]Shape only — field names match the live schema; values are placeholders, not real filings. Returns the top 10 Technology companies by composite factor rank.
Notes
Without `as_of_date` the screen ranks the latest factor snapshot; with it, the screen is reconstructed point-in-time from `factor_scores.accepted_at` — each company ranked at its latest-knowable period, with no look-ahead.
Plan Access
Related Tools
Index names are trademarks of their owners; Valuein is not affiliated with or endorsed by any index provider.