{"serverId":"mcp-registry/ai.com.mcp/lenny-rachitsky-podcast","tools":[{"name":"getEpisodes","fixed":{"name":"getEpisodes","description":"List episodes - Lists episodes with parsed frontmatter (guest, title, duration, youtube_url, etc.) and their canonical resource URIs.","inputSchema":{"type":"object","properties":{"sort":{"enum":["recent","views","title"],"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1},"cursor":{"type":"string","description":"Opaque pagination cursor"},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"getEpisodesGuest","fixed":{"name":"getEpisodesGuest","description":"Get an episode card (metadata + key URIs)","inputSchema":{"type":"object","required":["guest"],"properties":{"guest":{"type":"string"},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"getEpisodesGuestChunks","fixed":{"name":"getEpisodesGuestChunks","description":"List chunk descriptors for an episode - Returns chunk boundaries and URIs for chunk retrieval. Chunks may be computed on-demand using size/overlap parameters.","inputSchema":{"type":"object","required":["guest"],"properties":{"size":{"type":"integer","maximum":20000,"minimum":200},"guest":{"type":"string"},"overlap":{"type":"integer","maximum":5000,"minimum":0},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"getEpisodesGuestChunksChunkIdtxt","fixed":{"name":"getEpisodesGuestChunksChunkIdtxt","description":"Get a specific transcript chunk as plain text","inputSchema":{"type":"object","required":["guest","chunkId"],"properties":{"guest":{"type":"string"},"chunkId":{"type":"integer","minimum":0},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"getEpisodesGuestMetadatajson","fixed":{"name":"getEpisodesGuestMetadatajson","description":"Get episode metadata as JSON (frontmatter)","inputSchema":{"type":"object","required":["guest"],"properties":{"guest":{"type":"string"},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":64,"tokensAfter":64},{"name":"getEpisodesGuestTranscriptformat","fixed":{"name":"getEpisodesGuestTranscriptformat","description":"Get transcript in a specific format - 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 (metadata + transcript text)","inputSchema":{"type":"object","required":["guest","format"],"properties":{"guest":{"type":"string"},"format":{"enum":["md","txt","json"],"type":"string"},"x-hapi-auth-state":{"type":"string"},"include_frontmatter":{"type":"boolean"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"getSearch","fixed":{"name":"getSearch","description":"Search episodes and transcripts - 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. Example (vector search with filters):\n\n  GET /search?q=pricing&mode=vector&guest=Marty%20Cagan&keywords=pricing,monetization&top_k=5","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"mode":{"enum":["metadata","transcript","vector","both"],"type":"string"},"guest":{"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1},"title":{"type":"string"},"top_k":{"type":"integer","maximum":200,"minimum":1},"cursor":{"type":"string","description":"Opaque pagination cursor"},"keywords":{"type":"string"},"namespace":{"type":"string"},"episode_slug":{"type":"string"},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"postSearch","fixed":{"name":"postSearch","description":"Search episodes and transcripts (POST body) - Same search as GET /search, but parameters are provided in the request body. This is useful for longer filter payloads.","inputSchema":{"type":"object","required":["undefinedBody"],"properties":{"undefinedBody":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"mode":{"enum":["metadata","transcript","vector","both"],"type":"string"},"guest":{"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1},"title":{"type":"string"},"top_k":{"type":"integer","maximum":200,"minimum":1},"cursor":{"type":"string"},"keywords":{"type":"string"},"namespace":{"type":"string"},"episode_slug":{"type":"string"}}},"x-hapi-auth-state":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":210,"tokensAfter":210}],"toolsChanged":8,"tokensSaved":0,"todo":[{"tool":"getEpisodes","params":["sort","limit","x-hapi-auth-state"]},{"tool":"getEpisodesGuest","params":["guest","x-hapi-auth-state"]},{"tool":"getEpisodesGuestChunks","params":["size","guest","overlap","x-hapi-auth-state"]},{"tool":"getEpisodesGuestChunksChunkIdtxt","params":["guest","chunkId","x-hapi-auth-state"]},{"tool":"getEpisodesGuestMetadatajson","params":["guest","x-hapi-auth-state"]},{"tool":"getEpisodesGuestTranscriptformat","params":["guest","format","x-hapi-auth-state","include_frontmatter"]},{"tool":"getSearch","params":["q","mode","guest","limit","title","top_k","keywords","namespace","episode_slug","x-hapi-auth-state"]},{"tool":"postSearch","params":["undefinedBody","x-hapi-auth-state"]}],"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."}