Recipe: Research a public company

This recipe walks an agent from “AAPL” to a structured company brief — SEC filings, key financial concepts, consumer complaint posture — with citable URIs.

Tools used: resolve_entity, edgar_company_filings (or pipeworx://edgar/... resource), edgar_company_concept, cfpb_company_complaints. Optional: compare_entities for a peer comparison.

Calls: ~3–5, depending on whether you use compare_entities.

Step 1: Resolve the company

resolve_entity({ type: "company", value: "AAPL" })

Returns:

{
  "type": "company",
  "query": "AAPL",
  "resolved": true,
  "ids": {
    "cik": "0000320193",
    "ticker": "AAPL",
    "company_name": "Apple Inc."
  },
  "resources": {
    "edgar_filings": "pipeworx://edgar/company/0000320193/filings",
    "edgar_facts":   "pipeworx://edgar/company/0000320193/facts"
  }
}

You now have everything to cite Apple in any output.

Step 2: Get recent filings

edgar_company_filings({ ticker_or_cik: "0000320193" })

Note the latest 10-K (annual) and 10-Q (quarterly) accession numbers. Embed them as pipeworx://edgar/filing/{accession} URIs in your output.

Step 3: Pull key financial concepts

edgar_company_concept returns a single XBRL concept across periods. Pull these four in parallel:

// Run in parallel:
edgar_company_concept({ cik: "0000320193", concept: "Revenues" })
edgar_company_concept({ cik: "0000320193", concept: "NetIncomeLoss" })
edgar_company_concept({ cik: "0000320193", concept: "CashAndCashEquivalentsAtCarryingValue" })
edgar_company_concept({ cik: "0000320193", concept: "LongTermDebtNoncurrent" })

Each returns annual_values: [{fiscal_year, period_end, value, unit, filed}, ...]. Sort by period_end desc and take the most recent.

Or, use the compound tool fintech_company_deep_dive, which does this in one call:

fintech_company_deep_dive({ ticker: "AAPL" })
// → SEC filings + stock quote + income statement + CFPB complaints, all in one

Step 4: Consumer-facing risk

cfpb_company_complaints({ company: "Apple Inc." })

Cross-references against CFPB’s complaint database. For consumer-facing companies this is a useful posture indicator.

Step 5 (optional): Compare to peers

compare_entities({ type: "company", values: ["AAPL", "MSFT", "GOOGL"] })

Returns revenue + income + cash + debt for all three side-by-side, in parallel.

Citation pattern

Embed the resource URIs in your output so users can re-fetch:

Apple Inc. (EDGAR) reported revenue of $383.3B (FY 2023). Latest filings: 10-K dated 2023-11-03 (pipeworx://edgar/filing/0000320193-23-000106).

Any MCP client that supports resources/read can resolve these URIs to current data.

Use the prompt instead

If you don’t want to hand-orchestrate, the gateway has a pre-baked playbook:

prompts/get({ name: "research_public_company", arguments: { company: "AAPL" } })
// → returns a substituted message that orchestrates the full sequence

See prompts for how server-side playbooks work.

Last reviewed May 8, 2026