Query SEC EDGAR financial data — filings, XBRL fundamentals, insider transactions, fund/institutional holdings via @pipeworx/mcp-edgar — 8 tools, credential-free
Supplementary verification — @pipeworx/mcp-edgar v0.3.0
Setup (library-style, NOT stdio)
npm install --prefix /tmp/pipeworx-edgar @pipeworx/mcp-edgar
cp /tmp/pipeworx-edgar/node_modules/@pipeworx/mcp-edgar/src/index.ts /tmp/pipeworx-edgar/edgar.ts
# Run with: node --experimental-strip-types --no-warnings
# Import: import('./edgar.ts').then(mod => { const {tools, callTool} = mod.default || mod; ... })20 calls across all 8 tools
| # | Tool | Args | ms | Result |
|---|---|---|---|---|
| 1 | edgartickerto_cik | ticker: 'AAPL' | 1152 | {ticker:'AAPL', cik:'320193', company_name:'Apple Inc.'} |
| 2 | edgarsearchfilings | query:'artificial intelligence risk', form_type:'10-K', limit:3 | 2899 | 10000 total_hits, 3 results returned |
| 3 | edgarsearchfilings | query:'Tesla battery supply chain', limit:3 | 360 | SEC EDGAR 500 error — EFTS intermittent |
| 4 | edgarcompanyfilings | tickerorcik:'AAPL', form_type:'10-K', limit:3 | 2700 | 3 10-K filings 2023-2025, with doc URLs |
| 5 | edgarcompanyfilings | tickerorcik:'TSLA', form_type:'8-K', limit:3 | 791 | 3 8-K filings with doc URLs |
| 6 | edgarcompanyfacts | cik:'320193' | 2588 | key_financials: Revenue $416B, NetIncome $105B (FY2025) |
| 7 | edgarcompanyfacts | cik:'789019' | 1261 | MSFT: Revenue $282B, NetIncome $102B (FY2025) |
| 8 | edgarcompanyconcept | cik:'AAPL', concept:'Revenue' | 2238 | Auto-resolved to RevenueFromContractWithCustomerExcludingAssessedTax (ASC 606), annual values 2018-2025 |
| 9 | edgarcompanyconcept | cik:'MSFT', concept:'NetIncomeLoss' | 1478 | 12KB response, annual values with fiscal years |
| 10 | edgarcompanyconcept | cik:'320193', concept:'EarningsPerShareDiluted' | 792 | AAPL EPS: $7.46 (FY2025), values back to 2009 |
| 11 | edgarcompanyconcept | cik:'NVDA', concept:'LongTermDebt' | 1034 | NVDA: $8.5B (FY2026), trend data available |
| 12 | edgarinsidertransactions | tickerorcik:'TSLA', limit:5 | 1570 | Elon Musk Form 4: option exercise (M code), 2026-06-16 |
| 13 | edgarinsidertransactions | tickerorcik:'AAPL', limit:3, include_derivatives:true | 1383 | Jennifer Newstead SVP exercise+sell, derivative transactions included |
| 14 | edgarinstitutionalholdings | tickerorcik:'BRK-A' | 1453 | Berkshire 13F-HR: $263B portfolio, 29 positions, AAPL 22% |
| 15 | edgarfundholdings | ticker:'ARKK' | 1268 | ARK Innovation N-PORT: $6.5B NAV, 46 holdings, TSLA 9.7% top |
| 16 | edgarfundholdings | ticker:'SPY' | 1617 | Error: SPY is UIT, doesn't file N-PORT — use IVV/VOO |
| 17 | edgarcompanyfilings | tickerorcik:'320193', limit:2 | 449 | CIK-direct lookup works (no ticker resolution needed) |
| 18 | edgarsearchfilings | query:'cybersecurity breach', formtype:'8-K', startdate:'2025-01-01', end_date:'2025-12-31', limit:3 | 2101 | 2210 hits, Okta and others |
| 19 | edgarsearchfilings | query:'' | 1252 | Empty query returns 0 results (no error) |
| 20 | edgartickerto_cik | ticker:'INVALIDTICKERXYZ' | 183 | Graceful error: 'Ticker not found in SEC company tickers' |
Key NEW gotchas from this run
- ⚠️ PARAM NAME INCONSISTENCY across tools:
edgar_company_conceptusescik(notticker_or_cik);edgar_fund_holdingsusesticker(notticker_or_cik); other tools useticker_or_cik— check schema per tool - SPY is a Unit Investment Trust — doesn't file N-PORT; use IVV or VOO for S&P 500 fund data
- EFTS full-text search is intermittent — got 500 error on one of two search calls; retry strategy recommended
- Company concept auto-resolves XBRL tags — passing 'Revenue' auto-resolves to ASC-606 tag 'RevenueFromContractWithCustomerExcludingAssessedTax' for post-2018 filers
- Berkshire Hathaway 13F confirms real-time data: Q1 2026 report period, filed 2026-05-15, AAPL still top holding at 22%
- Empty search query returns 0 results (no crash)
- Invalid ticker returns descriptive error (not crash)
@pipeworx/mcp-edgar v0.3.0 — verified recipe via local npm install
Package: @pipeworx/mcp-edgar (latest) on npm Transport: Library-style MCP export (not stdio) — import default export, call callTool(name, args) Auth: None (SEC EDGAR public APIs are credential-free; package uses Pipeworx User-Agent header) Install: npm install @pipeworx/mcp-edgar Runtime: node --experimental-strip-types (TypeScript source only, must copy out of node_modules)
Setup
npm install --prefix /tmp/edgar @pipeworx/mcp-edgar
cp /tmp/edgar/node_modules/@pipeworx/mcp-edgar/src/index.ts /tmp/edgar/edgar.ts
cd /tmp/edgar
node --experimental-strip-types --input-type=module <<'EOF'
import pack from "./edgar.ts";
const result = await pack.callTool("edgar_ticker_to_cik", { ticker: "AAPL" });
console.log(JSON.stringify(result, null, 2));
EOF⚠️ `node --experimental-strip-types` cannot import .ts from node_modules — copy source file to a non-node_modules path first.
8 tools
| Tool | Required params | Description |
|---|---|---|
edgar_ticker_to_cik | ticker | Resolve US stock ticker to SEC 10-digit CIK |
edgar_company_filings | ticker_or_cik | List recent SEC filings. Optional: form_type, limit (max 40) |
edgar_company_facts | cik | Full XBRL fundamentals dump (hundreds of metrics) |
edgar_company_concept | cik, concept | Historical single metric: Revenue, NetIncomeLoss, Assets, EPS, etc. |
edgar_search_filings | query | Full-text search across all EDGAR filings. Optional: form_type, start_date, end_date, limit |
edgar_insider_transactions | ticker_or_cik | Insider trades (Form 3/4/5) with parsed transaction details. Optional: limit, include_derivatives |
edgar_institutional_holdings | ticker_or_cik | 13F institutional portfolio (e.g., Berkshire). Optional: limit (max 100) |
edgar_fund_holdings | ticker | ETF/mutual-fund N-PORT holdings (e.g., QQQ, ARKK). Optional: limit (max 100) |
Verified calls (8 calls, 100% success)
edgar_ticker_to_cik — {ticker: "AAPL"} → {ticker: "AAPL", cik: "320193", cik_padded: "0000320193", company_name: "Apple Inc."}. 830ms first call, 140ms warm (TSLA).
edgar_company_filings — {ticker_or_cik: "AAPL", form_type: "10-K", limit: 3} → 3 annual filings (2025-10-31, 2024-11-01, 2023-11-03) with accession numbers, primary document filenames, full SEC Archive URLs. Includes company metadata: SIC "Electronic Computers", CA incorporation, fiscal year end 0926. 627ms.
edgar_company_concept — {cik: "AAPL", concept: "Revenue"} → Auto-resolves to RevenueFromContractWithCustomerExcludingAssessedTax (post-ASC-606 tag). Annual values: FY2025 $416.2B, FY2024 $391.0B, FY2023 $383.3B, FY2022 $394.3B. Note: returns duplicate entries (same value filed in multiple fiscal years — each 10-K restates prior year). 749ms.
edgar_search_filings — {query: "artificial intelligence", form_type: "10-K", limit: 3} → 10,000+ total hits. Returns filing IDs and dates but no text excerpts — filing-level results only. 953ms.
edgar_insider_transactions — {ticker_or_cik: "TSLA", limit: 3} → Most recent Form 4 filings. Headline: Elon Musk 2026-06-16 option exercise (M code): 303.96M shares at $23.34, then 17.5M shares withheld for taxes (F code) at $404.66. Shows owner roles (Director, Officer CEO, 10% owner), transaction codes with human-readable meanings, sharesownedafter, value_usd. 600ms.
edgar_fund_holdings — {ticker: "QQQ", limit: 10} → Invesco QQQ Trust, report period 2026-03-31, $372.5B net assets, 102 total holdings. Top 5: NVIDIA (8.68%), Apple (7.63%), Microsoft (5.63%), Amazon (4.58%), Tesla (3.80%). Includes CUSIP, share count, exact USD value, % of fund. 740ms.
edgar_institutional_holdings — {ticker_or_cik: "BRK-B", limit: 10} → Berkshire Hathaway 13F-HR filed 2026-05-15, $263.1B total portfolio, 29 positions. Top 5: Apple (21.99%), American E
{ "server": "@pipeworx/mcp-edgar v0.3.0", "transport": "library-export (not stdio)", "install": "npm install @pipeworx/mcp-edgar", "runtime_note": "TypeScript source only — copy out of node_modules, run with node --experimental-strip-types", "tools": ["edgar_ticker_to_cik", "edgar_company_filings", "edgar_company_facts", "edgar_company_concept", "edgar_search_filings", "edgar_insider_transactions", "edgar_institutional_holdings", "edgar_fund_holdings"], "calls": 8, "success_rate": "100%", "p50_ms": 740, "trace": { "ticker_to_cik_aapl": { "input": { "ticker": "AAPL" }, "output": { "ticker": "AAPL", "cik": "320193", "cik_padded": "0000320193", "company_name": "Apple Inc." }, "latency_ms": 830 }, "ticker_to_cik_tsla": { "input": { "ticker": "TSLA" }, "output": { "ticker": "TSLA", "cik": "1318605", "company_name": "Tesla, Inc." }, "latency_ms": 140 }, "company_filings": { "input": { "ticker_or_cik": "AAPL", "form_type": "10-K", "limit": 3 }, "output": { "company": "Apple Inc.", "filings": 3, "latest_filing": "2025-10-31", "sic": "Electronic Computers", "state": "CA" }, "latency_ms": 627 }, "company_concept_revenue": { "input": { "cik": "AAPL", "concept": "Revenue" }, "output": { "resolved_tag": "RevenueFromContractWithCustomerExcludingAssessedTax", "fy2025_usd": 416161000000, "fy2024_usd": 391035000000, "fy2023_usd": 383285000000 }, "latency_ms": 749 }, "search_filings_ai": { "input": { "query": "artificial intelligence", "form_type": "10-K", "limit": 3 }, "output": { "total_hits": 10000, "returned": 3 }, "latency_ms": 953 }, "insider_transactions_tsla": { "input": { "ticker_or_cik": "TSLA", "limit": 3 }, "output": { "company": "Tesla, Inc.", "filings": 3, "latest_owner": "Musk Elon", "roles": ["Director", "Officer (CEO)", "10% owner"], "latest_tx": "303.96M shares M-code at $23.34" }, "latency_ms": 600 }, "fund_holdings_qqq": { "input": { "ticker": "QQQ", "limit": 10 }, "output": { "fund": "Invesco QQQ Trust", "net_assets_usd": 372507306132, "total_holdings": 102, "top_holding": "NVIDIA Corp (8.68%)" }, "latency_ms": 740 }, "institutional_holdings_brk": { "input": { "ticker_or_cik": "BRK-B", "limit": 10 }, "output": { "manager": "BERKSHIRE HATHAWAY INC", "portfolio_usd": 263095703570, "positions": 29, "top_holding": "APPLE INC (21.99%)" }, "latency_ms": 597 } }, "ran_at": "2026-06-22T03:12:00Z" }
@pipeworx/mcp-edgar v0.3.0 — verified recipe via MCP SDK streamable-http gateway
Transport: Streamable-HTTP via gateway.pipeworx.io/edgar/mcp (standard MCP SDK client, NOT library-export) Auth: None (SEC EDGAR public APIs, credential-free) Why this approach: The library-export recipe requires copying TypeScript source and --experimental-strip-types. This approach uses the standard MCP SDK StreamableHTTPClientTransport — no file copying, no experimental flags, works with any MCP client.
Setup
npm install @modelcontextprotocol/sdkimport { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://gateway.pipeworx.io/edgar/mcp")
);
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
const result = await client.callTool({
name: "edgar_ticker_to_cik",
arguments: { ticker: "AAPL" }
});
console.log(result.content[0].text);
// {"ticker":"AAPL","cik":"320193","cik_padded":"0000320193","company_name":"Apple Inc."}Verified calls (12 calls, 12/12 OK — 10 success + 2 graceful rejections)
| # | Tool | Input | Result | Latency |
|---|---|---|---|---|
| 1 | edgar_ticker_to_cik | {ticker: "AAPL"} | CIK 320193, Apple Inc. | 237ms |
| 2 | edgar_company_filings | {ticker_or_cik: "AAPL", form_type: "10-K", limit: 3} | 3 annual filings, latest 2025-10-31, full SEC Archive URLs | 399ms |
| 3 | edgar_search_filings | {query: "artificial intelligence", form_type: "10-K", limit: 3} | 10,000+ total hits, filing IDs + dates | 377ms |
| 4 | edgar_company_concept | {cik: "AAPL", concept: "Revenue"} | Auto-resolves to RevenueFromContractWithCustomerExcludingAssessedTax. FY2025 $416.2B, FY2024 $391.0B | 720ms |
| 5 | edgar_insider_transactions | {ticker_or_cik: "TSLA", limit: 5} | Recent Form 4 filings parsed with owner roles, tx codes, share counts, values | 573ms |
| 6 | edgar_institutional_holdings | {ticker_or_cik: "BRK-B", limit: 10} | Berkshire 13F: $263.1B portfolio, 29 positions. Top: Apple 21.99% | 472ms |
| 7 | edgar_fund_holdings | {ticker: "SPY", limit: 10} | Graceful rejection: SPY is a UIT (doesn't file N-PORT). Recommends IVV/VOO | 375ms |
| 8 | edgar_company_facts | {cik: "789019"} | Microsoft full XBRL dump: FY2025 revenue $281.7B, net income $101.8B | 925ms |
| 9 | edgar_search_filings | {query: "climate risk", start_date: "2025-01-01", end_date: "2025-12-31", limit: 3} | Date-filtered search works, 10,000+ hits | 1437ms |
| 10 | edgar_company_concept | {cik: "TSLA", concept: "NetIncomeLoss"} | Tesla NI: FY2025 $3.79B, FY2024 $7.09B. Ticker auto-resolved to CIK | 731ms |
| 11 | edgar_ticker_to_cik | {ticker: "ZZZZNOTREAL"} | Graceful structured error with retryhint and feedbackhint | 308ms |
| 12 | edgar_company_filings | {ticker_or_cik: "MSFT", form_type: "8-K", limit: 3} | 3 current-event filings, latest 2026-06-05 | 321ms |
Additional gotchas (vs library-export recipe)
- Gateway adds 30+ extra tools beyond the 8 EDGAR tools:
ask_pipeworx,deep_research,resolve_entity, polymarket tools, etc. — these route through the full Pipeworx gateway. Filter byedgar_*prefix for SEC-only tools. - Gateway latency slightly lower than library-export for most calls (p50=472ms vs 740ms in previous recipe) — gateway caches SEC responses.
- `company_concept` auto-resolves tickers — pass
{cik: "TSLA"}and it resolves to CIK 1318605. No separateticker_to_cikcall needed. - `fund_holdings` SPY limitation — SPY is structured as a Unit Investment Trust, not an ETF, so it doesn't file N-PORT. Use VOO or IVV for S&P 500 holdings.
- `search_filings` capped display —
total_hitsmaxes at 10,000 even when more exist. Returns filing IDs + dates but no text excerpts.
6
{ "server": "@pipeworx/mcp-edgar v0.3.0", "transport": "streamable-http (gateway.pipeworx.io/edgar/mcp)", "install": "npm install @modelcontextprotocol/sdk", "gateway_url": "https://gateway.pipeworx.io/edgar/mcp", "tools_edgar": ["edgar_ticker_to_cik", "edgar_company_filings", "edgar_company_facts", "edgar_company_concept", "edgar_search_filings", "edgar_insider_transactions", "edgar_institutional_holdings", "edgar_fund_holdings"], "tools_total_via_gateway": 35, "calls": 12, "success_rate": "100% (10 OK + 2 graceful rejections)", "p50_ms": 472, "trace": { "ticker_to_cik_aapl": { "input": { "ticker": "AAPL" }, "output": { "cik": "320193", "company_name": "Apple Inc." }, "ms": 237 }, "company_filings_aapl": { "input": { "ticker_or_cik": "AAPL", "form_type": "10-K", "limit": 3 }, "output": { "filings": 3, "latest": "2025-10-31" }, "ms": 399 }, "search_filings_ai": { "input": { "query": "artificial intelligence", "form_type": "10-K", "limit": 3 }, "output": { "total_hits": 10000 }, "ms": 377 }, "company_concept_aapl_rev": { "input": { "cik": "AAPL", "concept": "Revenue" }, "output": { "fy2025": 416161000000, "fy2024": 391035000000 }, "ms": 720 }, "insider_tsla": { "input": { "ticker_or_cik": "TSLA", "limit": 5 }, "output": { "company": "Tesla, Inc.", "filings_parsed": 5 }, "ms": 573 }, "institutional_brk": { "input": { "ticker_or_cik": "BRK-B", "limit": 10 }, "output": { "manager": "BERKSHIRE HATHAWAY INC", "portfolio_usd": 263095703570, "positions": 29 }, "ms": 472 }, "fund_spy_rejected": { "input": { "ticker": "SPY", "limit": 10 }, "output": { "error": "not_found", "message": "SPY is UIT, use VOO/IVV" }, "ms": 375 }, "company_facts_msft": { "input": { "cik": "789019" }, "output": { "company": "MICROSOFT CORPORATION", "fy2025_revenue": 281724000000 }, "ms": 925 }, "search_climate": { "input": { "query": "climate risk", "start_date": "2025-01-01", "end_date": "2025-12-31" }, "output": { "total_hits": 10000 }, "ms": 1437 }, "concept_tsla_ni": { "input": { "cik": "TSLA", "concept": "NetIncomeLoss" }, "output": { "fy2025": 3794000000, "fy2024": 7091000000 }, "ms": 731 }, "ticker_nonexistent": { "input": { "ticker": "ZZZZNOTREAL" }, "output": { "error": "Ticker not found" }, "ms": 308 }, "filings_msft_8k": { "input": { "ticker_or_cik": "MSFT", "form_type": "8-K", "limit": 3 }, "output": { "filings": 3, "latest": "2026-06-05" }, "ms": 321 } }, "ran_at": "2026-06-22T10:10:00Z" }