On this page

MCP server

@recordist/gateway is a Model Context Protocol server that exposes your meetings to any MCP client. It runs on your machine, talks to the Recordist app over the local API while the app is running, and reads the database directly when it is not. By default it never opens a port to your network.

Requirements

  • Recordist installed and opened at least once (this creates the data folder and the API token).
  • Node.js 20 or later for npx.

Check the setup at any time:

npx -y @recordist/gateway --doctor

On Windows

Recordist for Windows keeps its data in %LOCALAPPDATA%\app.recordist.desktop. Gateway 0.1.9 and earlier look in %APPDATA%\app.recordist.desktop instead, so on Windows tell the gateway where the data is with RECORDIST_DATA_DIR. In claude_desktop_config.json:

{
  "mcpServers": {
    "recordist": {
      "command": "npx",
      "args": ["-y", "@recordist/gateway"],
      "env": { "RECORDIST_DATA_DIR": "C:\\Users\\YOU\\AppData\\Local\\app.recordist.desktop" }
    }
  }
}

Replace YOU with your Windows user name; echo %LOCALAPPDATA% in a Command Prompt prints the start of the path. For Claude Code, run this in a Command Prompt, which fills in the folder for you:

claude mcp add recordist -e RECORDIST_DATA_DIR="%LOCALAPPDATA%\app.recordist.desktop" -- npx -y @recordist/gateway

Cursor and other clients take the same variable in their own settings. The Claude Desktop extension and the Claude Code plugin have no setting for it yet, so on Windows add the server by hand as above. npx -y @recordist/gateway --doctor shows the folder the gateway reads.

Claude Desktop

Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/; Windows: %APPDATA%\Claude\) and add:

{
  "mcpServers": {
    "recordist": {
      "command": "npx",
      "args": ["-y", "@recordist/gateway"]
    }
  }
}

Restart Claude Desktop. The Recordist tools appear under the tools icon. Try: “What action items do I have from this week’s meetings?”

Claude Code

From any terminal:

claude mcp add recordist -- npx -y @recordist/gateway

Or add it to .mcp.json in a project to share the configuration with your team (each person still needs Recordist installed locally):

{
  "mcpServers": {
    "recordist": {
      "command": "npx",
      "args": ["-y", "@recordist/gateway"]
    }
  }
}

Cursor

Cursor → Settings → MCP → Add new global MCP server, or create .cursor/mcp.json with the same block as above.

Other clients (Streamable HTTP)

Clients that prefer a URL can use the HTTP transport. Start it, then point the client at http://127.0.0.1:47322/mcp:

npx -y @recordist/gateway@latest --http

Every request to the endpoint must carry the app’s token as Authorization: Bearer <token>. The token is the contents of api_token in the data folder, which on macOS is ~/Library/Application Support/app.recordist.desktop/api_token. A request without the right token gets 401. The transport will not start when there is no token, so open Recordist once before you start it.

For Claude Code, read the token into a shell variable and pass it as a header. Claude Code will not add a second server with a name it already has, so if you added the stdio server above as recordist, run claude mcp remove recordist first:

TOKEN="$(cat ~/Library/Application\ Support/app.recordist.desktop/api_token)"
claude mcp add --transport http recordist http://127.0.0.1:47322/mcp \
  --header "Authorization: Bearer $TOKEN"

Claude Code keeps the header in its own configuration for your user. Keep it out of a project’s .mcp.json that you share with others. Other clients take the same header in their own settings for a server URL.

To check that the transport is up and accepts your token:

curl -s http://127.0.0.1:47322/health -H "Authorization: Bearer $TOKEN"

Start the transport only when a client needs it. --http-port changes the port.

Use gateway 0.1.5 or later for the HTTP transport, because earlier versions did not check the token. Run it as npx -y @recordist/gateway@latest --http or raise the version you pin; if you installed it globally, run npm i -g @recordist/gateway@latest. recordist-gateway --version prints the version you have.

Tools

Tool What it does
list_meetings Recent meetings with title, date, duration and status; optional q, from, to, limit, offset
get_meeting One meeting with notes, action items and markers
get_transcript Transcript as json, md, srt, vtt or txt
search_meetings Full-text search across transcripts and notes
get_action_items Action items, filtered by meeting_id or open_only
regenerate_notes Re-run notes with a template
start_recording Begin a manual recording (requires Allow agents to start recordings in Settings → Integrations)
stop_recording Stop the current recording
add_marker Bookmark the current moment with a label

Every tool works on every plan. On Free, notes written through regenerate_notes count toward the 3 AI notes a month after the trial. The recording tools and regenerate_notes need the app to be running, and start_recording also needs Allow agents to start recordings in Settings → Integrations.

Resources: recordist://meeting/{id} (JSON) and recordist://meeting/{id}/transcript (Markdown). The resource list shows the 50 most recent meetings.

Prompts: summarize_meeting, draft_followup_email, weekly_review.

Transcripts and notes are generated automatically and may be wrong. Treat what the tools return as data from meeting participants, and confirm with the user before acting on an action item.

