Form4API — SEC Insider Trading

io.github.theodor90由 GitHub 帳號 theodor90 發布v1.17.0更新於 Nov 4, 2026

Real-time SEC Form 4, Form 144, 13F-HR & congressional STOCK Act insider data. 39 tools + 6 prompts.

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

概覽

AI 產生的概覽

本機 MCP 伺服器,為助理提供 39 個工具與 6 個提示詞,用來查詢 SEC 內部人交易資料:Form 4 交易、Form 144、13F-HR 持股及國會交易。

可以做什麼
  • 將公司名稱、股票代號片段與內部人姓名解析為代號或 CIK,並瀏覽公司與內部人目錄
  • 搜尋並分頁瀏覽 Form 4 內部人交易與申報,可依交易代碼、10b5-1 計畫、金額、角色與日期範圍篩選
  • 取得公司概況、內部人名單、同業公司及個別內部人的交易紀錄,以及職涯彙總與買進評分卡
  • 讀取群聚買賣訊號、每月情緒分數、Form 144 擬售通知、13F-HR 機構持股與 13D/13G 持股變動
  • 列出國會 STOCK Act 交易與議員彙總,並找出內部人與國會買進同時出現的股票
  • 查看 API 金鑰用量、Webhook 投遞健康狀態、資料品質與資料擷取狀態,並執行現成的研究提示詞
適用情境
適合在研究過程中需要 SEC 內部人交易、機構持股或國會交易事實,而不想手動查詢 EDGAR 或爬取網站的情況。適合希望助理在一輪對話內回答內部人買進、計畫性賣出或 13F 持股問題的分析師與開發者。
執行需求
透過 stdio 在本機執行,通常以 npx 啟動,因此需要 Node.js。需在 FORM4API_KEY 環境變數中提供 Form4API 金鑰,免費金鑰每天 500 次請求。需連網存取託管的 Form4API 服務。少數工具不需金鑰即可使用。
安裝前請注意
FORM4API_KEY 金鑰寫在用戶端設定中,應避免放入共用檔案。查詢內容與識別碼會傳送到第三方 Form4API 服務。許多工具與參數受方案限制,可能回傳升級提示而非資料。國會資料僅涵蓋美國眾議院,揭露金額為區間且有申報延遲。Webhook 相關工具為唯讀。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

form4api-mcp

Production-grade SEC Form 4 insider trading data for any MCP-compatible AI assistant — amendment-aware, 10b5-1 clean, with Form 144 + institutional 13F-HR overlay, plus congressional STOCK Act trades and insider/Congress convergence — 39 tools + 6 ready-made research prompts

[npm version] [Available on mcp.so] [form4api-mcp MCP server]

An MCP server that exposes the hosted Form4API REST API to Claude Desktop, Cursor, Windsurf, VS Code, Codex CLI, and any other MCP-compatible client. Configured once, your LLM can answer questions about insider trading, institutional positioning, and intent-to-sell filings directly during research sessions.

Four data-quality claims no scraping-based alternative can make:

  • 🛡 Amendment-aware — Form 4/A amendments are reconciled automatically. No double-counting when an insider corrects a filing.
  • 🎯 10b5-1 clean — every transaction flagged as pre-scheduled (10b5-1 plan) or discretionary. Cluster signals exclude planned trades by construction.
  • 📜 Form 144 intent-to-sell — 125K+ Form 144 filings indexed. Catch insider sales ~2 days before they hit Form 4.
  • 🏛 Institutional × insider join — every transaction carries the current 13F-HR ownership context (top-3 holders, AUM trend) in the same response: no second call, no client-side join. Among the self-serve SEC data APIs we've surveyed, none return both sides in one query — sec-api.io and Kaleidoscope both ship 13F and insider data as separate endpoints.

Quick install

1. Get a free API key

Go to www.form4api.com → Sign in → Dashboard. Free plan includes 500 requests/day, no credit card required.

2. Add to your MCP client

Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "form4api": {      "command": "npx",      "args": ["-y", "form4api-mcp"],      "env": {        "FORM4API_KEY": "YOUR_API_KEY"      }    }  }}

Restart the client. The tools appear automatically.

Claude Code (CLI):

sh
claude mcp add form4api -- npx -y form4api-mcp

…then set FORM4API_KEY in your shell or in ~/.claude/mcp.json.

Cursor — edit ~/.cursor/mcp.json (user-level) or .cursor/mcp.json (workspace-level):

