filing-agent
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SEC_USER_AGENT | Yes | A name and contact email, used for live SEC data. The server reads it from `.env`. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Research tools for SEC filings of 40 US public companies: FinanceBench's filings (2015-2023) and each company's latest 10-K or 10-Q filed from August to November 2026. Resolve the company, list its filings, search and read filing pages, query SEC XBRL facts, and compute with named inputs. Cite the filing and page for every figure.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| resolve_companyA | Look up a company by name, ticker or CIK. Returns the canonical name the other tools use, its SEC CIK and tickers, how many filings are available, and (when known) the fiscal year end as MMDD, e.g. '0131' for a year ending January 31. |
| list_filingsA | List the filings available to search and read for a company: doc_name, type (10-K, 10-Q, 8-K, earnings release), fiscal year and page count. Use it to pick the filing that matches the question's period before searching. |
| search_filingsA | Keyword search (BM25) over filing pages; returns the best-matching pages with a snippet each. Always filter by company, and by fiscal_year or doc_name once you know them: unfiltered search across all companies rarely finds the right page. Use the filing's own wording ('purchases of property, plant and equipment', not 'capex'). Results are pages; read them with read_filing_page. |
| read_filing_pageA | Read one page of a filing in full, with table columns aligned, plus the page's statement type and units line (e.g. 'In millions, except per share data') when detected. Read the full page before taking a number from a table: check the units and which column is which period. include_neighbors adds the pages before and after. |
| xbrl_find_conceptsA | Find the XBRL concepts (tags) a company reports that match a description, e.g. 'payments to acquire property plant and equipment' or 'revenue'. Returns concept names, labels, units and the years covered. Use it before xbrl_get_facts: tag names differ between companies and years. |
| xbrl_get_factsA | Reported values of one XBRL concept from the company's 10-K and 10-Q filings (SEC API). Each value has its exact period (start, end), period type (annual, quarter, ytd, instant), the company's own fiscal-year label, the filing it came from, and a restated flag. Values are in whole units ('display' shows the scale: 1577000000 USD is 1,577 million USD). Filter by fiscal_year and period. Returns values as first reported unless policy is 'latest'. |
| calculateA | Evaluate arithmetic exactly. Use it for every computed figure. Give each input number a name in variables and use the names in the expression, e.g. expression '(capex_2018 / revenue_2018) * 100' with variables capex_2018=1577 and revenue_2018=32765. Supports + - * / **, parentheses, abs, round(x, digits) (half-up), min, max, sum, avg and sqrt. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a distinct step in a clear pipeline: company resolution, filing enumeration, page-level keyword search, page reading, XBRL concept discovery, fact retrieval, and arithmetic. The one potential overlap (search_filings vs xbrl_find_concepts) is explicitly separated in the descriptions as 'text search over pages' versus 'tag lookup', and the descriptions even cross-reference the next tool to use.
All names are snake_case verb_noun (resolve_company, list_filings, search_filings, read_filing_page, xbrl_find_concepts, xbrl_get_facts), with a sensible xbrl_ namespace prefix grouping the tag-based tools. The lone bare verb 'calculate' lacks a noun object, a minor deviation from an otherwise tight convention.
Seven tools is well-scoped for SEC filing research: two entry points (text and XBRL), one read tool, one lookup, one arithmetic utility. No tool looks redundant or padded, and nothing essential appears to be missing for the stated workflow.
The surface covers the full research loop: identify company, pick filing, search, read pages, find tags, pull reported facts, and compute ratios. Minor gaps remain — there is no way to enumerate all XBRL concepts for a company without a description query, and no statement/section-level listing or cross-company comparison — but agents can work around these via search and repeated calls.