Workflows and prompts
Tested tool sequences and prompt patterns for cited company research.
Good MCP results depend on tool sequence as much as tool selection. These workflows keep context small, make missing data explicit, and preserve citations.
Company orientation
Use when the user names a company but the exact symbol or available data is not known.
search_companies({ query: "Uber" })- Select the matching identity and canonical symbol.
get_coverage({ symbol: "UBER:US" })- Call only datasets with non-zero coverage.
Prompt:
Resolve the company first, inspect Signals coverage, and tell me which cited
datasets are available before answering. Do not interpret a zero coverage count
as a financial value.Company-native KPI trend
Use for issuer-defined measures such as gross bookings, NRR, deliveries, paid members, or segment revenue.
get_coverage({ symbol })list_company_kpis({ symbol })- Match the user's concept to an exact returned
metric_key. get_kpi_series({ symbol, metric_key, limit })- Present values with the supporting quote and source URL.
Prompt:
Find Uber's reported gross bookings KPI. Discover the metric key rather than
guessing it, retrieve one series, summarize the trend, and cite every numeric
claim with the returned SEC or IR URL and verbatim quote.Earnings quarter packet
Use when the user wants the filing, release, deck, and call for the same quarter. The join key is the fiscal stamp, and both list tools take it.
list_transcripts({ symbol, fiscal_year, fiscal_period })list_ir_documents({ symbol, fiscal_year, fiscal_period })— passdoc_type: ["presentation", "earnings_slides"]for the deck alone, since press releases are 68% of the corpus.list_filings({ symbol, forms: ["8-K", "10-Q"] })for the filed exhibit.- Fetch full text with
get_transcript,get_ir_document, orget_filing.
If you do not know the company's fiscal calendar, list without the fiscal
filters first and read fiscal_year / fiscal_period off the rows.
Prompt:
Build a source packet for the latest reported quarter. Keep the filing, earnings
release, deck, and transcript tied to the same fiscal quarter. Distinguish
management's words from normalized financial facts.Narrative questions, verified in context
Use for narrative questions such as pricing, competition, guidance, or risk. Cross-corpus text search is not currently exposed, so scope by company first.
search_companies({ query })to resolve the symbol.get_coverage({ symbol })to see which datasets actually have rows.list_transcripts/list_filings/list_ir_documentsfor that symbol.- Fetch the matching transcript, filing, or document by ID.
- Quote enough surrounding context to avoid reversing meaning.
Prompt:
Search first-party disclosures for comments about autonomous-vehicle pricing.
Use snippets only to locate evidence; fetch the underlying document before
drawing a conclusion. Return source URLs and clearly label any inference.Public positioning data
These tools can be called independently after get_coverage:
list_insider_transactionslist_congress_tradeslist_institutional_holdersget_short_interest_series
Prompt:
Summarize recent public positioning disclosures for AAPL. Keep Form 4, STOCK
Act, 13F, and FINRA data in separate sections because their reporting windows
and meanings differ. Cite each section and do not turn the result into
personalized investment advice.Golden checks for agent builders
Before shipping an integration, rehearse at least these cases:
| Case | Expected behavior |
|---|---|
| Ambiguous company name | Calls search_companies before company tools |
| Unknown KPI label | Calls list_company_kpis; never invents metric_key |
| Missing dataset | Checks get_coverage and reports unavailable data |
| Numeric KPI claim | Includes returned quote and source URL |
| Transcript request | Calls list_transcripts before get_transcript |
| Invalid ID | Surfaces a tool error instead of fabricating content |
| Rate limit | Honors Retry-After with bounded backoff |
For raw envelopes, domain errors, and retry semantics, see Protocol and errors.