Sponsored by Deepsite.site

Speak AI

Created By
speakaia month ago
Official MCP server for Speak AI, transcribe meetings, analyze media, extract insights, and search across your entire audio/video library. 81 tools, 5 resources, 3 prompts. Upload recordings, get AI-powered transcripts and summaries, ask questions across files, create clips, schedule meeting bots, and export in any format.
Content

Speak AI

Speak AI MCP Server & CLI

Connect Claude, Cursor, Windsurf, and other AI assistants to your Speak AI workspace.
83 tools, 5 resources, 3 prompts, 28 CLI commands — transcribe, analyze, search, and manage media at scale.

npm version MCP compatible License: MIT


Quick Start

1. Get Your API Key

  1. Go to Speak AI API Keys
  2. Copy your API Key

2. Choose How to Use It

MethodBest for
CLIScripts, pipelines, quick one-off tasks
MCP ServerAI assistants (Claude, Cursor, Windsurf, VS Code)
BothFull power — agents orchestrate, CLI automates

Setup

Detects installed MCP clients and configures them automatically:

npm install -g @speakai/mcp-server
speakai-mcp init

Manual Setup

Claude Desktop

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"
      }
    }
  }
}
Claude Code
export SPEAK_API_KEY="your-api-key"
claude mcp add speak-ai -- npx -y @speakai/mcp-server
Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "speak-ai": {
      "command": "npx",
      "args": ["-y", "@speakai/mcp-server"],
      "env": {
        "SPEAK_API_KEY": "your-api-key"
      }
    }
  }
}
Windsurf

Add to ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "speak-ai": {
      "command": "npx",
      "args": ["-y", "@speakai/mcp-server"],
      "env": {
        "SPEAK_API_KEY": "your-api-key"
      }
    }
  }
}
VS Code

Add to ~/.vscode/mcp.json:

{
  "mcpServers": {
    "speak-ai": {
      "command": "npx",
      "args": ["-y", "@speakai/mcp-server"],
      "env": {
        "SPEAK_API_KEY": "your-api-key"
      }
    }
  }
}
Any MCP Client (STDIO)
SPEAK_API_KEY=your-key npx @speakai/mcp-server

Environment Variables

VariableRequiredDefaultDescription
SPEAK_API_KEYYes--Your Speak AI API key
SPEAK_ACCESS_TOKENNoAuto-managedJWT access token (auto-fetched and refreshed)
SPEAK_BASE_URLNohttps://api.speakai.coAPI base URL

MCP Tools (83)