json
{  "mcpServers": {    "form4api": {      "command": "npx",      "args": ["-y", "form4api-mcp"],      "env": {        "FORM4API_KEY": "YOUR_API_KEY"      }    }  }}

Restart Cursor. The tools appear automatically.

Windsurf — edit ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "form4api": {      "command": "npx",      "args": ["-y", "form4api-mcp"],      "env": {        "FORM4API_KEY": "YOUR_API_KEY"      }    }  }}

Restart Windsurf. The tools appear automatically.

VS Code — edit .vscode/mcp.json (workspace-level). Note: VS Code uses the servers key (not mcpServers):

json
{  "servers": {    "form4api": {      "command": "npx",      "args": ["-y", "form4api-mcp"],      "env": {        "FORM4API_KEY": "YOUR_API_KEY"      }    }  }}

Restart VS Code. The tools appear automatically.

Codex CLI — config is TOML at ~/.codex/config.toml:

toml
[mcp_servers.form4api]command = "npx"args = ["-y", "form4api-mcp"]env = { FORM4API_KEY = "YOUR_API_KEY" }

Verify it works

Ask your LLM to run the verify_setup tool — it confirms your API key is valid and the MCP server is reachable, or returns the exact fix steps.

Example: "Run the verify_setup tool to confirm the MCP is configured correctly."

Try before you commit a key

get_public_stats is a keyless tool — it works with no FORM4API_KEY set. Try it first to preview live data coverage before signing up:

bash
FORM4API_KEY="" npx form4api-mcp

Once you like what you see, sign up for a free key at www.form4api.com → set FORM4API_KEY → all tools unlock.

3. Or run directly

bash
FORM4API_KEY=YOUR_API_KEY npx form4api-mcp

Available tools (39)

Search

ToolDescriptionPlan
searchResolve a company name, ticker fragment, or a person's name to a ticker or CIK — the usual first call when you don't already have an identifier. Returns separately-ranked companies and insiders listsFree

Form 4 insider trading

ToolDescriptionPlan
research_companyBundled insider-research context for one ticker in a single call — company profile, recent transactions, cluster signals, sentiment, and a computed buy/sell direction summary. Replaces 4 separate calls and degrades gracefully when a section needs a higher planFree (signals/sentiment sections need Business)
get_transactionsSearch insider transactions — filter by ticker, insider, date range, transaction codes or whole categories (exclude_category=derivatives), 10b5-1 plan trades, a dollar floor (min_value), the insider's role (role: officer, director or ten_percent_owner), ordering by trade size (sort=value; default is newest first), the 13F ownership trend (inst_ownership_trend), or use significant=true for real discretionary buys/sells only. Pro adds the remaining trade-size screens (max_value, min_shares, max_shares) and post-trade-return screening (min_return_1d…max_return_6m, has_returns; returns are fractions, 0.05 = +5%). Paging depth is plan-limited — see PlansFree
get_recent_filingsMost recent Form 4 filings, optionally filtered by tickerFree
list_filingsForm 4 filings as a paginated list, newest filed first — filter by ticker, cik, or a filed-date window. Use this to page through filings; get_recent_filings is the unfiltered head of the same feedFree
get_filingSingle filing by accession numberFree
get_insider_profileInsider profile — name, title, director/officer/10pct owner flagsFree
get_insider_transactionsAll transactions for a specific insider (by CIK)Free
get_company_overviewCompany profile — name, CIK, SIC sector, state, website, filing countsFree
get_company_insidersAll insiders who have filed Form 4s for a companyFree
get_company_peersSimilar companies in the same SIC industry (4-digit first, topped up from the 2-digit prefix), ranked by Form 4 filings in the last 12 monthsFree
list_companiesList companies, sorted by name or filing countFree
get_insider_directoryBrowse insiders alphabetically by surname — an A-Z rail with a count per letter, plus one page of insiders under the requested letterFree
get_insider_career_summaryAggregate career rollup: total bought/sold, top companies, 10b5-1 split, return averagesPro
get_insider_scorecardBuy track-record scorecard for an insider (CIK) — hit rate and avg/median return on discretionary open-market buys; null when fewer than 5 matured samplesPro
get_insider_leaderboardTop insiders ranked by hit_rate or avg_return; filter by horizon (3m/6m), min_trades, and limitBusiness

Signals + sentiment

