Plaud MCP

Plaud MCP

Bring your Plaud Note recordings into Claude Desktop. Search meetings, pull transcripts, and ask Claude about your notes — directly from chat.

Category
访问服务器

README

Plaud MCP

A Humanly Labs open source project.

Bring your Plaud Note recordings into Claude Desktop. Search meetings, pull transcripts, and ask Claude about your notes — directly from chat.


Before you start, you'll need

A checklist. If you're missing any of these, the setup script will tell you and point you at how to get it — but it's faster to confirm now.

Requirement How to check How to get it
macOS (Sequoia, Sonoma, or Ventura) Apple menu → About This Mac This script is macOS-only. For Linux/Windows, see Manual setup below.
Claude Desktop Look in /Applications/ Download from claude.ai/download and install before continuing.
Python 3.9 or newer Run python3 --version in Terminal brew install python3 (Homebrew) or download from python.org.
A paid Plaud account (Pro or Unlimited) Sign in at web.plaud.ai — your plan is shown on the account page Upgrade at plaud.ai/pricing. Plaud's Developer API doesn't include the free Starter tier.
A Plaud Note device or recordings made via the Plaud app Open web.plaud.ai and look at your library The MCP server can only see what's already in your Plaud cloud — if your library is empty, Claude won't have anything to fetch.

Setup — three commands, about 30 seconds

Open Terminal (Cmd+Space → type "Terminal" → Enter), then run these three commands one at a time:

git clone https://github.com/Humanly-Labs/plaud-mcp.git
cd plaud-mcp
./setup

That's it. The setup script does everything else. The rest of this section explains what's happening while it runs, so nothing surprises you.

What ./setup does, step by step

  1. Pre-flight checks ✓ Confirms you have macOS, Python 3.9+, and Claude Desktop. If any of them are missing, the script stops with a clear instruction on how to get it.

  2. Creates a Python virtual environment in .venv/ So this project's Python packages don't conflict with your system Python or other projects.

  3. Installs dependencies from requirements.txt Three small Python packages: mcp[cli], python-dotenv, pydantic.

  4. Signs you in to Plaud in your browser 🌐 A browser tab opens to web.plaud.ai/platform/oauth — sign in however you normally use Plaud (Google, Apple, passkey, email/password), then click Authorize on Plaud's consent screen. When you see the rainbow nyan-cat page, you're done — close the tab.

  5. Registers Plaud with Claude Desktop Adds a plaud entry to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json). Any other MCP servers you have configured are left untouched. A timestamped backup is saved before any change.

  6. Restarts Claude Desktop 🔄 The script quits and relaunches Claude Desktop so it picks up the new MCP server. macOS may ask "Terminal wants to control Claude" — click Allow. This is one-time and expected.

  7. Verifies everything works ✓ Starts the MCP server in the background and confirms it responds to the same protocol Claude Desktop will use. If anything's wrong, you'll see a clear error.

When the script finishes, you'll see ✓ All set in your terminal. Open Claude Desktop and ask:

"List my recent Plaud recordings."

Claude should immediately respond with a list of your meetings.

Setup is safe to re-run

./setup is idempotent — running it a second time is a no-op. It detects you're already signed in, that the Claude Desktop entry already matches, and skips the restart. Re-run any time you want to verify everything is healthy.

What you can ask Claude

Once setup completes, Claude has access to your Plaud library. Try:

  • "What did I discuss in my last meeting?"
  • "Summarize my recordings from this week."
  • "Search my Plaud for anything about [project name]."
  • "Pull the transcript from [recording title]."
  • "What action items did I commit to in the [meeting] call?"

Available Tools

Tool Description
plaud_verify_token Verify authentication and show account info
plaud_list_recordings List recordings (paginated, most recent first)
plaud_get_transcript Full transcript + AI summary for a recording
plaud_search_recordings Search recordings by title keyword
plaud_get_recent Recent recordings with transcripts + summaries inline

CLI Commands

The same server.py powers both setup and the MCP server itself. From the plaud-mcp directory:

Command Purpose
./setup First-time setup. Idempotent — safe to re-run any time.
python3 server.py Run as MCP server (used by Claude Desktop — you don't invoke this manually).
python3 server.py --login Sign in to Plaud (browser-based OAuth).
python3 server.py --install Register in Claude Desktop's config (interactive).
python3 server.py --status Show who's signed in.
python3 server.py --logout Revoke server-side, forget cached tokens.
python3 server.py --help Show CLI usage.

How It Works

The server uses Plaud's official OAuth 2 + PKCE developer flow — the same flow Plaud's own MCP package (@plaud-ai/mcp) uses:

  1. --login opens web.plaud.ai/platform/oauth in your browser. You sign in however you normally do (Google, Apple, passkey, email/password) and click Authorize.
  2. Plaud redirects back to a local callback. The server exchanges that for an access_token + refresh_token and caches them in .plaud_token.json next to server.py (mode 0600, ignored by git).
  3. Before every API call, the server transparently refreshes the access token if it's within 60s of expiring. You never log in again unless you revoke access from your Plaud account.

API calls go to https://platform.plaud.ai/developer/api/open/third-party/* (Plaud's official developer API).

The OAuth client ID used is the public client baked into Plaud's own MCP bundle (client_9c501dad-…). This isn't a security backdoor — it's a public OAuth identifier intended for third-party clients. You can override it via PLAUD_OAUTH_CLIENT_ID in .env if Plaud ever rotates it.

Troubleshooting

./setup says Python 3.9+ is required Install a current Python with brew install python3 (Homebrew) or from python.org. Then re-run ./setup.

./setup says Claude Desktop isn't installed Download it from claude.ai/download, install, then re-run ./setup.

Setup completes but Claude says it doesn't have Plaud tools Quit Claude Desktop fully (Cmd+Q) and reopen it. Claude Desktop sometimes needs a moment to reconnect after MCP changes. If the problem persists, run python3 server.py --status to verify auth, then python3 server.py --install to re-register.

./setup says "OAuth login timed out" You probably closed the browser before clicking Authorize. Re-run ./setup. If the browser doesn't open automatically, copy the URL printed in your terminal into a browser manually.

./setup step 2 (Plaud sign-in) fails with an authorization error Plaud's Developer API requires a paid Plaud subscription (Pro or Unlimited). The free Starter tier doesn't currently include API access. Upgrade your Plaud account at plaud.ai/pricing, then re-run ./setup.

pip install fails with "externally-managed-environment" This shouldn't happen with ./setup since it uses a venv. If you're running pip manually, use the venv's pip: .venv/bin/pip install -r requirements.txt.

Wrong Plaud account is signed in Run python3 server.py --logout, then ./setup again.

"Permission denied" when running ./setup If you downloaded the repo as a .zip from GitHub (instead of cloning with git), macOS may have stripped the executable bit. Either run chmod +x setup once, or invoke it via bash directly: bash setup.

macOS asks for permission to control Claude Desktop This is normal and expected the first time setup runs on a new Mac. The dialog reads something like "Terminal wants access to control Claude." Click Allow. If you click Don't Allow by mistake, grant it manually in System Settings → Privacy & Security → Automation.

OAuth login: browser opens but callback never returns Some setups block the local callback URL (http://localhost:8199/auth/callback). Common causes:

  • Brave browser with strict Shields. Disable Shields for localhost during setup.
  • Little Snitch / Lulu / similar firewalls. Allow inbound connections on the local port.
  • Active VPN routing localhost through the tunnel. Disconnect briefly during setup.
  • Port 8199 in use. Set PLAUD_OAUTH_REDIRECT_PORT in .env to a free port and re-run setup.

Claude says "No Plaud recordings found" Your account has no recordings yet, or none have synced to Plaud's cloud. Make a recording with your Plaud Note device (or the Plaud mobile/web app), wait for it to sync, then try again. The MCP server only sees what's already in your Plaud account.

Tokens look stale / Claude returns auth errors Run python3 server.py --logout, then ./setup again.

Advanced

Manual setup (without ./setup)

If you'd rather not run a shell script, do these by hand from the plaud-mcp/ directory:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 server.py --login        # browser-based sign-in
python3 server.py --install      # register in Claude Desktop, restart prompt

Connecting other MCP clients

Claude Code

claude mcp add plaud -- /absolute/path/to/plaud-mcp/.venv/bin/python3 /absolute/path/to/plaud-mcp/server.py

Cursor / Windsurf / others

Point the MCP client at the venv's Python and server.py:

{
  "mcpServers": {
    "plaud": {
      "command": "/absolute/path/to/plaud-mcp/.venv/bin/python3",
      "args": ["/absolute/path/to/plaud-mcp/server.py"]
    }
  }
}

No env vars are required.

Configuration overrides

Optional environment variables, settable in .env:

Variable Default Purpose
PLAUD_OAUTH_REDIRECT_PORT 8199 Local port for the OAuth callback. Change if your firewall blocks 8199.
PLAUD_OAUTH_CLIENT_ID client_9c501dad-… Override if Plaud rotates the public client ID.

Privacy and Security

  • Runs 100% locally on your machine.
  • Only network calls are to web.plaud.ai, platform.plaud.ai, and localhost. No third-party telemetry.
  • OAuth tokens live in .plaud_token.json next to server.py — mode 0600, ignored by git, written atomically via tempfile.mkstemp + os.replace so there's never a window where the file is world-readable.
  • --logout calls Plaud's revoke endpoint to invalidate the access token server-side, then deletes the local file.
  • The cached refresh_token is a long-lived credential — treat it like a password. If you suspect it's been exfiltrated, run --logout and revoke the app from your Plaud account settings.
  • JWT signatures are not verified locally; we only read the exp claim to decide when to refresh. Authorization decisions happen on Plaud's servers.
  • Prompt-injection caveat: this server returns recording transcripts and summaries verbatim to the LLM. A recording could plausibly contain text that tries to manipulate the LLM. The tools here are read-only on recordings, so the blast radius is bounded — but be aware if you wire this into an agent with destructive tools.

Credits & History

This is a Humanly Labs open source project. We didn't start from scratch — we took an early Plaud-MCP scaffold and pushed it toward something anyone with a Mac can install in a single command. A nod of credit to the projects that came before:

  • Initial release of this repository (March 2026, commit f207b2c) — authored by Brody Fausett at dbf100. Established the project scaffolding and the MCP tool surface that we kept and rebuilt around.
  • @plaud-ai/mcp — Plaud's own official MCP package. We reuse its public OAuth client_id and follow the same platform.plaud.ai/developer/api/open/third-party/* endpoint conventions, which is why anything that works with Plaud's official MCP also works here.
  • sergivalverde/plaud-toolkit and rggnkmp/plaud-connector — community reverse-engineering work that mapped out the OAuth + PKCE flow and gave us early reference for how Plaud's Basic-auth-with-empty-secret token exchange works.

What Humanly Labs added in this rewrite

  • One-command setup./setup checks every prerequisite, creates a Python venv, installs dependencies, opens the browser for OAuth sign-in, registers with Claude Desktop (preserving every other MCP server you've configured), auto-restarts Claude Desktop, and runs a real end-to-end smoke test against the MCP protocol — all in about 30 seconds, from a clean clone, with zero manual config edits.
  • Polished stdlib-only TUI — auto-detected ANSI colors with NO_COLOR respect, status icons, sectioned headings, aligned key/value rows, a nyan-cat browser callback after sign-in, and unknown CLI flags that surface help instead of silently launching the MCP server.
  • OAuth flow rewrite — moved from the old short-lived consumer JWT to Plaud's official Developer OAuth (PKCE + refresh tokens) so users never re-paste tokens.
  • Idempotent re-runs — re-running ./setup correctly detects existing state and doesn't restart Claude Desktop when nothing changed.
  • Security hardening — atomic token writes with chmod 0600 from creation (no TOCTOU window), server-side /revoke call on logout, CSRF-safe OAuth callback handler that only responds to requests carrying the expected state, defensive URLError/OSError handling on every network call, HTML-escaped error rendering.
  • Empty-library handling — if your Plaud account has no recordings yet, the tools return a helpful hint instead of a confusing empty array.
  • Comprehensive documentation — explicit prerequisites checklist, step-by-step setup walkthrough, 12-entry troubleshooting section, transparent disclosure of the paid-tier Plaud requirement.

If you maintain one of the upstream projects above and want a different form of attribution, please open an issue.

Contributing

PRs welcome. The codebase is one file (server.py) on purpose — keep it that way unless there's a clear reason to split.

License

MIT — use it however you want.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选