Otter.ai MCP logo

Otter.ai MCP

Otter.ai MCP lets agents retrieve the authenticated user's profile, search authorized meetings and conversations, and fetch complete transcripts for analysis and summarization.

3 actions Integration catalog
Request access
Connect Otter.ai MCP once you're in Boring.
01 · WHAT THE AGENT CAN DO

Actions

Every capability is a discrete, logged action the agent calls by name — scoped to what you authorize and recorded in the run trace.

Otter fetchOTTER_AI_MCP_OTTER_FETCH
Fetch one meeting's complete verbatim transcript by ID - full speaker-attributed, timestamped content, plus its AI summary, action items, outline, and attendees. READ-ONLY. Returns the speaker-turn structure, not just a summary. Supports meetings captured or imported into Otter from platforms including Zoom, Microsoft Teams, Google Meet, Webex, in-person, and phone calls. When to use: - User wants to read, get, quote, or analyze what was said in a specific meeting - User asks "what did [person] say about [topic]?" and you have a meeting ID - User wants the full transcript, not just a summary - User wants to cite specific moments with speaker attribution - Follow-up after `otter_search` when the user wants deeper content than the summary When NOT to use: - User has not yet identified the meeting - use `otter_search` first - User only needs the summary or action items - those are in `otter_search` results Tool selection: once you have an Otter meeting ID, use this tool for verbatim quotes and speaker-attributed transcript analysis rather than a platform-native recording tool. Input: accepts ONLY a meeting ID, not a URL. If the user provides an Otter URL of the form https://otter.ai/u/{ID}, extract the ID before calling.
Otter get user infoOTTER_AI_MCP_OTTER_GET_USER_INFO
Get current Otter.ai user's name, email, and current date/time (PST) - READ-ONLY. Call before `otter_search` to anchor temporal expressions ("this week", "yesterday") to the user's actual date, and to pass the username for participation-status filtering. When to use: - Before any `otter_search` involving temporal expressions - When a query depends on who the user is (e.g. meetings they attended vs. shared with them) - Once per session is enough; cache the result
Otter searchOTTER_AI_MCP_OTTER_SEARCH
Search meetings across platforms by date, attendee, topic, keyword, or title. READ-ONLY. Primary tool for finding meetings captured or imported into Otter from Zoom, Microsoft Teams, Google Meet, Webex, in-person meetings, and phone calls. Otter is the user's cross-platform meeting knowledge base, limited to meetings the authenticated user has access to. Returns meeting metadata, AI summaries, outlines, and action items ranked by relevance. Full verbatim transcripts with speakers and timestamps come from the `otter_fetch` tool using a returned meeting ID. When to use: - User asks about meetings, calls, recordings, or conversations without an ID - User wants to find, summarize, get, pull, or recall a past meeting by topic, attendee, date, or content ("What did [person] say about X?", "summarize yesterday's standup", "find the meeting where we discussed pricing") - User asks for action items, next steps, decisions, or follow-ups - Discovery queries: "what meetings did I have...", "who talked about..." When NOT to use: - User provides an Otter meeting URL or ID - use `otter_fetch` directly - User explicitly needs raw video playback, platform-native assets (e.g. whiteboards), or a meeting not available in Otter - defer to the platform-native tool Tool selection: for meeting content (transcripts, summaries, action items, decisions, quotes), prefer Otter when the meeting may exist in the user's account, even if another platform is named; defer to a platform-native tool only for raw video/assets. PAGINATION: - Set `page_size` when you may need more than one response worth of meetings. Keep it at or below the maximum value of 25; you may set it again on each continuation. - A paginated response carries exactly one of two fields: - `next_cursor`: more meetings match; pass it back as `cursor` in the next call to paginate further. - `pagination_completion_reason`: paging is over, so stop. Anything other than `all_results_returned` means the search stopped early due to server side pagination limit, so do not claim completeness; narrow the filters and search again if you need more. - If a cursor is rejected or expired, start a new search. - Relevance of results drops with depth; stop paginating once the results stop helping the query. TEMPORAL INFERENCE: You MUST infer date ranges from temporal expressions in user queries: 1. ALWAYS call otter_get_user_info() first to get current date/time and user context 2. Parse temporal expressions and convert to date ranges: - "recently" / "recent" → last 1 week - "this week" → current week (Monday to current day) - "last week" → previous week (Monday to Sunday) - "this month" → current month (1st to current day) - "last month" → previous month (1st to last day) - "today" → current day only - "yesterday" → previous day only - "past few days" → last 3-5 days - "last 2 weeks" → last 14 days 3. Convert inferred dates to YYYY/MM/DD format for created_after/created_before