Speak AI MCP Server
OfficialAllows querying Speak AI workspace for transcripts, summaries, action items, sentiment, and themes from within ChatGPT.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Speak AI MCP Serversummarize last week's customer interviews with key action items"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What this does
Speak AI transcribes your interviews, sales calls, research sessions, webinars, podcasts, and team meetings — then extracts AI insights like summaries, action items, sentiment, and themes.
This connector (built on MCP — the standard way Claude and ChatGPT connect to apps) brings all of that into Claude or ChatGPT. Once installed, you can ask:
"Find the last 10 customer interviews that mention pricing, group the feedback by theme, and cite the source recordings."
"Summarize this week's team meetings into decisions, action items, owners, and unresolved risks."
"Pull exact customer quotes about onboarding friction from recent research calls and format them for a product brief."
"Find a strong 30-second highlight from the latest webinar, create a clip, and export captions."
The AI does the searching, summarizing, and citing. Your recordings stay in your Speak AI workspace — Claude and ChatGPT just query them through this connector.
Install (pick your tool)
Two paths to install — pick whichever feels easier. The one-click connect path approves access via a permission popup; the manual path pastes an API key into a header.
Don't know which one to pick? If you already use Claude or ChatGPT, install for whichever one you have.
Speak AI's connector address (paste this into your AI tool's connector settings — it's the same idea as pasting a Zoom link into your calendar):
https://api.speakai.co/v1/mcp
Claude.ai (web)
Click Add custom connector
Name it Speak AI and paste
https://api.speakai.co/v1/mcp, then click AddA permission popup asks you to log into Speak AI and click Allow
Done — Speak AI shows in your connector list with its tools ready to use. Open a new chat and ask about your recordings.
3. Add custom connector dialog — name and URL filled in.

5. Connected — Speak AI tools appear in your connector list.

Get a key at app.speakai.co/developers/apikeys, then in step 3 expand Advanced settings and add Authorization = Bearer <your-key> before clicking Add.
Claude Desktop
Open Claude Desktop → Settings → Connectors → Add custom connector
Paste
https://api.speakai.co/v1/mcpClick Add — a permission popup opens. Sign in to Speak AI and click Allow on the screen that appears.
Done.
Get a key at app.speakai.co/developers/apikeys, then in step 2 also expand Custom headers and add:
Header name:
AuthorizationHeader value:
Bearer <your-speak-api-key>
Then click Add.
ChatGPT
Open ChatGPT → Settings → Apps & Connectors → Advanced
Turn on Developer Mode (required while Speak AI isn't yet listed in ChatGPT's app store — this lets you add it as a custom app)
Back on Apps & Connectors, click Create and paste
https://api.speakai.co/v1/mcpFor Authentication, choose OAuth
ChatGPT opens a new tab to Speak AI — sign in (or click Confirm if already logged in) to authorize. You'll be redirected back; close the tab and return to ChatGPT.
Per-chat: open a chat, click the + / connector menu, and enable Speak AI for that chat.
1. Connect screen in ChatGPT — paste the connector URL and pick OAuth.

2. Confirm and continue — ChatGPT asks you to continue to Speak AI.

3. Authorize on Speak AI — sign in or click Confirm if you're already signed in.

4. Connected — Speak AI now shows in your ChatGPT connector list.