Media (16 tools)
ToolDescription
get_signed_upload_urlGet a pre-signed S3 URL for direct file upload
upload_mediaUpload media from a public URL for transcription
upload_local_fileUpload a local file directly from disk
upload_and_analyzeUpload, wait for processing, return transcript + insights in one call
list_mediaList and search media files with filters, pagination, and optional inline data (transcripts, speakers, keywords) via include param
get_media_insightsGet AI insights — topics, sentiment, summaries, action items
get_transcriptGet full transcript with speaker labels and timestamps
get_captionsGet subtitle-formatted captions for a media file
update_transcript_speakersRename speaker labels in a transcript
bulk_update_transcript_speakersRename speaker labels across multiple media files in one call (max 500)
get_media_statusCheck processing status (pending -> processed)
update_media_metadataUpdate name, description, tags, or folder
delete_mediaPermanently delete a media file
toggle_media_favoriteMark or unmark media as a favorite
reanalyze_mediaRe-run AI analysis with latest models
bulk_move_mediaMove multiple media files to a folder in one call
Magic Prompt / AI Chat (12 tools)
ToolDescription
ask_magic_promptAsk AI questions about media, folders, or your whole workspace
retry_magic_promptRetry a failed or incomplete AI response
get_chat_historyList recent Magic Prompt conversations
get_chat_messagesGet full message history for conversations
delete_chat_messageDelete a specific chat message
list_promptsList available AI prompt templates
get_favorite_promptsGet all favorited prompts and answers
toggle_prompt_favoriteMark or unmark a chat message as favorite
update_chat_titleRename a chat conversation
submit_chat_feedbackRate a chat response (thumbs up/down)
get_chat_statisticsGet Magic Prompt usage statistics
export_chat_answerExport a conversation or answer
Folders & Views (11 tools)
ToolDescription
list_foldersList all folders with pagination and sorting
get_folder_infoGet folder details and contents
create_folderCreate a new folder
clone_folderDuplicate a folder and its contents
update_folderRename or update a folder
delete_folderDelete a folder (media is preserved)
get_all_folder_viewsList all saved views across folders
get_folder_viewsList views for a specific folder
create_folder_viewCreate a saved view with custom filters
update_folder_viewUpdate a saved view
clone_folder_viewDuplicate a view
Recorder / Survey (10 tools)
ToolDescription
create_recorderCreate a new recorder or survey
list_recordersList all recorders
get_recorder_infoGet recorder details and questions
clone_recorderDuplicate a recorder
get_recorder_recordingsList all submissions
generate_recorder_urlGet a shareable public URL
update_recorder_settingsUpdate branding and permissions
update_recorder_questionsUpdate survey questions
check_recorder_statusCheck if recorder is active
delete_recorderDelete a recorder
Automations (5 tools)
ToolDescription
list_automationsList automation rules
get_automationGet automation details
create_automationCreate an automation rule
update_automationUpdate an automation
toggle_automation_statusEnable or disable an automation
Clips (4 tools)
ToolDescription
create_clipCreate a highlight clip from time ranges across media files
get_clipsList clips or get a specific clip with download URL
update_clipUpdate clip title, description, or tags
delete_clipPermanently delete a clip
Custom Fields (4 tools)
ToolDescription
list_fieldsList all custom fields
create_fieldCreate a custom field
update_fieldUpdate a custom field
update_multiple_fieldsBatch update multiple fields
Webhooks (4 tools)
ToolDescription
create_webhookCreate a webhook for event notifications
list_webhooksList all webhooks
update_webhookUpdate a webhook
delete_webhookDelete a webhook
Meeting Assistant (4 tools)
ToolDescription
list_meeting_eventsList scheduled and completed events
schedule_meeting_eventSchedule AI assistant to join a meeting
remove_assistant_from_meetingRemove assistant from active meeting
delete_scheduled_assistantCancel a scheduled meeting assistant
Media Embed (4 tools)
ToolDescription
create_embedCreate an embeddable player widget
update_embedUpdate embed settings
check_embedCheck if embed exists for media
get_embed_iframe_urlGet iframe URL for your website
Text Notes (4 tools)
ToolDescription
create_text_noteCreate a text note for AI analysis
get_text_insightGet AI insights for a text note
reanalyze_textRe-run AI analysis on a text note
update_text_noteUpdate note content (triggers re-analysis)
Exports (2 tools)
ToolDescription
export_mediaExport as PDF, DOCX, SRT, VTT, TXT, or CSV
export_multiple_mediaBatch export with optional merge into one file
Media Statistics & Languages (2 tools)
ToolDescription
get_media_statisticsGet workspace-level stats — counts, storage, processing breakdown
list_supported_languagesList all supported transcription languages
Search / Analytics (1 tool)
ToolDescription
search_mediaDeep 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.

ResourceURIDescription
Media Libraryspeakai://mediaList of all media files in your workspace
Foldersspeakai://foldersList of all folders
Supported Languagesspeakai://languagesTranscription language list
Transcriptspeakai://media/{mediaId}/transcriptFull transcript for a specific media file
Insightsspeakai://media/{mediaId}/insightsAI-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 (28 Commands)

Install globally and configure once:

npm install -g @speakai/mcp-server
speakai-mcp config set-key

Or run without installing:

npx @speakai/mcp-server config set-key

Configuration

CommandDescription
config set-key [key]Set your API key (interactive if no key given)
config showShow current configuration
config testValidate API key and test connectivity
config set-url <url>Set custom API base URL
initInteractive setup — configure key and auto-detect MCP clients

