Local meeting capture, transcription, and AI notes for Obsidian — a Tauri desktop application with on-device GGUF LLM inference, audio capture, transcription, speaker diarization, and semantic search
Murmur exposes 4 tools via Tauri commands for app diagnostics and logging. All tools have descriptions (10-200+ chars), but input schemas are not visible in the provided source code, only parameter names and types are inferred from descriptions. No explicit JSON Schema definitions, type constraints, or parameter descriptions are shown. Tool names follow verb_noun convention (read_, clear_, reveal_, export_), but lack clarity on when to use each. Error handling and output schemas are undocumented. This is a Tauri desktop app, not a standard MCP server, the tools are Tauri IPC commands, not MCP-registered tools with formal schemas.
Empty the CURRENT session's log so a reproduction starts from a clean slate. The previous generation is evidence and is deliberately not clearable from here.
Assemble a shareable diagnostics bundle and return its absolute path. A bug report that says "it froze" is unanswerable; one that carries the app version, the OS, and the last two log generations usually answers itself. This writes exactly that, as one plain-text file the user can attach, next to the logs it is made from — the existing "reveal in Finder" command then puts them at it. NO PII, BY WHAT IT IS ALLOWED TO READ rather than by filtering afterwards.
Read a window of one log generation: "current" (this session) or "previous" (the run before this one — where a crash's last words are). `limit` is the number of most-recent entries to return, clamped to [1, applog::MAX_ENTRIES]; omit it for applog::DEFAULT_ENTRIES. A generation that has never been written returns `exists: false` with no entries rather than an error. Prunes first, so what the view shows is exactly what is still kept: the retention window is enforced on DISK before anything is read out of it, and a stale entry can never be rendered as if it had survived. A prune failure is not allowed to withhold the log — the read proceeds and the hourly tick will try again.
Reveal the log folder in Finder (macOS `open`), so a bug report can attach the raw file. Opens the DIRECTORY, not the file — a `.log` has no sensible default handler.
No input schemas visible. Tool definitions inferred from descriptions only; no explicit JSON Schema with type constraints, enums, or parameter descriptions.
Parameter descriptions missing. 'read_app_log' accepts 'session' and 'limit' but no formal parameter descriptions are provided in a schema. LLMs cannot infer valid values or constraints.
Output schemas undocumented. No specification of what 'read_app_log' returns (structure, fields, types). LLMs cannot plan downstream operations or extract required data.
Error handling not documented. No guidance on what errors can occur, whether they are retryable, or what the LLM should do next. E.g., what happens if 'session' is invalid or 'limit' exceeds MAX_ENTRIES?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Not an MCP server. This is a Tauri desktop app with IPC commands, not a Model Context Protocol server. Cannot be used with MCP clients or hosted agents. Hard cap applies: tools inferred rather than explicitly registered.