Skip to main content
Glama
dezer32

openwhispr-mcp

by dezer32

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENWHISPR_MCP_DEBUGNoEcho raw upstream error text back to the agentoff
OPENWHISPR_BRIDGE_CONFIGNoAlternate handshake file~/.openwhispr/cli-bridge.json
OPENWHISPR_MCP_TIMEOUT_MSNoPer-request timeout20000
OPENWHISPR_MCP_MAX_RESULT_CHARSNoCap on a tool's JSON result400000
OPENWHISPR_MCP_MAX_RESPONSE_BYTESNoResponse byte cap67108864

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
healthA

Check that the local OpenWhispr app is running and its CLI bridge is reachable. Returns the bridge host and port, the handshake file path and the app version. Call this first when another tool fails with bridge_not_running, bridge_unreachable or unauthorized — the port and token change on every app restart.

list_notesA

List notes newest first (by updated_at), filtered by note_type and/or folder_id. Returns summaries only — no note body, no transcript. Pages come from one snapshot: pass next_cursor back verbatim, keeping the same filters. A cursor that outlived its snapshot fails with snapshot_expired; list again without a cursor.

get_noteA

Read one note by id: title, folder, timestamps and the full content body. The transcript is never included — it reaches 240 KB — so a meeting note reports transcript_segment_count and a hint pointing at get_note_transcript. Set include_enhanced to also receive the AI-cleaned version of the text.

search_notesA

Full-text (FTS5 prefix AND) search over note titles, bodies and AI-enhanced text. Every word becomes a required prefix term, so all of them must appear. There is no semantic search and no relevance score. Returns note summaries with matched_in and a snippet; use list_notes to browse and get_note for a full body.

get_note_transcriptA

Read a note's transcript. format=segments pages diarized segments with times relative to the recording start (offset/limit, speaker/source filters); format=text renders "[mm:ss] speaker: …" lines; format=speakers gives per-speaker totals only — use it first on long recordings. A note with no transcript returns an empty result, not an error.

create_noteA

Create a note in the local OpenWhispr app. Without folder_id the app files it into its own default folder — see the notice field in the reply. note_type is fixed at creation: update_note cannot change it. Returns the stored note.

update_noteA

Change a note's title, content or folder in the local OpenWhispr app. note_type, transcript and enhanced_content are deliberately not writable. Rewriting content leaves any existing enhanced_content in place and the app keeps treating it as current; the reply warns when that happens.

delete_noteA

Delete a note from the local OpenWhispr app. There is no confirmation step and no undo on this path, so confirm with the user before calling it. The bridge answers 204 without saying whether the id existed.

list_foldersA

List the note folders of the local OpenWhispr app, with their ids, names and default flags. Use it to find the folder_id that list_notes, create_note and update_note take. The bridge returns every folder at once — there is no limit and no paging here.

create_folderA

Create a note folder in the local OpenWhispr app. Names must be unique: a duplicate comes back as folder_name_conflict listing the folders that exist. Creating a folder is the only folder change the bridge allows.

list_transcriptionsA

List the OpenWhispr dictation history (newest first): text, provider, model, status and audio duration. These rows are NOT note transcripts and cannot be linked to a note — use get_note_transcript for those. Discarded and deleted dictations are invisible here.

get_transcriptionA

Read one dictation from the history by id, with its full text, provider, model, status and any error. Ids come from list_transcriptions. A dictation is not linked to any note — use get_note_transcript for a note transcript.

list_dictionaryA

List the custom dictionary of the local OpenWhispr app — the words the transcriber is told to spell a particular way (product names, jargon, names of people). Returns the words themselves plus the shape the app stored them in.

update_dictionaryA

Add or remove words in the custom dictionary of the local OpenWhispr app. Words are trimmed and de-duplicated, and case is significant. Returns what was sent plus the dictionary as it reads back afterwards.

get_usageA

Summarise what is stored in the local OpenWhispr app: how many notes, folders, transcriptions and dictionary words there are, split by type, folder and month, with word, character and audio totals. Counts come from a capped read, and the reply lists exactly what it cannot see.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.5/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct resource or view: notes, note transcripts, folders, dictation history, dictionary, health, and usage. The two transcript-related names are explicitly disambiguated in descriptions, so an agent can reliably choose the right one.

Naming Consistency4/5

Most names follow a consistent verb_noun pattern such as list_notes, get_note, create_folder, and update_dictionary. The bare `health` tool breaks the pattern, but it is a minor deviation from an otherwise predictable set.

Tool Count5/5

15 tools is squarely within the well-scoped range, and each tool maps to a meaningful operation on the app: notes CRUD, folders, dictation history, dictionary, health, and usage. Nothing feels redundant or bloated.

Completeness5/5

The surface covers the full note lifecycle, transcript retrieval, folder list/create, dictation lookup, dictionary maintenance, health, and usage reporting. Folder mutation is limited to create because the bridge explicitly allows no other folder changes, so there are no dead ends for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues