MCP 서버

bidclub

ai.bidclub/bidclub

이 MCP로 할 수 있는 일

Indexes investor podcasts and provides searchable episode metadata, transcripts, summaries, digests, and bilingual content.

bidclub_download_links
Download links
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.
입력 스키마
{'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.'}}}
bidclub_feed_index
Feed index
The slim catalogue of every episode — one row each, metadata only. Narrow it with show or person; passing both is an error. Large responses are truncated to the newest rows with a note, so filter rather than paging.
입력 스키마
{'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. Mutually exclusive with person.'}, '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. Mutually exclusive with show.'}, '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.'}}}
bidclub_get_episode
Get episode content
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 with lang_fallback: true.
입력 스키마
{'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.'}}}
bidclub_list_episodes
List episodes
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.
입력 스키마
{'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 â\x80\x94 use the lang parameter on bidclub_get_episode instead."}}}
bidclub_list_shows
List shows
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.
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
bidclub_search_episodes
Search episodes
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.
입력 스키마
{'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 â\x80\x94 use the lang parameter on bidclub_get_episode instead."}}}
변경됨
bidclub_feed_index
2026년 9월 21일 2:58 AM
변경됨
bidclub_search_episodes
2026년 9월 21일 2:58 AM
변경됨
bidclub_list_episodes
2026년 9월 21일 2:58 AM
추가됨
bidclub_download_links
2026년 9월 11일 3:31 PM
추가됨
bidclub_feed_index
2026년 9월 11일 3:31 PM
추가됨
bidclub_get_episode
2026년 9월 11일 3:31 PM
추가됨
bidclub_search_episodes
2026년 9월 11일 3:31 PM
추가됨
bidclub_list_episodes
2026년 9월 11일 3:31 PM
추가됨
bidclub_list_shows
2026년 9월 11일 3:31 PM