Lenny Rachitsky Podcast Transcripts MCP Server
MCP server for structured access to Lenny Rachitsky podcast transcripts. For content creators.
Should I use this
Quality & Safety
Findings (2)
- LOWin getEpisodesGuestTranscriptformat
- LOWin getEpisodesGuestChunksChunkIdtxt
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"lenny-rachitsky-podcast": {
"url": "https://lenny-rachitsky.run.mcp.com.ai/mcp"
}
}
}Remote endpoints
https://lenny-rachitsky.run.mcp.com.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢getEpisodes(limit, cursor, sort, x-hapi-auth-state)
List episodes - Lists episodes with parsed frontmatter (guest, title, duration, youtube_url, etc.) and their canonical resource URIs.
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"
}
}
}🟢getEpisodesGuest(guest, x-hapi-auth-state)
Get an episode card (metadata + key URIs)
Input Schema
{
"type": "object",
"properties": {
"guest": {
"type": "string"
},
"x-hapi-auth-state": {
"type": "string"
}
},
"required": [
"guest"
]
}🟢getEpisodesGuestMetadatajson(guest, x-hapi-auth-state)
Get episode metadata as JSON (frontmatter)
Input Schema
{
"type": "object",
"properties": {
"guest": {
"type": "string"
},
"x-hapi-auth-state": {
"type": "string"
}
},
"required": [
"guest"
]
}🟢getEpisodesGuestTranscriptformat(guest, format, include_frontmatter, x-hapi-auth-state)
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)
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"
]
}🟢getEpisodesGuestChunks(guest, size, overlap, x-hapi-auth-state)
List chunk descriptors for an episode - Returns chunk boundaries and URIs for chunk retrieval. Chunks may be computed on-demand using size/overlap parameters.
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"
]
}🟢getEpisodesGuestChunksChunkIdtxt(guest, chunkId, x-hapi-auth-state)
Get a specific transcript chunk as plain text
Input Schema
{
"type": "object",
"properties": {
"guest": {
"type": "string"
},
"chunkId": {
"type": "integer",
"minimum": 0
},
"x-hapi-auth-state": {
"type": "string"
}
},
"required": [
"guest",
"chunkId"
]
}🟢getSearch(q, mode, episode_slug, guest, title, ...)
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): GET /search?q=pricing&mode=vector&guest=Marty%20Cagan&keywords=pricing,monetization&top_k=5
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"
]
}🟢postSearch(undefinedBody, x-hapi-auth-state)
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.
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"
]
}Recommended Prompts
getSearchgetSearchgetEpisodesgetEpisodesgetSearchgetEpisodesCommunity
Evidence