Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CALL_RECORDER_DIRNoWhere recordings and transcripts go.~/CallRecordings
CALL_RECORDER_HOMENoHelper app, models, vocabulary.~/Library/Application Support/call-recorder-mcp
CALL_RECORDER_LOCALENoLanguage of replies and transcript labels: en or fr (others fall back to English).your Mac's language
CALL_RECORDER_LANGUAGENoDefault transcription language (en, fr, auto, etc.).same as the locale
CALL_RECORDER_VOCABULARYNoVocabulary file.<home>/vocabulary.txt
CALL_RECORDER_SIGN_IDENTITYNoCode signing identity used by call-recorder-setup.first Apple Development identity
CALL_RECORDER_WHISPER_MODELNoAny whisper.cpp model.<home>/models/ggml-large-v3-turbo-q5_0.bin

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
start_recordingA

Start recording a call or a conversation.

source: "system" (all the Mac's audio, the safest), "whatsapp", "teams", "zoom", "slack", "facetime", "browser" (all browsers), "chrome", "safari", "firefox", "arc", "edge", or a bundle ID prefix (e.g. "com.microsoft.teams2"). title: name of the conversation (used for the folder name). include_mic: also record the microphone (the user's voice). language: transcription language ("en", "fr", "auto"...). Defaults to the user's language. speakers: number of people on the other side (default 1). Above 1, their voices are separated in the transcript (Speaker 1, Speaker 2...). live: also transcribe as the call goes, to follow it with get_live_transcript. Use it when the user wants help during the call (questions to ask, answers to dig into).

recording_statusA

Whether a recording is in progress, for how long, and the recent sound levels of each side (-120 dB on the other side means no sound is being captured).

stop_recordingB

Stop the recording in progress and start its transcription.

speakers: number of people on the other side, if different from the one given at start (0 = unchanged). For a group call, ask the user. language: overrides the language chosen at start. Returns the transcript if it is ready within wait_seconds, otherwise says to call get_transcript later.

get_live_transcriptA

Live transcript of the recording in progress (started with live=true): what was said since the cursor since, about a second after each sentence ends. Waits up to wait_seconds for new speech. Rough text: the final transcript after the call is more accurate.

To follow a call and help the user in real time, call it in a loop within the same turn, passing the returned cursor as since. After each batch, tell the user in a few lines (they are on the call, keep it short): which of their planned questions got answered, where the other side stayed vague, evasive or unconvincing, and one or two precise follow-up questions to ask now. Say nothing when a batch brings nothing useful. Stop when the recording is over.

get_transcriptA

Transcript of a recording ("latest" or the folder name), waiting up to wait_seconds if it is still running.

transcribe_recordingB

Transcribe an existing recording again, e.g. in another language, or to separate voices: speakers = number of people on the other side (0 = unchanged).

transcribe_fileB

Transcribe an existing audio or video file (WhatsApp voice note .opus, .m4a, .mp3, .mp4, meeting recording...), copied into a new recording folder.

speakers: total number of people speaking in the file (above 1, their voices are separated into Speaker 1, Speaker 2...).

rename_speakersC

Replace speaker labels in a transcript with real names, e.g. {"Speaker 1": "Alice"} (labels are in the user's language, as shown in the transcript). Returns the updated transcript.

list_recordingsC

Latest recordings and their transcription state.

list_audio_sourcesB

Apps currently using audio (to choose the source), and the default microphone and output.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target distinct actions in a clear lifecycle (start/stop/status/list/transcribe/rename). The closest pair is get_transcript vs get_live_transcript and transcribe_recording vs get_transcript, but descriptions clearly separate retrieving an existing transcript, following a live call, and re-transcribing an existing recording.

Naming Consistency4/5

Nine of ten tools follow a verb_noun snake_case pattern (start_recording, stop_recording, get_transcript, list_recordings, etc.). The only deviation is recording_status, a noun-only name, which is still readable but slightly breaks the pattern.

Tool Count5/5

Ten tools is well within the ideal range and each maps to a distinct step: capture setup, recording control, live monitoring, transcription, and speaker labeling. No tool feels redundant or filler.

Completeness4/5

The surface covers the full capture-to-transcript lifecycle including live follow-along and re-transcription in another language. Minor gaps exist around housekeeping (deleting recordings, exporting/editing transcripts), but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues