You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -91,6 +91,8 @@ Intel Mac (darwin-x64) is not supported: Apple has discontinued the platform and
91
91
92
92
## Tool Reference
93
93
94
+
Arguments are validated before anything is recorded or written. An argument a tool does not declare is rejected with an error naming it, rather than silently ignored. `duration_ms` must be an integer between 100 and 30000; `device` must be a non-negative integer index or a non-empty string id from `list_audio_devices`. A rejected call writes nothing to disk.
95
+
94
96
### list_audio_devices
95
97
96
98
Returns a JSON array of available audio input devices.
@@ -194,9 +196,9 @@ The model is ~150MB and downloads once. You can also set the `WHISPER_MODEL_PATH
194
196
195
197
1.**Fixed recording duration.** You specify how long to record. There is no "stop when I stop talking" mode yet.
196
198
2.**`voice_query` requires Ollama running.** If Ollama isn't running, the tool returns a clear error message.
197
-
3.**Whisper model downloads on first use.**The first `voice_query` call requires a pre-downloaded model (~150MB).
199
+
3.**Whisper model must be downloaded before first use.**`voice_query`does not download the model itself; the first call requires a pre-downloaded model (~150MB). See [Whisper Model Setup](#whisper-model-setup).
198
200
4.**No streaming.** MCP's request/response pattern means the entire recording is captured, then transcribed, then sent to the LLM. No real-time partial results.
199
-
5.**Temp files.**`capture_audio` writes WAV files to the system temp directory. They are not automatically cleaned up. `voice_query`cleans up after itself.
201
+
5.**Temp files.**`capture_audio` writes WAV files to the system temp directory and returns the path, so the file has to outlive the call for the caller to read it. Recordings older than 24 hours are removed the next time the server starts; recordings made since the last restart persist until then. `voice_query`deletes its recording as soon as the query completes.
200
202
201
203
## Troubleshooting
202
204
@@ -209,6 +211,9 @@ Some Ollama installations start as a background service automatically. If you se
209
211
**Whisper: "model not found"**
210
212
The whisper model file must be downloaded before first use. See [Whisper Model Setup](#whisper-model-setup) for instructions.
211
213
214
+
**Whisper: "installed but failed to load"**
215
+
The `@kutalia/whisper-node-addon` package is present but a native library it depends on is missing or incompatible on your system. The error includes the underlying loader message naming the library. Reinstalling the package will not help; resolve the named library instead.
Copy file name to clipboardExpand all lines: SECURITY.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ Understanding what the server touches is useful context when assessing the impac
28
28
mcp-listen:
29
29
30
30
- Reads from audio input devices when a capture tool is invoked
31
-
- Writes WAV files to the system temporary directory. `capture_audio` returns the recording's path to the caller; `voice_query` deletes its recording when the query completes.
31
+
- Writes WAV files to the system temporary directory. `capture_audio` returns the recording's path to the caller; `voice_query` deletes its recording when the query completes. At startup the server removes its own recordings older than 24 hours from the temporary directory, matching only the file names it generates, so `capture_audio` recordings do not accumulate indefinitely.
32
32
- Transcribes captured audio locally, in process, using whisper.cpp. Audio never leaves the machine.
33
33
- Sends transcribed text to the local Ollama daemon at `127.0.0.1:11434` when `voice_query` is used. This is the only network call in the codebase. An Ollama daemon configured with cloud models will relay that text off the machine; that relay is a property of the user's Ollama configuration, not of mcp-listen, but it is worth knowing when assessing where text can travel.
34
34
- Reads the `WHISPER_MODEL_PATH` environment variable to locate the local Whisper model. It reads no API credentials: none are used. The bundled Ollama client library can read `OLLAMA_API_KEY`, but it attaches that credential only to requests to `ollama.com`, and mcp-listen only ever calls the local daemon, so that code path is unreachable.
@@ -55,7 +55,8 @@ mcp-listen is published to npm as a single JavaScript package. It ships no binar
55
55
56
56
- The package is published exclusively from GitHub Actions on GitHub-hosted runners. Nothing is published manually.
57
57
- Publishing is triggered only by tagged releases and is gated behind a protected GitHub environment requiring manual approval, restricted to `v*` tags.
58
-
- A pre-publish verification gate asserts that every file the package ships is present in the tarball and fails the release if any credential, publisher binary, or test fixture is present.
58
+
- The published package is assembled into a build directory by a generator that copies the runtime files and writes a manifest containing only an explicit allowlist of consumer-facing fields. The development manifest, with its scripts and tooling, is never published.
59
+
- A pre-publish verification gate asserts that every file the package ships is present in the tarball, that no credential, publisher binary, or test fixture is present, and that the published manifest carries no scripts and no development dependencies. It fails the release otherwise.
59
60
- The full build and release configuration is open source and auditable in `.github/workflows/publish.yml`.
60
61
61
62
### Publishing and authentication
@@ -79,8 +80,8 @@ This security policy applies to the following versions:
79
80
80
81
| Version | Supported |
81
82
| --- | --- |
82
-
| 0.2.x | Yes |
83
-
| < 0.2| No |
83
+
| 0.4.x | Yes |
84
+
| < 0.4| No |
84
85
85
86
Security fixes are applied to the latest release only. mcp-listen is pre-1.0 and older versions are not backported. Upgrade to the latest release.
0 commit comments