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

A
Description quality
98%
Schema completeness
80%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'getEpisodesGuestTranscriptformat' name length outside 3-30 rangein getEpisodesGuestTranscriptformat
  • LOWTool 'getEpisodesGuestChunksChunkIdtxt' name length outside 3-30 rangein getEpisodesGuestChunksChunkIdtxt

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~929Tokens (tool definitions)
~803 BTypical response size
Moderate attention impact (0.73% of 128k context)

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-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

search_research
Search for information about [topic] using Lenny Rachitsky Podcast Transcripts MCP Server
Expected tools: getSearch
find_specific
Find [specific item] using Lenny Rachitsky Podcast Transcripts MCP Server
Expected tools: getSearch
retrieve_data
Get details about [item] from Lenny Rachitsky Podcast Transcripts MCP Server
Expected tools: getEpisodes
fetch_info
Fetch [information type] using Lenny Rachitsky Podcast Transcripts MCP Server
Expected tools: getEpisodes
research_workflow
Search for [topic], then get detailed information about the top results using Lenny Rachitsky Podcast Transcripts MCP Server
Expected tools: getSearchgetEpisodes

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools