Skip to main content
Glama

Plaud MCP Server

MCP server for Plaud transcripts via CDP proxy through the running Plaud Desktop app.

How It Works

Claude Code → MCP Server → CDP (WebSocket) → Plaud Desktop → Plaud API

The MCP connects to the running Plaud Desktop Electron app via Chrome DevTools Protocol:

  1. Sends SIGUSR1 to the Plaud Desktop process to enable Node.js inspector (port 9229)

  2. Connects via WebSocket to the inspector

  3. Executes API calls through the app's own authenticated $fetch function

  4. Returns results back through MCP tools

No token extraction, no cookies, no API keys. Uses the app's live authenticated session directly.

Related MCP server: TradingView MCP Bridge

Prerequisites

  1. Plaud Desktop - installed and signed in

  2. Python 3.10+

  3. uv (recommended)

Installation

# Install as a CLI tool (recommended)
uv tool install "plaud-mcp @ git+https://github.com/davidlinjiahao/plaud-mcp"

# Or install from local source
uv tool install --force "plaud-mcp @ ."

Configuration

Add to ~/.claude.json:

{
  "mcpServers": {
    "plaud": {
      "command": "${HOME}/.local/bin/plaud-mcp",
      "args": [],
      "env": {}
    }
  }
}

No API keys or tokens needed. Just ensure Plaud Desktop is running.

MCP Tools

Tool

Description

check_connection

Verify Plaud Desktop is available

get_file_count

Total number of recordings

get_recent_files

Files from the last N days

get_files

Files with optional date filters

get_file

Metadata for a specific file

get_transcript

Full transcript with speaker labels

get_summary

AI-generated summary

search_transcripts

Search transcripts by content

Troubleshooting

"Plaud Desktop is not running"

Launch the Plaud Desktop app and sign in.

"Could not enable inspector"

The SIGUSR1 signal may have failed. Ensure Plaud Desktop is the main process, not a helper.

Search is slow

search_transcripts fetches and searches client-side. Reduce the days parameter.

Why CDP?

Plaud's API validates auth at the Chromium network stack level - tokens extracted from LevelDB don't work with standard HTTP clients (httpx, curl, curl_cffi with Chrome impersonation all return 401). The CDP approach bypasses this entirely by executing requests through the app's own authenticated context.

Development

uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
ruff check src/ && pyright src/

Available Tools

8 tools
check_connectionA

Check if Plaud Desktop is available and authenticated.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses basic behavior (check availability and authentication) but does not specify response details or side effects. Since annotations are absent, the description carries the burden but provides only high-level info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence, front-loaded with the core action. No extraneous information, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and the presence of an output schema, the description is adequate for a simple check tool. It could be improved by suggesting to call before other operations, but overall it's complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is trivially 100%. With zero params, the baseline is 4, and the description adds no parameter-specific info, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks availability and authentication of Plaud Desktop, using a specific verb and resource. It distinguishes well from sibling tools focused on file and transcript operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While it's implied as a preliminary check, the description lacks 'when to use' or 'when not to use' context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fileB

Get metadata for a specific Plaud file.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must bear the burden. It only states 'Get metadata' implying a read operation but lacks details on error behavior, prerequisites, or access restrictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose. No unnecessary words; appropriately concise for a simple get tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one parameter, output schema exists), the description is minimally adequate. However, with no annotations, it could mention that this is a safe read operation or that the output schema describes metadata fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage for file_id. The tool description does not explain what file_id represents or its format, relying solely on the parameter name. No added semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get) and resource (metadata for a specific Plaud file), distinguishing it from siblings like get_files (listing) or get_transcript.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs siblings (e.g., get_files for listing, get_transcript for content). No exclusions or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_file_countA

Get the total number of Plaud files.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a total count, but does not disclose traits like performance, accuracy, whether the count is real-time, or if it includes hidden files. The output schema exists but is not considered in this dimension. The description is minimally acceptable for a simple count, but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundant information. It is front-loaded with the action and resource, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and an output schema, the description is mostly complete. However, it could provide additional context, such as noting it is a quick alternative to listing files or mentioning any limitations (e.g., counts only files the user has access to). Despite this, it sufficiently explains the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. According to the baseline rule for zero parameters, a score of 4 is appropriate since the description does not need to add parameter semantics. No additional explanation is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get) and the resource (total number of Plaud files), distinguishing it from siblings like get_files (which retrieves file details) and search_transcripts (which searches transcripts). It uses a specific verb and resource, leaving no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_files or search_transcripts. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer appropriate usage without explicit context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_filesB

