{"serverId":"mcp-registry/ai.bidclub/bidclub","tools":[{"name":"bidclub_download_links","fixed":{"name":"bidclub_download_links","description":"Build the download URLs for an episode or a whole show without fetching anything. Hand these to the user, or fetch one yourself when you need a complete transcript in a single request instead of paging it through bidclub_get_episode. Exactly one of slug or show is required.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"lang":{"enum":["orig","EN","ZH"],"type":"string","default":"orig","description":"Edition to request in the generated URLs. orig keeps each artifact in its source language."},"show":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$","description":"Show id, for the whole-show zip archives. Mutually exclusive with slug."},"slug":{"type":"string","pattern":"^[a-z0-9](?:[a-z0-9-]{0,158}[a-z0-9])?$","description":"Episode slug. Mutually exclusive with show."}}},"annotations":{"readOnlyHint":true},"title":"Download links"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":248,"tokensAfter":248},{"name":"bidclub_get_episode","fixed":{"name":"bidclub_get_episode","description":"Read one section of an episode. Long sections page deterministically: when the result says truncated: true, call again with offset set to next_offset and concatenate content_md until next_offset is null. Prefer tldr or digest — a transcript can exceed 100,000 characters and is rarely worth paging in full. lang selects the OUTPUT edition, not a catalogue filter; transcripts exist only in the episode's source language, so requesting a different lang for section=transcript always returns the source","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["slug"],"properties":{"lang":{"enum":["EN","ZH"],"type":"string","default":"EN","description":"Output edition. A translated summary is served only when both the TL;DR and the digest translations are complete; otherwise the source edition comes back with lang_fallback: true."},"slug":{"type":"string","pattern":"^[a-z0-9](?:[a-z0-9-]{0,158}[a-z0-9])?$","description":"Episode slug from a list or search result."},"offset":{"type":"integer","default":0,"maximum":9007199254740991,"minimum":0,"description":"Code-point offset into the section. Use the previous next_offset."},"section":{"enum":["meta","tldr","digest","transcript"],"type":"string","default":"digest","description":"meta returns the row with no long markdown at all; tldr is the bullet summary; digest is the structured writeup; transcript is the full text."},"max_chars":{"type":"integer","maximum":50000,"minimum":1000,"description":"Code points per window. Defaults to 20000 for Latin text and 14000 for Chinese or Japanese text, which cost about one token per character."}}},"annotations":{"readOnlyHint":true},"title":"Get episode content"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":470,"tokensAfter":470},{"name":"bidclub_list_episodes","fixed":{"name":"bidclub_list_episodes","description":"List episodes newest first, optionally narrowed to one show. Returns metadata only — titles, deks, dates, durations, participant chips and source links — never the digest or transcript. Use bidclub_get_episode for content.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"show":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$","description":"Show id from bidclub_list_shows. Omit for the whole library."},"asset":{"type":"string","pattern":"^(?:none|(?:equities|crypto|vc_pe|other)(?:,(?:equities|crypto|vc_pe|other))*)$","description":"Optional asset tag ids joined by commas (equities, crypto, vc_pe, other). Matches any selected id within this facet and all supplied facets together. Omit for all episodes, including untagged; pass none for no episodes."},"focus":{"type":"string","pattern":"^(?:none|(?:investing|company_building|technical|macro|policy)(?:,(?:investing|company_building|technical|macro|policy))*)$","description":"Optional focus tag ids joined by commas (investing, company_building, technical, macro, policy). Matches any selected id within this facet and all supplied facets together. Omit for all episodes, including untagged; pass none for no episodes."},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1,"description":"Episodes per page."},"offset":{"type":"integer","default":0,"maximum":9007199254740991,"minimum":0,"description":"Rows to skip. Page with the returned pagination.next_offset."},"sector":{"type":"string","pattern":"^(?:none|(?:ai_software|semis|robotics|biotech|consumer|finance|blockchain|energy|space_defense)(?:,(?:ai_software|semis|robotics|biotech|consumer|finance|blockchain|energy|space_defense))*)$","description":"Optional sector tag ids joined by commas (ai_software, semis, robotics, biotech, consumer, finance, blockchain, energy, space_defense). Matches any selected id within this facet and all supplied facets together. Omit for all episodes, including untagged; pass none for no episodes."},"source_lang":{"enum":["EN","ZH"],"type":"string","description":"Filters by the episode's ORIGINAL language. Chinese digests exist for most English-source episodes, so do NOT set source_lang=ZH just because you want Chinese output — use the lang parameter on bidclub_get_episode instead."}}},"annotations":{"readOnlyHint":true},"title":"List episodes"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":658,"tokensAfter":658},{"name":"bidclub_list_shows","fixed":{"name":"bidclub_list_shows","description":"List every show in the BidClub library with its id, display name, source language, hosts, and source links. Start here when you need a show id for the show parameter of the other tools.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true},"title":"List shows"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"bidclub_search_episodes","fixed":{"name":"bidclub_search_episodes","description":"Full-text search across titles, deks, TL;DRs, digests and transcripts, with a substring sweep that handles Chinese queries the tokenizer cannot segment. Returns up to 20 metadata rows, never content. When the response carries partial: true the query only covered the newest searched_recent episodes, so say so rather than reporting an absence.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["q"],"properties":{"q":{"type":"string","maxLength":100,"minLength":2,"description":"Query text. English words are stemmed; Chinese matches as a substring."},"len":{"enum":["lt30","30to60","60to120","gt120"],"type":"string","description":"Episode duration bucket."},"show":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,63}$","description":"Show id from bidclub_list_shows."},"time":{"enum":["24h","7d","30d"],"type":"string","description":"Restrict to episodes published within this window."},"asset":{"type":"string","pattern":"^(?:none|(?:equities|crypto|vc_pe|other)(?:,(?:equities|crypto|vc_pe|other))*)$","description":"Optional asset tag ids joined by commas (equities, crypto, vc_pe, other). Matches any selected id within this facet and all supplied facets together. Omit for all episodes, including untagged; pass none for no episodes."},"focus":{"type":"string","pattern":"^(?:none|(?:investing|company_building|technical|macro|policy)(?:,(?:investing|company_building|technical|macro|policy))*)$","description":"Optional focus tag ids joined by commas (investing, company_building, technical, macro, policy). Matches any selected id within this facet and all supplied facets together. Omit for all episodes, including untagged; pass none for no episodes."},"person":{"type":"string","maxLength":120,"description":"Exact participant name, matched against the \"person:\" chips."},"sector":{"type":"string","pattern":"^(?:none|(?:ai_software|semis|robotics|biotech|consumer|finance|blockchain|energy|space_defense)(?:,(?:ai_software|semis|robotics|biotech|consumer|finance|blockchain|energy|space_defense))*)$","description":"Optional sector tag ids joined by commas (ai_software, semis, robotics, biotech, consumer, finance, blockchain, energy, space_defense). Matches any selected id within this facet and all supplied facets together. Omit for all episodes, including untagged; pass none for no episodes."},"source_lang":{"enum":["EN","ZH"],"type":"string","description":"Filters by the episode's ORIGINAL language. Chinese digests exist for most English-source episodes, so do NOT set source_lang=ZH just because you want Chinese output — use the lang parameter on bidclub_get_episode instead."}}},"annotations":{"readOnlyHint":true},"title":"Search episodes"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":753,"tokensAfter":753}],"toolsChanged":5,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}