Lenny Rachitsky Podcast Transcripts MCP Server
Tags
Configuration
{
"mcpServers": {
"lenny-rachitsky-podcast": {
"url": "https://lenny-rachitsky.run.mcp.com.ai/mcp",
"type": "http"
}
},
"requiresAuth": false,
"requiresOAuth": false
}Available Tools (8)
getEpisodes
List episodes - Lists episodes with parsed frontmatter (guest, title, duration, youtube_url, etc.) and their canonical resource URIs.
Input Schema
{
"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"
}
}
}getEpisodesGuest
Get an episode card (metadata + key URIs)
Input Schema
{
"type": "object",
"required": [
"guest"
],
"properties": {
"guest": {
"type": "string"
},
"x-hapi-auth-state": {
"type": "string"
}
}
}getEpisodesGuestMetadatajson
Get episode metadata as JSON (frontmatter)
Input Schema
{
"type": "object",
"required": [
"guest"
],
"properties": {
"guest": {
"type": "string"
},
"x-hapi-auth-state": {
"type": "string"
}
}
}getEpisodesGuestTranscriptformat
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",
"required": [
"guest",
"format"
],
"properties": {
"guest": {
"type": "string"
},
"format": {
"enum": [
"md",
"txt",
"json"
],
"type": "string"
},
"x-hapi-auth-state": {
"type": "string"
},
"include_frontmatter": {
"type": "boolean"
}
}
}getEpisodesGuestChunks
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",
"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"
}
}
}getEpisodesGuestChunksChunkIdtxt
Get a specific transcript chunk as plain text
Input Schema
{
"type": "object",
"required": [
"guest",
"chunkId"
],
"properties": {
"guest": {
"type": "string"
},
"chunkId": {
"type": "integer",
"minimum": 0
},
"x-hapi-auth-state": {
"type": "string"
}
}
}getSearch
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",
"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"
}
}
}postSearch
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",
"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"
}
}
}