Get Plaud files with optional date filters (ISO format, e.g. '2024-01-01').

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNo
end_dateNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It only states a basic read operation without mentioning pagination, rate limits, auth needs, or whether it returns metadata or full files. The limit parameter hints at pagination but is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It could be more structured (e.g., listing parameters), but it is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 optional params and an output schema, the description is adequate but incomplete: it covers date filters but not limit behavior or result scope. Siblings indicate it is a general listing tool, but that is implied. Output schema exists, so return values are covered elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds format guidance for start_date and end_date (ISO format), but does not mention the limit parameter. This partial coverage earns a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get Plaud files' with optional date filters, which distinguishes it from siblings like get_file (single file) and get_file_count (count). However, it does not explicitly differentiate from get_recent_files, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing files with optional date range, but lacks explicit when-not or alternative guidance. For instance, it does not clarify when to use get_recent_files instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recent_filesB

Get Plaud files from the last N days.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It only states 'Get Plaud files' without clarifying whether it's read-only, whether permissions are needed, or any side effects. Lacks details on output format or pagination beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, directly conveys the core function. Efficiently sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and existence of output schema, the description is too sparse. Lacks context on how this differs from get_files or search_transcripts, and does not mention any limitations like maximum days or performance considerations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains 'days' as 'from the last N days', adding meaning beyond the bare schema. However, it does not specify valid range, format, or default behavior beyond the default value in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'Plaud files' with a time constraint 'from the last N days', which is specific. However, it does not explicitly differentiate from sibling tools like get_files or search_transcripts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for time-based retrieval via the 'days' parameter, but gives no explicit guidance on when not to use this tool or mention of alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_summaryB

Get AI-generated summary for a Plaud file.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description does not disclose if the operation is read-only, destructive, or any rate limits. Fails to add behavioral context beyond the action name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no wasted words; concise but could be improved by including critical details without bloating.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description omits key aspects: what the summary contains, whether it is generated on demand, and error handling. Inadequate for a tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage for the sole parameter 'file_id'. Description offers no additional meaning, leaving the agent to infer its purpose from the tool name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'AI-generated summary for a Plaud file', distinguishing it from siblings like get_transcript or get_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for retrieving summaries, but no explicit when-to-use or when-not-to-use compared to alternatives like get_transcript or get_file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transcriptB

Get full transcript with speaker labels for a Plaud file.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. It implies a read operation but does not disclose idempotency, auth needs, or output format. However, an output schema exists which mitigates the gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and efficient. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter and existing output schema, the description is mostly adequate but lacks context on what a 'Plaud file' is and how to retrieve file_id from other tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description does not explain the file_id parameter, how to obtain it, or its format. No additional semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'transcript with speaker labels', specifying it is for a 'Plaud file'. This distinguishes it from siblings like get_summary and get_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as search_transcripts or get_summary. Lacks prerequisites or context for file_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_transcriptsC

Search recent transcripts for matching content. Searches client-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'client-side' behavior but does not elaborate on implications like performance, data loading, or read-only nature. No annotations exist to supplement, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but not overly terse; however, it could benefit from additional structured detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0% schema coverage and an existing output schema, the description lacks information on return format, pagination, or extent of search, making it incomplete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain the 'query' or 'days' parameters beyond implying recency. Adds minimal value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('search') and the resource ('recent transcripts'), with an added behavioral detail ('searches client-side'). It distinguishes itself from sibling tools like get_transcript and get_summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes: connection check, file retrieval variants, summary, transcript, and search. However, 'get_files' and 'get_recent_files' could cause slight confusion as both retrieve files but with different filtering.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as 'check_connection', 'get_file', 'search_transcripts'. The naming is predictable and easy to understand.

Tool Count5/5

With 8 tools, the server is well-scoped for its purpose of interacting with Plaud files. Each tool provides distinct functionality without redundancy or excessive complexity.

Completeness3/5

The tool set covers retrieval (files, summaries, transcripts) and search, but lacks any create, update, or delete operations. This leaves a notable gap for file management, though it may be intentional due to API limitations.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with TradingView Desktop charts for analysis, Pine Script development, and workflow automation via Chrome DevTools Protocol.
    552
  • F
    license
    Not graded
    quality
    C
    maintenance
    Connects Claude Code to your locally running TradingView Desktop app via Chrome DevTools Protocol for AI-assisted chart analysis, Pine Script development, and workflow automation.
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to interact with locally running TradingView Desktop for chart analysis, Pine Script development, and workflow automation via Chrome DevTools Protocol.
    552

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidlinjiahao/plaud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server