SEC EDGAR MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_EDGAR_PAGE_CAP | No | Largest page list_filings_by_year and list_form_types return; must be an integer between 1 and 1000. | 100 |
| MCP_EDGAR_LOG_LEVEL | No | Log level; accepted values are DEBUG, INFO, WARNING, ERROR, CRITICAL. | INFO |
| MCP_EDGAR_USER_AGENT | No | SEC fair-access identification with a maintainer contact; must be non-empty and contain '@'. Set your own product name and e-mail. | mcp-server-edgar/<version> (sudiptokanti@yahoo.com) |
| MCP_EDGAR_TIMEOUT_SECONDS | No | HTTP timeout for SEC requests; must be a number greater than 0. | 30 |
| MCP_EDGAR_TICKER_MAP_TTL_SECONDS | No | Cache lifetime of the SEC ticker map; must be an integer greater than or equal to 0. 0 means no cache. | 86400 |
| MCP_EDGAR_MAX_REQUESTS_PER_SECOND | No | Request ceiling; the SEC allows at most 10 requests per second and the server cannot be set higher. Must be an integer between 1 and 10. | 10 |
| MCP_EDGAR_SUBMISSIONS_TTL_SECONDS | No | Cache lifetime of a company's submissions; must be an integer greater than or equal to 0. | 3600 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_latest_filingA | Newest SEC filing for a stock ticker, with official EDGAR links. Resolves the ticker to its SEC CIK and returns the filing with the latest Args:
ticker: Stock ticker symbol, e.g. Returns:
A JSON object whose Example:
|
| list_filings_by_yearA | Filings a company submitted to the SEC during one calendar year, newest first, paged.
Args:
ticker: Stock ticker symbol, e.g. Returns:
A JSON object whose Example:
|
| list_form_typesA | EDGAR form types (submission-type codes) filed in recent quarters, most common first. Use this to learn which values the Args:
query: Optional case-insensitive text matched against the code and description
( Returns:
A JSON object whose Example:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_latest_filing | Guide a review of a company's latest SEC filing (by ticker) using get_latest_filing. |
| review_filings_by_year | Guide a review of a company's SEC filings in a calendar year via list_filings_by_year. |
| explain_form_types | Explain EDGAR form types, optionally those matching a query, using list_form_types. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| form_types_catalogue | Every EDGAR submission-type code filed in recent quarters, with counts (snapshot). |
TDQS
Scored across 3 tools
The three tools target distinct operations: newest filing, per-year paged listing, and a form-type reference catalogue. There is mild overlap in that a 'latest filing' could be approximated by a year listing with limit=1, but the descriptions make the boundaries (single newest vs. paged by calendar year vs. metadata lookup) clear enough that misselection is unlikely.
All three names follow a consistent snake_case verb_object pattern (get_latest_filing, list_filings_by_year, list_form_types). The prepositional qualifier in list_filings_by_year is a parameter hint rather than a convention break, and the resource nouns are coherent.
Three tools is on the lean side, but the domain (filing discovery) is narrow and each tool earns its place: latest filing, historical listing, and form-type validation. It sits at the low end of the healthy 3-15 range rather than being padded or trivial.
Coverage of filing discovery is good and uniform (status/error/ambiguity handling is consistent across calls), but there are notable gaps: no company lookup by name, no date-range query beyond a single calendar year, and no way to retrieve filing document content (only URLs). Agents must leave the server to read a filing, which is a real dead end for many workflows.