Skip to main content
Glama
theodor90

form4api-mcp

list_filings

Read-only

Retrieve paginated SEC Form 4 filing history for a company, filtered by ticker, CIK, or filed-date window. Each entry includes accession number, company, period, filing date, amendment type, and transaction count.

Instructions

List Form 4 filings with optional ticker, CIK and date filters. Returns a paginated list of Form 4 filings, newest filed first. Filter by ticker, cik, and a from/to filed-date window. Each entry carries the accession number, company ticker/name, period of report, filed date, amendment type (Original/Amendment), and the count of non-superseded transactions in that filing. Use this for a company's filing HISTORY; use GET /v1/filings/recent for a live newest-first feed (it has no page parameter), and GET /v1/transactions when you want the individual trades rather than the filings that contain them. limit is accepted as an alias for per_page. Not plan-gated.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoInclusive end of the filed-date window, format YYYY-MM-DD.
cikNoCompany CIK (SEC identifier), e.g. "0000320193". Leading zeros optional.
fromNoInclusive start of the filed-date window, format YYYY-MM-DD.
pageNo1-based page number. Defaults to 1.
limitNoAlias for per_page. Accepted because every caller who hit this path before it existed sent `limit`.
tickerNoCompany ticker symbol, case-insensitive (e.g. "AAPL").
per_pageNoFilings per page. Defaults to 20, maximum 100. `limit` is accepted as an alias; if both are given, per_page wins.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.9.6

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only assert readOnlyHint=true and openWorldHint=true, so the description carries the behavioral burden — and it delivers: pagination (per_page default/max thrown in schema, but the description frames newest-first ordering), the semantics of an entry (accession number, amendment type, non-superseded transaction count), inclusive date-window behavior, alias precedence (per_page wins), and the plan-gating note. All of this is context annotations alone could not supply, and nothing contradicts the read-only/open-world hints.

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

Conciseness5/5

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

The description is front-loaded with the verb and primary use case in the first clause, then flows from result semantics to entry fields to alternatives to parameter trivia. Every sentence carries distinctive information — the only minor redundancy is that filters are mentioned twice (first and second sentence), but this is low-cost re-emphasis, not waste.

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?

With no output schema, the description correctly fills the return-value gap by enumerating what every entry carries (accession number, ticker/name, period of report, filed date, amendment type, non-superseded transaction count). Pagination, ordering, filter behavior, alias semantics, and sibling routing are all covered; nothing an agent needs to call this read-only list tool correctly is missing.

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; the schema already documents every parameter with defaults (per_page=20, page=1, to=100), formats (YYYY-MM-DD), examples (CIK string with leading zeros), and alias precedence. The description adds value on top by grouping several params into a cohesive semantic idea: the filters ticker, CIK, and 'a from/to filed-date window', which is small but real framing benefit beyond the schema.

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?

The description names a specific verb-resource pair ('List Form 4 filings') and immediately scopes it: optional ticker/CIK/date filters, paginated, newest-first, with per-entry fields enumerated. It explicitly distinguishes itself from get_recent_filings and get_transactions by pointing at their unique behaviors (no page parameter vs. individual trades), so an agent can disambiguate without opening sibling schemas.

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 selection logic: 'Use this for a company's filing HISTORY', then names the alternatives with the condition that selects each — GET /v1/filings/recent for a live feed (explicitly noting it lacks a page parameter) and GET /v1/transactions when individual trades are needed. Also discloses that it is 'Not plan-gated', which is relevant access/cost context an agent can act on.

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