MCP Hub
Back to servers

dropbox-transcripts-mcp

An MCP server that indexes plain-text podcast transcripts stored in Dropbox and makes them searchable inside Claude Code.

glama
Updated
Apr 28, 2026

dropbox-transcripts-mcp

An MCP server that indexes plain-text podcast transcripts stored in Dropbox and makes them searchable inside Claude Code. Syncs automatically as new transcripts are added.

What it does

  • Caches all .txt transcripts from a Dropbox folder into a local SQLite database with full-text search (FTS5)
  • Polls Dropbox every N hours and indexes new or changed files automatically
  • Exposes four tools to Claude Code: list, retrieve, search, and manual sync

Prerequisites

  • Python 3.10+
  • uv (brew install uv on macOS)
  • A Dropbox account with your transcripts in a folder (default: /Podcasts/Lenny)

Setup

1. Create a Dropbox app

  1. Go to https://www.dropbox.com/developers/apps
  2. Click Create app
  3. Choose Scoped access and Full Dropbox
  4. Name it anything (e.g. transcripts-mcp)
  5. Under the Permissions tab, enable:
    • files.metadata.read
    • files.content.read
  6. Copy the App Key and App Secret from the Settings tab

2. Run the auth setup

uvx --from git+https://github.com/YOUR_USERNAME/dropbox-transcripts-mcp dropbox-transcripts-setup

This walks you through the OAuth flow and prints your DROPBOX_REFRESH_TOKEN. It will also print the exact MCP config block to paste into your Claude Code settings.

3. Add to Claude Code

Edit ~/.claude/settings.json and add:

{
  "mcpServers": {
    "transcripts": {
      "command": "uvx",
      "args": [
        "--from", "git+https://github.com/YOUR_USERNAME/dropbox-transcripts-mcp",
        "dropbox-transcripts-mcp"
      ],
      "env": {
        "DROPBOX_APP_KEY": "your_app_key",
        "DROPBOX_APP_SECRET": "your_app_secret",
        "DROPBOX_REFRESH_TOKEN": "your_refresh_token",
        "DROPBOX_FOLDER_PATH": "/Podcasts/Lenny"
      }
    }
  }
}

The first time Claude Code starts the server it will sync all transcripts from Dropbox. Subsequent syncs happen automatically in the background every 6 hours (configurable).

Configuration

All configuration is via environment variables:

VariableRequiredDefaultDescription
DROPBOX_APP_KEYyesDropbox app key
DROPBOX_APP_SECRETyesDropbox app secret
DROPBOX_REFRESH_TOKENyesOAuth refresh token
DROPBOX_FOLDER_PATHno/Podcasts/LennyPath to transcripts folder in Dropbox
SYNC_INTERVAL_HOURSno6How often to poll Dropbox for changes
DB_PATHno~/.dropbox-transcripts-mcp/transcripts.dbLocal SQLite database path

File naming convention

Transcript files should be named Guest Name.txt. The filename (without .txt) becomes the episode identifier used by get_episode and shown in list_episodes.

Examples: Adam Fishman.txt, Elena Verna 2.0.txt

Available tools

ToolDescription
list_episodes_toolList all indexed episodes with last sync time
get_episode_toolGet a full transcript by guest name (supports partial match)
search_transcripts_toolFull-text search with highlighted snippets. Supports quoted phrases, AND/OR, prefix wildcards (retain*)
sync_toolManually trigger a Dropbox sync

License

MIT

Reviews

No reviews yet

Sign in to write a review