beatandraise.com SEC Filings
REMOTE · BEATANDRAISE.COM
SEC EDGAR since 1993: search and read filings, insiders, 13F, statements; verify quotes and figures.
Available components
Last scanned (9 hours ago)
Scores higher than 54% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability58
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 13461 tokens (~517/item across 26 items; 26 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 Management20
- Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- 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 26 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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 +1
- The server rewrote its instructions, which are the text every model session reads security
- 3 Nov 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_holdings” rewrote its description, which is the text the model reads security
- Tool “verify_figure” rewrote its description, which is the text the model reads security
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 0
- Tool “get_institutional_holders” rewrote its description, which is the text the model reads security
- Stability: unverified → 0.03 ▲ functional
- “get_institutional_holders” added an optional parameter “cik” cosmetic
- “get_institutional_holders” added an optional parameter “ticker” cosmetic
- “get_institutional_holders” made “company” optional cosmetic
- 30 Oct 26 66
First indexed and scored.
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 · Probed https://beatandraise.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=beatandraise.com | CN=WE1,O=Google Trust Services,C=US | 19 Oct 2026 | 17 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 1d97600eadcdc7c40e6640db57226978 |
| SANs: beatandraise.com, *.beatandraise.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of beatandraise.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| beatandraise.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://beatandraise.com/mcp | Verified | 200 | |
| http (plaintext) | http://beatandraise.com/mcp | HTTPS enforced | 301 | https://beatandraise.com/mcp |
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 →
check_citations Check Citations in a Draft ~279
Check every number in a draft against the filing characters it cites, and link them. Write your draft with a citation right after each figure, using the ref that list_figures or verify_figure gave for it: revenue of $68.1 billion [ref:0001045810-26-000019/q4fy26pr.htm@112+4] For a number you calculated, cite its inputs: up 73% [calc: ref:<current>, ref:<prior>] A ref names the exact characters in the document: <accession>/<filename>@<start>+<len>. Returns per citation: ok / rounded (your number is the cited figure times a power of ten, rounded), mismatch (the cited characters are a different number), bad_ref (no number at that position), not_derivable (no sum, difference, ratio or growth rate of the inputs gives your number). unsourced_numbers lists figures with no citation. Fix every failure before presenting the text, then use linked_text and footnotes: each footnote links to the highlighted figure in the filing, so a reader can check it. Args: text: The draft, with [ref:…] / [calc: …] citations (max ~200 KB)
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_company Get Company ~230
Look up a company by CIK to get its name(s), ticker(s) and industry. When known, the result also has the SEC's SIC classification: sic (4-digit code, e.g. "6200"), sic_description (e.g. "SECURITY & COMMODITY BROKERS, DEALERS, EXCHANGES & SERVICES"), sic_url (a page listing the other companies in the same industry), fiscal_year_end (MMDD, e.g. "1231" for 31 December) and state_of_incorporation. SIC is the SEC's own scheme and is not GICS; individuals and most funds have none. succession_filing, when present, is an 8-K12B or 8-K12G3 from the last five years in which this company says it succeeded an earlier registrant; its older history may be under that predecessor's CIK (see search_companies). Args: cik: Central Index Key (e.g. "0000320193" or "320193")
| Name | Type | Req | Description |
|---|---|---|---|
| cik | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_document Get Filing Document ~337
Fetch a filing document's content from storage. For one section of a 10-K, 10-Q, 8-K or 20-F (MD&A, Risk Factors, Legal Proceedings, Item 2.02…), use get_filing_item instead: it returns just that Item, a fraction of the document, with a link highlighting it. Returns the document as markdown (default) or raw HTML. Use this to read the actual text of a whole 10-K, 8-K, exhibit, or any other filing document. The first line gives its source: the beatandraise.com viewer link, to cite. Name the document either by accession_number + filename, or by url: a sec.gov document link (https://www.sec.gov/Archives/edgar/data/<cik>/<accession>/<file>, also inside an /ix?doc= link) or a beatandraise.com document link. Args: accession_number: SEC accession number filename: Document filename from the content_object (e.g. "ef20060722_8k.htm") cik: Optional. CIK of the filer (e.g. "0000320193"); found from the accession number when left out url: Optional. A sec.gov or beatandraise.com link to the document, instead of the fields above (not a company website) get_markdown: Return markdown version (default True). Set False for raw HTML.
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | – | – | – |
| cik | – | – | – |
| filename | – | – | – |
| get_markdown | boolean | – | – |
| url | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_filing_detail Get Filing Detail ~131
Get full filing metadata including its content_object. content_object lists every document in the filing with filename, doc_type, description, sequence and whether a markdown version exists; read one with get_document(cik, accession_number, filename). Cite beatandraise_base_url + filename (the beatandraise.com viewer). The R*.htm files are XBRL financial-table pages; list_filing_tables says which table each one is. Args: accession_number: SEC accession number (e.g. "0001140361-26-006577")
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_filing_item Get Filing Item ~382
Read one Item of a 10-K, 10-Q, 8-K or 20-F, e.g. Risk Factors or MD&A, instead of the whole document. Much smaller than get_document: a 10-K's Item 1A is typically 5-15% of the filing. The first lines say which item it is and give a highlight_url marking the whole section in the filing, to cite. If the item's heading was not found, you get the text between the neighbouring items instead, and the first line says so ("APPROXIMATE"). That span contains the item if the filing has it: search within it. Args: accession_number: SEC accession number of a 10-K, 10-Q, 8-K or 20-F (other forms have no Items: read them with search_document or get_document) item: The item: a number ("1A", "7", "7A", "2.02", a 20-F's "5" or "16G") or a name ("Risk Factors", "MD&A", "Legal Proceedings"). For a 10-Q, "Part II Item 1A" also works. In a 20-F, Risk Factors is inside Item 3 (3.D) and MD&A is Item 5 (Operating and Financial Review). part: 10-Q only: "I" or "II" when the number exists in both parts ("1", "2", "3", "4"); a bare number means Part I. get_markdown: Markdown (default). Set False for the raw HTML of the section.
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
| get_markdown | boolean | – | – |
| item | string | yes | – |
| part | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_filings List Filings ~1,077
Query SEC filings by form type, date range, CIK and/or 8-K item. Returns deduplicated filing metadata sorted by filing date (newest first). Each filing's content_object lists its documents (filename, doc_type, description, sequence; sequence 1 is the primary document); read any of them with get_document(cik, accession_number, filename). A document's link, to cite, is beatandraise_base_url + filename (the beatandraise.com viewer); the filing's own source gives the primary document's link and a ready-made citation. Each filing also carries its items (an 8-K's, e.g. "2.02 Results of Operations and Financial Condition") when it has any. The R*.htm files are XBRL financial-table pages; list_filing_tables says which table each one is. An 8-K carries a headline when its press release (EX-99.1) has one, e.g. "Tesla Third Quarter 2026 Production, Deliveries & Deployments": read from the release's opening lines by rules, so use it to choose which 8-K to read, not as a quotation (about 2% are another line of the release; verify_quote before quoting). No headline says nothing about the filing: its exhibit may be a deck or an agreement, or it may have no EX-99. An 8-K whose only item is 9.01 and that has no headline files exhibits and nothing else: exhibits_only lists them by type and the SEC's exhibit title ("EX-5.01 Opinion re legality; EX-99.01 Additional exhibits (no press release headline)"), so it holds no financial statements despite its item's name, and is rarely worth reading for news. Args: form: SEC form type (e.g. "10-K", "10-Q", "8-K", "4", "13F-HR", "S-1"), or several comma-separated in one call (up to 20), e.g. "N-CSR,N-CSRS,N-CSR/A,N-CSRS/A" or "10-K,10-K/A". Amendments are their own form types, so name them to include them. cik: Company CIK (e.g. "0000320193" or "320193") from_date: Start date inclusive (YYYY-MM-DD). Without cik, defaults to 30 days before to_date (or today); pass it to reach older filings. to_…
| Name | Type | Req | Description |
|---|---|---|---|
| cik | – | – | – |
| form | – | – | – |
| from_date | – | – | – |
| include_item_text | boolean | – | – |
| item | – | – | – |
| item_text | – | – | – |
| item_text_chars | – | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| to_date | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_financial_history Get Financial History ~793
A company's financial statements from its last several 10-Ks or 10-Qs, in one call. For trends (revenue, margins, cash flow over years or quarters) instead of calling get_financial_statements filing by filing. Returns each filing, newest first, with its statements as that filing presents them (the same text get_financial_statements gives). They are not combined into one table: a 10-K shows two or three years, so periods repeat across filings (the newest filing's figure is current; it may restate), and labels, line items and scale can differ between filings. Read the figures from each filing yourself. Coverage: filings with XBRL, which the SEC phased in by company size: the largest companies from mid-2009, other large companies from mid-2010, all others from mid-2011. Earlier reports have no statements here (read a 10-K's Item 8 with get_filing_item); to have earlier years added, email support@beatandraise.com. Args: cik: Company CIK (use search_companies to find it) period: "annual" (10-K, or a foreign filer's 20-F / 40-F; default 5 filings, max 10) or "quarterly" (10-Q, default 8, max 20; foreign filers report quarters on 6-K, not covered) statements: Optional subset: "income_statement", "balance_sheet", "cash_flow", "equity", "comprehensive_income". Ask for fewer to get more filings in one answer. limit: Number of filings to read before: Only filings filed on or before this date (YYYY-MM-DD), for history as of a past date fiscal_year: Only filings for this fiscal year, as the company states it on the filing (fiscal, not calendar: Medtronic's fiscal 2018 runs May 2017 to April 2018) fiscal_period: With or without fiscal_year: "Q1", "Q2", "Q3" (a 10-Q) or "FY" (the annual report). There is no Q4 filing: the fourth quarter is in the annual report, as the year. E.g. fiscal_year=2018, fiscal_period="Q1" returns that one 10-Q; fiscal_year=2018 with period="quarterly" returns its Q1-Q3. Each…
| Name | Type | Req | Description |
|---|---|---|---|
| before | – | – | – |
| cik | string | yes | – |
| fiscal_period | – | – | – |
| fiscal_year | – | – | – |
| include_tags | boolean | – | – |
| limit | – | – | – |
| period | string | – | – |
| statements | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_financial_statements Get Financial Statements ~428
Extract structured financial statements from a 10-K or 10-Q filing. Returns balance sheet, income statement, cash flow statement, equity statement, and comprehensive income — each as markdown table content extracted from the filing's XBRL R-files. To use this tool, first find a 10-K or 10-Q accession number using get_filings, then pass it here. Coverage: filings with XBRL, which the SEC phased in by company size: the largest companies from mid-2009, other large companies from mid-2010, all others from mid-2011. Earlier reports have no statements here (read a 10-K's Item 8 with get_filing_item); to have earlier years added, email support@beatandraise.com. Args: cik: Company CIK (e.g. "0000320193") accession_number: Accession number of a 10-K or 10-Q filing include_tags: true to also get each statement as `lines`: every line with its XBRL tag (concept, axis members, unit) and its figures for the filing's own period (this quarter and year to date, or the balance sheet date), each with its value in full units, the text the page prints, a `ref` for check_citations and a `highlight_url` that opens the 10-K / 10-Q with that number marked. For building a spreadsheet model or citing figures: concept + members + unit identifies the same line in the next filing. Figures printed as a dash (zero) and filings before mid-2019 (no inline XBRL) have no ref or link; a filing's tags are added the night after it is filed (`tags_note` says why a statement has none). Responses are larger: ask for fewer statements or filings.
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
| cik | string | yes | – |
| include_tags | boolean | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_fiscal_calendar Get Fiscal Calendar ~598
Get a company's fiscal calendar: every quarter it reported, with its own dates. One row per quarter, oldest first, from the company's 10-K and 10-Q reports in order: period_start is the day after the previous quarter's period end, period_end the report's, fiscal_year and fiscal_quarter by position after the previous annual report (Q4 is the 10-K), plus the quarter's length in months and the report that closes it (form, filing_date, accession_number; its page is beatandraise_base_url + accession_number). cover_fiscal_year / cover_fiscal_period are what the filing's cover says, as filed (about 1% disagree, flagged). latest_fiscal_year_end is the newest 10-K's period end. Use it whenever a question names a fiscal period ("Apple Q1 FY2024", "Nvidia's fiscal 2025", "Q4") to get the exact dates instead of guessing: fiscal years are not calendar years (Medtronic's fiscal 2018 runs May 2017 to April 2018), and 52/53 week companies end on a weekday that moves every year (Apple's FY2023 ended 2023-09-30, FY2024 on 2024-09-28). Also to see which report covers a quarter, and that Q4 has no 10-Q of its own: Q4 = the 10-K's year minus the Q3 10-Q's nine months. Irregular quarters are flagged, never corrected: irregular_quarter (not 3 months: a missing 10-Q, or a company that files only 10-Ks, whose rows are years), irregular_year, transition (10-KT/10-QT, a fiscal-year change), period_mismatch (header_period and xbrl_period differ; period_end is the one the filing's figures confirm), header_only (no XBRL, dates from the submission header, mostly before 2011), fy_mismatch / fp_mismatch, duplicate_report, amendment_only, first. 10-K/10-Q filers only: a foreign filer (20-F, 40-F) has no quarterly calendar here. Args: cik: Company CIK (e.g. "320193" for Apple; use search_companies to find it) fiscal_year: Only this fiscal year's quarters (e.g. 2024) from_date: Earliest period end (YYYY-MM-DD) to_date: Latest period end (YYYY-MM-DD) limit: The newest N quarter…
| Name | Type | Req | Description |
|---|---|---|---|
| cik | string | yes | – |
| fiscal_year | – | – | – |
| from_date | – | – | – |
| limit | integer | – | – |
| to_date | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_help Get Help: Coverage and Limits ~192
What the beatandraise.com tools cover, where they stop, and what to use instead. Call it when a tool returned nothing, an error or less than the user needed, or the user asks for something you cannot find a tool for. Put the user's need in their own words in question ("institutional ownership of SPY", "Risk Factors of a 40-F") and the tool that fell short in tool_name. The most relevant entries come first. The question is recorded, as every call's arguments are, and tells us what to add. A user who wants a reply can write to support@beatandraise.com. Args: question: What the user wanted, in their words tool_name: The tool that did not give it, if any (e.g. "get_institutional_holders")
| Name | Type | Req | Description |
|---|---|---|---|
| question | – | – | – |
| tool_name | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_holdings Get 13F Holdings ~484
Get parsed 13F-HR institutional holdings for a filer. Returns individual stock positions with issuer name, CUSIP, FIGI, market value, share count, investment discretion, and voting authority, parsed from the 13F information table XML ("format": "xml"), as filed: one row per entry, values in the filer's unit (thousands of dollars for most filings before 2023, dollars since). 13F-HRs filed before SEC introduced the XML table (2013 Q2) carry their holdings as a plain-text table in the filing's own document. For those the result has "format": "text" and "text": that document as filed, paged by line (limit/offset count lines, total_lines says how many). Read the table from it; search_document on its filename finds one position. "period" in the result is the quarter the report covers; "filing_date" is about 45 days later. A "period_note" says when the filer has no 13F for the period asked for and an earlier one is returned (that quarter is not filed yet, or the filer stopped). Each holding also carries issuer_cik, sic and sic_description (the SEC's SIC industry classification of the issuer, not GICS) when the CUSIP maps to a company with a SIC. In a typical quarter that is about 87% of the value held; funds, ETFs, options and unmapped CUSIPs have none. "with_sic" in the result says how many holdings on this page were classified, so say how much of a portfolio an industry breakdown covers. Use sic_url from get_company to see peers in an industry. Args: cik: CIK of the 13F filer / institutional investor (e.g. "1535950") period: Report period (YYYY-MM-DD), e.g. 2026-06-30 for the second quarter: the 13F for that period, else the latest period before it. Default: the latest period. limit: Max holdings per page (1-5000, default 500) offset: Pagination offset
| Name | Type | Req | Description |
|---|---|---|---|
| cik | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
| period | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_insider_transactions Get Insider Transactions ~644
Get parsed Form 4 insider transactions for a company. Returns insider buy/sell transactions with owner details (name, title, relationship), transaction details (date, code, shares, price), and post-transaction holdings. Data is extracted from the Form 4 XML. Transaction codes: P=Purchase, S=Sale, A=Award, M=Exercise, G=Gift, F=Tax (shares withheld to pay tax on a vesting or exercise, not a sale by choice). Every row carries plan_10b5_1: the filing's Rule 10b5-1 checkbox as filed (true, false, or null for filings from before the box existed in 2023). It is the filer's declaration for the whole filing. Filers sometimes leave it unticked and name a plan in a footnote (common for plans adopted before 2023), or tick it without one, so before saying a sale was or was not under a plan, read the footnotes (include_footnotes=True). An S alone does not tell a planned sale from a discretionary one. With include_footnotes=True each row also lists the footnotes it points to ({id, text}, as filed): plan adoption dates, the price range behind a weighted average price, shares sold to cover taxes, trusts and other indirect holdings. Covers filings from coverage_from (2024-01-01). By default only Form 4 Table I (the shares themselves) is returned. With include_table_ii=True, Table II lines are added and every row says which table it is from ("I" or "II"); Table II rows also give the underlying security, exercise price and dates. Table II is what the SEC calls "derivative securities" for Section 16: stock options, but also RSUs, PSUs and convertible share classes, which are compensation or share classes, not derivatives in the usual sense, so describe them by their security_title. An RSU vesting appears in both tables (an M disposal of units in II, an M acquisition of shares in I): count it once. A grant (A) is compensation, not a purchase. Table II covers filings from coverage_from (2024-01-01). Args: cik: Issuer CIK — the company whose insiders are trading (e.g. "320193"…
| Name | Type | Req | Description |
|---|---|---|---|
| cik | string | yes | – |
| from_date | – | – | – |
| include_footnotes | boolean | – | – |
| include_table_ii | boolean | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| to_date | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_institutional_holders Get Institutional Holders ~823
Who holds a company, from 13F filings: how much of each share class institutions hold, and how that changed quarter by quarter. The company-side view of 13F; get_holdings is the manager side (what one institution owns). Use it for questions like: - "What % of AMD do institutions hold, and how has it changed over the last 4 quarters?" -> quarters=4; read quarters[].share_classes[].pct_of_class. - "Is Baupost an investor in AMD?" -> holder="Baupost" (a name fragment or a filer CIK). holder.matched_filers says which 13F filers the name matched; holder.positions gives each quarter's position; holder.not_held_in lists quarters with none. If matched_filers is empty, no 13F filer has that name. With holder the response is lean by default (about 5 KB: no top_holders/buyers/sellers lists); pass detail="full" if you also need those. - "Who are the largest holders / who bought or sold most last quarter?" -> top_holders, biggest_buyers, biggest_sellers, largest_new_positions, largest_exits. - "Who owns more than 5%?" -> large_holders_5pct (latest 13D/13G per holder). Returns, newest complete quarter first (the quarter still being filed is in in_progress_quarter, not in quarters): quarters[]: period, holders, new_holders, exited_holders, shares_held, value_usd, share_classes[] (one per class on the company's cover page: shares_outstanding as of the 10-Q/10-K after the quarter, listed/symbol, held_by_13f, pct_of_class, holders, cusips), share_count_source (the filing the count comes from), holders_url. source.beatandraise_url: the holders page, the human view of the same data. Report each share class separately; never add classes together (Meta's Class B is unlisted, so no institution can hold it). State the caveats in notes when giving numbers: 13F is as filed and not deduplicated, options are excluded, holdings can exceed 100% for heavily shorted stocks, and a "new position" can be a manager whose previous 13F was late or a pl…
| Name | Type | Req | Description |
|---|---|---|---|
| cik | – | – | – |
| company | – | – | – |
| detail | – | – | – |
| holder | – | – | – |
| limit | integer | – | – |
| quarters | integer | – | – |
| ticker | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_private_offering Get Private Offering (Form D) ~185
Get one Form D filing in full, by accession number (from search_private_offerings). Everything search returns, plus: the issuer's full address, phone and previous names; co-issuers; related persons (executive officers, directors, promoters) with their roles and addresses as filed; sales compensation recipients (placement agents and brokers) with FINRA CRD numbers, their broker-dealer and the states they solicited in; notes the filer added to amounts, fees and use of proceeds; the signatures; and offering_history: every filing of the same offering (original notice and amendments, oldest first) with its cumulative amount sold and investor count, which shows how the raise filled over time. Args: accession_number: Form D accession number, e.g. "0001104659-26-114962"
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_shares_outstanding Get Shares Outstanding ~578
Get a company's shares outstanding over time, as stated on the cover page of each 10-K, 10-Q, 20-F and 40-F (dei:EntityCommonStockSharesOutstanding). One row per share class and as-of date, oldest first, each with the filing it comes from (source). Counts are as filed and never split-adjusted, so a stock split appears as a jump in ratio_to_previous (the count divided by the same class's previous count; Apple 2020: 3.98 for its 4-for-1, the gap being buybacks). splits lists every stock split and reverse split found, each with its ratio ("4-for-1", "3-for-2", "1-for-10"), the dates it falls between (happened_after, by) and the 10-K/10-Q that first restated the company's earlier share counts by that ratio, which accounting rules require for every split (source: cite it). restated_figures is how many share counts were restated: 1-2 is thin evidence. Two splits between the same two filings show as one with the combined ratio. share_count_tagging_corrections are jumps of 1000x or 1,000,000x in the reported data that were the company fixing the scale of its XBRL share-count tag, not splits. Covers 10-K, 10-Q, 20-F and 40-F filers (a 20-F/40-F filer reports once a year, so its window is about a year wide). A split is listed once a filing has restated the share counts, so a ratio_to_previous far from 1 with no split listed is worth checking in the filing. Use this for share-count history, dilution, buybacks and splits instead of reading filings one by one. Multi-class companies (Alphabet, Meta) have one series per class, named by the XBRL member (CommonClassAMember, CapitalClassCMember); "listed" maps classes to tickers from the newest filing. Covers filings from coverage_from (2009) on, for companies that tagged the count in XBRL. Filer errors (a zero, a mistyped date) are returned as filed. Args: cik: Company CIK (e.g. "320193" for Apple) share_class: Only this class, as returned in share_class (optional) from_date: Earliest as-of date (YYYY-MM-DD) to_…
| Name | Type | Req | Description |
|---|---|---|---|
| cik | string | yes | – |
| from_date | – | – | – |
| share_class | – | – | – |
| to_date | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_companies_by_sic List Companies by Industry (SIC) ~362
List the companies in an industry, using the SEC's Standard Industrial Classification (SIC). Pass a SIC code (3-4 digits, e.g. "6200" for securities brokers and exchanges, "3571" for electronic computers, "7372" for prepackaged software) to get its companies: CIK, name, ticker, state of incorporation and fiscal year end, 100 per page, companies with a ticker first. Get a company's own code from get_company or search_companies (sic). If you do not know the code, pass a word from the industry name instead ("software", "pharmaceutical", "bank", "oil") and you get the matching SIC codes with how many companies each has; then call again with the code you want. list_sic_codes shows the whole classification. SIC is the SEC's classification of the filer, assigned when it registers. It is not GICS or NAICS, individuals and most funds have none, and some codes are broad (e.g. 6770 "blank checks"). Args: industry: a SIC code like "6200", or a word to look up codes by ("software") query: with a code: only companies whose name or ticker contains this page: with a code: page number, 100 companies per page (default 1) listed_only: with a code: only companies that have an exchange ticker (default True). Set False to include the many dormant, delisted and asset-backed entities that carry the same code.
| Name | Type | Req | Description |
|---|---|---|---|
| industry | string | yes | – |
| listed_only | boolean | – | – |
| page | integer | – | – |
| query | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_figures List Figures in a Document ~355
List the numbers a filing document actually states, each with its label. Each entry is a number with its label (the table row's label, or the words leading up to it in prose) and its digits with formatting removed, e.g. {"digits": "416161", "text": "416,161", "label": "Total net sales"}. Any figure you state from this document must be one of these digit strings times a power of ten (possibly rounded): 416161 can be cited as $416.2 billion if the table is in millions, never as $416.9 billion. Work out the scale from the label and the table heading. Tables usually list columns in order (current period first); confirm the period from the document if it matters. Use near to filter by label (e.g. "gross margin", "net income"). A 10-K holds about 2,000 figures, so filter unless the document is short (press releases run ~400). Link an entry by appending "?hl=" + its hl + "&src=mcp#br-hl-0" to highlight_base. Args: cik: CIK of the filer (e.g. "0000320193") accession_number: SEC accession number filename: Document filename (e.g. "q4fy26cfocommentary.htm") near: Keep only figures whose label contains this text (case-insensitive) limit: Max figures returned (1-2000, default 300)
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
| cik | string | yes | – |
| filename | string | yes | – |
| limit | integer | – | – |
| near | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_filing_items List Filing Items ~325
List the Items of a 10-K, 10-Q, 8-K or 20-F: which sections the filing has and where. Each entry gives the item ("1A", "7", "2.02"), its part ("I".."IV"; 10-Q items repeat across Part I and Part II), the SEC's title, the heading as the filer wrote it, its length in characters, and a highlight_url that opens the filing with that whole section marked. Read one with get_filing_item. Items are found by their headings in the document, not by searching for the words "Item 1A", so a table of contents or a cross-reference is never mistaken for the section. not_located lists the form's items that were not found: the filing may not have them (Item 1C before 2023, a 10-K/A carrying only Part III, the many 8-K items a given 8-K doesn't report), or the heading was missed. get_filing_item still answers for those, with the text between the neighbouring items. Other forms (6-K, 40-F, DEF 14A, S-1...) have no numbered Items: read them with search_document or get_document. Args: accession_number: SEC accession number of a 10-K, 10-Q, 8-K or 20-F (e.g. "0000320193-25-000079")
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_filing_tables List Filing Tables ~237
List every R*.htm financial table in a filing (10-K, 10-Q, S-1, etc.). Returns one entry per <Report> in the filing's FilingSummary.xml — typically the Cover page, the core financial statements (income, balance sheet, cash flow, comprehensive income, equity), notes, and detail breakdowns. Each entry includes the filename you'd pass to get_document, plus a canonical type (xbrl_role_normalized) so you can find e.g. the income statement across different filers regardless of how they ordered their R-files. Common xbrl_role_normalized values: 'income_statement', 'balance_sheet', 'cash_flow', 'comprehensive_income', 'equity', 'segment', 'cover'. Empty list means the filing has no FilingSummary.xml (most 8-Ks, pre-2009 filings, short-form prospectuses) or it hasn't been indexed yet. Args: accession_number: SEC accession number (e.g. "0000320193-25-000079")
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_sic_codes List SIC Industry Codes ~229
List the SEC's SIC industry codes, so you know which code to use with list_companies_by_sic. With a query (a word from the industry title: "software", "bank", "oil", "pharmaceutical") you get the matching codes, most companies first, at most 50, each with the code (sic), the SEC's industry title (description), the SEC office that reviews filers in it (office), and how many companies we hold under it (companies, of which listed have an exchange ticker). Then call list_companies_by_sic with a code, or get_company for one company's own code. With no query you get every code (about 440) as one short line each, "code title (companies)", sorted by code. That is a long list, so prefer a query. SIC is the SEC's classification of the filer, assigned when it registers. It is not GICS or NAICS. Args: query: a word to look for in the industry titles (optional)
| Name | Type | Req | Description |
|---|---|---|---|
| query | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_companies Search Companies ~259
Search for companies by name or ticker symbol. Returns matching entities with CIK, all known names, and ticker symbols, plus the SEC's SIC industry code and name (sic, sic_description) for companies that have one. Use this to find a company's CIK before using other tools. A result with succession_filing filed an 8-K12B or 8-K12G3 in the last five years: it became the successor to an earlier registrant (a new holding company, a change of domicile, a merger), and the ticker usually moved with it. Its filings before that date, such as past 10-Ks, are often under the predecessor's CIK. To get the predecessor's name, search that filing (search_document) for "successor" or "12g-3" -- filers write "successor issuer", "successor registrant" or "successor to" -- then search for it. Args: query: Company name or ticker (e.g. "apple", "AAPL", "Tesla") limit: Max results (1-50, default 10)
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_document Search Within a Filing ~398
Search within a filing's documents for specific terms. Returns matching lines with context. If filename is omitted, searches every readable document in the filing (the main document and its exhibits, e.g. an 8-K's press release AND its CFO commentary), up to 12 files. A filing with only XML forms (Form 144, 3/4/5, 13F, N-PORT, D) is searched as raw XML lines, so element names (aggregateMarketValue, netAssets) match as well as values. If filename is provided, searches only that file. Each file in the result carries its own source (beatandraise_url) — cite the file the match came from. Workflow: 1. Use get_filings to find the accession number for the filing you want 2. Call this tool with just accession_number and query — it will search all its documents 3. Optionally use get_filing_detail to see all files, then search a specific one by filename Supports multiple search terms separated by commas — lines matching any term are returned. A comma inside a number is kept: "3,007" or "464,391" is searched as one figure. Args: accession_number: SEC accession number (e.g. "0001045810-25-000023") query: Search terms, comma-separated (e.g. "singapore,revenue" or "risk factors") cik: Optional. CIK of the filer (e.g. "0000320193"); found from the accession number when left out filename: Optional document filename. If omitted, searches all readable documents. context_lines: Lines of context around each match (0-50, default 10)
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
| cik | – | – | – |
| context_lines | integer | – | – |
| filename | – | – | – |
| query | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_filings Search Filings ~446
Full-text search across all SEC filing content. Returns matching documents, relevance-ranked, with facets by form type and year. With limit 10 or less (the default), each result carries an excerpt: the passage of the document where the most query terms meet, to judge the hit without opening it. Page on with page= for more; a larger limit returns no excerpts. For every occurrence in one document, use search_document. Use this to find filings mentioning specific topics like "revenue growth", "cybersecurity risk", "stock buyback", etc. Coverage: filings from 2020 onwards, except Forms 3/4/5, 144, N-PORT, 13F and D. A search for an earlier year finds nothing (the response's coverage_note says so); for older filings, list them with get_filings (cik, form, from_date, to_date; back to 1993) and read them with search_document or get_document. Users who need older years searched can email support@beatandraise.com. Args: query: Search query (e.g. "revenue growth", "cybersecurity risk factors") form: Filter by SEC form type (e.g. "10-K", "10-Q", "8-K") cik: The company's CIK, if known (search_companies gives it): narrows the search to that company's filings. E.g. for Clear Channel Outdoor's merger background, cik="0001334978" with query="go-shop confidentiality agreement", not the company name in query. Without it every company's filings are searched, and a name in query is matched as words. year: Filter by filing year (e.g. "2025") limit: Results per page (1-100, default 10; excerpts only up to 10) page: Page number (0-indexed)
| Name | Type | Req | Description |
|---|---|---|---|
| cik | – | – | – |
| form | – | – | – |
| limit | integer | – | – |
| page | integer | – | – |
| query | string | yes | – |
| year | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_private_offerings Search Private Offerings (Form D) ~1,790
Search Form D filings: private placements and private funds (exempt offerings under Regulation D, Section 4(a)(5) and the Investment Company Act 3(c) exclusions), since 2009. Each result is one filing: issuer (CIK, name, city, state, entity type, year of incorporation), industry group and fund type, revenue or net-asset-value range, exemptions claimed (code and meaning), securities offered, date of first sale, total offering amount (null with offering_amount_indefinite=true when the filer wrote "Indefinite"), total amount sold so far, remaining, minimum investment, number of investors and non-accredited investors, sales commissions, finders' fees, proceeds paid to executives/directors/promoters, and counts of related persons and sales recipients. totals sums the WHOLE match, not just the page, and totals.by_category breaks it down by industry group and fund type. Categories are SEC's own (Form D Item 4), as the filer chose them; filter with exactly these (case does not matter, several comma-separated). industry: Banking & financial: Commercial Banking, Insurance, Investing, Investment Banking, Pooled Investment Fund, Other Banking and Financial Services Real estate: Commercial, Construction, REITS and Finance, Residential, Other Real Estate Technology: Computers, Telecommunications, Other Technology Health care: Biotechnology, Health Insurance, Hospitals and Physicians, Pharmaceuticals, Other Health Care Energy: Coal Mining, Electric Utilities, Energy Conservation, Environmental Services, Oil and Gas, Other Energy Travel: Airlines and Airports, Lodging and Conventions, Tourism and Travel Services, Other Travel Single: Agriculture, Business Services, Manufacturing, Retailing, Restaurants, Other fund_type (given only when industry is Pooled Investment Fund): Hedge Fund, Private Equity Fund, Venture Capital Fund, Other Investment Fund. Issuer size (Form D Item 5), also SEC's own values: revenue_range (operating companies, and VC/PE funds): No R…
| Name | Type | Req | Description |
|---|---|---|---|
| amendments | string | – | – |
| cik | – | – | – |
| exclude_industry | – | – | – |
| exemption | – | – | – |
| from_date | – | – | – |
| fund_type | – | – | – |
| industry | – | – | – |
| limit | integer | – | – |
| max_offering | – | – | – |
| max_sold | – | – | – |
| min_offering | – | – | – |
| min_sold | – | – | – |
| nav_range | – | – | – |
| offset | integer | – | – |
| person | – | – | – |
| q | – | – | – |
| recipient | – | – | – |
| revenue_range | – | – | – |
| security | – | – | – |
| solicited_in | – | – | – |
| sort | string | – | – |
| state | – | – | – |
| to_date | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
verify_figure Verify a Figure ~521
Check that a number you are about to state appears in a filing, however it is written. Every number is compared as its digits alone (separators, decimal point, sign, $ and % dropped, zeros trimmed): "416,161", "416.161" and "416,161,000" are all 416161. Your figure must be one of the filing's numbers times a power of ten, allowing for rounding to the digits you give: "$416.2 billion" matches 416,161 (in millions), "75%" matches "75.0 %". Searches every document in the filing (main document and exhibits) unless filename is given. Candidates are ranked by exactness and by your label's words appearing in the number's row label or lead-in text. Returns found, match_count, and up to 10 matches, each with its document, label, context and a highlight_url that marks that exact number in the beatandraise.com viewer. Matching ignores magnitude, so confirm each candidate's label, period and scale from its context, then cite its highlight_url. found=false means no number in the filing has those digits: do not attribute the figure to the filing. If you calculated it (a growth rate, a margin), say so and cite the inputs instead. found=null with checked=false means nothing was checked, which says nothing about the figure: a structured XML form (Form 3/4/5, 144, D, 13F) has no text to check, so read its values with get_document and cite that; the note says what to do. Args: cik: CIK of the filer (e.g. "0000320193") accession_number: SEC accession number value: The figure as you would state it (e.g. "$416.2 billion", "75.0%", "-1,234"). A value with one significant digit ("$10.00", "20,000,000") only matches numbers written exactly the same way; "$2 million" is too vague to check. label: What the figure is (e.g. "total net sales", "GAAP gross margin"). Used for ranking. filename: Optional single document to check instead of the whole filing
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
| cik | string | yes | – |
| filename | – | – | – |
| label | – | – | – |
| value | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
verify_quote Verify a Quote or Figure ~381
Check that a figure or sentence really appears in a filing document, and get a link that highlights exactly where. Use this before stating any number or quotation from a filing. Analysts need to see the figure in the source; a link to the whole document is not enough. Quote the text as it appears in the document: a sentence, or a table row's label and figure ("Total net sales 416,161", "Gross margin 75.0%"). Words and numbers must match exactly. Spacing, table-cell breaks, "$" and curly quotes may differ. Returns found (true/false) and, for each occurrence, its surrounding context, a highlight_url (beatandraise.com viewer, marks that exact span, including across table cells), to cite with the quotation. If there are several occurrences, pick the one whose context fits the claim, or quote more of the row to pin one. If found is false, do not present the text as a quotation from this document: numbers_elsewhere shows where its figures do appear, which usually reveals a misremembered figure or the wrong document. Args: cik: CIK of the filer (e.g. "0000320193") accession_number: SEC accession number (e.g. "0000320193-25-000079") filename: The document the text came from (e.g. "aapl-20250927.htm", or an exhibit such as "q4fy26cfocommentary.htm"), as listed in content_object or in a search result quote: The exact text to find (max 1000 characters)
| Name | Type | Req | Description |
|---|---|---|---|
| accession_number | string | yes | – |
| cik | string | yes | – |
| filename | string | yes | – |
| quote | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the beatandraise.com SEC Filings MCP server?
beatandraise.com SEC Filings is a hosted endpoint at https://beatandraise.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · beatandraise.com
claude mcp add --transport http com-beatandraise-sec-filings 'https://beatandraise.com/mcp'
What is the beatandraise.com SEC Filings MCP server?
beatandraise.com SEC Filings is an MCP server listed in the public MCP registry as com.beatandraise/sec-filings. SEC EDGAR since 1993: search and read filings, insiders, 13F, statements; verify quotes and figures. This page covers its hosted endpoint (https://beatandraise.com/mcp).
Is the beatandraise.com SEC Filings MCP server safe to use?
beatandraise.com SEC Filings scores 69 out of 100 on VerifyMCP. 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 beatandraise.com SEC Filings MCP server expose?
beatandraise.com SEC Filings exposes 26 tools: search_filings, search_companies, get_company, list_sic_codes, list_companies_by_sic, and 21 more. Their descriptions and schemas cost roughly 12,464 tokens of context every time the server is loaded.
Does the beatandraise.com SEC Filings MCP server require authentication?
No. We connected to beatandraise.com SEC Filings without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the beatandraise.com SEC Filings MCP server still maintained?
beatandraise.com SEC Filings 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.