How authentication works

The Recordist app writes a random token to api_token in its data folder with owner-only permissions (0600). The gateway reads that file and presents it as Authorization: Bearer … on every call it makes to the local API. No token, no access: another user on the same machine cannot read your meetings through the local API.

From version 0.1.5, the gateway’s own HTTP transport and its A2A agent check the same token on every request except a request for the A2A Agent Card. --http, --a2a and --all refuse to start when there is no token. --all also exits before stdio starts, so without a token, run the gateway with no flags. The token keeps out other user accounts and web pages. Programs that run under your own user account can read api_token and use it, as they can read your meeting files.

Over stdio there is no port and no token to send: only the client that started the gateway can talk to it. The token never needs to leave your machine, and you should never share it.

Offline reads

If the app is not running, the gateway opens recordist.db read-only and serves list_meetings, get_meeting, get_transcript, search_meetings and get_action_items from it. Recording and regeneration tools return an error asking you to open the app.

CLI

npx -y @recordist/gateway                 MCP over stdio (default)
npx -y @recordist/gateway --http          MCP over Streamable HTTP on 127.0.0.1:47322/mcp (bearer token)
npx -y @recordist/gateway --a2a           A2A agent on 127.0.0.1:47323 (bearer token)
npx -y @recordist/gateway --all           stdio + --http + --a2a (exits if there is no token)
npx -y @recordist/gateway --doctor        diagnostics: data dir, database, token, app reachability, HTTP and A2A auth
npx -y @recordist/gateway --version
  --http-port <n>  --a2a-port <n>  --host <addr>

Always run it with npx by its scoped name, @recordist/gateway. A global install (npm i -g @recordist/gateway) puts the same command on your path as recordist-gateway.

Logs go to stderr; stdout is reserved for the stdio transport. The HTTP transport and the A2A agent listen on 127.0.0.1 by default. The --host option, meant for containers, binds them to another address. Keep it a loopback address, because on any other address the token crosses the network in plain HTTP.

Environment variables

Variable Default Purpose
RECORDIST_DATA_DIR the platform data folder Where recordist.db and api_token live
RECORDIST_API_URL http://127.0.0.1:47321 Local API base URL
RECORDIST_API_TOKEN contents of api_token Bearer token for the local API, and the token --http and --a2a require from callers; prefer the file over an environment variable in shared shells

Troubleshooting

  • --doctor says the api token is missing: open the Recordist app once, then retry.
  • --http or --a2a exits and says it needs the API token: there is no api_token file and RECORDIST_API_TOKEN is not set. Open the Recordist app once, then start it again.
  • The client gets 401: it sent no token, or the token changed. The app makes a new token after Remove everything and quit, or after you delete api_token and open Recordist again. The gateway reads the token only when it starts, so stop the gateway (--http or --a2a) and start it again, then copy the file’s contents into the client again.
  • Tools list is empty in Claude Desktop: check the JSON for a trailing comma and fully quit and reopen Claude.
  • npx hangs on first run: it is downloading the package; give it a moment, or install globally with npm i -g @recordist/gateway and use recordist-gateway as the command.

Where the data goes afterwards

The gateway only ever talks to your own machine, and the Privacy Ledger in the app records only what Recordist itself sends. Where the agent you connected sends what it read is governed by that agent and its provider. If you use a cloud-hosted assistant, the meeting text it reads through these tools leaves your machine through that assistant.

Source and registry

Listed in the official MCP registry as app.recordist/gateway; on npm as @recordist/gateway.

The gateway is open source under the MIT licence: github.com/recordist-app/gateway. It contains only the bridge; the desktop app is separate.

Trademarks

Claude is a trademark of Anthropic, PBC; Cursor is a trademark of its owner. They are named only to identify compatible software.

Recordist

Recordist for Mac is downloading.

Thank you for trying Recordist. Three steps and it is ready before your next call. Open it now, so it is set up in time.

  1. 1Open the download and drag Recordist to Applications, then open it from there.
  2. 2Allow the microphone and system audio when your Mac asks, so both sides of the call are heard. Calendar is optional: it names your meetings and who is in them.
  3. 3Close the window when you like. Recordist waits in the menu bar and, when your next call starts, asks: Record this meeting? Nothing is recorded until you say yes.

The first time it opens, Recordist downloads its speech model: 142 MB in English, 466 MB for other languages. That usually takes a minute or two, and you can record once it finishes. The notes engine, 1 to 3 GB, follows in the background.

While it downloads, see a finished call in your browser

Every install includes 7 days of Pro, so your first calls are written up in full.

No call today? Import a recording you already have: in Recordist, Meetings, then Import audio. One of 10 minutes or more starts your 7 days of Pro, and the notes follow the transcript.

While it downloads, get your Free key. More AI notes each month, with no end date. Optional: your download has already started.

Two emails: a link to confirm, then a copy of your key. Nothing else unless you ask. We never sell or share your address, and Resend, our email service, sends them for us. Privacy

Didn’t start? Download again. All downloads