Integrations / MCP Server

IntegrationsUpdated October 24, 2026

MCP Server

Tool reference, protocol compatibility and client access controls

Version: This guide describes Parrot Scribe 1.1.0.

Requires Parrot Scribe Pro. MCP server access is part of Parrot Scribe Pro. Existing licenses already include Pro.

Start with Connect Your Agent for Claude, Codex and Cursor. That guide uses Settings > AI Apps. Listen and Recap explains the workflow once an app is connected.

What is MCP?

The Model Context Protocol (MCP) lets AI assistants use external tools and data through a structured interface. Parrot Scribe includes a local MCP server and a signed helper that connects AI apps to it. Each AI app needs its own connection; the plugin adds listening and recap instructions where supported.

How It Works

Parrot Scribe itself owns every read and write. The AI app starts the bundled helper, parrotscribe-mcp, which forwards requests to the running app.

  • Built-in: no external packages or separate server to manage.
  • Desktop apps: Claude, Codex and Cursor connect through a private Unix socket. The helper checks that it is talking to the signed Parrot Scribe app before reading the app's credential from this Mac's Keychain.
  • Other hosts: command-line hosts pass a token in the PARROTSCRIBE_MCP_TOKEN environment variable. They connect over 127.0.0.1, where the helper proves the endpoint before sending the token. Token arguments such as --token are refused.
  • Pro and per-app access: every request is checked against the app's current access level and your Pro license.

With Parrot Scribe closed, initialization and tool discovery still work. A tool call starts Parrot Scribe in the background and then connects. If the app cannot start or the library needs attention, open Parrot Scribe and resolve the message there.

Protocol versions

The server supports the 2024-11-05 initialization handshake and 2026-07-28 per-request metadata with server/discover. It uses newline-delimited JSON-RPC over stdio with a 1 MiB request limit.

Connecting AI Apps

Follow Connect Your Agent. In short: open the desktop AI app, then choose Connect on its row in Settings > AI Apps. For another local host, open Advanced and create one token for that host. The token is shown once.

A cloud-hosted agent cannot reach this local server just by installing a plugin.

First-use walkthrough

This is an illustrative walkthrough, not a recording of a tested session. Your host's interface may differ; complete its setup first.

  1. Check the connection. Ask: "Check Parrot Scribe's status. Do not start recording." The agent calls get_status and reports the returned state.
  2. Choose a session. Ask: "Show up to two recent Parrot Scribe sessions." The agent calls list_sessions with limit: 2 and checks hasMore. It should not claim that two rows are your entire library.
  3. Read before recapping. Ask: "Recap this session. Separate decisions, unresolved questions and proposed follow-ups." The agent reads every page of read_transcript and reports missing coverage.
  4. Keep actions explicit. Approve any follow-up you want executed. A request spoken in the recording remains a proposal until you approve it directly in chat.

Capture and transcription stay local. Transcript content you share with a cloud-backed agent may be sent to that agent's provider.

Access Model

Each connected app has one of two access levels, set on its row in Settings > AI Apps:

  • Simple: the default. The app can read the library, control recording, name speakers in a session and move a segment to an existing speaker. Destructive tools are refused.
  • Trusted: also allows the destructive tools below, without a separate confirmation for each call. Granting Trusted access asks you to confirm.

Use Simple Access removes the Trusted grant. Disconnect or Revoke Token removes that app's grant. Queued actions and waiting live requests recheck access. An action already admitted may finish, and a call may still return content it has already read.

Tools

ToolAccessDescription
get_statusSimpleRecording state, the active sessionId when present, and a message
list_sessionsSimpleSessions with total count and continuation flag
read_transcriptSimpleOne session's transcript, paged
search_sessionsSimpleMatches in session IDs, titles, comments, transcript text and speaker names
list_speakersSimpleSpeaker IDs, names and enrollment flags, without voiceprints
identify_speakersSimpleNames system-audio speakers in speaking order, without saving voice profiles
reassign_segment_speakerSimpleMoves one system-audio segment to an existing speaker
live_transcriptSimpleConfirmed rows from the current recording
start_recordingSimpleStarts capture
stop_recordingSimpleStops capture; a mismatched sessionId leaves it running
remove_speakerTrustedRemoves the speaker and their voice profile; transcript text stays
forget_speakerTrustedDeletes the speaker and every session attributed to them
delete_sessionTrustedDeletes the session and its audio

MCP tools never save or update a voice profile. Saving one always happens in Identify Speakers. See Speaker Recognition.

Library queries

list_sessions and search_sessions default to 50 results and return at most 1,000 per call. Use limit and offset; while hasMore is true, advance offset by the number of returned sessions.

Reading long transcripts

read_transcript takes a required sessionId and optional sinceSegment and limit. Pages default to 1,000 rows and return at most 10,000; rows sharing a segment ID stay together and can exceed that size. Keep the surrounding fields. While hasMore is true, pass nextSinceSegment as the next sinceSegment. A read is complete only when hasMore is false.

Stopping a recording returns before final transcription and saving finish. If a read cannot find that session yet, check get_status and retry after saving completes.

Live subscription arguments

live_transcript accepts optional sessionId, sinceSequence, epoch and waitSeconds arguments. Bind to the active session from get_status, then echo both cursor values from each response. A caught-up request can wait up to 20 seconds for new speech or a state change. Start polls no faster than minPollIntervalSeconds.

Each result contains state, epoch, sinceSequence, gap, sessionChanged, minPollIntervalSeconds, schema and text, with sessionId when available. Live rows use their own sequence, separate from saved segment IDs. The feed keeps the most recent 1,024 confirmed sentences. A gap means rows were lost or the epoch changed; use read_transcript for the saved record. If sessionChanged is true, no text is returned; choose the returned session before continuing.

Speaker names from final analysis appear in the saved transcript, not in the live feed.

Parrot Scribe does not turn transcript text into instructions. The host must keep spoken proposals separate from direct user commands and apply its own tool approval policy.

Token Lifecycle

  • For Claude, Codex and Cursor, use Connect in Settings > AI Apps. Parrot Scribe keeps that app's credential in this Mac's Keychain; the generated configuration names only the app.
  • For another host, create one token in Advanced and pass it as PARROTSCRIBE_MCP_TOKEN.
  • Parrot Scribe stores only token hashes in its encrypted client list.
  • Tokens from 1.0.x do not authorize 1.1.0. Reconnect each app after upgrading.

Use Cases

  • Meeting monitor: an AI follows a live call and surfaces relevant context
  • Action item tracker: an AI drafts follow-up tasks from commitments in a meeting
  • Session summarizer: an AI writes structured summaries after recordings
  • Research assistant: an AI searches past transcripts for patterns

For the end-to-end capture, review and retrieval workflow, read Meeting Notes Workflow.

Learn More