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