{
  "ok": true,
  "resource": {
    "id": "RES_1179BB7DD8F3",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.bidclub%2Fbidclub/versions/1.0.0",
    "name": "bidclub",
    "summary_en": "Search 45+ investor podcasts and read transcripts, TL;DRs, digests — bilingual EN/中文, keyless.",
    "summary_zh": "搜索45+投资者播客并阅读文字记录、TL;DR、摘要——中英双语，无需密钥。",
    "description_en": "BidClub is an MCP server that provides search and retrieval over a library of 45+ investor podcasts. It exposes six tools for listing shows and episodes, full-text searching, fetching episode content (metadata, TL;DR, digest, transcript) in English or Chinese, building download links, and a slim feed index. The server is reachable at https://bidclub.ai/api/mcp via streamable HTTP and was verified healthy with 6 tools discovered.",
    "description_zh": "BidClub 是一个 MCP 服务器，提供对 45+ 投资者播客库的搜索和检索功能。它公开了六个工具，用于列出节目和剧集、全文搜索、获取剧集内容（元数据、TL;DR、摘要、文字记录）的英文或中文版本、构建下载链接以及提供精简的订阅源索引。该服务器可通过 streamable HTTP 在 https://bidclub.ai/api/mcp 访问，并已验证健康，发现 6 个工具。",
    "provider_name": "ai.bidclub",
    "homepage_url": "https://bidclub.ai/",
    "endpoint_url": "https://bidclub.ai/api/mcp",
    "source_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.bidclub%2Fbidclub/versions/1.0.0",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "media.search",
      "media.retrieve",
      "media.list",
      "media.download"
    ],
    "categories": [
      "research"
    ],
    "industries": [
      "media",
      "finance"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "1.0.0",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T06:24:12.304Z"
      }
    },
    "latest_version": "1.0.0",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": null,
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v2",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "low",
      "operational_transparency": "partial",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "ready_for_guidance",
      "reviewed_at": "2026-09-03T06:24:13.164Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:49:55.379Z",
    "last_seen_at": "2026-09-03T06:24:12.523Z",
    "published_at": "2026-09-03T06:24:12.523Z",
    "created_at": "2026-09-03T02:49:55.379Z",
    "updated_at": "2026-09-03T06:24:13.164Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_1179BB7DD8F3",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_1179BB7DD8F3/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_1179BB7DD8F3",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.bidclub%2Fbidclub/versions/1.0.0",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ai.bidclub/bidclub@1.0.0",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.bidclub%2Fbidclub/versions/1.0.0",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:49:55.379Z",
          "last_seen_at": "2026-09-03T06:24:12.523Z"
        }
      ]
    },
    "tools": [
      {
        "name": "bidclub_download_links",
        "title_en": "Download links",
        "title_zh": "下载链接",
        "description_en": "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.",
        "description_zh": "在不获取任何内容的情况下，为剧集或整个节目构建下载 URL。将这些 URL 交给用户，或者当您需要一次性获取完整文字记录而不是通过 bidclub_get_episode 分页时，自己获取一个。slug 或 show 中必须且只能提供一个。",
        "input_schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "slug": {
              "type": "string",
              "pattern": "^[a-z0-9](?:[a-z0-9-]{0,158}[a-z0-9])?$",
              "description": "Episode slug. Mutually exclusive with show."
            },
            "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."
            },
            "lang": {
              "default": "orig",
              "type": "string",
              "enum": [
                "orig",
                "EN",
                "ZH"
              ],
              "description": "Edition to request in the generated URLs. orig keeps each artifact in its source language."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "bidclub_feed_index",
        "title_en": "Feed index",
        "title_zh": "订阅源索引",
        "description_en": "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.",
        "description_zh": "每个剧集的精简目录——每集一行，仅元数据。使用 show 或 person 进行缩小；同时传递两者是错误的。大型响应会被截断为最新行并附有说明，因此请进行过滤而不是分页。",
        "input_schema": {
          "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."
            },
            "person": {
              "type": "string",
              "maxLength": 120,
              "description": "Exact participant name. Mutually exclusive with show."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "bidclub_get_episode",
        "title_en": "Get episode content",
        "title_zh": "获取剧集内容",
        "description_en": "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.",
        "description_zh": "读取剧集的一个部分。长部分会确定性地分页：当结果说 truncated: true 时，再次调用并将 offset 设置为 next_offset，然后连接 content_md，直到 next_offset 为 null。优先选择 tldr 或 digest——文字记录可能超过 100,000 个字符，很少值得完整分页。lang 选择输出版本，而不是目录过滤器；文字记录仅以剧集的源语言存在，因此为 section=transcript 请求不同的 lang 总是返回源语言，并带有 lang_fallback: true。",
        "input_schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "slug": {
              "type": "string",
              "pattern": "^[a-z0-9](?:[a-z0-9-]{0,158}[a-z0-9])?$",
              "description": "Episode slug from a list or search result."
            },
            "section": {
              "default": "digest",
              "type": "string",
              "enum": [
                "meta",
                "tldr",
                "digest",
                "transcript"
              ],
              "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."
            },
            "lang": {
              "default": "EN",
              "type": "string",
              "enum": [
                "EN",
                "ZH"
              ],
              "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."
            },
            "offset": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991,
              "description": "Code-point offset into the section. Use the previous next_offset."
            },
            "max_chars": {
              "type": "integer",
              "minimum": 1000,
              "maximum": 50000,
              "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."
            }
          },
          "required": [
            "slug"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "bidclub_list_episodes",
        "title_en": "List episodes",
        "title_zh": "列出剧集",
        "description_en": "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.",
        "description_zh": "按最新优先列出剧集，可选择限定为一个节目。仅返回元数据——标题、说明、日期、时长、参与者标签和源链接——绝不包含摘要或文字记录。如需内容，请使用 bidclub_get_episode。",
        "input_schema": {
          "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."
            },
            "source_lang": {
              "type": "string",
              "enum": [
                "EN",
                "ZH"
              ],
              "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."
            },
            "limit": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "description": "Episodes per page."
            },
            "offset": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991,
              "description": "Rows to skip. Page with the returned pagination.next_offset."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "bidclub_list_shows",
        "title_en": "List shows",
        "title_zh": "列出节目",
        "description_en": "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.",
        "description_zh": "列出 BidClub 库中的每个节目，包括其 ID、显示名称、源语言、主持人和源链接。当您需要其他工具的 show 参数的节目 ID 时，请从这里开始。",
        "input_schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {}
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "bidclub_search_episodes",
        "title_en": "Search episodes",
        "title_zh": "搜索剧集",
        "description_en": "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.",
        "description_zh": "在标题、说明、TL;DR、摘要和文字记录中进行全文搜索，并带有子字符串扫描，可处理分词器无法分割的中文查询。最多返回 20 行元数据，绝不返回内容。当响应带有 partial: true 时，查询仅覆盖最新的 searched_recent 剧集，因此请说明这一点，而不是报告不存在。",
        "input_schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "q": {
              "type": "string",
              "minLength": 2,
              "maxLength": 100,
              "description": "Query text. English words are stemmed; Chinese matches as a substring."
            },
            "time": {
              "type": "string",
              "enum": [
                "24h",
                "7d",
                "30d"
              ],
              "description": "Restrict to episodes published within this window."
            },
            "person": {
              "type": "string",
              "maxLength": 120,
              "description": "Exact participant name, matched against the \"person:\" chips."
            },
            "show": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$",
              "description": "Show id from bidclub_list_shows."
            },
            "source_lang": {
              "type": "string",
              "enum": [
                "EN",
                "ZH"
              ],
              "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."
            },
            "len": {
              "type": "string",
              "enum": [
                "lt30",
                "30to60",
                "60to120",
                "gt120"
              ],
              "description": "Episode duration bucket."
            }
          },
          "required": [
            "q"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v2",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "low",
        "operational_transparency": "partial",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "ready_for_guidance"
      },
      "profile": {
        "capabilities": [
          {
            "id": "media.search",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "media.retrieve",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "media.list",
            "weight": 80,
            "confidence": 95,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "media.download",
            "weight": 60,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "media",
            "weight": 100,
            "confidence": 95,
            "evidence_ids": [
              "source-record"
            ]
          },
          {
            "id": "finance",
            "weight": 70,
            "confidence": 80,
            "evidence_ids": [
              "source-record"
            ]
          }
        ],
        "workflow_roles": [
          "discover",
          "retrieve",
          "analyze"
        ]
      },
      "capability_units": [
        {
          "id": "tool:bidclub_list_shows",
          "kind": "mcp_tool",
          "capability_id": "media.list",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "show list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:bidclub_list_episodes",
          "kind": "mcp_tool",
          "capability_id": "media.list",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "show id",
            "source language",
            "limit",
            "offset"
          ],
          "produces": [
            "episode metadata list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:bidclub_search_episodes",
          "kind": "mcp_tool",
          "capability_id": "media.search",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "query",
            "time window",
            "person",
            "show id",
            "source language",
            "duration bucket"
          ],
          "produces": [
            "episode metadata list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:bidclub_get_episode",
          "kind": "mcp_tool",
          "capability_id": "media.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "episode slug",
            "section",
            "language",
            "offset",
            "max chars"
          ],
          "produces": [
            "episode content (markdown)"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:bidclub_feed_index",
          "kind": "mcp_tool",
          "capability_id": "media.list",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "show id",
            "person"
          ],
          "produces": [
            "episode metadata list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:bidclub_download_links",
          "kind": "mcp_tool",
          "capability_id": "media.download",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "episode slug",
            "show id",
            "language"
          ],
          "produces": [
            "download URLs"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {
        "distribution_license": {},
        "runtime_auth": {},
        "runtime_pricing": {},
        "dependencies": []
      },
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": null
      },
      "fit": {
        "good_for": [
          "Searching and retrieving investor podcast content",
          "Getting summaries (TL;DR, digest) in English or Chinese",
          "Listing shows and episodes for discovery",
          "Building download links for offline access"
        ],
        "not_for": [
          "Accessing full transcripts in a language other than the source",
          "Performing actions beyond read-only retrieval"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.bidclub%2Fbidclub/versions/1.0.0",
          "observation": "MCP source record for bidclub; version 1.0.0.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://bidclub.ai/api/mcp#tools/list",
          "observation": "6 tools were returned by MCP discovery; 6 were retained for review.",
          "observed_at": "2026-09-03T06:23:57.717Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Authentication requirements (if any) are unknown",
        "Pricing model is unknown",
        "Exact output schemas are not documented",
        "Real-world usage has not been observed"
      ],
      "id": "REV_C6804E2D78D9",
      "resource_id": "RES_1179BB7DD8F3",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-03T06:24:13.164Z"
    }
  }
}