Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SONIOX_BASE_URLNoSoniox EU endpoint, e.g. `https://api.eu.soniox.com`
VOICEMEMOS_SINCENoonly auto-transcribe memos from this date on
VOICEMEMOS_WORKERNoWith the default `VOICEMEMOS_WORKER=launchd`, the MCP server has no secrets and no access to Voice Memos; it can only queue requests. In `inprocess` mode it does both itself.launchd
VOICEMEMOS_MARKERSNospoken words that tag a sentence; `*` accepts inflected forms (`question*=Question`)idea=Idea,task=Task,...
VOICEMEMOS_LANGUAGESNolanguage hints, e.g. `fi,en`en
VOICEMEMOS_MARKER_ENDNoend word after the wake word that closes a longer marker, e.g. `end`
VOICEMEMOS_OUTPUT_DIRNooutside Documents on purpose, see [Where transcripts live](#where-transcripts-live)~/Library/Application Support/voicememos-mcp/transcripts
VOICEMEMOS_DIARIZATIONNoseparate speakers in conversations1
VOICEMEMOS_MARKER_WAKENowake word required before a marker word, e.g. `dictate*`; empty = marker word alone
VOICEMEMOS_MAX_ATTEMPTSNofailed after this many tries
VOICEMEMOS_ROAM_ENABLEDNoappend new transcripts to Roam daily notes0
VOICEMEMOS_CONTEXT_TERMSNonames and rare terms the engine should know
VOICEMEMOS_SECOND_READERNo`gemini` = second reading for every new memo, `gemini-low` = only for memos with low certainty
VOICEMEMOS_CONF_THRESHOLDNowords below this are marked0.70
VOICEMEMOS_EXCLUDE_FOLDERSNoVoice Memos folders hidden from everything
VOICEMEMOS_VOICEPRINT_NAMENoyour name, shown when the voiceprint recognises you
VOICEMEMOS_VOICEPRINT_MODELNoaccepts `wespeaker_en_voxceleb_resnet34_LM`
VOICEMEMOS_TIMESTAMP_EVERY_SNotime in the recording at the start of a paragraph, at most once a minute
VOICEMEMOS_EXCLUDE_TITLE_REGEXNotitles hidden from everything
VOICEMEMOS_SECOND_READER_MODELNogemini-4-argon
VOICEMEMOS_SECOND_READER_MAX_MINNolonger recordings are read in parts60
VOICEMEMOS_SECOND_READER_CHUNK_MINNoapproximate length of a part30
VOICEMEMOS_SECOND_READER_MIN_AGREEMENTNoA reading that agrees with the primary words on less than a tenth of the words is rejected0.1

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
voicememos_statusA

Library size, transcription status counts, worker health and configuration.

voicememos_listB

List memos, newest first.

Args: limit: page size (max 200). offset: start index for paging. since: only memos recorded on or after this date (YYYY-MM-DD). until: only memos recorded on or before this date (YYYY-MM-DD). title: case-insensitive substring of the title. status: transcribed, pending, segmenting (longer than the engine accepts: being transcribed in parts), not_transcribed, not_downloaded, failed or too_long (long and cannot be split: splitting off or ffmpeg missing).

voicememos_readA

Read one transcript with uncertainty marks.

Args: memo: memo id from voicememos_list (8 characters is enough). format: 'markdown' (with header), 'text' (transcript only) or 'json' (word-level data). threshold: confidence threshold for marking words (default from config); re-renders without re-transcribing. offset: character offset for long transcripts (see next_offset). max_chars: maximum characters returned (1000-100000).

voicememos_searchA

Search transcripts and titles (case-insensitive). Returns snippets per memo.

Args: query: text to find, or a regular expression when regex=true. limit: maximum number of memos returned. since: only memos recorded on or after this date (YYYY-MM-DD). until: only memos recorded on or before this date (YYYY-MM-DD). regex: treat query as a regular expression.

voicememos_markersB

Sentences the user tagged by starting them with a spoken marker word (e.g. "Idea: ...").

Args: since: only memos recorded on or after this date (YYYY-MM-DD). until: only memos recorded on or before this date (YYYY-MM-DD). label: only this marker label. limit: maximum number of markers returned.

voicememos_transcribeA

Queue memos for transcription in the background. Returns a job_id immediately.

Args: memos: memo ids to transcribe. since: or: all memos recorded on or after this date (YYYY-MM-DD). until: or: all memos recorded on or before this date (YYYY-MM-DD). redo: transcribe again even if a transcript exists. push_roam: also append the transcripts to Roam daily notes (if Roam is configured).

voicememos_second_readA

Queue a second, independent reading (Gemini) of already transcribed memos.

Disagreements with the primary engine appear as {a|b} in the transcript. Returns a job_id.

Args: memos: memo ids. since: or: memos recorded on or after this date (YYYY-MM-DD). until: or: memos recorded on or before this date (YYYY-MM-DD). model: Gemini model id (default from config, e.g. gemini-4-argon). redo: read again even if a second reading exists. limit: at most this many memos (oldest first). only_uncertain: only memos with low certainty; long recordings (read in parts) only in their parts with low certainty. realign: no new reading; align the stored readings again with the current rules.

voicememos_compare_readersA

Compare primary engine and second reader per language (agreement, calibration, samples).

Writes a Markdown report with a listening checklist and returns the summary.

Args: since: only memos recorded on or after this date (YYYY-MM-DD). until: only memos recorded on or before this date (YYYY-MM-DD). samples: disagreements to sample per language (max 50).

voicememos_voiceprintA

Recognise the owner's voice with a local voiceprint.

Args: action: 'status' (enrollment state, thresholds and suggested enrollment memos), 'enroll' (build the voiceprint from memos where only the owner speaks), 'identify' (apply it to already transcribed memos), 'add_other' (store a known other voice, e.g. a relative who sounds similar, from one speaker of one memo; it is never shown by name, it only prevents mistaking that person for the owner) or 'remove_other' (by name). memos: memo ids for 'enroll' (2+, ideally 4-6 from different years), 'identify', or one memo for 'add_other'. since: for 'identify': memos recorded on or after this date (YYYY-MM-DD). until: for 'identify': memos recorded on or before this date (YYYY-MM-DD). name: the owner's name for 'enroll' (default from config); the other person's name for 'add_other' / 'remove_other'. speaker: for 'add_other' in a multi-speaker memo: the speaker label (S1, S2, ...).

voicememos_transcribe_statusA

Progress of a transcription job, or the 10 most recent jobs when job_id is omitted.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes: listing, reading, searching, marker extraction, transcription, job status, comparison, and voiceprint operations are separated by resource and action. The only mild ambiguity is between voicememos_status and voicememos_transcribe_status, though the descriptions make library status vs. job progress clear.

Naming Consistency4/5

All tools use the same voicememos_ prefix and snake_case style, making the set predictable to scan. There is minor variation between verb-like names (list, read, search, transcribe) and noun-like names (status, markers, voiceprint), but the convention remains readable and consistent overall.

Tool Count5/5

Ten tools is a well-scoped size for a domain covering memo retrieval, transcription workflows, search, markers, second-reader comparison, and voiceprint handling. Each tool earns its place without obvious redundancy or bloat.

Completeness4/5

The tool surface covers the core lifecycle well: listing and reading memos, searching, extracting markers, queuing transcription, checking job progress, running a second reading, comparing readers, and managing voiceprints. Minor gaps exist around memo management such as deleting, renaming, or exporting memos, but these are not central to the apparent transcription-analysis purpose.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive