The13f

com.the13f由 the13f.com 發布v0.5.0更新於 Oct 29, 2026

Institutional 13F intelligence: 8,600+ managers, holdings, changes, ownership, overlap and flows.

已驗證STDIO僅桌面金融資料與分析

概覽

AI 產生的概覽

讓助理查詢 SEC 13F 機構持股資料:經理人、持股、季度變動、持股方與產業資金流向。

可以做什麼
  • 列出可用季度,依名稱搜尋或列出 13F 申報機構及其管理規模摘要
  • 取得某機構某季度的完整持股,可單筆查詢或一次批次查詢最多 25 組
  • 查看某機構買進、賣出、加碼、減碼的標的,支援單一季度或多個季度,並提供規模與持股數趨勢
  • 查詢某檔證券由哪些機構持有,包括新進與出清的機構
  • 將自選投資組合比對出相似機構、兩家機構正面比較,並取得最多機構共同持有的標的
  • 讀取機構市場狀態快照與各產業資金流向
適用情境
適合讓助理根據公開 13F 申報做機構持股研究:機構投資組合、季度間調整、某檔股票的持有者、投資組合重疊度或產業資金流向,不必手動比對申報文件。
執行需求
透過 uvx(或 pip)在本機執行,需 Python 3.11+,並搭配 Claude Desktop、Cursor 或 VS Code + Continue 等桌面 MCP 用戶端。需要免費的 pf13f_ API 金鑰,放在 THE13F_API_KEY 中(每日 100 次讀取,免信用卡)。可選用 THE13F_API_BASE_URL 與 THE13F_MCP_TIMEOUT。需能連線廠商 API。
安裝前請注意
API 金鑰是僅顯示一次的機密,請勿寫入共用設定。資料僅供研究,申報落後約 45 天,僅含多頭部位,管理規模低於 1 億美元的基金可能不申報;結果附有免責聲明,應原樣呈現。預設情況下伺服器會把故障資訊(版本、作業系統、位置、錯誤訊息)回報給廠商,可將 THE13F_MCP_REPORTS 設為 off 關閉。付費的訊號與報告功能仍在規劃中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 The13f,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

the13f-mcp

Model Context Protocol server for the13f. Brings institutional 13F intelligence into Claude Desktop, Cursor, VS Code + Continue, and any MCP-compatible host — no HTTP code required on your side.

Important limitations

Research data only. Sourced from publicly disclosed SEC Form 13F filings, which lag quarter-end by up to 45 days. Past institutional positioning does not predict future performance. Nothing here constitutes investment advice. Every tool's response includes a disclaimer field; the host LLM should surface it alongside any analysis it produces.

Install

uvx the13f-mcp

Or pip install the13f-mcp if you prefer to manage Python environments yourself. Python 3.11+ required.

Get a free API key

Free, no payment, no credit card:

  1. Visit https://the13f.com/developers/
  2. Enter your email and solve the Cloudflare Turnstile challenge
  3. Copy your pf13f_ key — shown once
  4. Paste it into your MCP host's config as THE13F_API_KEY (see below)
  5. Restart the host

Free tier: 100 read calls per day; quota rolls at UTC midnight. Signal and report tools arrive in later minor versions when paid tiers launch.

Configure your MCP host

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "the13f": {      "command": "uvx",      "args": ["the13f-mcp"],      "env": {        "THE13F_API_KEY": "pf13f_..."      }    }  }}

Restart Claude Desktop. The13f tools should appear in the MCP tool list.

Cursor

Settings → MCP → Add Server. Paste the same JSON block into the "Custom" field.

VS Code with Continue

Settings → experimental.modelContextProtocolServers → add a stdio transport running uvx the13f-mcp with THE13F_API_KEY in env. The key reveal page at https://the13f.com/developers/signup-success shows a copy-paste-ready snippet with the key already filled in.

Available tools — v0.1.0 (Read tier, free)

ToolWhat it does
list_quartersAll quarters with holdings data + the latest quarter
search_managersAutocomplete 13F filers by name
get_manager_holdingsFull positions for a CIK + quarter
get_manager_holdings_bulkUp to 25 (cik, quarter) pairs in one call
list_all_managersUniverse of 8,600+ filers with per-manager summary stats
find_similar_managersMatch a portfolio against the universe
get_consensus_portfolioMost-widely-held securities per quarter
get_market_regimeInstitutional regime snapshot (IIOI composite, state, transition)
get_sector_flowsPer-sector capital flows and risk posture

Planned tools — later versions

VersionToolsRequires
v0.2.0get_security_signals, get_security_signals_bulk, get_portfolio_signalsStandard tier subscription
v0.3.0generate_manager_report, generate_security_report, generate_sector_report, check_report_status, wait_and_download_reportStandard tier + stored card; two-step confirm

The free-tier Read tools are enough to explore the data and build prompts against it. Signal and report tools deliberately wait on the paid-tier billing plumbing.

Example prompts

"Pull Berkshire Hathaway's top 20 positions as of Q4 2025 and summarize what grew the most quarter-over-quarter."

"I own AAPL, MSFT, and NVDA equal-weight. Find the 5 institutional managers whose portfolios most closely resemble mine."

"What sector did 13F filers most aggressively reduce last quarter? Show me the top three managers leading the reduction."

The MCP host's LLM picks the right tool, fills in arguments, surfaces the disclaimer, and returns the result as structured JSON.

Environment variables

VarDefaultWhat it controls
THE13F_API_KEY(none)Your pf13f_ key. Without it, tools return a structured "free signup required" response with a link to the signup page.
THE13F_API_BASE_URLhttps://api.the13f.comOverride for local development against a running copy of the13f's gui_server.
THE13F_MCP_TIMEOUT30Per-request HTTP timeout in seconds. Minimum 5.

Source

Public source: https://github.com/pickelfintech/the13f-mcp. This is the snapshot that PyPI, Glama.ai, and the MCP community list point at. The GitHub repo is a push-mirror of the GitLab one at gitlab.com/pickel-fintech/the13f-mcp; GitLab remains the primary and also carries the release CI. Bug reports and PRs are accepted on either side.

License

MIT — see LICENSE. The hosted api.the13f.com API that this client calls is a separate service. A free API key (100 calls/day) is required; sign up at https://the13f.com/developers/.

Support

[email protected] — quote the request_id field returned by any failing tool call for fastest triage.

License

MIT. See LICENSE. The MCP server source is MIT-licensed; use of the the13f API itself is governed by the Terms of Service at https://the13f.com/terms.html.

來源:README.md,提交 dc3821b

工具

14

list_quarters

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return all quarter codes with available data. Returns: {"quarters": ["q1y2013", ..., "q4y2025"], "latest": "q4y2025"} Use the latest quarter by default unless the user specifies one.

無需輸入參數。

search_managers

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Find institutional 13F filers by name (case-insensitive substring, min 2 chars). Args: query: substring of the manager's name (e.g. "renaissance", "berkshire"). limit: max results to return, 1-50, default 10. Returns: { "query": "...", "results": [ {"cik": "0001037389", "name": "Renaissance Technologies Llc", "latest_aum": 64461244358, "available_quarters": [...]}, ... ], "disclaimer": "Research data only..." }

輸入參數limitquery必填

get_manager_holdings

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return all positions held by a 13F filer in a given quarter. Args: cik: zero-padded 10-digit SEC CIK (e.g. "0001037389"). quarter: quarter code like "q4y2025". Returns: { "cik": "...", "quarter": "...", "n_positions": 3185, "total_value_thousands": 64461244358.0, "holdings": [{"CUSIP": ..., "TICKER": ..., "VALUE": ..., ...}, ...], "disclaimer": "..." }

輸入參數cik必填quarter必填

list_all_managers

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return the full universe of 13F filers with per-manager AUM. Args: active_only: if true (default), only managers present in the latest quarter. Returns: { "count": 8625, "active_only": true, "managers": [{"cik": "...", "name": "...", "latest_aum": ..., ...}, ...], "disclaimer": "..." } NOTE: response can be ~6 MB JSON; consider filtering client-side.

輸入參數active_only

find_similar_managers

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Match a portfolio against the 13F universe and return the closest (or deliberately-different) managers. Args: holdings: list of {"ticker": "AAPL", "weight": 0.05}; weight optional (equal weights default). quarter: defaults to latest quarter if None. top_n: 1-50, default 10. direction: "similar" (closest matches) or "unlike" (most different). Returns: {"quarter": "...", "matches": [{"cik": ..., "similarity_score": ..., ...}, ...], "disclaimer": "..."}

輸入參數top_nquarterholdings必填direction

get_consensus_portfolio

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return the top-N consensus portfolio - securities held by the most institutional managers. Args: quarter: quarter code (e.g. "q4y2025"). Returns: {"quarter": "...", "count": 50, "securities": [{"ticker": ..., "weight_pct": ..., ...}, ...]}

輸入參數quarter必填

get_market_regime

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return the institutional regime snapshot for a quarter (IIOI composite, regime state, transition). Args: quarter: quarter code. Returns: {"quarter": "...", "iioi_composite": 62.4, "regime_state": "High Optimism", ...}

輸入參數quarter必填

get_sector_flows

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return per-sector institutional capital flow intelligence for a quarter. Args: quarter: quarter code. sector: optional GICS sector to filter (e.g. "Information Technology"). Returns: {"quarter": "...", "sectors": [{"gics_sector": ..., "net_capital_flow_thousands": ..., "risk_posture": ..., ...}, ...]}

輸入參數sectorquarter必填

get_manager_holdings_bulk

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Look up holdings for many (cik, quarter) pairs in one call (Tier 3). Faster than calling get_manager_holdings repeatedly: groups by quarter so each parquet file is read at most once. Each pair counts once against your key's daily limit, as a get_manager_holdings call would (up to 25 pairs per call). Args: pairs: list of {"cik": "...", "quarter": "..."} dicts. Min 1, max 25. Returns: { "results": [ {"cik": "0001067983", "quarter": "q4y2025", "status": "ok", "n_positions": 42, "total_value_thousands": ..., "holdings": [...]}, {"cik": "0001234567", "quarter": "q4y2025", "status": "not_found", "error": "..."}, ... ], "n_requested": 5, "n_ok": 4, "n_failed": 1 } Per-pair errors do NOT raise; check status field on each result. Use this when you need holdings for multiple managers/quarters at once (e.g. comparing a portfolio across periods or surveying peer institutions).

輸入參數pairs必填

get_manager_changes

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return what a 13F filer bought, sold, added, and trimmed versus the prior quarter. The single most-requested 13F view, without hand-diffing two holdings calls. Positions are grouped into new buys, exits, increases, and decreases, each with dollar and share deltas. The first quarter in the dataset has no prior quarter to compare, so the change lists come back empty with previous_quarter=null. Args: cik: zero-padded 10-digit SEC CIK (e.g. "0001037389"). quarter: quarter code like "q4y2025". Defaults to the latest quarter. Returns: { "manager": {"cik": ..., "name": ...}, "quarter": "...", "previous_quarter": "..." | null, "summary": {"n_new", "n_exited", "n_increased", "n_decreased", "n_unchanged", "new_positions_value_usd", "exited_positions_value_usd", "increased_value_change_usd", "decreased_value_change_usd", "net_value_change_usd", ...}, "new_positions": [{"ticker", "cusip", "name", "value_usd", "shares", "weight"}, ...], "exited_positions": [{"ticker", "cusip", "name", "previous_value_usd", ...}, ...], "increased_positions": [{..., "value_change_usd", "shares_change", "value_percentage_change"}, ...], "decreased_positions": [...], "disclaimer": "..." }

輸入參數cik必填quarter

get_portfolio_changes

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return a filer's new/exit/add/trim moves across several recent quarters in one call. The multi-quarter view of get_manager_changes: instead of a single quarter it walks the most recent `quarters` filings and returns each quarter's grouped changes, newest first. Quarters the manager did not file are skipped. Use it to see how a book evolved over time without looping get_manager_changes. Args: cik: zero-padded 10-digit SEC CIK (e.g. "0001067983"). quarters: how many recent quarters to include (1-60, default 12). quarter: most recent quarter code like "q4y2025". Defaults to the latest. Returns: { "manager": {"cik": ..., "name": ...}, "anchor_quarter": "...", "quarters_requested": ..., "quarters_returned": ..., "timeline": [{"quarter", "previous_quarter", "summary", "new_positions", "exited_positions", "increased_positions", "decreased_positions"}, ...], "disclaimer": "..." }

