Transcripted

io.github.r3dbarsPublished by GitHub account r3dbarsv1.1.76Updated Nov 5, 2026

Read-only search over the meetings, dictations and writing saved by the Transcripted Mac app.

Overview

AI-generated overview

Read-only local MCP server that lets an assistant search and read meetings, dictations and writing saved by the Transcripted Mac app.

What you can do
  • Search and read saved meetings, dictations and writing day files
  • Retrieve cross-meeting receipts for decisions, commitments and open questions, each with meeting ID, timestamp and quote
  • Show a recent-meetings card list with inline audio playback and raw transcripts in clients that render MCP Apps UI, falling back to plain text
  • Read from the app's capture library or overridden local folders, using a local SQLite index
When to use it
Useful for Mac users of Transcripted who want an assistant to recall what was said in past meetings, find commitments or decisions, or look up their own dictations and typed notes without leaving the chat.
Requirements
Runs as a local stdio process on macOS, installed as an MCP Bundle or built from source with Swift. It reads the Transcripted capture library under the user's Library folder; paths can be overridden with TRANSCRIPTED_DATA_DIR, TRANSCRIPTED_MEETINGS_DIR, TRANSCRIPTED_DICTATIONS_DIR, TRANSCRIPTED_WRITING_DIR or TRANSCRIPTED_INDEX_DIR. No account or API key is needed for the core tools.
Before you install
Tools are read-only, but the server can send one anonymous PostHog event per tracked query when the app's analytics toggle is on and a PostHog key and host are configured (POSTHOG_API_KEY, POSTHOG_HOST); the README says transcripts, audio, queries and identifiers are never included and never leave the Mac. Writing search is full-text only, and summary-derived receipts may have a null timestamp.

Installation

In SourceWeft

  1. Open Transcripted in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Transcripted MCP

Read-only local tools for Transcripted meetings, dictations, and writing.

For Claude Desktop users, the best setup is inside the app:

  1. Open Transcripted.
  2. Open Settings.
  3. Go to Agent.
  4. Click Install in Claude.
  5. Restart Claude Desktop.

That path installs the bundled helper, updates Claude Desktop's config, and runs a local self-test.

Interactive UI (MCP Apps)

The server exposes one interactive widget via the MCP Apps extension (io.modelcontextprotocol/ui, SEP-1865): call show_recent_meetings to render a card list of recent meetings — each with inline audio playback and a raw-transcript view — that draws inside a rendering-capable client. It is fully self-contained (no network; local audio/transcripts travel over the local transport), and falls back to a plain-text list in clients that do not render inline UI (e.g. the Claude Code CLI). Renders inline today in ChatGPT, VS Code, Cursor, and Goose; see docs/mcp-ui-recent-meetings.md for the per-client support matrix and how to try it.

Source Build

Use this only when developing the MCP server directly:

bash
swift build -c releaseswift test

Binary:

text
.build/release/transcripted-mcp

Self-test:

bash
.build/release/transcripted-mcp --self-test

The server reads the app-selected capture library first when Transcripted has written its local directory manifest or transcriptSaveLocation preference. Without a custom library, it reads:

text
~/Library/Application Support/Transcripted/captures/meetings~/Library/Application Support/Transcripted/captures/dictations~/Library/Application Support/Transcripted/captures/writing

Override paths with TRANSCRIPTED_DATA_DIR, TRANSCRIPTED_MEETINGS_DIR, TRANSCRIPTED_DICTATIONS_DIR, TRANSCRIPTED_WRITING_DIR, or TRANSCRIPTED_INDEX_DIR. If TRANSCRIPTED_DATA_DIR points at a shared root with meetings/, dictations/, or writing/ subfolders, transcripted-mcp uses those subfolders automatically and stores its SQLite index in that shared root unless TRANSCRIPTED_INDEX_DIR is also set. With per-kind meeting or dictation overrides, writing is read only when TRANSCRIPTED_WRITING_DIR is set too.

Writing

list_writing and read_writing mirror list_dictations and read_dictation for Writing_<date>.md day files (what the user typed with the Transcripted keyboard). search_context and recent_context take kind: "writing" and include writing in all. Writing search is full-text only; the on-device embeddings cover meetings and dictations.

Telemetry

The server can emit one anonymous PostHog event when each tracked capture query finishes (agent_capture_query_observed, see AgentCaptureQueryTelemetry.swift). result is one of success, empty_not_found, invalid_input, or internal_error. The payload is limited to coarse allowlisted metadata: client, tool, and capture kinds; latency and source- and result-count buckets; the result; and the owning app's validated app_version, build channel, and revision when available. Build identity is omitted when the app did not install it; the helper's own server version is never used as an app-version fallback. source_count_bucket means distinct capture files contributing to the response. result_count_bucket means returned records at that tool's natural response grain. Transcript text, query strings, capture IDs, titles, names, file paths, audio, and user identifiers are never properties.

It is gated twice:

  • it honors the app's anonymous analytics toggle (observability-anonymous-analytics-enabled; off means nothing is sent)
  • it no-ops entirely unless a PostHog API key and HTTPS host are configured via POSTHOG_API_KEY/POSTHOG_HOST, a local override, or the bundle's TranscriptedPostHogAPIKey; source builds have none by default

Transcripts and audio never leave the Mac in any mode.

Cross-Meeting Receipt Tools

WS2.3 adds local structured retrieval tools for agents:

  • decisions(topic, range)
  • commitments(person, range)
  • open_questions(project, range)
  • search_meetings(query, range)

Each returns JSON receipts shaped around meetingId, timestamp, and quote. Summary-derived receipts have timestamp: null until exact audio anchors are available; raw utterance search includes the transcript timestamp. These tools use only the local SQLite index and saved summary/parser output.

MCP Bundle and Registry

Each release can also ship the helper as an MCP Bundle (transcripted-mcp.mcpb) for clients that install bundles directly, and list it in the official MCP Registry as io.github.r3dbars/transcripted.

The Publish MCP Bundle workflow does both. It copies the signed helper out of the release DMG, packs it with mcpb/manifest.json, attaches the bundle to the release, then fills in and publishes the root server.json. It runs when a release is published. There is no manual dispatch (it could run from any branch); to retry, re-run the job. Nothing is rebuilt, so the bundle keeps the notarized app's signature.

glama.json at the repo root claims the Glama listing for the maintainer.

Source: Tools/TranscriptedMCP/README.md at commit 18fe209

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

10
  1. v1.1.76LatestNov 5, 2026
  2. v1.1.75Nov 4, 2026
  3. v1.1.74Nov 3, 2026
  4. v1.1.73Oct 22, 2026
  5. v1.1.72Oct 10, 2026
  6. v1.1.71Oct 9, 2026
  7. v1.1.70Oct 6, 2026
  8. v1.1.69Oct 4, 2026
  9. v1.1.68Sep 30, 2026
  10. v1.1.67Sep 30, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts