{
  "ok": true,
  "resource": {
    "id": "RES_CCA71F051C0D",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.com.mcp%2Flenny-rachitsky-podcast/versions/0.6.0",
    "name": "Lenny Rachitsky Podcast Transcripts MCP Server",
    "summary_en": "MCP server for structured access to Lenny Rachitsky podcast transcripts. For content creators.",
    "summary_zh": "用于结构化访问 Lenny Rachitsky 播客转录的 MCP 服务器。面向内容创作者。",
    "description_en": "This MCP server provides structured access to Lenny Rachitsky podcast transcripts. It offers tools to list episodes, retrieve episode metadata and transcripts in various formats (markdown, text, JSON), retrieve transcript chunks, and search across metadata and transcript text. The server is designed for content creators who need to query and retrieve podcast content programmatically.",
    "description_zh": "该 MCP 服务器提供对 Lenny Rachitsky 播客转录的结构化访问。它提供工具来列出剧集、以多种格式（markdown、文本、JSON）检索剧集元数据和转录、检索转录块，并在元数据和转录文本中进行搜索。该服务器专为需要以编程方式查询和检索播客内容的内容创作者设计。",
    "provider_name": "ai.com.mcp",
    "homepage_url": "https://mcp.com.ai/",
    "endpoint_url": "https://lenny-rachitsky.run.mcp.com.ai/mcp",
    "source_url": "https://github.com/la-rebelion/hapimcp",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "content.retrieve",
      "content.search",
      "content.list"
    ],
    "categories": [
      "research",
      "data"
    ],
    "industries": [
      "media"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "0.6.0",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T05:53:45.981Z"
      }
    },
    "latest_version": "0.6.0",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence found.",
      "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": "guided_use",
      "reviewed_at": "2026-09-03T05:53:47.063Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:50:14.437Z",
    "last_seen_at": "2026-09-03T05:53:46.205Z",
    "published_at": "2026-09-03T05:53:46.205Z",
    "created_at": "2026-09-03T02:50:14.437Z",
    "updated_at": "2026-09-03T05:53:47.063Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_CCA71F051C0D",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_CCA71F051C0D/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_CCA71F051C0D",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.com.mcp%2Flenny-rachitsky-podcast/versions/0.6.0",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ai.com.mcp/lenny-rachitsky-podcast@0.6.0",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.com.mcp%2Flenny-rachitsky-podcast/versions/0.6.0",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:50:14.437Z",
          "last_seen_at": "2026-09-03T05:53:46.205Z"
        }
      ]
    },
    "tools": [
      {
        "name": "getEpisodes",
        "title_en": "List Episodes",
        "title_zh": "列出剧集",
        "description_en": "Lists episodes with parsed frontmatter (guest, title, duration, youtube_url, etc.) and their canonical resource URIs.",
        "description_zh": "列出带有解析的前置元数据（嘉宾、标题、时长、youtube_url 等）及其规范资源 URI 的剧集。",
        "input_schema": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            },
            "cursor": {
              "type": "string",
              "description": "Opaque pagination cursor"
            },
            "sort": {
              "type": "string",
              "enum": [
                "recent",
                "views",
                "title"
              ]
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "getEpisodesGuest",
        "title_en": "Get Episode Card",
        "title_zh": "获取剧集卡片",
        "description_en": "Get an episode card (metadata + key URIs)",
        "description_zh": "获取剧集卡片（元数据 + 关键 URI）。",
        "input_schema": {
          "type": "object",
          "properties": {
            "guest": {
              "type": "string"
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "required": [
            "guest"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "getEpisodesGuestChunks",
        "title_en": "List Chunk Descriptors for an Episode",
        "title_zh": "列出剧集的块描述符",
        "description_en": "Returns chunk boundaries and URIs for chunk retrieval. Chunks may be computed on-demand using size/overlap parameters.",
        "description_zh": "返回用于块检索的块边界和 URI。可以使用 size/overlap 参数按需计算块。",
        "input_schema": {
          "type": "object",
          "properties": {
            "guest": {
              "type": "string"
            },
            "size": {
              "type": "integer",
              "minimum": 200,
              "maximum": 20000
            },
            "overlap": {
              "type": "integer",
              "minimum": 0,
              "maximum": 5000
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "required": [
            "guest"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "getEpisodesGuestChunksChunkIdtxt",
        "title_en": "Get a Specific Transcript Chunk as Plain Text",
        "title_zh": "获取特定转录块（纯文本）",
        "description_en": "Get a specific transcript chunk as plain text.",
        "description_zh": "以纯文本形式获取特定的转录块。",
        "input_schema": {
          "type": "object",
          "properties": {
            "guest": {
              "type": "string"
            },
            "chunkId": {
              "type": "integer",
              "minimum": 0
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "required": [
            "guest",
            "chunkId"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "getEpisodesGuestMetadatajson",
        "title_en": "Get Episode Metadata as JSON",
        "title_zh": "获取剧集元数据（JSON）",
        "description_en": "Get episode metadata as JSON (frontmatter)",
        "description_zh": "以 JSON 格式获取剧集元数据（前置元数据）。",
        "input_schema": {
          "type": "object",
          "properties": {
            "guest": {
              "type": "string"
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "required": [
            "guest"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "getEpisodesGuestTranscriptformat",
        "title_en": "Get Transcript in a Specific Format",
        "title_zh": "获取特定格式的转录",
        "description_en": "Returns the transcript in the requested format: md (markdown, may include or exclude frontmatter based on include_frontmatter), txt (clean text, best for LLM ingestion), json (structured form with metadata and transcript text).",
        "description_zh": "以请求的格式返回转录：md（markdown，根据 include_frontmatter 可能包含或排除前置元数据）、txt（纯文本，最适合 LLM 摄取）、json（结构化形式，包含元数据和转录文本）。",
        "input_schema": {
          "type": "object",
          "properties": {
            "guest": {
              "type": "string"
            },
            "format": {
              "type": "string",
              "enum": [
                "md",
                "txt",
                "json"
              ]
            },
            "include_frontmatter": {
              "type": "boolean"
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "required": [
            "guest",
            "format"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "getSearch",
        "title_en": "Search Episodes and Transcripts",
        "title_zh": "搜索剧集和转录",
        "description_en": "Searches across metadata (D1) and transcript text (Vectorize). Returns matches as resources, including per-hit URIs pointing to episode cards and transcript chunks. Note: pagination cursor applies to metadata search only.",
        "description_zh": "在元数据（D1）和转录文本（Vectorize）中搜索。将匹配项作为资源返回，包括指向剧集卡片和转录块的每次命中 URI。注意：分页游标仅适用于元数据搜索。",
        "input_schema": {
          "type": "object",
          "properties": {
            "q": {
              "type": "string"
            },
            "mode": {
              "type": "string",
              "enum": [
                "metadata",
                "transcript",
                "vector",
                "both"
              ]
            },
            "episode_slug": {
              "type": "string"
            },
            "guest": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "keywords": {
              "type": "string"
            },
            "namespace": {
              "type": "string"
            },
            "top_k": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            },
            "cursor": {
              "type": "string",
              "description": "Opaque pagination cursor"
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "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": {}
      },
      {
        "name": "postSearch",
        "title_en": "Search Episodes and Transcripts (POST body)",
        "title_zh": "搜索剧集和转录（POST 请求体）",
        "description_en": "Same search as GET /search, but parameters are provided in the request body. This is useful for longer filter payloads.",
        "description_zh": "与 GET /search 相同的搜索，但参数在请求体中提供。这对于较长的过滤器负载很有用。",
        "input_schema": {
          "type": "object",
          "properties": {
            "undefinedBody": {
              "type": "object",
              "properties": {
                "q": {
                  "type": "string"
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "metadata",
                    "transcript",
                    "vector",
                    "both"
                  ]
                },
                "episode_slug": {
                  "type": "string"
                },
                "guest": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "keywords": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                },
                "top_k": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 200
                },
                "limit": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 200
                },
                "cursor": {
                  "type": "string"
                }
              },
              "required": [
                "q"
              ]
            },
            "x-hapi-auth-state": {
              "type": "string"
            }
          },
          "required": [
            "undefinedBody"
          ]
        },
        "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": "guided_use"
      },
      "profile": {
        "capabilities": [
          {
            "id": "content.retrieve",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "content.search",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "content.list",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "media",
            "weight": 100,
            "confidence": 90,
            "evidence_ids": [
              "source-record"
            ]
          }
        ],
        "workflow_roles": [
          "discover",
          "retrieve",
          "analyze"
        ]
      },
      "capability_units": [
        {
          "id": "tool:getEpisodes",
          "kind": "mcp_tool",
          "capability_id": "content.list",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "limit",
            "cursor",
            "sort"
          ],
          "produces": [
            "episode list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:getEpisodesGuest",
          "kind": "mcp_tool",
          "capability_id": "content.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "guest"
          ],
          "produces": [
            "episode card"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:getEpisodesGuestMetadatajson",
          "kind": "mcp_tool",
          "capability_id": "content.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "guest"
          ],
          "produces": [
            "episode metadata JSON"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:getEpisodesGuestTranscriptformat",
          "kind": "mcp_tool",
          "capability_id": "content.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "guest",
            "format",
            "include_frontmatter"
          ],
          "produces": [
            "transcript in requested format"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:getEpisodesGuestChunks",
          "kind": "mcp_tool",
          "capability_id": "content.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "guest",
            "size",
            "overlap"
          ],
          "produces": [
            "chunk descriptors"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:getEpisodesGuestChunksChunkIdtxt",
          "kind": "mcp_tool",
          "capability_id": "content.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "guest",
            "chunkId"
          ],
          "produces": [
            "transcript chunk text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:getSearch",
          "kind": "mcp_tool",
          "capability_id": "content.search",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "q",
            "mode",
            "episode_slug",
            "guest",
            "title",
            "keywords",
            "namespace",
            "top_k",
            "limit",
            "cursor"
          ],
          "produces": [
            "search results"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:postSearch",
          "kind": "mcp_tool",
          "capability_id": "content.search",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "body"
          ],
          "produces": [
            "search results"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {
        "distribution_license": {},
        "runtime_auth": {},
        "runtime_pricing": {},
        "dependencies": []
      },
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": "No suspicious or malicious evidence found."
      },
      "fit": {
        "good_for": [
          "Content creators needing to retrieve podcast transcripts and metadata.",
          "Researchers analyzing podcast content.",
          "Developers building applications that require podcast search and retrieval."
        ],
        "not_for": [
          "Users needing to modify or create podcast content.",
          "Applications requiring real-time streaming or audio processing."
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/la-rebelion/hapimcp",
          "observation": "MCP source record for Lenny Rachitsky Podcast Transcripts MCP Server; version 0.6.0.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://lenny-rachitsky.run.mcp.com.ai/mcp#tools/list",
          "observation": "8 tools were returned by MCP discovery; 8 were retained for review.",
          "observed_at": "2026-09-03T05:53:32.041Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Authentication mechanism is unknown.",
        "Pricing model is unknown.",
        "Exact output schemas for tools are not provided.",
        "Real-world usage and safety testing have not been observed."
      ],
      "id": "REV_0772122A455B",
      "resource_id": "RES_CCA71F051C0D",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-03T05:53:47.063Z"
    }
  }
}