beatandraise.com SEC Filings
com.beatandraise/sec-filingsbeatandraise.comstreamable-httpv1.0.0Scanned
SEC EDGAR since 1993: search and read filings, insiders, 13F, statements; verify quotes and figures.
26 tools: 3 change things and 23 only read.
- Reads private data · 6
- Reads text others write · 25
- Can send data out · 1
- 7 findings
Anlyon alternative
3 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
26 tools
Changes things 3Claude Code: ask
check_citationsCheck every number in a draft against the filing characters it cites, and link them.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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)
Annotations the server declares
- title: Check Citations in a Draft
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
verify_figureCheck that a number you are about to state appears in a filing, however it is written.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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. 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
Annotations the server declares
- title: Verify a Figure
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
verify_quoteCheck that a figure or sentence really appears in a filing document, and get a link that highlights exactly where.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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)
Annotations the server declares
- title: Verify a Quote or Figure
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 23Show 23 read-only tools
get_companyLook up a company by CIK to get its name(s), ticker(s) and industry.Reads text others writeNo findings
Why it is in this group
- The name "get_company" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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")
Annotations the server declares
- title: Get Company
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_documentFetch a filing document's content from storage.Reads private dataReads text others writeCan send data outNo findings
Why it is in this group
- The name "get_document" says "get": a word for reading.
What it can reach
- private-dataThe name "get_document" says "get" and "document": it reads documents.
- private-dataThe description's first sentence says "fetch" and "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Filing Document
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_filing_detailGet full filing metadata including its content_object.Reads text others writeNo findings
Why it is in this group
- The name "get_filing_detail" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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")
Annotations the server declares
- title: Get Filing Detail
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_filing_itemRead one Item of a 10-K, 10-Q, 8-K or 20-F, e.g.Reads text others writeNo findings
Why it is in this group
- The name "get_filing_item" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Filing Item
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_filingsQuery SEC filings by form type, date range, CIK and/or 8-K item.Reads text others write1 finding
Why it is in this group
- The name "get_filings" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description is 3,681 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...limit is lowered to fit: ask for fewer filings when you want whole MD&As."
Description, as the server wrote it 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_date: End date inclusive (YYYY-MM-DD) limit: Max results (1-100, default 100; at most 25 with include_item_text). For more, page with offset offset: Pagination offset item: Only 8-Ks reporting this item, by its number as the 8-K header states it, e.g. "5.02" (departure or election of directors or officers, officers' pay), "1.01" (material agreement), "2.01" (acquisition or disposal), "4.01" (auditor change), "5.07" (shareholder vote); several comma-separated match any ("1.01,2.01"). Defaults form to "8-K,8-K/A". Numbered since 2004-08-23. Use it instead of reading 8-Ks one by one to find, say, every director change this week. include_item_text: With item, also return each filing's text of that item (item_texts: item, title, text up to 10,000 characters, highlight_url marking it in the filing), so a screen across companies takes one call. The header only says 5.02; whether it is a director, a CEO or a pay plan is in the text. item_text: Items whose text to return with each filing, for any 10-K, 10-Q or 8-K (not only with item): by number or name, up to 5 comma-separated, e.g. "MD&A", "1A", "Risk Factors", "Part II Item 1A", "5.02". With form="10-Q" and a cik, "MD&A" gives a company's last several MD&As in one call. A filing without that Item says so in its item_texts entry ("not in this filing"). item_text_chars: Characters of text per Item, 1,000-100,000 (default 10,000). The whole page carries at most 500,000 characters of text, so limit is lowered to fit: ask for fewer filings when you want whole MD&As.
Annotations the server declares
- title: List Filings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_financial_historyA company's financial statements from its last several 10-Ks or 10-Qs, in one call.Reads text others write1 finding
Why it is in this group
- The name "get_financial_history" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description is 2,904 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ent has none). Responses are larger: ask for fewer statements or filings."
Description, as the server wrote it 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 returned filing carries its fiscal_year and fiscal_period. 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.
Annotations the server declares
- title: Get Financial History
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_financial_statementsExtract structured financial statements from a 10-K or 10-Q filing.Reads text others writeNo findings
Why it is in this group
- The name "get_financial_statements" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Financial Statements
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_fiscal_calendarGet a company's fiscal calendar: every quarter it reported, with its own dates.Reads private dataReads text others write1 finding
Why it is in this group
- The name "get_fiscal_calendar" says "get": a word for reading.
What it can reach
- private-dataThe name "get_fiscal_calendar" says "get" and "calendar": it reads calendars.
- private-dataThe description's first sentence says "get" and "calendar": it reads calendars.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description is 2,057 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...t: The newest N quarters in the window, returned oldest first (1-400, default 40)"
Description, as the server wrote it 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 quarters in the window, returned oldest first (1-400, default 40)
Annotations the server declares
- title: Get Fiscal Calendar
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_helpWhat the beatandraise.com tools cover, where they stop, and what to use instead.No findings
Why it is in this group
- The name "get_help" says "get": a word for reading.
Description, as the server wrote it 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")
Annotations the server declares
- title: Get Help: Coverage and Limits
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_holdingsGet parsed 13F-HR institutional holdings for a filer.Reads text others writeNo findings
Why it is in this group
- The name "get_holdings" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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. A "period_note" says when the filer's latest 13F before the period asked for is over a year older (it stopped filing). 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: Get holdings as of this date (YYYY-MM-DD). Returns the most recent 13F filed on or before this date. limit: Max holdings per page (1-5000, default 500) offset: Pagination offset
Annotations the server declares
- title: Get 13F Holdings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_insider_transactionsGet parsed Form 4 insider transactions for a company.Reads private dataReads text others write1 finding
Why it is in this group
- The name "get_insider_transactions" says "get": a word for reading.
What it can reach
- private-dataThe input names a table (input.include_table_ii), and the tool reads: it reads databases.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description is 2,333 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...t False) include_footnotes: Also return each line's footnotes (default False)"
Description, as the server wrote it 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" for Apple) from_date: Start date (YYYY-MM-DD) to_date: End date (YYYY-MM-DD) limit: Max filings to process (1-100, default 20) offset: Pagination offset include_table_ii: Also return Table II lines: options, RSUs and the like (default False) include_footnotes: Also return each line's footnotes (default False)
Annotations the server declares
- title: Get Insider Transactions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_institutional_holdersWho holds a company, from 13F filings: how much of each share class institutions hold, and how that changed quarter by quarter.Reads text others write1 finding
Why it is in this group
- The name "get_institutional_holders" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description is 2,705 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...(adds top holders, buyers, sellers, new positions, exits and 5%+ holders)"
Description, as the server wrote it 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 placeholder. Cite share_count_source's link for share counts and holders_url for holdings. Args: company: Ticker (e.g. "AMD") or CIK of the company being held (not of the institution) quarters: Number of complete quarters, newest first (1-12, default 4) holder: Optional 13F filer to follow across the quarters: a name fragment ("Baupost", "Berkshire") or a CIK ("1061768") limit: Number of top holders to return for the latest quarter (1-100, default 25) detail: "lean" or "full". Default: lean when holder is given (just the holder's positions, share classes and sources), full otherwise (adds top holders, buyers, sellers, new positions, exits and 5%+ holders)
Annotations the server declares
- title: Get Institutional Holders
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_private_offeringGet one Form D filing in full, by accession number (from search_private_offerings).Reads text others writeNo findings
Why it is in this group
- The name "get_private_offering" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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"
Annotations the server declares
- title: Get Private Offering (Form D)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_companies_by_sicList the companies in an industry, using the SEC's Standard Industrial Classification (SIC).Reads text others writeNo findings
Why it is in this group
- The name "list_companies_by_sic" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- title: List Companies by Industry (SIC)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_figuresList the numbers a filing document actually states, each with its label.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_figures" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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)
Annotations the server declares
- title: List Figures in a Document
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_filing_itemsList the Items of a 10-K, 10-Q, 8-K or 20-F: which sections the filing has and where.Reads text others writeNo findings
Why it is in this group
- The name "list_filing_items" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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")
Annotations the server declares
- title: List Filing Items
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_filing_tablesList every R*.htm financial table in a filing (10-K, 10-Q, S-1, etc.).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_filing_tables" says "list": a word for reading.
What it can reach
- private-dataThe name "list_filing_tables" says "list" and "table": it reads databases.
- private-dataThe description's first sentence says "list" and "table": it reads databases.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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")
Annotations the server declares
- title: List Filing Tables
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_sic_codesList the SEC's SIC industry codes, so you know which code to use with list_companies_by_sic.Reads text others writeNo findings
Why it is in this group
- The name "list_sic_codes" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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)
Annotations the server declares
- title: List SIC Industry Codes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_companiesSearch for companies by name or ticker symbol.Reads text others writeNo findings
Why it is in this group
- The name "search_companies" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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)
Annotations the server declares
- title: Search Companies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_documentSearch within a filing's documents for specific terms.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "search_document" says "search": a word for reading.
What it can reach
- private-dataThe name "search_document" says "search" and "document": it reads documents.
- private-dataThe description's first sentence says "search" and "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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)
Annotations the server declares
- title: Search Within a Filing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_filingsFull-text search across all SEC filing content.Reads text others writeNo findings
Why it is in this group
- The name "search_filings" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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: Filter by company CIK number 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)
Annotations the server declares
- title: Search Filings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_private_offeringsSearch 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.Reads text others write1 finding
Why it is in this group
- The name "search_private_offerings" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description is 6,809 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...st) limit: Results per page (1-100, default 20) offset: Pagination offset"
Description, as the server wrote it 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 Revenues, $1 - $1,000,000, $1,000,001 - $5,000,000, $5,000,001 - $25,000,000, $25,000,001 - $100,000,000, Over $100,000,000, Decline to Disclose, Not Applicable nav_range (hedge funds and other investment funds): No Aggregate Net Asset Value, $1 - $5,000,000, $5,000,001 - $25,000,000, $25,000,001 - $50,000,000, $50,000,001 - $100,000,000, Over $100,000,000, Decline to Disclose, Not Applicable About 82% of filers choose Decline to Disclose for revenue (nearly all funds for NAV), so a size filter finds only those that disclosed; for "smaller raises" filter on amounts instead (max_sold, max_offering) and say which you used. Examples from real filings: Founders Fund Growth IV, LP -> Pooled Investment Fund / Venture Capital Fund Blackstone Private Equity Strategies Fund L.P. -> Pooled Investment Fund / Private Equity Fund Renaissance Institutional Diversified Global Equities Onshore Fund -> Pooled Investment Fund / Hedge Fund BlackRock Private Equity Co-Investments 2025 (Lux) SCSp -> Pooled Investment Fund / Other Investment Fund Alexander Series Trust (a cash fund) -> Pooled Investment Fund / Other Investment Fund New York Life Insurance & Annuity Corp -> Insurance Blackstone Real Estate Income Trust -> REITS and Finance Blue Owl Real Estate Exchange VI DST (a real estate syndication) -> Other Real Estate Space Exploration Technologies (SpaceX), X.AI Holdings, Databricks -> Other Technology Koios Medical -> Biotechnology The filer picks the category, so similar vehicles can land in different ones (a single-deal SPV may be Pooled Investment Fund or Other; some real estate syndications tick "pooled investment fund interests" as the security while choosing a real estate group). The securities field (pooled_fund, equity, debt...) is a second, independent signal. How to read the numbers: - A Form D/A restates the whole form, and total_amount_sold is cumulative. amendments="latest" (default) returns each offering once, at its newest filing, so sums never double count; "new" returns only original notices filed in the date range (new raises); "all" every filing. - For a Pooled Investment Fund, above all an evergreen or cash fund with an Indefinite offering, amount sold is cumulative subscriptions since the offering began (money in and out), not capital raised: Alexander Series Trust reports $591 billion. Read by_category before adding categories together, and say which categories a total includes. - Dates filter the filing date, not the date of first sale. - Form D says where the issuer is (state) and where paid salespeople solicited (solicited_in), never where investors live. Use get_private_offering for one filing in full (people, placement agents, offering history). Args: q: Issuer name contains (e.g. "Databricks"). Also matches funds and SPVs named after a company ("Gaingels Databricks 2023 LLC"), which are investors in it, not the company. cik: Issuer CIK; matches primary issuer or co-issuer. For one company's own filings, find its CIK with search_companies and pass it here rather than q. industry: One or more SEC industry groups from the list above, comma-separated exclude_industry: Industry groups to leave out, comma-separated (e.g. "Pooled Investment Fund" for operating companies only) fund_type: One or more of Hedge Fund, Private Equity Fund, Venture Capital Fund, Other Investment Fund revenue_range: One or more SEC revenue ranges from the list above, comma-separated nav_range: One or more SEC net asset value ranges from the list above, comma-separated exemption: "506(b)", "506(c)", "506" (any Rule 506 incl. pre-2013), "504", "4(a)(5)", "3(c)(1)", "3(c)(7)"... security: equity, debt, option_warrant, security_to_be_acquired, pooled_fund, tenant_in_common, mineral_property, other state: Issuer's state/country code, e.g. "CA", "NY", "X0" (United Kingdom) solicited_in: Two-letter state where a paid placement agent… [809 more characters not shown]
Annotations the server declares
- title: Search Private Offerings (Form D)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
150 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 1 outbound tool breaks every one.
- Reads private data6
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write25
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out1
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__sec-filings__get_document"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Infoget_filings
The description is 3,681 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...limit is lowered to fit: ask for fewer filings when you want whole MD&As."
The description is 2,705 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...(adds top holders, buyers, sellers, new positions, exits and 5%+ holders)"
The description is 2,333 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...t False) include_footnotes: Also return each line's footnotes (default False)"
The description is 2,035 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ate: Earliest as-of date (YYYY-MM-DD) to_date: Latest as-of date (YYYY-MM-DD)"
The description is 2,057 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...t: The newest N quarters in the window, returned oldest first (1-400, default 40)"
The description is 6,809 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...st) limit: Results per page (1-100, default 20) offset: Pagination offset"
Show 1 more findingShow fewer
The description is 2,904 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...ent has none). Responses are larger: ask for fewer statements or filings."
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http sec-filings https://beatandraise.com/mcpclaude mcp add --transport http sec-filings https://beatandraise.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__sec-filings__search_filings",
"mcp__sec-filings__search_companies",
"mcp__sec-filings__get_company",
"mcp__sec-filings__list_sic_codes",
"mcp__sec-filings__list_companies_by_sic",
"mcp__sec-filings__get_filings",
"mcp__sec-filings__get_filing_detail",
"mcp__sec-filings__list_filing_items",
"mcp__sec-filings__get_filing_item",
"mcp__sec-filings__list_filing_tables",
"mcp__sec-filings__get_holdings",
"mcp__sec-filings__get_institutional_holders",
"mcp__sec-filings__get_insider_transactions",
"mcp__sec-filings__get_shares_outstanding",
"mcp__sec-filings__get_fiscal_calendar",
"mcp__sec-filings__search_private_offerings",
"mcp__sec-filings__get_private_offering",
"mcp__sec-filings__get_financial_statements",
"mcp__sec-filings__get_financial_history",
"mcp__sec-filings__search_document",
"mcp__sec-filings__list_figures",
"mcp__sec-filings__get_help"
],
"ask": [
"mcp__sec-filings__get_document",
"mcp__sec-filings__verify_quote",
"mcp__sec-filings__verify_figure",
"mcp__sec-filings__check_citations"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as sec-filings. Review it before you use it.
Capability tags behind 25 rules
- mcp__sec-filings__search_filings untrusted-input
- mcp__sec-filings__search_companies untrusted-input
- mcp__sec-filings__get_company untrusted-input
- mcp__sec-filings__list_sic_codes untrusted-input
- mcp__sec-filings__list_companies_by_sic untrusted-input
- mcp__sec-filings__get_filings untrusted-input
- mcp__sec-filings__get_filing_detail untrusted-input
- mcp__sec-filings__get_document private-data, untrusted-input, outbound
- mcp__sec-filings__list_filing_items untrusted-input
- mcp__sec-filings__get_filing_item untrusted-input
- mcp__sec-filings__list_filing_tables private-data, untrusted-input
- mcp__sec-filings__get_holdings untrusted-input
- mcp__sec-filings__get_institutional_holders untrusted-input
- mcp__sec-filings__get_insider_transactions private-data, untrusted-input
- mcp__sec-filings__get_shares_outstanding untrusted-input
- mcp__sec-filings__get_fiscal_calendar private-data, untrusted-input
- mcp__sec-filings__search_private_offerings untrusted-input
- mcp__sec-filings__get_private_offering untrusted-input
- mcp__sec-filings__get_financial_statements untrusted-input
- mcp__sec-filings__get_financial_history untrusted-input
- mcp__sec-filings__search_document private-data, untrusted-input
- mcp__sec-filings__verify_quote untrusted-input
- mcp__sec-filings__verify_figure untrusted-input
- mcp__sec-filings__list_figures private-data, untrusted-input
- mcp__sec-filings__check_citations untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/com.beatandraise/sec-filings/verify?hash=31c04614cc7f9c5a7d1a0f6d041073c2a6e316b2c7d99a0dc2ffefb9ef104078" | jq -e '.changed == false'Pinned hash 31c04614cc7f, from Oct 30, 2026, 07:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.beatandraise/sec-filings/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.beatandraise/sec-filings)Source: MCP Registry. Synced Oct 30, 2026, 07:17 UTC.