Skip to main content
Glama
pgeneralpl

edgar-entity-mcp

by pgeneralpl

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
USAGE_LOGNoSet to "1" to log per-call usage JSON (tool, latency, ok, response size, key prefix) to stderr.
SEC_MAX_RPSNoSEC requests per second, per process (maximum 9).8
MCP_API_KEYSNoComma-separated keys. When set, the HTTP endpoint returns 401 to requests without a valid key.
SEC_USER_AGENTNoSet 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_MSNoHTTP request timeout in milliseconds (tuning).25000
MEMORY_CACHE_MBNoIn-memory LRU cache size in MB (tuning).128
SOCRATA_APP_TOKENNoOptional app token for state portals (higher throttling limits).
REDIS_MAX_VALUE_BYTESNoMaximum Redis cache value size in bytes (tuning).900000
UPSTASH_REDIS_REST_URLNoEnables 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_TOKENNoToken paired with UPSTASH_REDIS_REST_URL. Vercel's KV_REST_API_TOKEN also works.
SEC_DISTRIBUTED_RATE_LIMITNoWith 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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 url (any www.sec.gov/Archives document URL from list_filings) or by company + accession. Optionally extract one 10-K/10-Q item via section (e.g. '1' Business, '1A' Risk Factors, '7' MD&A, '7A' Market Risk, '8' Financial Statements; for 10-Q: '1' Financial Statements, '2' MD&A, '1A' Risk Factors). Long text is paged: use max_chars and the returned next_offset.

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 limit by value.

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. limit counts filings (each filing can hold several transactions).

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

NameDescription
company_research_briefProduce 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

NameDescription
data-sourcesUpstream data sources, terms and licenses

TDQS

A4.4/5.0

Scored across 10 tools

Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues