Skip to main content
Glama
theodor90

form4api-mcp

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 — 27 tools + 6 ready-made research prompts

npm version Available on mcp.so

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 — 23K+ 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). No competitor at any price point joins both sides in one query.


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):

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

Restart the client. The tools appear automatically.

Claude Code (CLI):

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):

{
  "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:

{
  "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):

{
  "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:

[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:

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

FORM4API_KEY=YOUR_API_KEY npx form4api-mcp

Related MCP server: alphai-news

Available tools (25)

Form 4 insider trading

Tool

Description

Plan

get_transactions

Search insider transactions — filter by ticker, insider, date range, transaction codes or whole categories (exclude_category=derivatives), 10b5-1 plan trades, or use significant=true for real discretionary buys/sells only. Pro adds trade-size screening (min_value, min_shares)

Free

get_recent_filings

Most recent Form 4 filings, optionally filtered by ticker

Free

get_filing

Single filing by accession number

Free

get_insider_profile

Insider profile — name, title, director/officer/10pct owner flags

Free

get_insider_transactions

All transactions for a specific insider (by CIK)

Free

get_company_overview

Company profile — name, CIK, SIC sector, state, website, filing counts

Free

get_company_insiders

All insiders who have filed Form 4s for a company

Free

list_companies

List companies, sorted by name or filing count

Free

get_insider_career_summary

Aggregate career rollup: total bought/sold, top companies, 10b5-1 split, return averages

Pro

get_insider_scorecard

Buy track-record scorecard for an insider (CIK) — hit rate and avg/median return on discretionary open-market buys; null when fewer than 5 matured samples

Pro

get_insider_leaderboard

Top insiders ranked by hit_rate or avg_return; filter by horizon (3m/6m), min_trades, and limit

Business

Signals + sentiment

Tool

Description

Plan

get_signals

Cluster buy/sell signals — multiple insiders at the same company in the same direction. Excludes 10b5-1 trades automatically

Business

get_sentiment

MSPR-style monthly sentiment score per ticker (-100 to +100). 10b5-1 excluded so the score reflects real insider conviction

Business

Form 144 + institutional

Tool

Description

Plan

get_form144

Notice-of-proposed-sale filings — early signal ~2 days before Form 4 sale lands

Business

get_holdings

Institutional positions from Form 13F-HR (filter by ticker, CUSIP, manager, quarter, min value)

Business

get_managers

Institutional manager index with latest AUM

Business

explain_signal

Explain why a signal fired — the insiders and trades counted, exclusions, and criteria

Business

get_data_quality

Public data-quality, freshness and coverage metrics

Free

Utility

Tool

Description

Plan

check_usage

Your API key usage stats and current plan

Free

get_key_usage

Same data, OpenAPI-shape response

Free

get_key_activity

Recent API requests for this key

Free

get_usage_history

Daily request counts for the last N days

Free

search_insiders

Substring search on insider names

Free

list_webhooks

List your webhook subscriptions

Free

get_webhook_events

Replay webhook delivery events since a timestamp

Free

verify_setup

Verify the MCP is configured correctly — confirms API key is valid and server is reachable

Free


Prompts (6)

Beyond the 27 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.

Prompt

Args

What it does

insider_monitor

ticker

Recent 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_scan

days (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_warning

ticker (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_check

insider (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_overlap

ticker

Combines 13F-HR institutional holders with recent insider transactions to spot where smart money and insiders agree or diverge

post_selloff_buys

min_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-mcp

Scraping-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

✅ 23K+ 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

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 SDKpip install form4api (PyPI)

  • JS / TypeScript SDKnpm 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

Tool

Free

Pro

Business

get_transactions, get_recent_filings, get_filing

get_insider_profile, get_insider_transactions

get_company_overview, get_company_insiders

get_insider_career_summary, get_insider_scorecard

get_insider_leaderboard, get_signals, get_sentiment

get_form144, get_holdings, get_managers

Requests/day

500

50,000

250,000

When a tool requires a higher plan, the MCP returns a structured upgrade_required payload (with required_plan and upgrade_url) so the LLM can surface the path to you directly. No mid-conversation 402 confusion.

Upgrade at form4api.com/dashboard/billing.


Data coverage

  • 1M+ Form 4 transactions from SEC EDGAR

  • 475K+ filings across all reporting companies

  • 23K+ Form 144 notice-of-proposed-sale filings (Business+)

  • 16M+ Form 13F-HR holdings across 44K+ filings, $72T+ AUM (Business+)

  • 2.5+ years of history (since 2023-10)

  • 10b5-1 plan flag on every transaction

  • Amendment-aware — Form 4/A reconciled

  • 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:

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.


  • 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

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theodor90/form4api-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server