SEC EDGAR MCP Server — Insider Trades, 8-K & 13F avatar

SEC EDGAR MCP Server — Insider Trades, 8-K & 13F

Pricing

from $5.00 / 1,000 sec edgar queries

Go to Apify Store
SEC EDGAR MCP Server — Insider Trades, 8-K & 13F

SEC EDGAR MCP Server — Insider Trades, 8-K & 13F

Insider trading signals, 8-K severity alerts & 13F holdings from SEC EDGAR for AI agents. No API key required.

Pricing

from $5.00 / 1,000 sec edgar queries

Rating

0.0

(0)

Developer

Toolstem

Toolstem

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

14 days ago

Last modified

Share

SEC EDGAR MCP Server — Insider Signals, 13D Activist Risk & Filing Intelligence

SEC EDGAR intelligence for AI agents. Five composite tools that pre-compute high-value signals directly from SEC EDGAR's public submissions API, returned as structured JSON.

No SEC API key required. Data is sourced directly from SEC EDGAR's public submissions API. A built-in sliding-window rate limiter keeps traffic under SEC's 10 rps fair-access ceiling automatically.


Free vs. paid

  • MCP initialize and tools/list are free — discover the server and its tool surface without paying anything.
  • tools/call costs $0.01 USDC on Base mainnet per invocation, paid via x402. No API key, no signup, no marketplace account — agents pay directly from their own wallet.
  • The premium tool (get_material_events_digest) is currently billed at the same $0.01 flat rate while the tiered-pricing rollout is in progress; its per-call price will move higher post-launch.

The five tools

All five tools are composite/curated (they compute derived signals or aggregate across multiple EDGAR endpoints — no raw passthroughs). Annotations: readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true.

#ToolRequired inputOptional input (default)Tier
1get_company_filings_summaryticker_or_cik (string)Standard
2get_insider_signalticker_or_cik (string)lookback_days (int 1–730, default 90)Standard
3get_institutional_signalticker_or_cik (string)quarters_back (int 1–20, default 4)Standard
4get_material_events_digestticker_or_cik (string)lookback_days (int 1–1825, default 365)Premium
5compare_disclosure_signalstickers_or_ciks (string[2..5])Standard

1. get_company_filings_summary

Overview of a company's filing activity: last 20 filings + computed signals.

SignalDescription
filing_velocityACCELERATING / NORMAL / SLOWING vs. trailing 365-day average
material_event_count_90dCount of 8-K filings in the last 90 days
disclosure_volume_trendRISING / STABLE / FALLING based on 10-K size comparison
latest_form_typesUnique form types filed in the last 90 days

Example output (abbreviated):

{
"ticker": "AAPL",
"cik": "0000320193",
"company_name": "Apple Inc.",
"signals": {
"filing_velocity": "NORMAL",
"material_event_count_90d": 4,
"disclosure_volume_trend": "RISING",
"latest_form_types": ["8-K", "4", "DEF 14A"]
},
"meta": { "source": "sec_edgar_direct", "data_delay": "live" }
}

2. get_insider_signal

Probes Form 3 / 4 / 4/A insider filing activity within a configurable lookback window. Required: ticker_or_cik. Optional: lookback_days (1–730, default 90).

Returns: recent_insider_filings[] (accession numbers + SEC URLs), net_transaction_count, buy_count, sell_count, and insider_signal.

v0.1 limitation — counts only. v0.1 returns counts and Form 4 references only; direction-aware buy/sell signals ship in v0.2 (Form 4 XML parsing). Today, insider_signal is null when filings exist in the window (direction unknown) and "NEUTRAL" when no insider filings exist (verified absence). buy_count / sell_count are 0 in v0.1.

Example output (abbreviated):

{
"ticker": "MSFT",
"cik": "0000789019",
"company_name": "MICROSOFT CORP",
"lookback_days": 90,
"insider_signal": null,
"net_transaction_count": 0,
"buy_count": 0,
"sell_count": 0,
"recent_insider_filings": [
{
"accession_number": "0001127602-26-001234",
"filing_date": "2026-04-15",
"sec_url": "https://www.sec.gov/Archives/edgar/data/789019/000112760226001234/0001127602-26-001234-index.htm"
}
],
"meta": { "source": "sec_edgar_direct", "data_delay": "live" }
}

