loading…
Search for a command to run...
loading…
An MCP server that indexes plain-text podcast transcripts stored in Dropbox and makes them searchable inside Claude Code.
An MCP server that indexes plain-text podcast transcripts stored in Dropbox and makes them searchable inside Claude Code.
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.
.txt transcripts from a Dropbox folder into a local SQLite database with full-text search (FTS5)brew install uv on macOS)/Podcasts/Lenny)transcripts-mcp)files.metadata.readfiles.content.readuvx --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.
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).
All configuration is via environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
DROPBOX_APP_KEY |
yes | Dropbox app key | |
DROPBOX_APP_SECRET |
yes | Dropbox app secret | |
DROPBOX_REFRESH_TOKEN |
yes | OAuth refresh token | |
DROPBOX_FOLDER_PATH |
no | /Podcasts/Lenny |
Path to transcripts folder in Dropbox |
SYNC_INTERVAL_HOURS |
no | 6 |
How often to poll Dropbox for changes |
DB_PATH |
no | ~/.dropbox-transcripts-mcp/transcripts.db |
Local SQLite database path |
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
| Tool | Description |
|---|---|
list_episodes_tool |
List all indexed episodes with last sync time |
get_episode_tool |
Get a full transcript by guest name (supports partial match) |
search_transcripts_tool |
Full-text search with highlighted snippets. Supports quoted phrases, AND/OR, prefix wildcards (retain*) |
sync_tool |
Manually trigger a Dropbox sync |
MIT
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"dropbox-transcripts-mcp": {
"command": "npx",
"args": []
}
}
}