ToolDescriptionPlan
get_signalsCluster buy/sell signals — multiple insiders at the same company in the same direction. Excludes 10b5-1 trades automaticallyBusiness
get_sentimentMSPR-style monthly sentiment score per ticker (-100 to +100). 10b5-1 excluded so the score reflects real insider convictionBusiness

Form 144 + institutional

ToolDescriptionPlan
get_form144Notice-of-proposed-sale filings — early signal ~2 days before Form 4 sale landsBusiness
get_holdingsInstitutional positions from Form 13F-HR (filter by ticker, CUSIP, manager, quarter, min value)Business
get_managersInstitutional manager index with latest AUMBusiness
explain_signalExplain why a signal fired — the insiders and trades counted, exclusions, and criteriaBusiness
get_data_qualityPublic data-quality, freshness and coverage metricsFree
list_schedule13_dgSchedule 13D/13G >5% beneficial-ownership crossings for a company — filer, ownership percent, event date, form typeBusiness

Congress + convergence

ToolDescriptionPlan
list_congress_tradesCongressional STOCK Act trades (periodic transaction reports) — filter by ticker, politician, party, chamber, state, transaction type, min amount, or date range. Coverage is U.S. House only — Senate eFD blocks datacenter traffic, so chamber=Senate matches nothing and the response carries X-Coverage-Note: chamber-not-covered. Every row carries amountLow/amountHigh (disclosed ranges, never a fabricated midpoint) and disclosureLagDays — up to 45 days under the STOCK Act, so "real-time" here means minutes-after-disclosure, not minutes-after-tradeFree (30-day disclosure window; Starter 366 days; Pro+ unlimited history)
list_congress_politiciansRanked rollup of politicians by congressional trade activity — total/buy/sell counts, most recent disclosurePro
get_congress_politicianOne politician's full profile by bioguide ID — totals, top traded tickers, most recent tradesPro
get_congress_ticker_rollupWhich politicians traded a given ticker, with net buy/sell countsPro
get_convergence_signalsTickers where an insider cluster-buy and a congressional purchase happened within a trailing window of each other. strength is documented arithmetic (distinct congressional purchasers × the signal's insider count) — never a black-box or predictive score. No performance/alpha claims are computed or impliedPro

Utility

ToolDescriptionPlan
check_usageYour API key usage stats and current planFree
get_key_activityRecent API requests for this keyFree
get_usage_historyDaily request counts for the last N daysFree
search_insidersSubstring search on insider namesFree
list_webhooksList your webhook subscriptions, with delivery health per webhook (lastAttemptAt, lastSuccessAt, lastStatusCode, lastErrorClass) and auto-disable state. Read-onlyFree
get_webhook_eventsReplay webhook delivery events since a timestamp. Read-onlyFree
verify_setupVerify the MCP is configured correctly — confirms API key is valid and server is reachableFree
get_public_statsPublic corpus-wide totals (filings, transactions, companies, 13F-HR AUM, ingestion latency) — no API key requiredFree (keyless)
get_status_historyTrailing 90-day daily uptime history for the public status pageFree (keyless)
health_ingestionLive ingestion-health check — Form 4 freshness, parse-queue backlog, price-feed stalenessFree (keyless)

Prompts (6)

Beyond the 39 tools, this MCP ships 6 prompts — ready-made research recipes that a client can list (prompts/list) and load (prompts/get) so you don't have to hand-assemble the right tool sequence yourself. Each one tells the LLM exactly which SEC Form 4 / Form 144 / 13F-HR tools to call, in what order, and how to read plan-gated results.

PromptArgsWhat it does
insider_monitortickerRecent SEC Form 4 insider activity for a ticker — transactions (10b5-1 flagged), cluster signals, sentiment — summarized as buy/sell conviction with post-trade-return context
cluster_buy_scandays (default 7)Market-wide scan of recent cluster-buy signals, 10b5-1 excluded, ranked by conviction (insider count + $ value), each with a sentiment score
form144_early_warningticker (optional)Pending Form 144 notice-of-proposed-sale filings cross-referenced against recent Form 4 sells — flags discretionary (non-10b5-1) notices as the highest-signal early warnings, ~2 days ahead of the sale
exec_conviction_checkinsider (name or CIK)An insider's career track record — total bought/sold, historical post-trade returns on discretionary buys, and whether their buying has historically beaten their scheduled 10b5-1 selling
institutional_insider_overlaptickerCombines 13F-HR institutional holders with recent insider transactions to spot where smart money and insiders agree or diverge
post_selloff_buysmin_return (default 0.05)Screens insider buys with post-trade-return filters to surface historically-successful dip-buying patterns

These map to the recipe workflows scraping-based Form 4 MCPs don't offer — each one leans on data this MCP alone exposes (10b5-1 flags, Form 144, 13F-HR join, per-insider return scoring). Plan requirements are honored honestly: prompts that touch Business-plan tools (get_signals, get_sentiment, get_form144, get_holdings, get_managers) or Pro-plan tools (get_insider_career_summary, get_insider_scorecard) instruct the LLM to surface the structured upgrade_required response rather than silently failing.

In Claude Desktop, prompts surface as a / slash-command picker; in Claude Code or other MCP clients, ask the assistant to "use the insider_monitor prompt for NVDA" (or similar) and it will fetch and follow the recipe.


Example prompts

Configured? Ask your LLM:

Quality-led (these require our amendment-aware, 10b5-1 clean, joined dataset):

  • "Show me cluster buy signals from this week — discretionary only, no planned trades"
  • "Which companies have insiders buying while institutional ownership is increasing this quarter?"
  • "Are there any Form 144 filings at NVDA suggesting upcoming sales?"
  • "What's the monthly insider sentiment for TSLA over the last 6 months, with 10b5-1 plans excluded?"
  • "Berkshire Hathaway's top 13F-HR holdings — what did they add or trim this quarter?"

Standard insider research:

  • "What insider trades happened at NVDA in the last 30 days, excluding 10b5-1 plans?"
  • "What is Tim Cook's career insider-trading summary?"
  • "Show me all open-market purchases over $1M at Tesla in 2026"
  • "What has the CFO of Microsoft been doing with their shares this year?"

Why this MCP vs scraping-based alternatives

Some MCPs in this space scrape free public sites (e.g. openinsider.com) for Form 4 data. That's fine for a quick prototype but the data layer they give your LLM has structural gaps:

form4api-mcpScraping-based MCPs
Form 4/A amendment handling✅ reconciled automatically❌ double-counts
10b5-1 plan flag✅ exposed on every transaction❌ planned + discretionary mixed
Form 144 intent-to-sell✅ 125K+ filings❌ not exposed
Institutional × insider join✅ top-3 holders + AUM trend per transaction❌ insider only
Sentiment (10b5-1 excluded)✅ MSPR-style score❌ planned trades pollute score
Source resilience✅ hosted API contract❌ breaks when source HTML changes
Webhooks / production delivery✅ HMAC + retry + DLQ❌ MCP-only, no fallback
SDKs✅ Python + JS❌ MCP-only
Commercial support✅❌

If your LLM session is the start of a real research workflow that eventually wants production delivery, picking the MCP that has a graduation path matters.


Beyond MCP — when you need more

Webhook tools are read-only. The MCP can list your webhooks (list_webhooks) and replay delivery events (get_webhook_events), nothing more. Creating, deleting, enabling and testing webhooks, and setting a custom auth header, are done through the REST API or the dashboard. This is deliberate: the MCP exposes no write tools for webhooks.

The MCP is the easiest entry point. When your workflow grows past LLM-mediated research, the rest of the Form4API platform is right behind it:

  • Webhooks — HMAC-signed, exponential backoff, dead-letter queue, auto-disable on persistent failure. For production pipelines, not just LLM chats.
  • Python SDK — pip install form4api (PyPI)
  • JS / TypeScript SDK — npm install form4api (npm)
  • Dashboard — usage, billing self-serve, key rotation, webhook health, billing history.

The MCP wraps the same backend as all of the above — every fact your LLM cites can be re-fetched programmatically through any of these channels with the same key.


Plans

25 of the 39 tools work on the free plan, and every tool that is free today stays free. New premium capability gets tiered as it ships; nothing that already works on your key is taken away later.

ToolFreeProBusiness
search✓✓✓
get_transactions, get_recent_filings, get_filing✓✓✓
get_insider_profile, get_insider_transactions✓✓✓
get_company_overview, get_company_insiders, get_company_peers✓✓✓
get_insider_career_summary, get_insider_scorecard—✓✓
get_insider_leaderboard, get_signals, get_sentiment——✓
get_form144, get_holdings, get_managers——✓
explain_signal, list_schedule13_dg——✓
list_congress_trades✓ (30-day disclosure window)✓ (unlimited history)✓ (unlimited history)
list_congress_politicians, get_congress_politician, get_congress_ticker_rollup, get_convergence_signals—✓✓
Requests/day50050,000250,000
Requests/minute60200500
get_transactions paging depth20 pagesunlimitedunlimited

Starter sits between Free and Pro: 7,500 requests/day and 120/minute, 100 pages of get_transactions paging depth and a 366-day congressional history window. Tools marked Pro or Business in the table still need that plan. Enterprise is unlimited requests/day at 2,000/minute.

For a bulk historical pull, use the REST /v1/transactions/export endpoint (Business) rather than paging — it streams the whole filtered set as CSV in one request.

What your agent sees at a paywall

A gated call never surfaces a bare HTTP error. The MCP returns a structured upgrade_required payload so the model can explain the situation and the fix in one turn:

json
{  "error": "upgrade_required",  "required_plan": "business",  "current_plan": "Free",  "message": "This endpoint requires the Business plan or higher. Your current plan is Free.",  "unlocks": "The Business plan includes cluster-buy signals and sentiment scores, 13F institutional holdings and managers, Form 144 notices, bulk CSV export, and 250,000 requests/day."}

message is the API's own explanation, kept verbatim — it names the specific limit or parameter that stopped the call, which is usually what the model needs to suggest a working alternative. The same shape is returned when a Pro-only parameter is used on an otherwise free tool, so the model can simply retry without that filter.

upgrade_url is included only when the API supplies one; it is omitted otherwise.


Data coverage

  • 1.38M+ Form 4 transactions from SEC EDGAR
  • 620K+ filings across all reporting companies
  • 125K+ Form 144 notice-of-proposed-sale filings (Business+)
  • 45M+ Form 13F-HR holdings across 118K+ filings, $80T+ AUM in the latest complete quarter (Business+)
  • 3.3+ years of history (since 2023-04)
  • 10b5-1 plan flag on every transaction
  • Amendment-aware — Form 4/A reconciled
  • Congressional STOCK Act trades — U.S. House Clerk periodic transaction reports only (Senate eFD is not ingested). list_congress_trades is available on every plan with a history window by plan (Free 30 days, Starter 366 days, Pro+ unlimited); politician rollups and convergence need Pro+. Digital filings, amounts always shown as disclosed ranges (amountLow/amountHigh), never a fabricated midpoint, plus disclosureLagDays on every trade (up to 45 days under the STOCK Act)
  • Real-time ingestion — new filings within minutes of SEC publication

Install as a Claude Desktop Extension (DXT)

A manifest.json is included at the repo root for one-click install via the Desktop Extensions (DXT) format. Once Claude Desktop supports .dxt files natively, pack and install with:

bash
npx @anthropic-ai/dxt pack# Produces form4api-mcp.dxt — open it in Claude Desktop to install

Until then, use the standard claude_desktop_config.json method described in Quick install above.


How tools stay in sync with the backend

This MCP is split between two layers:

  • Hand-written tools in src/tools/*.ts (transactions, signals, sentiment, form144, holdings, …) — these carry the LLM-discriminator descriptions (amendment-aware, 10b5-1 clean, etc.) that make this MCP pick correctly over alternatives.
  • Auto-generated tools in src/tools/_generated.ts — produced from https://api.form4api.com/openapi/v1.json by npm run codegen. Every new backend endpoint that lands in the OpenAPI spec flows in here automatically. CI runs npm run codegen:check on every PR and fails the build if the committed file drifts from what the live spec would produce, so the MCP is never silently behind the backend.

To add a new generated tool: ship the endpoint on the backend, regenerate (npm run codegen), commit src/tools/_generated.ts, publish. No tool-wrapper code needed.

The 6 recipe prompts live in src/prompts/recipes.ts — also hand-written, not generated. They add no new backend surface area; each one is a client-side template that tells the LLM which existing tools to call and in what order.


Links

  • Form4API — API homepage
  • Documentation — Full REST API reference
  • Dashboard — Manage your API key, view usage, configure webhooks
  • Status — live uptime, database, and ingestion-queue health
  • npm — npm package
  • mcp.so — MCP server directory listing

來源:README.md,提交 536eeac

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

7
  1. v1.17.0最新Oct 14, 2026
  2. v1.16.0Oct 13, 2026
  3. v1.15.3Oct 12, 2026
  4. v1.15.2Oct 5, 2026
  5. v1.15.1Oct 2, 2026
  6. v1.15.0Sep 24, 2026
  7. v1.9.3Sep 16, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分