Skip to main content
Glama

Get Filing Document

get_filing_document
Read-only

Get the full raw text/HTML content of an SEC filing by its internal filing ID (the id on filing search rows, or filingId from an accession-number lookup or a filing's document list). Returns the complete filing document, which can be very large (10-K filings can be 1MB+); maxLength truncates content for previews. The response includes company_name, form_type, filing_date, cik, and accession_number alongside the content. Record-only filings (bodyStored: false) have no body here; the document is on sec.gov. Content is the whole submission as filed. Coverage: Signal8's SEC EDGAR archive, updated through the day, in its held range (see archiveFrom in each response; currently from late 2021, expanding back to 2016 as the history backfill fills in). Before archiveFrom it holds only a scatter, so absence before archiveFrom is not evidence a filing was never filed; SEC EDGAR itself covers earlier periods. Record-only rows (bodyStored: false) have no stored body; the document is at its sec.gov URL.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "filingId": "<filingId>"
    },
    "name": "get_filing_document"
  }
}

Input Schema

NameRequiredDescriptionDefault
filingIdYesInternal filing ID (numeric), the `id` on filing search rows.
maxLengthNoTruncate content to this many characters. Useful for previewing large filings. Response includes a "truncated" boolean when truncation is applied.

Output Schema

NameRequiredDescriptionDefault
dataNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / filingId / description
      Previous value: -"Internal filing ID (numeric). Find via search_sec_filings."New value: +"Internal filing ID (numeric), the `id` on filing search rows."
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a read-only, non-destructive, closed-world read, and the description adds substantial behavior beyond that: documents can exceed 1MB, truncation via maxLength yields a 'truncated' boolean, the response bundles company_name/form_type/filing_date/cik/accession_number, and record-only filings (bodyStored: false) return no body. The archive range and backfill caveat are also disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the text is bloated and repeats itself: the record-only / bodyStored:false caveat is stated twice (mid-paragraph and again at the end), and the archive coverage discussion spans several clauses. Two sentences could be cut without losing any decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter fetch tool, the definition covers every failure mode an agent would hit: oversized documents, truncation flags, missing bodies, and archive range limits. An output schema exists, yet the sidecar metadata is still described, leaving nothing material unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it tells the agent where to obtain filingId across three source paths and explains that maxLength truncates with a corresponding 'truncated' flag. It does not restate types or constraints, which the schema already handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Get the full raw text/HTML content of an SEC filing by its internal filing ID.' It also pins down where the ID comes from (search rows, accession-number lookup, document list), which implicitly separates it from get_filing_documents and lookup_accession_number. It stops short of explicitly naming the sibling to use for exhibits or full-text search, so it is not a full 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: use maxLength for previews of very large filings, and record-only rows have no stored body so the document must be fetched from sec.gov. The archive coverage caveat (absence before archiveFrom is not evidence of non-filing) is genuinely useful guidance for interpreting results. No explicit 'use X instead' routing to search_filing_text or get_exhibit_content.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources