Speechmark's meeting archive is exposed to AI assistants through a local MCP server that speaks stdio, so any MCP-capable client can read it — not just Claude Desktop. Cursor, VS Code, and Claude Code each take a few lines of config pointing at one file inside the app bundle. Your meetings stay on your Mac; only the excerpts you ask about ever move.
The Claude Desktop guide covers the one-click route. This is the manual one, which works everywhere else.
Which MCP clients can read meeting notes?
MCP, the Model Context Protocol, is the open standard that lets an AI client call external tools. It has gone from an experiment to an ecosystem fast — the official MCP Registry grew 407% between its first batch of entries in September and the protocol's one-year mark that November.
Meeting tools have noticed. The thing to check before you wire any of them up is where the server runs, because that decides where your notes go:
| Speechmark (as of September 2026) | Granola MCP (as of September 2026) | |
|---|---|---|
| Transport | Local stdio, on your Mac | Remote — Streamable HTTP at mcp.granola.ai/mcp |
| Auth | None; it reads local files | Browser OAuth or enterprise-managed authorization |
| Where notes live | Your disk | Granola's servers |
| Free-tier scope | Everything you recorded | Personal notes from the last 30 days |
| Transcript tools | Included | Paid plans only |
Those Granola figures are from its own MCP documentation, which is also candid about what a hosted connector is:
Each connection still acts on behalf of an individual Granola user; there is no API key or service account access method for MCP.
— Granola MCP documentation, retrieved September 2026
A remote connector is not a flaw; it is how you reach notes that already live in a vendor's cloud. A local one is only possible when the notes were never sent anywhere.
What you need before you start
Two things:
1. The connector file. It ships inside the installed app. Unpack it once — a .mcpb is an ordinary zip:
mkdir -p ~/speechmark-mcp
unzip -o /Applications/Speechmark.app/Contents/Resources/speechmark.mcpb -d ~/speechmark-mcp
That gives you ~/speechmark-mcp/server/server.cjs, which is the path every client below wants. Re-run the command after a Speechmark update to pick up the newer server.
2. Node.js 22.5 or newer. Check with node --version. Claude Desktop bundles its own runtime, which is why its install needed nothing; other clients launch the command with your system Node. The server reads the archive through Node's built-in SQLite module, so on an older Node it will start and then serve you zero meetings — a confusing failure worth ruling out first.
You can sanity-check the server before touching any client:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
| node ~/speechmark-mcp/server/server.cjs
A JSON line naming speechmark means you are ready. The line it prints to stderr tells you which archive file it found.
How do you add meeting notes to Cursor?
Create ~/.cursor/mcp.json for every project, or .cursor/mcp.json inside one project (Cursor's MCP docs):
{
"mcpServers": {
"speechmark": {
"command": "node",
"args": ["/Users/YOU/speechmark-mcp/server/server.cjs"]
}
}
}
Replace /Users/YOU with your real home directory — ~ is not expanded here. Then open Customize in the Cursor sidebar and toggle the server on. Ask the agent: "Search my meetings for the auth migration and tell me what we decided."
How do you add it to VS Code?
VS Code uses a different top-level key — servers, not mcpServers. Put this in .vscode/mcp.json, or run MCP: Open User Configuration from the command palette to edit the profile-wide file (VS Code's MCP docs):
{
"servers": {
"speechmark": {
"type": "stdio",
"command": "node",
"args": ["/Users/YOU/speechmark-mcp/server/server.cjs"]
}
}
}
Copying a Cursor block straight into VS Code is the single most common failure here; the server never starts and the error is quiet.
How do you add it to Claude Code?
One command, no file editing (Claude Code's MCP docs). Everything after -- is the command Claude Code will run:
claude mcp add --transport stdio --scope user speechmark -- node ~/speechmark-mcp/server/server.cjs
--scope user makes it available in every project. Drop it for the current project only, or use --scope project to write a .mcp.json your team can commit. Verify with claude mcp list.
What about other MCP clients?
Any client that speaks stdio works — the server is not Claude-specific. It needs no arguments, no API key, and no environment variables; it defaults to reading ~/Library/Application Support/Speechmark. Give the client node as the command and the absolute path to server.cjs as the only argument, in whatever shape its config expects.
There is no hosted endpoint to point at, and no public package to install: distribution today is entirely through the app bundle. If your client only accepts a remote URL, this connector will not work with it.
What can you actually ask?
The client picks tools on its own, but knowing what exists helps you ask better. All five are reads:
| Tool | What it does |
|---|---|
list_meetings |
Browse meetings, filtered by date range, folder, or tag |
search_meetings |
Keyword search across titles, summaries, decisions, action items, transcripts |
get_meeting |
One meeting in full, transcript included on request |
get_decisions |
Decisions across meetings, each tagged with its meeting and date |
find_action_items |
Open or completed items, filterable by owner |
In an editor this pays off differently than in a chat app: "Check my meetings for what we agreed about the rate-limiter, then review this file against it." The meeting becomes context for the code, in the tool where the code already is.
What leaves your Mac, and what doesn't
The server makes zero network calls, has no telemetry, and ships no tool that writes. Its whole capability is reading files Speechmark already keeps on your disk.
But be clear about the other half. Cursor, VS Code Copilot, and Claude Code are cloud AI clients. When one retrieves an excerpt to answer you, that excerpt joins the conversation and is processed by that client's model provider under your account's terms — exactly as if you had pasted it in. What is different from a hosted meeting platform is scope and control: nothing uploads wholesale, nothing syncs in the background, and what moves is only what a question pulled.
The practical rule: don't ask a client about a meeting you wouldn't paste into that client. For anything more sensitive than that, leave it out of the question — the archive itself never moves either way. We go deeper on that dividing line in on-device vs cloud transcription.
Where a hosted connector is the better choice
Three honest cases where you should not use this:
You want it on your phone, or in ChatGPT on the web. A local stdio server only exists on the Mac it runs on. Granola's remote endpoint reaches any client anywhere, which a local file genuinely cannot.
Your team needs shared meeting memory. This reads one person's archive. Organization-wide notes with per-user permissions are what hosted connectors are built for.
You want zero setup and a free option. Folio is a free, open-source Mac meeting app (Apache-2.0) that also ships a local read-only stdio MCP server and documents Cursor and Claude Code directly. If the on-device architecture is what you're after and $79 one-time isn't in the budget, it is a real alternative, and we would rather you know that than find out later.
What Speechmark trades for its price is a finished app around the connector — on-device diarization, the archive format, and the one-click Claude Desktop route when you want it.
New here? Record a couple of meetings first with the getting-started guide, then come back — an empty archive makes for a dull conversation.