輸入參數cik必填quarterquarters

get_security_ownership

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return which 13F filers hold a security, and who newly bought or exited it. The security-centric complement to get_manager_holdings: instead of "what does this manager hold", this answers "who owns this stock". Holders are ranked by held value; aggregate held value, holder count, and the quarter-over-quarter change in holder count are always reported. Args: ticker: ticker symbol (with or without a .US suffix, e.g. "NVDA" or "NVDA.US"); an 8/9-char CUSIP also resolves as a fallback. quarter: quarter code. Defaults to the latest quarter. limit: max holders / new-buyers / exited-holders to list, 1-250, default 50 (full counts are always reported regardless). Returns: { "security": {"ticker", "name", "sector", "cusips": [...], "matched_by"}, "quarter": "...", "previous_quarter": "..." | null, "aggregate": {"holder_count", "previous_holder_count", "holder_count_change", "total_value_usd", "total_shares", "new_buyer_count", "exited_holder_count"}, "holders": [{"cik", "manager_name", "value_usd", "shares", "weight_in_portfolio_pct", "is_new_holder", "value_change_usd"}, ...], "new_buyers": [...], "exited_holders": [...], "holders_truncated": bool, "disclaimer": "..." }

輸入參數limitticker必填quarter

get_manager_profile

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Return a one-call manager overview: AUM and position-count trend, plus a snapshot. A trend view that would otherwise need many holdings calls. Combines the per-quarter AUM and position-count history (newest first) with a top-10 holdings snapshot of the manager's latest filed quarter and basic metadata. Args: cik: zero-padded 10-digit SEC CIK. history_quarters: how many recent quarters of history to include, 1-60, default 12 (3 years). Returns: { "manager": {"cik", "name", "state", "manager_style", "sec_file_number", "entity_type"}, "summary": {"latest_quarter", "first_quarter", "n_quarters_filed", "latest_aum_usd", "latest_n_positions", "median_n_positions"}, "history": [{"quarter", "period_end_date", "aum_usd", "n_positions"}, ...], "top_holdings": [{"ticker", "cusip", "weight", "value_usd", "shares"}, ...], "disclaimer": "..." }

輸入參數cik必填history_quarters

compare_managers

Research data only. Returns disclosed institutional positions; do not infer manager intent or future direction. Compare two managers head-to-head: shared positions, weight gaps, and what is unique to each. Instant manager-vs-manager comparison for a quarter. Returns the positions both hold (with each side's portfolio weight and the gap between them), the positions unique to each, and overlap metrics (shared count, weight overlap). Args: cik_a: first manager's zero-padded 10-digit SEC CIK. cik_b: second manager's CIK. quarter: quarter code. Defaults to the latest quarter. limit: max shared / unique positions to list per side, 1-250, default 50 (full counts are always reported regardless). Returns: { "quarter": "...", "manager_a": {"cik", "name", "n_positions", "total_value_usd"}, "manager_b": {...}, "overlap": {"n_shared", "n_unique_to_a", "n_unique_to_b", "weight_overlap_pct", "name_overlap_pct"}, "shared_positions": [{"ticker", "cusip", "name", "weight_a_pct", "weight_b_pct", "weight_gap_pp", "value_a_usd", "value_b_usd"}, ...], "unique_to_a": [{"ticker", "cusip", "name", "weight_pct", "value_usd"}, ...], "unique_to_b": [...], "disclaimer": "..." }

輸入參數cik_a必填cik_b必填limitquarter

版本歷史

4
  1. v0.5.0最新Oct 22, 2026
  2. v0.4.1Oct 19, 2026
  3. v0.4.0Oct 19, 2026
  4. v0.1.3Sep 16, 2026

評分

已滿足適用檢查項的 80%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。