ETFIQ
Independent US ETF data and benchmarks for model portfolios, each figure with its source and date.
| Endpoint | https://mcp.etfiq.com (streamable-http) |
|---|---|
| Registry version | 0.2.0 |
| Now | 20 tools · grade D (60) · pin ts_db8dfcb04ee9bca8781ee47fa7091ebe · protocol 2025-06-18 |
| First / last listed | 2026-10-27 02:08 UTC / 2026-10-27 02:08 UTC |
| Grade over time | 2026-10-27: D (60), 20 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: etf_search etf_profile etf_holdings etf_theme etf_themes etfiq_page etfiq_sections etfiq_list etf_screen etf_overlap etfiq_as_of etf_holders etf_rankings etf_flows etfiq_methodology find_page list_benchmarks get_benchmark compare_to_benchmark build_portfolio
etf_search | Find US listed ETFs by ticker, fund name, or a word from the name. Use this FIRST when the user names a fund loosely, then etf_profile with the ticker it returns. Refuses rather than returning a near match: a refusal says why, and for a fund it means ETFIQ does not publish it. A former ticker (SPLG) answers with the fund it trades as now, and a closed fund with its page and the day it closed. Fund params: query*, desk, limit |
etf_profile | Everything ETFIQ publishes about one fund: issuer, category, and each figure with its source and as-of date, plus a one sentence verdict on how it did against what its own label promises. benchmark is the fund's own benchmark as its page names it: its name, how it was set, and the fund's return, the benchmark's and the gap for each window (periods is the page's whole window table). A closed fund a params: ticker* |
etf_holdings | What a fund holds, by weight, and how old that is. ALWAYS read lag_days before presenting it: an issuer file read today and a filing from two months ago both come back here and are not the same answer. params: ticker*, top_n |
etf_theme | Every US listed fund in a theme, largest first, with what each charges and how much of it is already in the S&P 500. USE THIS for any "what X ETFs are there" or "top X ETFs" question: it returns the whole published set rather than a sample. params: theme*, limit |
etf_themes | Every theme ETFIQ publishes and how many funds each holds. Call when unsure what a theme is called, then etf_theme. params: none |
etfiq_page | Read ANY published ETFIQ page as text: a theme hub, a ranking, a comparison of two funds, an issuer, a methodology note, a dated study. Takes a path like /themes/cyber or a full etfiq.com URL. This reaches all 40,000 pages, including everything the typed tools above do not cover, and returns the page content rather than its navigation. params: path* |
etfiq_sections | What ETFIQ publishes, section by section, with a page count for each, and start_here: the main pages (fund flows, the weekly flows report, ETF model portfolios and benchmarks, the filed prediction-market and sports-team funds, issuers, methodology, rankings, the screener) with what each holds. Start here when the question is not about one fund. params: none |
etfiq_list | The pages inside one section, optionally filtered to those whose address contains a word. Use after etfiq_sections to find a page, then etfiq_page to read it. The count returned is the whole matching set even when the list is capped. params: section*, contains, limit |
etf_screen | Every fund matching some filters, each with its net assets and the source and date that figure came from. Filters: desk, issuer, max_fee_pct, min_assets_usd; and, from the ETFIQ screener, tracks (the index the funds track, such as "S&P 500"), min_yield_pct (12-month yield of at least that percent), pays (payout frequency: weekly, monthly, quarterly, semiannual or annual, published for income ETFs) params: desk, issuer, max_fee_pct, min_assets_usd, tracks, min_yield_pct, pays, sort, limit |
etf_overlap | How much of their weight two funds hold in common, as ETFIQ published it on the comparison page for that pair. Use when asked whether two ETFs are the same thing, or whether owning both adds anything. Refuses rather than estimating when the pair is not compared or either holdings book is incomplete. params: a*, b* |
etfiq_as_of | What ETFIQ published on a given date, from its frozen dated archive. Use when a question is about a past date, or when a figure needs to stay true after it is quoted: every other tool here answers about today and today moves overnight. Takes YYYY-MM-DD. Covers the pieces written that night, not an arbitrary per-fund figure on an arbitrary day. params: date* |
etf_holders | Which US listed ETFs hold a given company, ranked by how much of each fund it is. USE THIS for any "which ETFs hold X", "which fund holds the most X", or "how do I get exposure to X" question, where X is a company rather than a fund, and for "which bond ETFs hold X's debt". Takes a company name or its ticker. Returns every fund holding its shares with the weight its issuer published and the date t params: company*, limit |
etf_rankings | The ranked lists ETFIQ publishes, or one of them. Each ranks ONE published figure inside a stated set: the cheapest funds in a theme, the leveraged funds furthest from their stated multiple, the buffer funds closest to their cap. Call with no argument for the list. params: slug, limit |
etf_flows | Fund flows as ETFIQ publishes them, computed from each fund's daily change in shares outstanding times its NAV. With ticker: that fund's net flow over 1D, 1W, 1M, 3M, YTD and 1Y, each with its dates and its share of net assets at the window's start, its streak, and its filed N-PORT months. Without ticker: the biggest inflows and outflows among every fund with a daily figure for window (1D, 1W, 1M, params: ticker, window, desk, category, issuer, limit |
etfiq_methodology | How ETFIQ computes a figure, from the methodology page that says so: one page per desk (income, buffer, leverage, crypto, alternatives, themes), flows, scores, categories (how stock and bond funds are placed and which benchmark each is measured against), portfolio look-through, and the ETFIQ benchmarks for model portfolios. Pass topic, the reader's question in their words; the answer names the pag params: topic |
find_page | The designed ETFIQ pages that answer a question, best first, at most three: a fund, a comparison of two funds, the ETFs that hold a company, a ranking, a theme, a category, an issuer, the weekly flows report, a flows ranking, a dividend calendar, a screen, a benchmark, a model portfolio comparison, an FAQ answer or a methodology page. CALL THIS FIRST whenever the question could be answered by one params: query, path |
list_benchmarks | The ETFIQ benchmarks: published, rules-based yardsticks for model portfolios, each a written rule over broad, low-cost ETFs, grouped in families (strategic, tax-aware, factor, income, tactical, thematic) by stock share. Filter by family, or by band (a name such as moderate, a stock share such as 60, or "all stocks"). Use when asked which benchmark measures a kind of model portfolio, then get_bench params: family, band |
get_benchmark | One ETFIQ benchmark in full: its rule as the methodology states it, the funds and weights in force (with SEC series ids and each fund's expense ratio and its date), and every statistic ETFIQ computes for it by window (total return, return a year, volatility, maximum drawdown, Sharpe ratio, turnover, factor loadings, weighted expense ratio), each with its dates and its basis. ALWAYS read basis: a f params: id* |
compare_to_benchmark | Sets an allocation ETF, or a portfolio build_portfolio builds, beside an ETFIQ benchmark. With ticker (such as AOR): how the fund did against the benchmark for its band (set by its look-through stock share), over the same dates, as ETFIQ published it: total returns by window and the difference, risk and cost. With portfolio (the arguments build_portfolio took, its answer's compare.arguments.portfo params: ticker, portfolio, benchmark |
build_portfolio | Builds a custom portfolio of US listed ETFs from construction choices about the PORTFOLIO, and shows the rule it applied. TWO FORMS. Weights (ETFIQ custom construction rule, version 2): pass weights, the user's own percent for each asset class, adding to exactly 100, for example {"us-stocks": 40, "international-stocks": 15, "us-bonds": 25, "gold": 10, "reits": 10}. The asset classes: us-stocks, us params: weights, band, include, feeCeiling, funds, criterion |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.