edgar-entity-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| USAGE_LOG | No | Set to "1" to log per-call usage JSON (tool, latency, ok, response size, key prefix) to stderr. | |
| SEC_MAX_RPS | No | SEC requests per second, per process (maximum 9). | 8 |
| MCP_API_KEYS | No | Comma-separated keys. When set, the HTTP endpoint returns 401 to requests without a valid key. | |
| SEC_USER_AGENT | No | Set this. SEC requires a descriptive User-Agent with contact info, e.g. "Acme Research jane@acme.com". Sends it on every SEC request; SEC may block clients without one (HTTP 403 "Undeclared Automated Tool"). The server prints a warning to stderr while the default is in use. | edgar-entity-mcp/<ver> contact@example.com |
| HTTP_TIMEOUT_MS | No | HTTP request timeout in milliseconds (tuning). | 25000 |
| MEMORY_CACHE_MB | No | In-memory LRU cache size in MB (tuning). | 128 |
| SOCRATA_APP_TOKEN | No | Optional app token for state portals (higher throttling limits). | |
| REDIS_MAX_VALUE_BYTES | No | Maximum Redis cache value size in bytes (tuning). | 900000 |
| UPSTASH_REDIS_REST_URL | No | Enables the Redis cache (shared across instances). Without it the cache is an in-memory LRU. Vercel's KV_REST_API_URL also works. | |
| UPSTASH_REDIS_REST_TOKEN | No | Token paired with UPSTASH_REDIS_REST_URL. Vercel's KV_REST_API_TOKEN also works. | |
| SEC_DISTRIBUTED_RATE_LIMIT | No | With Upstash configured, also caps SEC calls across all instances, using a per-second Redis counter. | 1 |
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": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_companyA | Find SEC-registered public companies by ticker or name (fuzzy). Returns CIK (the SEC id used by every other tool), name, tickers, exchange and a match score (100 = exact ticker). Source: SEC company_tickers_exchange.json (companies with a listed ticker). |
| get_company_profileA | Company profile from SEC EDGAR submissions: legal name, tickers, exchanges, SIC code + industry, state of incorporation, fiscal year end, EIN, filer category, business/mailing addresses, former names, latest 10-K/10-Q. Use it to orient before deeper research. |
| list_filingsA | List a company's EDGAR filings newest-first, filtered by form type and filing-date range. Each row has form, accession, filed date, report period, primary document URL and filing index URL. Amendments (e.g. 10-K/A) are included when filtering by the base form unless include_amendments=false. Older history pages are fetched automatically when needed. Common forms: 10-K, 10-Q, 8-K, DEF 14A, S-1, 4, 13D/G (SC 13D), 20-F, 6-K. |
| get_filing_documentA | Fetch an SEC filing's primary document (HTML converted to clean text, tables preserved as aligned rows). Identify it by |
| get_financialsA | Key financial metrics normalized from SEC XBRL companyfacts, one row per fiscal period (deduped; as-filed values from the filing that reported the period). Metrics: revenue, gross_profit, operating_income, net_income, eps_basic, eps_diluted, operating_cash_flow, capex, total_assets, total_liabilities, stockholders_equity, cash, long_term_debt, shares_outstanding, free_cash_flow (derived). Revenue tries common tags in order (Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, SalesRevenueNet, ...) and tags_used reports which was used. period_type 'quarterly' returns 3-month values (cash-flow quarters derived from YTD; Q4 derived as FY minus 9M). Values are raw (e.g. 391035000000 = $391.0B). |
| get_xbrl_conceptA | All reported values of one XBRL concept for one company (SEC companyconcept API), newest first, deduped by period. Use for any tag not in get_financials, e.g. us-gaap:ResearchAndDevelopmentExpense, us-gaap:LongTermDebt, dei:EntityCommonStockSharesOutstanding. framed_only=true keeps only SEC's one-fact-per-calendar-period values (cleanest time series). |
| compare_companiesA | Compare one XBRL concept across ALL reporting companies for a calendar period (SEC frames API), e.g. rank by revenue for CY2024, or compare specific companies. Period: CY2024 (annual duration), CY2024Q2 (quarter), CY2024Q4I (instant, required for balance-sheet items like Assets). Pass companies to filter to specific tickers/CIKs; otherwise returns the top |
| get_insider_tradesA | Recent insider transactions for a company (issuer) from SEC Form 4 / 4/A XML: reporter name, role and officer title, transaction date, code with plain-English meaning (P=open-market buy, S=sale, A=grant, M=option exercise, F=tax withholding, G=gift...), shares, price, value, acquired/disposed, shares owned after, direct/indirect, plus a summary of open-market buys vs sales. |
| lookup_business_entityA | Search Secretary of State business-entity registries (official open data) by entity name and/or state entity id. Supported: NY, CO, OR, CT, PA (NY, OR and PA list active entities only; CO and CT include dissolved entities with status). Returns normalized name, entity id, status, type, formation date, jurisdiction, principal/mailing address, registered agent where available, and source URLs. Use for private companies, subsidiaries, LLCs, and verifying legal entity names. Call list_supported_states for coverage and licenses. |
| list_supported_statesA | List the state business-entity registries supported by lookup_business_entity, with dataset ids, coverage caveats, update frequency, and license/commercial-use terms. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| company_research_brief | Produce a sourced research brief on a US company using EDGAR filings, XBRL financials, insider activity and state registry data. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| data-sources | Upstream data sources, terms and licenses |
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: company search vs. profile, filing listing vs. primary-document retrieval, normalized financials vs. arbitrary XBRL concepts vs. cross-company comparison, insider trades, and state registry lookup. Overlap among the financial tools is explicitly resolved in the descriptions (e.g., use get_xbrl_concept for tags not covered by get_financials).
All tool names use snake_case with a predictable verb_noun structure (search_company, get_company_profile, list_filings, get_financials, etc.). Verb variety appropriately matches the operation without introducing stylistic inconsistency.
The set contains 10 tools, well within the ideal range for a focused research server. Each tool covers a distinct part of the SEC/entity research workflow, with no obvious redundancy or thinness.
Core company research is well covered: discovery, profile, filings, primary documents, financials, XBRL concepts, comparisons, insider trades, and state registry lookup. Minor gaps remain for non-primary filing exhibits and institutional ownership/13F data, though agents can work around most needs.