Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

List Filing Sections

list_filing_sections
Read-onlyIdempotent

Table of contents of a 10-K / 10-Q / 8-K (or 10-K/A, 10-Q/A, 8-K/A) so an agent can read the filing's WORDS: returns the form, filing/period/acceptance dates, the primary-document URL, and every section found with its key, title, char_count and a short first_line. 10-K keys are the Item numbers (1, 1A, 1B, 1C, 2-6, 7, 7A, 8, 9, 9A, 9B, 9C, 10-16 when present); 10-Q keys are I-1..I-4 and II-1, II-1A, II-2, II-5, II-6; financial-statement notes are note-N (listed separately under notes; a filer that puts its statements under Item 15 has them there); an amendment opens with explanatory-note. 8-K keys are its Item numbers (2.02 results, 5.02 officers and directors, 7.01 Regulation FD, 8.01 other events, 9.01 exhibits; 5, 7, 12 on filings before August 2004) and each EX-99 exhibit (the press release or letter the event is told in) is its own section ex-99.1, ex-99.2, with its own source_url; unread_documents names any EX-99 exhibit not included (too large, missing, or past the first 4) with its EDGAR URL. document is always listed last: the whole filing text (an 8-K's exhibits included), paged like any section. Read it when an Item is only a page pointer (a cross-reference-index 10-K: "Item 7 | Pages 45-90") or missing; nothing in the filing is out of reach. PROVENANCE: this is TEXT, not figures. A number read in a section is NOT a Valuein figure. Cite it as "stated in {form} {accession_id}, {section}" and never mint a fact_id or compute from it; figures come from the fact tools. Find accession numbers with get_sec_filing_links, then call read_filing_section; to find a statement, note or phrase without paging, call find_in_filing. PIT-safe: a filing is its own as-of date; pass as_of_date to refuse a filing accepted after it. Coverage follows the plan (sample: S&P 500 sample, 5 years; Benchmark: S&P 500; Pro: from 2011; Institutional: everything). Read-only; fetched from SEC EDGAR once per accession and cached.

Input Schema

NameRequiredDescriptionDefault
tickerYesStock ticker, e.g. AAPL — or a CIK (SEC identifier), e.g. '0000320193'. A CIK is the stable identifier.
accessionYesEDGAR accession number of the 10-K / 10-Q / 8-K, e.g. '0000320193-19-000119'. Take it from get_sec_filing_links.
as_of_dateNoPoint-in-time guard (YYYY-MM-DD). A filing is its own as-of: if it was accepted by the SEC after this date the call is refused rather than reading text that did not exist yet.

Output Schema

NameRequiredDescriptionDefault
_metaYesProvenance envelope — data lineage for every MCP response
notesYes
tickerYes
sec_urlYes
sectionsYes
form_typeYes
source_urlYesThe EDGAR document the text was read from.
accepted_atYes
filing_dateYes
report_dateYes
total_charsYes
accession_idYes
provenance_noteYes
unread_documentsYes8-K exhibits the index lists that the text does not include; empty when every one was read.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / accession / description
      Previous value: -"EDGAR accession number of the 10-K / 10-Q, e.g. '0000320193-19-000119'. Take it from get_sec_filing_links."New value: +"EDGAR accession number of the 10-K / 10-Q / 8-K, e.g. '0000320193-19-000119'. Take it from get_sec_filing_links."
    • addedOutput schema / properties / sections / items / properties / source_url
      Added value: +{
      +  "description": "The EDGAR document an exhibit section (`ex-99.N`) was read from; absent on sections of the main document.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / unread_documents
      Added value: +{
      +  "description": "8-K exhibits the index lists that the text does not include; empty when every one was read.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "key": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "description": "too_large: past the reading limit; not_found: listed but missing on EDGAR; over_limit: past the exhibits read per filing; no_text: no readable text.",
      +        "enum": [
      +          "too_large",
      +          "not_found",
      +          "over_limit",
      +          "no_text"
      +        ],
      +        "type": "string"
      +      },
      +      "source_url": {
      +        "description": "Open the exhibit here: it is NOT in the text this tool serves.",
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "key",
      +      "title",
      +      "source_url",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "_meta",
      -  "ticker",
      -  "accession_id",
      -  "form_type",
      -  "filing_date",
      -  "report_date",
      -  "accepted_at",
      -  "source_url",
      -  "sec_url",
      -  "total_chars",
      -  "sections",
      -  "notes",
      -  "provenance_note"
      -]New value: +[
      +  "_meta",
      +  "ticker",
      +  "accession_id",
      +  "form_type",
      +  "filing_date",
      +  "report_date",
      +  "accepted_at",
      +  "source_url",
      +  "sec_url",
      +  "total_chars",
      +  "sections",
      +  "notes",
      +  "unread_documents",
      +  "provenance_note"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."New value: +"payg_charge = real pay-per-call charge (a card or MPP payment through agent-pay). payg_rate_card = indicative price, not billed."
  3. Changed2 schema fields changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed."New value: +"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / billed / description
      Previous value: -"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free."New value: +"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value only: no charge was made for this call (it was within your plan)."
  4. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description adds non-obvious behavior beyond them: `unread_documents` surfaces oversized/missing/5th+ EX-99 exhibits with their EDGAR URLs, `document` is always listed last and covers the whole filing, results are fetched from EDGAR once per accession and cached, coverage varies by plan, and `as_of_date` causes a refusal rather than a truncated read.

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

Conciseness4/5

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

Front-loaded with the return shape and nearly every sentence carries operative information (key taxonomy, exhibit handling, provenance rules, tool routing). The weakness is form: one dense wall of text with internal enumeration (Item lists, 8-K keys) that an agent must parse rather than scan; a few coverage/provenance clauses could be tightened.

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?

Output schema exists, yet the description still pre-explains the section-key vocabulary — including the special cases (notes listed separately, Item 15 filers, amendment explanatory-note, 8-K pre-2004 keys) — so an agent can interpret results without a second call. Nothing needed to invoke or interpret it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents ticker/CIK, accession format, and the as_of_date guard. The description reinforces 'pass `as_of_date` to refuse a filing accepted after it' and points to get_sec_filing_links for accession, but adds no new syntax or format detail beyond what the schema states — baseline 3 is appropriate.

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

Purpose5/5

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

States a precise verb+resource ('table of contents of a 10-K / 10-Q / 8-K') and enumerates exactly what comes back: form, filing/period/acceptance dates, primary-document URL, and per-section `key`/`title`/`char_count`/`first_line`. It also disambiguates from siblings by naming read_filing_section and find_in_filing as the tools that consume this output.

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

Usage Guidelines5/5

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

Gives explicit triggering conditions ('Read it when an Item is only a page pointer ... or missing') and routes to alternatives with their preconditions: get_sec_filing_links to find the accession, read_filing_section to read a section, find_in_filing to locate a statement/phrase without paging. When-to-use and when-to-use-something-else are both covered.

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.