Media Management

CommandDescription
list-media / lsList media files with filtering, date ranges, and pagination
upload <source>Upload media from URL or local file (--wait to poll)
get-transcript / transcript <id>Get transcript (--plain or --json)
get-insights / insights <id>Get AI insights (topics, sentiment, keywords)
status <id>Check media processing status
export <id>Export transcript (-f pdf|docx|srt|vtt|txt|csv)
update <id>Update media metadata (name, description, tags, folder)
delete <id>Delete a media file
favorites <id>Toggle favorite status
captions <id>Get captions for a media file
reanalyze <id>Re-run AI analysis with latest models
CommandDescription
ask <prompt>Ask AI about media, folders, or your whole workspace
chat-historyList past Magic Prompt conversations
search <query>Full-text search across transcripts and insights

Folders & Clips

CommandDescription
list-folders / foldersList all folders
move <folderId> <mediaIds...>Move media files to a folder
create-folder <name>Create a new folder
clipsList clips (filter by media or folder)
clip <mediaId>Create a clip (--start and --end in seconds)

Workspace

CommandDescription
statsShow workspace media statistics
languagesList supported transcription languages
schedule-meeting <url>Schedule AI assistant to join a meeting
create-text <name>Create a text note (--text or pipe via stdin)

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-03-19 --to 2026-03-26

# Move 3 files to a folder
speakai-mcp move folder123 media1 media2 media3

Workflow Examples

Transcribe and Analyze a Meeting

You: "Upload and transcribe this recording: https://example.com/meeting.mp3"

AI: I'll upload and analyze that for you.
    -> upload_and_analyze(url, name)
    [waits for processing... returns transcript + insights]

    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-03-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-03-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-03-18", mediaType: "audio")
    -> get_media_insights(mediaId) [for each of 5 meetings]

    Weekly Meeting Brief (Mar 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]

For Agent Developers

Authentication

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:

TokenExpiryHow to Renew
Access token80 minutesRefresh endpoint or re-authenticate
Refresh token24 hoursRe-authenticate with API key

Auth Rate Limits: 5 requests per 60 seconds on both /v1/auth/accessToken and /v1/auth/refreshToken.

Data Model Notes

  • Folder IDs: Folders have both _id (MongoDB ObjectId) and folderId (string). All API operations use folderId — this is the ID you should pass to list_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

  • The MCP client automatically retries on 429 with exponential backoff
  • For direct API usage, implement exponential backoff and respect Retry-After headers
  • Cache stable data (folder lists, field definitions, supported languages)
  • Use export_multiple_media over individual exports for batch operations
  • Use upload_and_analyze instead of manual upload + poll + fetch loops
  • Use bulk_move_media to move multiple items at once instead of updating one by one
  • Use bulk_update_transcript_speakers to rename speakers across many files instead of calling update_transcript_speakers per file
  • Use list_media with include: ["transcription"] to fetch media with transcripts inline, avoiding N+1 calls to get_transcript

Error Format

All tool errors follow this structure:

{
  "content": [{ "type": "text", "text": "Error: HTTP 401: {\"message\": \"Invalid API key\"}" }],
  "isError": true
}
CodeMeaning
401Invalid or missing API key / access token
403Insufficient permissions
404Resource not found
429Rate 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 build

Resources

License

MIT

Server Config

{
  "mcpServers": {
    "speak-ai": {
      "command": "npx",
      "args": [
        "-y",
        "@speakai/mcp-server"
      ],
      "env": {
        "SPEAK_API_KEY": "your-api-key"
      }
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
CursorThe AI Code Editor
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
DeepChatYour AI Partner on Desktop
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Amap Maps高德地图官方 MCP Server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
ChatWiseThe second fastest AI chatbot™
Playwright McpPlaywright MCP server
WindsurfThe new purpose-built IDE to harness magic
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Serper MCP ServerA Serper MCP Server
Tavily Mcp
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.