# Otter.ai MCP

```json
{
  "name": "Otter.ai MCP",
  "slug": "otter_ai_mcp",
  "url": "https://composio.dev/toolkits/otter_ai_mcp",
  "markdown_url": "https://composio.dev/toolkits/otter_ai_mcp.md",
  "logo_url": "https://logos.composio.dev/api/otter_ai_mcp",
  "categories": [
    "collaboration & communication"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-09-05T05:38:50.740Z"
}
```

![Otter.ai MCP logo](https://logos.composio.dev/api/otter_ai_mcp)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Otter.ai MCP or direct API to retrieve user profiles, search meetings and conversations, fetch full transcripts, and summarize conversations through natural language.

## Summary

Otter.ai is a meeting transcription and conversation intelligence service.
It captures, organizes, and makes meeting transcripts searchable for faster insights.

## Categories

- collaboration & communication

## Toolkit Details

- Tools: 3

## Images

- Logo: https://logos.composio.dev/api/otter_ai_mcp

## Authentication

- **Dcr Oauth**
  - Type: `custom`
  - Description: Dcr Oauth authentication for Otter.ai MCP.
  - Setup:
    - Configure Dcr Oauth credentials for Otter.ai MCP.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Summarize today's Otter meeting transcript
- Find action items across recent transcripts
- Search meetings for decisions about pricing

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `OTTER_AI_MCP_OTTER_FETCH` | 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_AI_MCP_OTTER_GET_USER_INFO` | 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_AI_MCP_OTTER_SEARCH` | 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 |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Otter.ai MCP Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Otter.ai MCP actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'YOUR_SPECIFIC_PROMPT_HERE'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Otter.ai MCP
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Otter.ai MCP tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('YOUR_SPECIFIC_PROMPT_HERE')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Otter.ai MCP Integration

- Supports both Otter.ai MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Otter.ai MCP data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Otter.ai MCP access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Otter.ai MCP
- Scoped, least privilege access to Otter.ai MCP resources
- Full audit trail of agent actions to support review and compliance

## Use Otter.ai MCP with any AI Agent Framework

Choose a framework you want to connect Otter.ai MCP with:

- [ChatGPT Work](https://composio.dev/toolkits/otter_ai_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/otter_ai_mcp/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/otter_ai_mcp/framework/hermes-agent)

## Related Toolkits

- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Slack](https://composio.dev/toolkits/slack) - Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.
- [Gong](https://composio.dev/toolkits/gong) - Gong is a platform for video meetings, call recording, and team collaboration. It helps teams capture conversations, analyze calls, and turn insights into action.
- [Microsoft teams](https://composio.dev/toolkits/microsoft_teams) - Microsoft Teams is a collaboration platform that combines chat, meetings, and file sharing within Microsoft 365. It keeps distributed teams connected and productive through seamless virtual communication.
- [Slackbot](https://composio.dev/toolkits/slackbot) - Slackbot is a conversational automation tool for Slack that handles reminders, notifications, and automated responses. It boosts team productivity by streamlining onboarding, answering FAQs, and managing timely alerts—all right inside Slack.
- [2chat](https://composio.dev/toolkits/_2chat) - 2chat is an API platform for WhatsApp and multichannel text messaging. It streamlines chat automation, group management, and real-time messaging for developers.
- [Agent mail](https://composio.dev/toolkits/agent_mail) - Agent mail provides AI agents with dedicated email inboxes for sending, receiving, and managing emails. It empowers agents to communicate autonomously with people, services, and other agents—no human intervention needed.
- [Android Texter](https://composio.dev/toolkits/android_texter) - Android Texter is an API service that connects Android phones to SMS, MMS, contacts, and device data. Use it to automate mobile messaging without building your own phone-to-API bridge.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Blooio](https://composio.dev/toolkits/blooio) - Blooio is a stable v2 API platform for messaging, chats, contacts, groups, phone numbers, and account analytics. It gives teams a clean way to build reliable communication workflows without stitching together fragile custom APIs.
- [CallOnTheGo](https://composio.dev/toolkits/callonthego) - CallOnTheGo is a telephony API for managing phone numbers, caller IDs, suppression lists, audio assets, contact lists, and Voice AI campaigns. It provides programmatic control over calling infrastructure and campaign automation for scalable voice outreach.
- [Carbon Voice MCP](https://composio.dev/toolkits/carbon_voice_mcp) - Carbon Voice MCP is a voice-first collaboration platform for messages, conversations, and workflows. Use it to centralize voice communications and streamline team collaboration.
- [CardClan](https://composio.dev/toolkits/cardclan) - CardClan is a digital card platform for creating and sending personalized team cards. Use it to celebrate moments, share card links, and manage card workflows without extra coordination.
- [Chatwork](https://composio.dev/toolkits/chatwork) - Chatwork is a team communication platform with group chats, file sharing, and task management. It helps businesses boost collaboration and streamline productivity.
- [Clickmeeting](https://composio.dev/toolkits/clickmeeting) - ClickMeeting is a cloud-based platform for running online meetings and webinars. It helps businesses and individuals host, manage, and engage virtual audiences with ease.
- [Confluence](https://composio.dev/toolkits/confluence) - Confluence is Atlassian's team collaboration and knowledge management platform. It helps your team organize, share, and update documents and project content in one secure workspace.
- [Daily](https://composio.dev/toolkits/daily) - Daily is a WebRTC video and audio API platform for building rooms, meetings, recordings, live streams, transcriptions, and telephony. It gives developers reliable real-time media infrastructure without managing complex conferencing stacks.
- [Dailybot](https://composio.dev/toolkits/dailybot) - DailyBot streamlines team collaboration with chat-based standups, reminders, and polls. It keeps work flowing smoothly in your favorite messaging platforms.
- [Dialmycalls](https://composio.dev/toolkits/dialmycalls) - Dialmycalls is a mass notification service for sending voice and text messages to contacts. It helps teams and organizations quickly broadcast urgent alerts and updates.

## Frequently Asked Questions

### Do I need my own developer credentials to use Otter.ai MCP with Composio?

Yes, Otter.ai MCP requires you to configure your own Dcr Oauth credentials. Once set up, Composio handles secure credential storage and management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