3. get_institutional_signal

Probes for activist investor activity via SC 13D / 13D/A filings. Required: ticker_or_cik. Optional: quarters_back (1–20, default 4 ≈ 1 year).

FieldDescription
activist_risk_flagtrue if any SC 13D or 13D/A was filed in the last 365 days
recent_13d_filingsList of 13D filings with form type, date, and SEC URL

v0.1 limitation — activist flag only. v0.1 ships the live activist_risk_flag (from 13D/13D-A) and a list of 13D filings. Quarterly 13F XBRL parsing — which produces institutional_signal (ACCUMULATING / HOLDING / DISTRIBUTING) and recent_13f_countships in v0.2. Today those two fields are null / 0.

Example output (abbreviated):

{
"ticker": "NVDA",
"cik": "0001045810",
"company_name": "NVIDIA CORP",
"quarters_back": 4,
"institutional_signal": null,
"recent_13f_count": 0,
"activist_risk_flag": false,
"recent_13d_filings": [],
"meta": { "source": "sec_edgar_direct", "data_delay": "live" }
}

4. get_material_events_digestPremium tier

Premium tier. Currently billed at the same flat $0.01 USDC per call as the standard tools while tiered pricing is being rolled out. Per-call price will move higher post-launch — see the live pricing page on toolstem.com/sec/ for the current rate.

Severity-ranked digest of all 8-K and 8-K/A filings within a configurable lookback window. Each item code is mapped to a plain-English label and severity rating. Required: ticker_or_cik. Optional: lookback_days (1–1825, default 365).

SeverityExamples
🔴 REDCybersecurity incident (1.05), restatement (4.02), bankruptcy (1.03), delisting (3.01)
🟡 YELLOWAcquisition (2.01), new debt (2.03), executive departure (5.02)
🟢 GREENEarnings release (2.02), Reg FD (7.01), shareholder vote (5.07)

Returns: events[] (sorted newest-first), redflag_count, category_counts.

Example output (abbreviated):

{
"ticker": "TSLA",
"cik": "0001318605",
"company_name": "Tesla, Inc.",
"lookback_days": 180,
"redflag_count": 1,
"category_counts": { "RED": 1, "YELLOW": 3, "GREEN": 7 },
"events": [
{
"accession_number": "0001628280-26-005678",
"filing_date": "2026-04-10",
"form": "8-K",
"items": [
{ "code": "4.02", "label": "Non-Reliance on Previously Issued Financial Statements", "category": "financial", "severity": "RED" }
],
"sec_url": "https://www.sec.gov/Archives/edgar/data/1318605/000162828026005678/0001628280-26-005678-index.htm"
}
],
"meta": { "source": "sec_edgar_direct", "data_delay": "live" }
}

5. compare_disclosure_signals

Side-by-side comparison of 2–5 companies across all key disclosure signals. Required: tickers_or_ciks (string[2..5]). All lookups run in parallel.

Returns per-company: filing_velocity, material_event_count_90d, redflag_count_365d, activist_risk_flag, last_filing_date.

Returns winners (as CIKs, not tickers — cross-reference with the companies[] array): quietest_disclosure, most_active, most_redflags, activist_targets.

Example output (abbreviated):

{
"companies": [
{
"ticker": "AAPL",
"cik": "0000320193",
"filing_velocity": "NORMAL",
"material_event_count_90d": 4,
"redflag_count_365d": 0,
"activist_risk_flag": false,
"last_filing_date": "2026-04-25"
},
{
"ticker": "MSFT",
"cik": "0000789019",
"filing_velocity": "ACCELERATING",
"material_event_count_90d": 7,
"redflag_count_365d": 0,
"activist_risk_flag": false,
"last_filing_date": "2026-04-26"
}
],
"winners": {
"quietest_disclosure": "0000320193",
"most_active": "0000789019",
"most_redflags": null,
"activist_targets": []
},
"meta": { "source": "sec_edgar_direct", "data_delay": "live" }
}

