Token resolution order: 1. PLAUD_TOKEN env var 2. ~/.plaud/tokens-mcp.json (desktop app authToken, ~6-month expiry) Written by plaud_decrypt_tokens.py via Electron safeStorage decryption 3. ~/.plaud/config.json (legacy 24-hour web token fallback) The Plaud desktop app stores a standard JWT authToken in Chromium v10 Electron safeStorage (AES-128-CBC / PBKDF2-SHA1). plaud_decrypt_tokens.py extracts this token and saves it to tokens-mcp.json. Current token expires 2026-11-25; re-run the decrypt script on that date to renew.
plaud-mpm-plugin
Connects Claude to Plaud recordings — list, search, transcripts, summaries, and AI notes directly in CoWork.
Version: 0.1.0 Author: Message Point Media Repo: https://git.alwisp.com/jason/plaud-mpm-plugin CoWork Project: CW-012 — Plaud MCP Plugin
Overview
This CoWork plugin gives Claude direct access to Bryan's Plaud voice recordings via the unofficial Plaud API. It authenticates using a bearer token stored in ~/.plaud/config.json (written by the plaud-connector import-token command) and exposes 7 MCP tools covering listing, searching, transcripts, summaries, and AI-generated notes. The plugin runs as a Python FastMCP stdio server launched by uv — no additional runtime dependencies beyond mcp[cli].
Authentication
Token is read from ~/.plaud/config.json → token.token field (plaud-connector format).
Falls back to PLAUD_TOKEN environment variable.
Token setup (one-time):
npx tsx ~/Developer/plaud-connector/packages/cli/bin/plaud.ts import-token app "<jwt>"
Get the JWT from Chrome DevTools → Network → any api.plaud.ai request → Authorization: Bearer <token>.
Tokens last ~300 days. Re-run import-token when expired.
MCP Tools (7)
| Tool | Description |
|---|---|
plaud_list_recordings |
List all recordings newest-first. Params: limit, only_with_transcript. |
plaud_search_recordings |
Filter by title_contains, start_date, end_date, only_with_transcript. |
plaud_get_transcript |
Full transcript text for a recording ID. |
plaud_get_summary |
AI-generated summary for a recording ID. |
plaud_get_notes |
AI notes and action items (content_list) for a recording ID. |
plaud_get_recording_detail |
Full metadata: title, date, duration, flags, language, device, tags. |
plaud_user_info |
Account info and connection status. |
Skills
| Skill | Trigger phrases |
|---|---|
plaud |
"pull the transcript", "what was discussed in my last meeting", "search my Plaud recordings", "show me action items from [meeting]", "meeting transcript", "meeting summary", "voice notes" |
Dependencies
mcp[cli](viauv run --with mcp[cli]) — FastMCP server frameworkplaud-connector(external, for auth setup only) — https://github.com/rggnkmp/plaud-connector- Python stdlib only for HTTP (
urllib.request)
Region
US region (api.plaud.ai). Set PLAUD_REGION=eu env var to switch to EU (api.plaud.eu).
File Structure
plaud-mpm-plugin/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── .mcp.json # MCP server config (uv + plaud_mcp.py)
├── server/
│ └── plaud_mcp.py # FastMCP server — 7 tools
├── skills/
│ └── plaud/
│ └── SKILL.md # Skill definition and workflow guidance
└── README.md