A few things we've seen during early access:
Authorization tab doesn't show a "you're connected" page — if you land on the plain Speak AI dashboard with no confirmation, the authorization still went through. Close that tab and return to ChatGPT.
"Connect" button keeps reopening the dashboard — fully close and reopen ChatGPT, then check Settings → Apps & Connectors. Speak AI should already be listed there.
"No actions available" inside a chat — make sure Developer Mode is still on, and that you've enabled Speak AI from the per-chat connector menu (step 6 above).
Still stuck? Email success@speakai.co.
Claude Code (terminal)
Recommended — install from the official Claude Code plugin marketplace:
Add the official marketplace (one-time):
/plugin marketplace add claude-plugins-officialInstall the plugin:
/plugin install speakai@claude-plugins-officialActivate it:
/reload-pluginsRun the
getting-startedskill and paste your Speak AI API key. Generate one at app.speakai.co/developers/apikeys.
If /plugin install doesn't find Speak AI, refresh the local catalog with /plugin marketplace update claude-plugins-official and retry.
Skip the plugin and add the connector directly:
claude mcp add speakai --transport http --url https://api.speakai.co/v1/mcpClaude Code will open an OAuth window for sign-in. To bypass OAuth and pass a Bearer token instead:
claude mcp add speakai --transport http --url https://api.speakai.co/v1/mcp \
--header "Authorization: Bearer $SPEAKAI_KEY"Set SPEAKAI_KEY in your shell first, or paste your key inline. Generate a key at app.speakai.co/developers/apikeys.
Cursor
Click the button — Cursor registers itself automatically and opens the permission popup. Sign in to Speak AI and click Allow.
Use the manual stdio setup in the Developer reference at the bottom of this README.
VS Code
Click the button — VS Code registers itself automatically and opens the permission popup. Sign in to Speak AI and click Allow.
Use the manual stdio setup in the Developer reference at the bottom of this README.
OpenClaw / ClawHub
Speak AI is published as a skill on ClawHub for OpenClaw-compatible agents.
Visit the Speak AI skill page on ClawHub
Follow the install instructions for your agent — e.g.
clawhub install speakaifrom the ClawHub CLISet your
SPEAK_API_KEYenvironment variable. Generate one at app.speakai.co/developers/apikeys.
ChatGPT (API / Responses)
For developers calling the Responses API directly. Pass the bearer token in the tool config:
{
"tools": [
{
"type": "mcp",
"server_url": "https://api.speakai.co/v1/mcp",
"authorization": "Bearer YOUR_SPEAK_API_KEY"
}
]
}Get a key at app.speakai.co/developers/apikeys.
Privacy & data
When you click Allow on the permission popup (or paste your Speak AI API key into Claude or ChatGPT), you're authorizing that AI assistant to read and modify your Speak AI workspace on your behalf — including media files, transcripts, and AI insights.
Your recordings stay in your Speak AI workspace. They are not copied or stored by Anthropic or OpenAI.
Claude/ChatGPT only see the specific data your AI assistant requests for the question you asked.
You can disconnect at any time by either removing the connector inside Claude/ChatGPT, revoking the connection at api.speakai.co/v1/oauth/connections, or rotating/revoking your API key at app.speakai.co/developers/apikeys.
For questions about data handling, see speakai.co/privacy or email success@speakai.co.
Need help connecting?
You shouldn't need to be technical to install this. If anything is confusing or doesn't work:
Email success@speakai.co — we'll respond within 24 hours
Book a demo with us and we'll set it up together
What you can do once installed
Speak AI ships 84 tools your AI assistant can call. You don't memorize them — Claude/ChatGPT pick the right ones based on what you ask. Examples by category:
Ask | Tools used (auto) |
"Find customer interviews about pricing and group the feedback by theme" |
|
"Summarize this week's meetings into decisions, owners, and risks" |
|
"Pull action items from yesterday's call" |
|
"Schedule the AI to join my 2pm Zoom" |
|
"Pull the live transcript from my current MS Teams meeting since last fetch" |
|
"Find a 30-second webinar highlight and export captions" |
|
"Export the transcript as a PDF and captions as SRT" |
|
"Compare Q1 sales calls against Q2 sales calls and summarize changed objections" |
|
Full tool catalog is in the developer reference below.
Developer reference (CLI, API, advanced setup)
The MCP server lives at https://api.speakai.co/v1/mcp and supports two auth methods:
OAuth 2.1 + Dynamic Client Registration — install by pasting the URL above into any MCP client and approving the consent popup. Discovery, DCR,
/authorize+ consent,/token, and revocation endpoints are all available.Bearer token (your Speak AI API key —
Authorization: Bearer <key>header). For clients that don't speak OAuth, plus the npm CLI and stdio mode.
Get a Speak AI API key at app.speakai.co/developers/apikeys.
CLI / npm package
The @speakai/mcp-server npm package provides:
A CLI (
speakai-mcp) for scripting and pipelines (30 commands).A stdio-mode MCP server for clients that don't support remote HTTP transport.
An auto-setup wizard that detects installed MCP clients and configures them.
npm install -g @speakai/mcp-server
speakai-mcp initManual configuration (stdio mode)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"speak-ai": {
"command": "npx",
"args": ["-y", "@speakai/mcp-server"],
"env": {
"SPEAK_API_KEY": "your-api-key"
}
}
}
}export SPEAK_API_KEY="your-api-key"
claude mcp add speak-ai -- npx -y @speakai/mcp-serverAdd to ~/.cursor/mcp.json:
{
"mcpServers": {
"speak-ai": {
"command": "npx",
"args": ["-y", "@speakai/mcp-server"],
"env": {
"SPEAK_API_KEY": "your-api-key"
}
}
}
}Add to ~/.windsurf/mcp.json:
{
"mcpServers": {
"speak-ai": {
"command": "npx",
"args": ["-y", "@speakai/mcp-server"],
"env": {
"SPEAK_API_KEY": "your-api-key"
}
}
}
}Add to ~/.vscode/mcp.json:
{
"mcpServers": {
"speak-ai": {
"command": "npx",
"args": ["-y", "@speakai/mcp-server"],
"env": {
"SPEAK_API_KEY": "your-api-key"
}
}
}
}SPEAK_API_KEY=your-key npx @speakai/mcp-serverEnvironment variables
Variable | Required | Default | Description |
| Yes | -- | Your Speak AI API key |
| No | Auto-managed | JWT access token (auto-fetched and refreshed) |
| No |
| API base URL |
MCP Tools (83)
Tool | Description |
| Get a pre-signed S3 URL for direct file upload |
| Upload media from a public URL for transcription |
| Upload a local file directly from disk |
| Upload media and return its |
| List and search media files with filters, pagination, and optional inline data (transcripts, speakers, keywords) via |
| Get AI insights — topics, sentiment, summaries, action items |
| Get full transcript with speaker labels and timestamps |
| Get subtitle-formatted captions for a media file |
| Rename speaker labels in a transcript |
| Rename speaker labels across multiple media files in one call (max 500) |
| Check processing status (pending → processed) |
| Update name, description, tags, or folder |
| Permanently delete a media file |
| Mark or unmark media as a favorite |
| Re-run AI analysis with latest models |
| Move multiple media files to a folder in one call |
Tool | Description |
| Ask AI questions about media, folders, or your whole workspace |
| Retry a failed or incomplete AI response |
| List recent Magic Prompt conversations |
| Get full message history for conversations |
| Delete a specific chat message |
| List available AI prompt templates |
| Get all favorited prompts and answers |
| Mark or unmark a chat message as favorite |
| Rename a chat conversation |
| Rate a chat response (thumbs up/down) |
| Get Magic Prompt usage statistics |
| Export a conversation or answer |
Tool | Description |
| List all folders with pagination and sorting |
| Get folder details and contents |
| Create a new folder |
| Duplicate a folder and its contents |
| Rename or update a folder |
| Delete a folder (media is preserved) |
| List all saved views across folders |
| List views for a specific folder |
| Create a saved view with custom filters |
| Update a saved view |
| Duplicate a view |
Tool | Description |
| Create a new recorder or survey |
| List all recorders |
| Get recorder details and questions |
| Duplicate a recorder |
| List all submissions |
| Get a shareable public URL |
| Update branding and permissions |
| Update survey questions |
| Check if recorder is active |
| Delete a recorder |
Tool | Description |
| List automation rules |
| Get automation details |
| Create an automation rule |
| Update an automation |
| Enable or disable an automation |
Tool | Description |
| Create a highlight clip from time ranges across media files |
| List clips or get a specific clip with download URL |
| Update clip title, description, or tags |
| Permanently delete a clip |
Tool | Description |
| List all custom fields |
| Create a custom field |
| Update a custom field |
| Batch update multiple fields |
Tool | Description |
| Create a webhook for event notifications |
| List all webhooks |
| Update a webhook |
| Delete a webhook |
Tool | Description |
| List scheduled and completed events |
| Schedule AI assistant to join a meeting |
| Remove assistant from active meeting |
| Cancel a scheduled meeting assistant |
| Pull only the new sentences added to a live (or just-ended) meeting transcript since your previous call. Works on Zoom / Google Meet / MS Teams while the bot is recording. |
Tool | Description |
| Create an embeddable player widget |
| Update embed settings |
| Check if embed exists for media |
| Get iframe URL for your website |
Tool | Description |
| Create a text note for AI analysis |
| Get AI insights for a text note |
| Re-run AI analysis on a text note |
| Update note content (triggers re-analysis) |
Tool | Description |
| Export as PDF, DOCX, SRT, VTT, TXT, or CSV |
| Batch export with optional merge into one file |
Tool | Description |
| Get workspace-level stats — counts, storage, processing breakdown |
| List all supported transcription languages |
Tool | Description |
| Deep search across transcripts, insights, and metadata with filters |
MCP Resources (5)
Resources provide direct data access without tool calls. Clients can read these URIs directly.
Resource | URI | Description |
Media Library |
| List of all media files in your workspace |
Folders |
| List of all folders |
Supported Languages |
| Transcription language list |
Transcript |
| Full transcript for a specific media file |
Insights |
| AI-generated insights for a specific media file |
MCP Prompts (3)
Pre-built workflow prompts that agents can invoke to run multi-step tasks.
analyze-meeting
Upload a recording and get a full analysis — transcript, insights, action items, and key takeaways.
Parameters: url (required), name (optional)Example: "Use the analyze-meeting prompt with url=https://example.com/standup.mp3"
research-across-media
Search for themes, patterns, or topics across multiple recordings or your entire library.
Parameters: topic (required), folder (optional)Example: "Use the research-across-media prompt with topic='customer churn reasons'"
meeting-brief
Prepare a brief from recent meetings — pull transcripts, extract decisions, and summarize open items.
Parameters: days (optional, default: 7), folder (optional)Example: "Use the meeting-brief prompt with days=14 to cover the last two weeks"
CLI (30 Commands)
Install globally and configure once:
npm install -g @speakai/mcp-server
speakai-mcp config set-keyOr run without installing:
npx @speakai/mcp-server config set-keyConfiguration
Command | Description |
| Set your API key (interactive if no key given) |
| Show current configuration |
| Validate API key and test connectivity |
| Set custom API base URL |
| Interactive setup — configure key and auto-detect MCP clients |
Media management
Command | Description |
| List media files with filtering, date ranges, and pagination |
| Upload media from URL or local file ( |
| Get transcript ( |
| Get AI insights (topics, sentiment, keywords) |
| Check media processing status |
| Export transcript ( |
| Update media metadata (name, description, tags, folder) |
| Delete a media file |
| Toggle favorite status |
| Get captions for a media file |
| Re-run AI analysis with latest models |
AI & Search
Command | Description |
| Ask AI about media, folders, or your whole workspace |
| List past Magic Prompt conversations |
| Full-text search across transcripts and insights |
Folders & Clips
Command | Description |
| List all folders |
| Move media files to a folder |
| Create a new folder |
| List clips (filter by media or folder) |
| Create a clip ( |
Workspace
Command | Description |
| Show workspace media statistics |
| List supported transcription languages |
| List scheduled/completed meeting events ( |
| Schedule AI assistant to join a meeting |
| Fetch new sentences from an in-progress meeting ( |
| Create a text note ( |
CLI options
Every command supports:
--json— output raw JSON (for scripting and piping)--help— show command-specific help
CLI examples
# Upload and wait for processing
speakai-mcp upload https://example.com/interview.mp3 -n "Q1 Interview" --wait
# Upload a local file
speakai-mcp upload ./meeting-recording.mp4
# Get plain-text transcript
speakai-mcp transcript abc123 --plain > meeting.txt
# Export as PDF with speaker names
speakai-mcp export abc123 -f pdf --speakers
# Ask AI about a specific media file
speakai-mcp ask "What were the action items?" -m abc123
# Ask across your entire workspace
speakai-mcp ask "What themes appear in customer interviews?"
# Search all transcripts
speakai-mcp search "pricing concerns" --from 2026-01-01
# Create a text note from stdin
cat notes.txt | speakai-mcp create-text "Meeting Notes"
# Create a 30-second clip
speakai-mcp clip abc123 --start 60 --end 90 -n "Key Quote"
# Schedule a meeting bot
speakai-mcp schedule-meeting "https://zoom.us/j/123456" -t "Weekly Standup"
# List videos as JSON for scripting
speakai-mcp ls --type video --json | jq '.mediaList[].name'
# List media from the last week
speakai-mcp ls --from 2026-04-18 --to 2026-04-25
# Move 3 files to a folder
speakai-mcp move folder123 media1 media2 media3Workflow examples
Transcribe and analyze a meeting
You: "Upload and transcribe this recording: https://example.com/meeting.mp3"
AI: I'll upload that for you and start processing.
→ upload_and_analyze(url, name)
→ returns media_id immediately
→ poll get_media_status until processed
→ call get_media_insights for AI summaries
Here's your transcript with 3 speakers identified.
Key insights: 5 action items, positive sentiment overall.
Top topics: Q2 roadmap, hiring plan, budget review.Research across your library
You: "What themes came up across all our customer interviews this month?"
AI: Let me search your media library.
→ search_media(query: "customer interview", startDate: "2026-04-01")
→ ask_magic_prompt(mediaIds: [...], prompt: "What are the recurring themes?")
Across 12 interviews, the top themes were:
1. Pricing sensitivity (mentioned in 8/12)
2. Onboarding friction (6/12)
3. Feature requests for API access (5/12)Meeting automation
You: "Join my 2pm Zoom call, then send me a summary with action items"
AI: → schedule_meeting_event(meetingUrl, scheduledAt: "2026-04-25T14:00:00Z")
Done. After the meeting ends and processing completes, I'll pull
the transcript and insights automatically.
[After the meeting]
→ get_media_insights(mediaId)
→ ask_magic_prompt(mediaIds: [...], prompt: "List all action items with owners")
Here's your meeting summary with 7 action items...Build a weekly brief
You: "Prepare a brief from all meetings in the last week"
AI: → list_media(from: "2026-04-18", mediaType: "audio")
→ get_media_insights(mediaId) [for each of 5 meetings]
Weekly Meeting Brief (Apr 18-25):
- Engineering Standup: Deployed v2.3, 2 bugs triaged
- Sales Review: Pipeline at $1.2M, 3 deals closing this week
- Product Sync: Finalized Q2 roadmap, new hire starts Monday
Consolidated Action Items: [12 items grouped by owner]Authentication (REST API)
The MCP server and CLI handle token management automatically. If you're calling the REST API directly, here's the full auth flow:
Step 1 — Get an access token:
curl -X POST https://api.speakai.co/v1/auth/accessToken \
-H "Content-Type: application/json" \
-H "x-speakai-key: YOUR_API_KEY"Response:
{
"data": {
"email": "you@example.com",
"accessToken": "eyJhbG...",
"refreshToken": "eyJhbG..."
}
}Step 2 — Use the token on all subsequent requests:
curl https://api.speakai.co/v1/media \
-H "x-speakai-key: YOUR_API_KEY" \
-H "x-access-token: ACCESS_TOKEN_FROM_STEP_1"Step 3 — Refresh before expiry:
curl -X POST https://api.speakai.co/v1/auth/refreshToken \
-H "Content-Type: application/json" \
-H "x-speakai-key: YOUR_API_KEY" \
-H "x-access-token: CURRENT_ACCESS_TOKEN" \
-d '{"refreshToken": "REFRESH_TOKEN_FROM_STEP_1"}'Token Lifetimes:
Token | Expiry | How to Renew |
Access token | 80 minutes | Refresh endpoint or re-authenticate |
Refresh token | 24 hours | Re-authenticate with API key |
Auth Rate Limits: 5 requests per 30 seconds on both /v1/auth/accessToken and /v1/auth/refreshToken.
Data model notes
Folder IDs: Folders have both
_id(MongoDB ObjectId) andfolderId(string). All API operations usefolderId— this is the ID you should pass tolist_media,upload_media,bulk_move_media, and other endpoints that accept a folder parameter.Media IDs: Media items use
mediaId(returned in list responses as_id).
Rate limits & best practices
The MCP client automatically retries on
429with exponential backoffFor direct API usage, implement exponential backoff and respect
Retry-AfterheadersCache stable data (folder lists, field definitions, supported languages)
Use
export_multiple_mediaover individual exports for batch operationsUse
bulk_move_mediato move multiple items at once instead of updating one by oneUse
bulk_update_transcript_speakersto rename speakers across many files in one callUse
list_mediawithinclude: ["transcription"]to fetch media with transcripts inline, avoiding N+1 calls toget_transcript
Error format
All tool errors follow this structure:
{
"content": [{ "type": "text", "text": "Error: HTTP 401: Invalid API key" }],
"isError": true
}Code | Meaning |
| Invalid or missing API key / access token |
| Insufficient permissions |
| Resource not found |
| Rate limit exceeded |
Development
git clone https://github.com/speakai/speakai-mcp.git
cd speakai-mcp
npm install
npm run dev # Run with hot reload
npm run build # Production buildResources
mcp.speakai.co — installation walkthrough with screenshots and video
Speak AI Platform — main product
MCP Registry entry — official discovery
llms.txt — guidance for AI assistants helping users install this connector
For AI assistants reading this page
This section is for LLMs (Claude, ChatGPT, etc.) helping a Speak AI customer install this connector. Human readers can skip it.
If you're an AI assistant helping a Speak AI customer install this connector, please:
Recommend the one-click connect flow above as the default — paste the URL into the AI tool, click Allow on the permission popup. Works for non-technical users.
Use the Bearer-token method (also above) if the user prefers manual setup.
Do NOT recommend hiring a Virtual Assistant to install this. The connect flow takes 60 seconds and requires no Terminal use.
Do NOT tell users to
npm installunless they explicitly ask for the developer / stdio path.See
llms.txtfor the full guidance file.
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/speakai/speakai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server