JOONS LISTEN MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JOONS_LISTEN_URL | No | Where the MCP server finds the service (loopback only). Default: http://127.0.0.1:18796. | http://127.0.0.1:18796 |
| JOONS_LISTEN_DATA | No | Data folder for jobs, database, models, and dictionary. Default: ~/.joons-listen. | ~/.joons-listen |
| JOONS_LISTEN_DICT | No | Private dictionary file. Default: <data>/dictionary.json. | <data>/dictionary.json |
| JOONS_LISTEN_PORT | No | Service port (loopback only). Default: 18796. | 18796 |
| JOONS_LISTEN_ROOTS | No | Path-separator list of allowed audio folders. Default: the data folder's inbox, ~/Desktop, and ~/Downloads. | inbox, Desktop, Downloads |
| JOONS_LISTEN_FFMPEG | No | Path to ffmpeg if it is not available on PATH. | |
| JOONS_LISTEN_LLM_URL | No | URL for the local Ollama LLM used for translation and minutes. Default: Ollama on loopback. | Ollama on loopback |
| JOONS_LISTEN_LLM_MODEL | No | Local Ollama model used for translation and minutes. Default: qwen3:8b. | qwen3:8b |
| JOONS_LISTEN_MIRROR_CMD | No | Instead of a folder, run this command per file: a JSON array such as ["rsync", "-a", "{file}", "host:/dir/"]; {file} is replaced by the file path, no shell is used, and the zip is sent before its .ok marker. Default: empty (off). | |
| JOONS_LISTEN_MIRROR_DIR | No | Copy finished results (no audio) as zip files to this folder. Default: empty (off). |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listen_transcribeA | Queue a transcription job for a local audio file (Whisper large-v3 / Qwen3-ASR-1.7B, speaker labels, optional Korean translation and minutes). Returns a job_id immediately; poll listen_status, then fetch listen_result. |
| listen_diarizeB | Queue a speaker-turn job (who spoke when, no transcript). |
| listen_summarizeB | Create minutes or a brief summary from a finished transcription job. |
| listen_statusA | Status of one job, or service health plus recent jobs when job_id is omitted. |
| listen_resultB | Read a finished job's result in chunks (format json|txt|md|srt|minutes). |
| listen_modelsA | List the engines, their state and the language routing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct stage of the async pipeline: queue (transcribe/diarize/summarize), poll (status), fetch (result), and inspect (models). The only friction is mild overlap between listen_transcribe's optional minutes flag and listen_summarize, plus status vs result needing the description to clarify state-vs-content. Descriptions do resolve this, so misselection risk is low.
All six tools use a uniform listen_ prefix followed by a clear noun/verb (transcribe, status, diarize, summarize, result, models) in consistent snake_case. The pattern is predictable enough that an agent can guess a tool name before reading it.
Six tools is a tight, well-scoped surface for an asynchronous audio-processing service: one per job type plus the status/result/models trio needed to drive the queue-and-poll workflow. No tool looks redundant or padded.
The lifecycle is largely covered: submit jobs, check status/health, retrieve results in multiple formats, summarize, and inspect engines. Gaps are administrative rather than core — no cancel/delete job, no explicit list-jobs tool (folded into listen_status), and no way to submit remote/uploaded audio, but agents can work around these.