Skip to main content
Glama

factiq

Search media appearances

search_media_appearances

Deterministically search precomputed intelligence from podcasts, TV interviews, and conference talks outside earnings calls, and from official documents published by central banks and monetary authorities (the Federal Reserve Board and regional Reserve Banks, the European Central Bank and euro-area national central banks, the Bank of England, the Bank of Japan, the Reserve Bank of India, the People's Bank of China, the Bank of Korea, the Hong Kong Monetary Authority, Taiwan's central bank, and others): speeches, testimony, policy statements, implementation notes, minutes, press-conference transcripts, projections, reports and press releases. Documents in other languages yield English paraphrases. The speakers are company executives, investors, fund managers, analysts, economists, journalists, central-bank officials, and other guests, and their claims cover listed and unlisted companies (OpenAI, DeepSeek, MiniMax), institutions (the Federal Reserve, the European Central Bank, regulators), and whole markets and industries, not only the speaker's own employer. No serving-time model interprets or expands the query.

Retrieval for structured findings is lexical, not semantic: strict full-text matching is tried first, loose any-term full-text matching only when strict matching returns no candidates, then trigram matching only when both full-text stages are empty. Natural-language questions work because person names and common question scaffolding are normalized. Prefer concise topical terms; retry synonyms or the speaker's own vocabulary before concluding there is no coverage.

Canonical search_target values:

  • "search" (default): blended structured claims and broad passage cards.

  • "claims": normalized decision-relevant claims only.

  • "passages": broad substantive paraphrase cards only.

  • "pressure_points": stored refusal and declined-to-confirm claim rows.

  • "appearances": video-level catalog rows.

  • "coverage": company-level structured-corpus inventory.

Compatibility aliases remain accepted for older clients: "all" maps to "search", "videos" to "appearances", and "companies" to "coverage". New callers should use the six canonical values; "search" is the primary blended target, not a legacy alias.

Result contracts:

  • search/claims/passages/pressure_points return result_kind, canonical_paraphrase, speaker, primary ticker, topic labels, video/channel/publication metadata, lexical relevance, and source_url (a timestamped YouTube deep link, the episode page for a podcast, the document page for an official document, or the PDF page of a press-conference transcript). detail=true adds normalized claim and attribution fields plus institution, document_kind and event_date (null for interviews), but never raw transcript text or evidence spans.

  • appearances returns video metadata, primary ticker, attribution metadata, matching claim count, URL, and relevance score. detail has no effect.

  • coverage returns company-level appearance, publication-date-span, channel, claim, and low-confidence-attribution counts. It is structured coverage, not a per-person acquired-video/hour inventory; query, sort, and detail have no effect.

Filter and ordering semantics:

  • company is comma-separated tickers and company names, mixed freely. A stored ticker matches the appearance's company or a section subject with that ticker; any other value is read as the name of a company, institution, or organisation a podcast section is about, matched after dropping punctuation, a leading "The", and corporate suffixes. Every ticker attached to a matched name joins the ticker filter, so "Alphabet" also reaches GOOGL rows. The result records company_tickers, company_names, company_matched, and company_unmatched (a value that matched nothing, with up to five possible matches); an unmatched value returns no rows, not an error. company_filter is the old name of company and behaves the same; passing both is an error. The appearances and coverage targets also match every value, upper-cased, against the entity references of claims (products, rivals, partners such as "CUDA"); a value found only there is listed under company_references. Alternate spellings can return different appearances or coverage rows because reference names are matched exactly ("open ai" and "OpenAI" select the same subject but not the same references); the claims rows are the same.

  • person is a case-insensitive substring over the finding speaker and/or appearance speaker metadata. appearance_type applies to every target: podcast, tv_interview, conference and other for interviews; speech, testimony, minutes, statement, press_conference and hearing for official documents. country ("US") restricts every target to official documents of that country; institution ("Federal Reserve") is described with show and channel below.

  • claim_family restricts structured claims. With blended search it suppresses passage cards; pairing it with search_target="passages" is an error. For appearances/coverage it requires videos with matching structured claims.

  • date_from/date_to are inclusive YYYY-MM-DD bounds on the video's stored publication/upload date, which can differ from the recording or event date.

  • show, channel, and institution are case-insensitive substrings of a podcast show name, a YouTube channel name, and a publishing institution; each returns only rows of its own kind, and when more than one is given rows matching any of them are returned.

  • relevance orders lexical score first, then publication date; newest orders publication date first, then lexical score. Coverage has fixed inventory ordering by latest covered publication date.

  • limit is one page of 1-50 rows and offset skips that many ranked rows before the page, so limit=15 with offset=15 returns rows 16-30 of the same ranking. Every result carries has_more, plus next_offset when more rows follow; call again with that offset to read the next page.

With an empty query, search and claims browse recent high-signal claims without generic passage cards; passages browses recent passage cards; pressure_points browses recent refusal rows; appearances browses the video catalog; coverage returns the company inventory. Each result set is capped at 1-50 rows.

Evidence safety: canonical_paraphrase is a normalized paraphrase, not a transcript quotation. Cite source_url (timestamped for YouTube, page-anchored for PDF transcripts) with the returned speaker, publication date, and video or document metadata. FOMC minutes describe the meeting of event_date and are published three weeks later; the Committee, not one person, is their speaker. Do not put canonical_paraphrase in quotation marks unless you independently verify the wording at the source link. The tool never returns raw transcript text.

Detail-field safety: detail adds normalized claim fields only. The extraction pipeline's internal audit flags are not published, because they describe how a row was built rather than anything checkable about the claim; judge a claim from value, assertion_status, and the timestamped source link instead. company_attribution_confidence and company_attribution_source concern only the video-to-company/ticker assignment; inferred attribution is not independent confirmation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
showNoCase-insensitive substring of a podcast show name, for example 'Odd Lots'. Returns podcast rows only. Combine with channel or institution to also include YouTube or official-document rows that match those; rows matching any given name filter are returned.
sortNo"relevance" orders lexical score first and publication date second; "newest" orders publication date first and lexical score second. Coverage uses its fixed company-inventory ordering.relevance
limitNoMaximum rows returned in one page, from 1 through 50. Use offset to read the pages after the first.
queryNoLexical search text. Natural-language questions are accepted because person/question scaffolding is normalized, not because a serving-time model interprets them. Use concise topical vocabulary and retry synonyms or the speaker's own terminology if needed. Ignored by coverage; appearances matches only video title/channel metadata.
detailNoFor search/claims/passages/pressure_points, add normalized claim and company-attribution fields. Internal audit flags use bounded public names and include field_semantics; raw transcript text and evidence spans remain excluded. Has no effect on appearances or coverage rows.
offsetNoNumber of ranked rows to skip before the returned page, so offset=15 with limit=15 gives rows 16 through 30 of the same ranking. Every result reports has_more, and adds next_offset when more rows follow; repeat the call with that value to read the next page.
personNoCase-insensitive name substring matched against the result speaker and/or the appearance speaker metadata.
channelNoCase-insensitive substring of a YouTube channel name, for example 'Bloomberg Television'. Returns YouTube rows only. Combine with show or institution to also include podcast or official-document rows that match those; rows matching any given name filter are returned.
companyNoComma-separated tickers and company names, mixed freely (for example, 'NVDA,OpenAI' or 'Federal Reserve,Alphabet'). A value that is a stored ticker matches the appearance's company or a section subject with that ticker. Any other value is read as the name of a company, institution, or organisation the podcast section is about, so unlisted companies (OpenAI, MiniMax, Manycore Tech), central banks, and regulators are found by name. Names are matched after dropping punctuation, a leading 'The', and corporate suffixes ('NVIDIA Corp.' finds NVIDIA; 'Alphabet' also reaches GOOGL rows), and each result records how every value was read: company_tickers, company_names, company_matched, and company_unmatched (with up to five possible matches per value that matched nothing). The appearances and coverage targets also match every value, upper-cased, against the entity references of claims (products, rivals, partners such as 'CUDA' or 'ChatGPT'); a value found only there is listed under company_references. Alternate spellings can return different appearances or coverage rows because reference names are matched exactly ('open ai' and 'OpenAI' select the same subject but not the same references); the claims rows are the same.
countryNoISO country code of the institution that published an official document, for example 'US'. Restricts every target to official documents of that country.
date_toNoInclusive YYYY-MM-DD upper bound on the video's stored publication/upload date, which may differ from its recording or event date.
date_fromNoInclusive YYYY-MM-DD lower bound on the video's stored publication/upload date, which may differ from its recording or event date.
institutionNoCase-insensitive substring of the institution that published an official document, for example 'Federal Reserve'. Returns official-document rows only; podcast and YouTube rows have no institution. Combine with show or channel to also include podcast or YouTube rows that match those; rows matching any given name filter are returned.
claim_familyNoOptional claim-ontology code. Blended search then returns structured claims only; appearances/coverage require matching claims. It is incompatible with search_target='passages'. Invalid codes return the valid vocabulary.
search_targetNoCanonical targets: "search" (default blended claims + passages), "claims" (normalized decision-relevant claims), "passages" (broad substantive paraphrase cards), "pressure_points" (refusals and declined-to-confirm claims), "appearances" (video catalog), and "coverage" (company-level structured-corpus inventory). Compatibility aliases are "all" -> "search", "videos" -> "appearances", and "companies" -> "coverage"; new callers should use the canonical values.search
company_filterNoOld name of company. Accepted with the same behaviour; the response note asks the client to update its plugin. Do not pass both.
appearance_typeNoOptional appearance-type filter. Interviews: podcast, tv_interview, conference, other. Official documents: speech, testimony, minutes, statement, press_conference, hearing. Applies to every canonical target.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations supplied, the description goes well beyond them: it discloses deterministic lexical (not semantic) retrieval with strict/loose/trigram fallback stages, per-target detail behavior, pagination via has_more/next_offset, and that raw transcript text and evidence spans are never returned. The only unexplained tension is with the annotations themselves — readOnlyHint=false and idempotentHint=false are never reconciled with an otherwise purely retrieval-shaped description, so the agent is left unsure whether the call has side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Section headers ('Result contracts', 'Filter and ordering semantics', 'Evidence safety', 'Detail-field safety') give it structure, and the purpose is front-loaded, but the whole is roughly 700 words with heavy duplication of parameter descriptions already present in the schema. Much of that space does not earn its place in a description that sits alongside a fully documented 17-parameter schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter, multi-target search tool with an output schema, the definition covers everything an agent needs: target semantics, filter resolution and error cases, paging, empty-query behavior, and citation/evidence-safety caveats ('canonical_paraphrase' is a paraphrase, FOMC minutes' speaker is the Committee, attribution confidence is not independent confirmation). No material calling gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds system-level semantics the schema only hints at: company vs company_filter being mutually exclusive, claim_family suppressing passage cards and erroring with search_target='passages', detail having no effect on appearances/coverage, and coverage ignoring query/sort/detail. A large portion of the company-filter prose, however, duplicates the schema description nearly verbatim, so the added value is real but partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb and resource (searching precomputed intelligence from podcasts, TV interviews, conference talks, and central-bank/official documents) and explicitly carves out the scope it does *not* cover ('outside earnings calls'), which distinguishes it from the sibling search_earnings_transcripts. An agent can identify the corpus and the target domain without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives unusually rich in-tool guidance: how to pick among the six canonical search_target values, to prefer concise topical terms and retry synonyms or the speaker's own vocabulary, what each target does on an empty query, and which parameter combinations are errors (claim_family with passages, company with company_filter). It never explicitly names a sibling tool or says 'use search_company_filings instead', so routing across the toolset is only implied by the 'outside earnings calls' carve-out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources