Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

sec-ai: SEC EDGAR

PYPI · SEC-FINANCE-AI

SEC EDGAR in 22 tools: 10-K/10-Q/8-K text, XBRL facts, insider trades, 13F, full-text search.

Available components

+7 this week 86 Trust /100

Last scanned (10 hours ago)

Scores higher than 89% of PyPI servers

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 39 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to lkcair/sec-ai-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 14 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability66
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3414 tokens (~155/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management50
  • Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +22
    • Malware scan: unverified → pass ▲ security
    • Stability: unverified → 0.50 ▲ functional
  • 3 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Security disclosure: unverified → fail ▼ functional
  • 2 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
    • Security disclosure: fail → unverified ▼ functional
  • 30 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 22 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 21 Oct 26 64

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/sec-finance-ai@2.0.5

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo lkcair/sec-ai-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/lkcair/sec-ai-mcp/.github/workflows/publish.yml@refs/tags/v2.0.5
Rekor log index 3349962231
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:f496055b31579bafce23be77b4afc8db7ee0dcd082c8c09ed70f6e69ca244059

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 39 packages
Packages resolved 39
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 22 exposed · ~2,796 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
analyze_8k_filing ~47

Get and summarize the latest 8-K filing for a company. Returns: Dictionary containing 8-K summary with actual content

NameTypeReqDescription
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

download_filing_text ~229

Read or search the text of one SEC filing document. Three modes, chosen automatically: - mode 'text': returns `content` in pages of max_length characters. If has_more is true, call again with offset=next_offset to keep reading. - mode 'search': when `search` is given, returns snippets around each match with its position (use offset=position to read that part). - mode 'link_only': when the document is larger than the size limit, returns only the link and size so the user can open it. The exact size is checked BEFORE downloading. Returns: Dictionary with mode, filing_url, size_mb, total_characters and content/snippets

NameTypeReqDescription
filing_urlstringyesFiling document URL (https://www.sec.gov/Archives/edgar/data/...)
max_lengthinteger–Characters per page (default 50,000)
offsetinteger–Character position to start reading from (default 0)
search––Optional word or phrase to find inside the filing (case-insensitive)
NameTypeReqDescription
resultobjectyes–

No examples provided.

full_text_search ~163

Search the full text of every EDGAR filing since 2001 (words or "exact phrase"). Returns: Matching filings (newest first) with company, form, date and a link to the matching document

NameTypeReqDescription
end_date––Optional YYYY-MM-DD (default: today)
form_type––Optional form filter, e.g. '8-K' or '10-K,10-Q'
limitinteger–Max results (1-100, default 20)
querystringyesWords to find, e.g. 'tariffs' or '"going concern"' for an exact phrase
start_date––Optional YYYY-MM-DD (default: one year ago; use '2001-01-01' for all history)
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_13f_holdings ~129

Get the latest 13F portfolio of an institutional investment manager. Returns: Report period, total value, top_issuers (one row per company, share classes combined; use this for "largest holdings") and top_positions (one row per security: CUSIP, share class, put/call)

NameTypeReqDescription
limitinteger–Number of top positions to return (default 25)
ticker_or_cikstringyesManager ticker (e.g. 'BRK-B') or CIK (e.g. '1350694' for Bridgewater)
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_available_metrics ~177

Discover available financial metrics for a company from SEC XBRL data. This function lists ALL available metrics that can be requested via specific_metrics. Useful for AI to find exactly which metrics are available before requesting them. Returns: Dict containing: - all_metrics: List of ALL available metric names - filtered_metrics: List of metrics matching search_term (if provided) - metric_categories: Organized by category (income, balance_sheet, cash_flow, etc) - total_available: Total number of available metrics - example_ttm_metrics: Example metrics useful for TTM calculations

NameTypeReqDescription
search_termstring–Optional search term to filter metrics (e.g., 'EBITDA', 'Revenue', 'Debt')
tickerstringyesStock ticker symbol (e.g., 'GME', 'AAPL')
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_beneficial_ownership ~91

Get beneficial ownership reports (13D, 13G) for a company. Returns: Dictionary containing beneficial ownership information

NameTypeReqDescription
limitinteger–Number of reports to return
schedulestring–'all' (default), '13D' (activist or control intent) or '13G' (passive holder)
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_company_concept ~64

Get specific financial concept data for a company. Returns: Dictionary containing concept data over time

NameTypeReqDescription
conceptstringyesXBRL concept (e.g., 'Revenues', 'NetIncomeLoss', 'Assets')
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_company_facts ~40

Get company facts from SEC XBRL data. Returns: Dictionary containing company facts and financial metrics

NameTypeReqDescription
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_company_filings ~140

Get SEC filings for a company by ticker symbol. Returns: Dictionary containing filing information

NameTypeReqDescription
end_date––End date for filing search (YYYY-MM-DD format)
form_type––SEC form type (e.g., '10-K', '10-Q', '8-K'). Can be a single string or a list of strings. If None, returns all forms.
limitinteger–Maximum number of filings to return (default: 10)
start_date––Start date for filing search (YYYY-MM-DD format)
tickerstringyesStock ticker symbol (e.g., 'AAPL', 'TSLA')
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_filing_content ~614

Get SEC financial data - SMART & EFFICIENT dual-mode approach. GENERIC MODE (no specific_metrics parameter) - Returns 13 essential metrics for any financial analysis - 5 historical values per metric (sufficient for TTM calc) - Most token-efficient for general questions - Includes: Net Income, Revenues, Interest Expense, Taxes, Operating Income, Gross Profit, Assets, Liabilities, Equity, Depreciation, Shares Outstanding, Cash, Long-term Debt SPECIFIC MODE (provide specific_metrics parameter) - Returns ONLY the requested metrics you specify - Perfect for targeted analysis (TTM EBITDA, leverage ratios) - Minimal token usage - only fetch what you need - Example: ['NetIncomeLoss', 'DepreciationDepletionAndAmortization', 'InterestExpense', 'IncomeTaxExpenseBenefit'] - Use get_available_metrics(ticker) to discover all metrics WORKFLOW FOR TTM CALCULATIONS: 1. Call: get_available_metrics(ticker='GME', search_term='Depreciation') 2. Find needed metrics from results 3. Call: get_filing_content(ticker='GME', specific_metrics=['NetIncomeLoss', ...]) 4. Calculate TTM from 5 historical values (last 4 quarters + 1 prior) FILE HANDLING (get_full_content=True): - The exact document size is checked first (EDGAR filing index) - Up to 25MB: first 50,000 characters in full_content; if has_more, continue with download_filing_text(filing_url, offset=next_offset) or search it with search='keyword' - Over 25MB: link only (file_too_large=True), AI told via ai_note Returns: Dict containing: - ticker, cik, company_name: Company identification - financial_metrics: Dict of requested/essential metrics with 5 historical values each - filing_date, filing_type: Filing metadata - mode: "generic" or "specific" - metrics_returned, values_per_metric: Data shape info - content_mode: 'text' or 'link_only' - full_content, has_more, next_offset: first page of the filing text - file_size_mb, filing_url, ai_note: size, link and what to do next

NameTypeReqDescription
filing_typestring–Type of filing - '10-Q', '10-K', '8-K', etc. (None = get latest)
get_full_contentboolean–If True, check and optionally download full filing text
specific_metricsarray–List of specific metric names to fetch. If None, returns 13 essential metrics (generic mode). Example: ['NetIncomeLoss', 'Revenues', 'DepreciationDepletionAndAmortization'] Use get_available_metrics(…
tickerstringyesStock ticker symbol (e.g., 'GME', 'AAPL')
NameTypeReqDescription
result–yes–

No examples provided.

get_filing_documents ~84

List every document in a filing (main document, exhibits, XBRL, XML) with sizes and links. Returns: Dictionary with the filing folder and its documents (name, size_bytes, url)

NameTypeReqDescription
filing_urlstringyesAny URL inside the filing folder (https://www.sec.gov/Archives/edgar/data/CIK/ACCESSION/...)
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_filing_size ~100

Get the exact size of a filing document BEFORE downloading it. Use this to decide between reading the text (download_filing_text) and giving the user the link only. Sizes come from the EDGAR filing index. Returns: size_bytes, size_mb, recommendation ('read_text' or 'link_only') and filing_url

NameTypeReqDescription
filing_urlstringyesFiling document URL (https://www.sec.gov/Archives/edgar/data/...)
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_insider_transactions ~59

Get insider trading transactions (Forms 3, 4, 5) for a company. Returns: Dictionary containing insider transaction information

NameTypeReqDescription
limitinteger–Number of transactions to return
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_latest_10k ~138

Get the latest 10-K filing for a company: filing link plus a SHORT preview of its text. The preview is only the first 10,000 characters (cover page and first statements). When preview_is_partial is true, follow read_more: download_filing_text(filing_url, offset=...) pages through the rest, download_filing_text(filing_url, search='...') jumps to a section. Returns: Dictionary with the 10-K filing: filing_url, content_preview, preview_characters, total_characters, preview_is_partial and read_more

NameTypeReqDescription
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_latest_10q ~138

Get the latest 10-Q filing for a company: filing link plus a SHORT preview of its text. The preview is only the first 10,000 characters (cover page and first statements). When preview_is_partial is true, follow read_more: download_filing_text(filing_url, offset=...) pages through the rest, download_filing_text(filing_url, search='...') jumps to a section. Returns: Dictionary with the 10-Q filing: filing_url, content_preview, preview_characters, total_characters, preview_is_partial and read_more

NameTypeReqDescription
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_proxy_statements ~54

Get proxy statements (DEF 14A) for a company. Returns: Dictionary containing proxy statement information

NameTypeReqDescription
limitinteger–Number of proxy statements to return
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_recent_8k_filings ~138

Get recent 8-K filings for a company with a SHORT preview of each. Each preview is only the first 5,000 characters. When preview_is_partial is true, follow read_more: download_filing_text(filing_url, offset=...) or download_filing_text(filing_url, search='...'). Returns: Dictionary with 8-K filings: filing_url, content_preview, preview_characters, total_characters, preview_is_partial, read_more and extracted items

NameTypeReqDescription
limitinteger–Number of recent 8-K filings to return
tickerstringyesStock ticker symbol
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_recent_ipos ~87

Get recent IPO activity from EDGAR. Returns: priced: final prospectuses (424B4, filed when an offering is priced) registrations: new S-1 / F-1 registration statements (companies preparing to list)

NameTypeReqDescription
daysinteger–Look-back window in days (default 30)
limitinteger–Max companies per list (default 20)
NameTypeReqDescription
resultobjectyes–

No examples provided.

get_sec_api_status ~25

Check SEC API status and connectivity. Returns: Dictionary containing API status information

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyes–

No examples provided.

get_xbrl_frames ~159

Compare one financial concept across ALL reporting companies for one period. Returns: Companies ranked by value for that concept and period

NameTypeReqDescription
conceptstringyesXBRL tag, e.g. 'Revenues', 'NetIncomeLoss', 'Assets'
limitinteger–Number of top companies to return (default 20)
periodstringyes'CY2024' (annual), 'CY2024Q3' (quarter) or 'CY2024Q4I' (balance-sheet instant)
taxonomystring–'us-gaap' (default), 'ifrs-full', 'dei'
unitstring–'USD' (default), 'USD-per-shares', 'shares'
NameTypeReqDescription
resultobjectyes–

No examples provided.

run_self_test ~27

Run comprehensive self-test of all SEC-AI tools. Returns: Dictionary containing test results

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultobjectyes–

No examples provided.

search_filings ~93

Search SEC filings by company name or other criteria. Returns: Dictionary containing search results

NameTypeReqDescription
end_date––End date for search (YYYY-MM-DD)
form_type––SEC form type to filter by
limitinteger–Maximum number of results
querystringyesSearch query (company name, ticker, etc.)
start_date––Start date for search (YYYY-MM-DD)
NameTypeReqDescription
resultobjectyes–

No examples provided.

Install

How do I install the sec-ai: SEC EDGAR MCP server?

sec-ai: SEC EDGAR runs locally as a PyPI package, launched with uvx sec-finance-ai. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · sec-finance-ai

# add to Claude Code
claude mcp add lkcair-sec-ai -- uvx sec-finance-ai
Common questions

What is the sec-ai: SEC EDGAR MCP server?

sec-ai: SEC EDGAR is an MCP server listed in the public MCP registry as io.github.lkcair/sec-ai. SEC EDGAR in 22 tools: 10-K/10-Q/8-K text, XBRL facts, insider trades, 13F, full-text search. This page covers its PyPI package (sec-finance-ai).

Is the sec-ai: SEC EDGAR MCP server safe to use?

sec-ai: SEC EDGAR scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the sec-ai: SEC EDGAR MCP server expose?

sec-ai: SEC EDGAR exposes 22 tools: analyze_8k_filing, download_filing_text, full_text_search, get_13f_holdings, get_available_metrics, and 17 more. Their descriptions and schemas cost roughly 2,796 tokens of context every time the server is loaded.

Is the sec-ai: SEC EDGAR MCP server still maintained?

sec-ai: SEC EDGAR is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the sec-ai: SEC EDGAR MCP server under?

sec-ai: SEC EDGAR declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.