MCP server for hierarchical RAG over Lenny Rachitsky podcast transcripts
Four tools with complete schemas and descriptions. Naming follows verb_noun pattern (search_, get_, list_). Descriptions are substantive (150-250 chars) and explain WHEN to use each tool. However, output schemas are undocumented, LLMs cannot predict response structure. Parameter descriptions lack format constraints (e.g., 'episode' accepts 'Brian Chesky.txt' but no validation rules stated). No error handling guidance. Missing tool annotations (readOnlyHint, idempotentHint). Composition is sound: tools chain logically (search → get_chapter → get_full_transcript).
Load a specific chapter/topic from an episode with full context. Returns the topic summary, all insights, examples, and the raw transcript segment. Use this after search_lenny to dive deeper into a specific topic.
Load the complete transcript for an episode. Returns metadata, topic list, and full transcript text. Use this when you need the complete context of an episode. Note: transcripts can be 10-40K tokens long.
List all available Lenny podcast episodes. Optionally filter by expertise area. Use this to discover what episodes are available or find episodes by a specific expert type.
Search across Lenny Rachitsky podcast transcripts for insights, examples, and topics. Returns relevant results with pointers for deeper exploration. Use this for finding product development insights, growth strategies, leadership advice, and real-world examples.
Output schemas undocumented. LLMs cannot predict response structure (fields, types, nesting). Forces agents to guess at downstream field names and risk extraction errors.
Parameter 'episode' (filename string) lacks format constraints. No validation rules, length limits, or character restrictions stated. LLMs may pass invalid filenames.
No error handling guidance. If episode not found or topic_id invalid, no recovery hints provided. LLM cannot self-correct or suggest alternatives.
Tool annotations missing. No readOnlyHint, idempotentHint, or destructiveHint declared. LLMs cannot infer safety properties (all tools are read-only but not marked).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Parameter 'top_k' has default=5 and max=20, but no minimum stated. Unclear if 0 or negative values are rejected. Validation rules should be explicit.