Installation

The hosted endpoint is the fastest path to try the tools. It is gated by x402 on Base mainnet:

https://mcp.toolstem.com/mcp/sec
  • initialize and tools/list are free.
  • Each tools/call costs $0.01 USDC on Base mainnet, settled via x402 directly from the agent's wallet.
  • No SEC API key. No signup. No marketplace account.

Claude Desktop config

Use the hosted endpoint (no local install):

{
"mcpServers": {
"toolstem-sec": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.toolstem.com/mcp/sec"
]
}
}
}

Or run locally over stdio (no x402 charges, you bring your own EDGAR fair-access contact):

{
"mcpServers": {
"toolstem-sec": {
"command": "npx",
"args": ["-y", "toolstem-sec-mcp-server"],
"env": {
"SEC_USER_AGENT_CONTACT": "you@yourorg.com"
}
}
}
}

npm (MCP stdio transport)

npm install -g toolstem-sec-mcp-server
toolstem-sec-mcp-server

Self-hosted HTTP

Three modes:

Local-only (default — safest):

toolstem-sec-mcp-server --http
# Binds 127.0.0.1:3000 — reachable only from this machine

Remote with auth:

ALLOW_REMOTE=1 MCP_AUTH_TOKEN=my-secret toolstem-sec-mcp-server --http
# Binds 0.0.0.0:3000 — requires Bearer token on every /mcp request

Remote without auth (use at your own risk):

ALLOW_REMOTE=1 MCP_AUTH_DISABLED=1 toolstem-sec-mcp-server --http
# Binds 0.0.0.0:3000 — no authentication
VariableDescription
PORTHTTP port (default 3000)
ALLOW_REMOTESet to 1 to bind 0.0.0.0 instead of 127.0.0.1
MCP_AUTH_TOKENBearer token for /mcp routes (required when ALLOW_REMOTE=1)
MCP_AUTH_DISABLEDSet to 1 to skip auth even with ALLOW_REMOTE=1 (not recommended)
SEC_USER_AGENT_CONTACTContact email for SEC EDGAR User-Agent header

Use with LangChain.js (hosted, agent pays via x402)

The official @langchain/mcp-adapters library connects directly to the hosted endpoint:

import { MultiServerMCPClient } from "@langchain/mcp-adapters";
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const client = new MultiServerMCPClient({
toolstem_sec: {
transport: "http",
url: "https://mcp.toolstem.com/mcp/sec",
// Add your x402-signing middleware via headers, OR run an x402
// proxy locally and point url at it. See https://www.x402.org/clients.
},
});
const tools = await client.getTools();
const agent = createReactAgent({ llm: new ChatOpenAI({ model: "gpt-4o-mini" }), tools });
await agent.invoke({ messages: "Has TSLA disclosed any material 8-K events in the last 90 days?" });

SEC EDGAR fair-access policy

All outbound traffic goes through a shared sliding-window rate limiter (8 rps target, 4 rps safety margin below SEC's 10 rps hard cap). Every request includes a User-Agent header identifying the package and a contact email per SEC policy. Override the contact email via:

$SEC_USER_AGENT_CONTACT=you@yourorg.com toolstem-sec-mcp-server

Violating SEC's fair-access policy can result in your IP being blocked. This server is designed to stay compliant automatically.


v0.2 roadmap

  • Form 4 XML parsing — direction-aware insider signals (STRONG_BUYING / BUYING / NEUTRAL / SELLING / STRONG_SELLING) with net share counts
  • 13F XBRL parsing — quarterly institutional flow signals (ACCUMULATING / HOLDING / DISTRIBUTING) with institution count
  • 8-K text extraction — natural-language summaries of each material event from the filing's primary HTML document
  • Tiered pricing for the premium digest tool (currently flat-priced at $0.01/call during launch)

License & author

MIT License — see ./LICENSE.

Built by Toolstem. Data sourced directly from SEC EDGAR.