Skip to main content
Glama
speakai

Speak AI MCP Server

Official
by speakai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SPEAK_API_KEYYesYour Speak AI API key
SPEAK_BASE_URLNoAPI base URLhttps://api.speakai.co
SPEAK_ACCESS_TOKENNoJWT access token (auto-fetched and refreshed)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_signed_upload_urlA

Get a pre-signed S3 URL for direct file upload to Speak AI storage. After getting the URL, PUT your file to it, then call upload_media with the S3 URL. For a simpler workflow, use upload_local_file instead which handles all steps automatically.

upload_mediaA

Upload media from a URL — a direct/public file URL, a pre-signed S3 URL, or a shareable social/video link (YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, and similar) which Speak resolves to the underlying media automatically. Processing is asynchronous — after uploading, use get_media_status to poll until state is 'processed' (typically 1-3 minutes for audio under 60 min), then use get_transcript and get_media_insights to retrieve results. For a single call that handles everything, use upload_and_analyze instead. For local files, use upload_local_file. (Vimeo links are not yet supported.)

list_mediaA

List and search media files in the workspace with filtering, pagination, and sorting. Use filterName for text search, mediaType to filter by audio/video/text, folderId for folder-specific results, and from/to for date ranges. Use the include param to embed additional data (transcripts, speakers, keywords) inline with each result, avoiding N+1 API calls. Returns mediaIds you can pass to get_transcript, get_media_insights, or ask_magic_prompt. For deep full-text search across transcripts, use search_media instead.

get_media_insightsA

Retrieve AI-generated insights for a processed media file — topics, sentiment, keywords, action items, summaries, and more. The media must be in 'processed' state (check with get_media_status first). For asking custom questions about a media file, use ask_magic_prompt instead.

get_transcriptA

Retrieve the full transcript for a media file with speaker labels and timestamps. Works on processed media and also returns the partial, in-progress transcript while a meeting bot is still recording (LIVE_TRANSCRIPT state). To fetch only the new sentences added since your previous call during a live meeting, use get_live_meeting_transcript instead. Use update_transcript_speakers to rename speaker labels after reviewing. For subtitle-formatted output, use get_captions instead.

update_transcript_speakersB

Update or rename speaker labels in a media transcript.

get_media_statusA

Check the processing status of a media file. States: pending → transcribing → analyzing → processed (or failed). Poll this after upload_media until state is 'processed', then use get_transcript and get_media_insights to retrieve results.

update_media_metadataB

Update metadata fields (name, description, tags, status) for an existing media file.

delete_mediaA

Permanently delete a media file and all associated transcripts and insights.

get_captionsA

Get captions for a media file. Captions are separate from full transcripts and are formatted for display/subtitles.

list_supported_languagesA

List all languages supported for transcription. Use the language codes when uploading media with a specific sourceLanguage.

get_media_statisticsA

Get workspace-level media statistics — total counts, processing status breakdown, storage usage, etc.

toggle_media_favoriteA

Mark or unmark media files as favorites for quick access.

reanalyze_mediaA

Re-run AI analysis on a media file using the latest models. Choose which parts to re-run via the flags below.

bulk_update_transcript_speakersA

Update or rename speaker labels across multiple media files in a single operation. Applies the same speaker mappings to every specified media file. Use this instead of calling update_transcript_speakers repeatedly when renaming speakers across a project or folder.

bulk_move_mediaA

Move multiple media files to a folder in a single operation. Use this for batch reorganization instead of updating media one by one.

create_text_noteA

Create a new text note in Speak AI for analysis. The content will be analyzed for insights, topics, and sentiment.

get_text_insightA

Retrieve AI-generated insights for a text note, including topics, sentiment, summaries, and action items.

reanalyze_textA

Trigger a re-analysis of an existing text note to regenerate insights with the latest AI models.

update_text_noteA

Update an existing text note's name, content, or metadata. Updating text content will trigger re-analysis.

export_mediaC

Export a media file's transcript or insights in various formats (pdf, docx, srt, vtt, txt, csv).

export_multiple_mediaB

Export multiple media files at once, optionally merged into a single file.

get_all_folder_viewsA

Retrieve all saved views across all folders.

get_folder_viewsA

Retrieve all saved views for a specific folder.

create_folder_viewA

Create a new saved view for a folder with a custom set of display columns.

update_folder_viewA

Update an existing saved view. Replaces the whole view, so name, isDefault and columns must all be supplied.

clone_folder_viewA

Duplicate an existing folder view into a target folder.

list_foldersA

List all folders in the workspace with pagination and sorting.

get_folder_infoB

Get detailed information about a specific folder including its contents.

create_folderA

Create a new folder in the workspace.

clone_folderB

Duplicate an existing folder and all of its contents.

update_folderA

Update a folder. name must always be supplied (the server replaces the folder config).

delete_folderA

Permanently delete a folder. Media within the folder will be moved, not deleted.

check_recorder_statusA

Check whether a recorder/survey is active and accepting submissions.

create_recorderB

Create a new recorder or survey for collecting audio/video submissions.

list_recordersA

List all recorders/surveys in the workspace.

clone_recorderA

Duplicate an existing recorder including all its settings and questions.

get_recorder_infoA

Get detailed information about a specific recorder including its settings and questions.

get_recorder_recordingsA

List all submissions/recordings collected by a specific recorder.

generate_recorder_urlA

Generate a shareable public URL for a recorder/survey.

update_recorder_settingsB

Update configuration settings for a recorder (branding, capture options, etc.). name must always be supplied.

update_recorder_questionsB

Update the survey questions and respondent-info settings for a recorder.

delete_recorderA

Permanently delete a recorder/survey. Existing recordings are preserved.

create_embedA

Create an embeddable player/transcript widget for a media file or a set of folders. Provide mediaId for a single-media embed, or folderIds for a folder/library embed.

update_embedA

Update an existing embed widget — appearance/feature toggles via meta, plus scope and privacy.

check_embedA

Check if an embed exists for a media file and retrieve its configuration.

get_embed_iframe_urlA

Get the iframe URL for embedding a media player/transcript on a webpage.

ask_magic_promptA

Ask an AI-powered question about your media using Speak AI's Magic Prompt. Supports querying a single file, multiple files, entire folders, or your whole workspace. Pass mediaIds for specific files, folderIds for entire folders, or omit both to search across all media. Use assistantType to get specialized responses (e.g., 'researcher' for academic analysis, 'sales' for deal insights). To continue a conversation, pass the promptId from a previous response. Returns a promptId — save it to continue the conversation with follow-up questions.

retry_magic_promptA

Retry a failed or incomplete Magic Prompt response. Use when a previous ask_magic_prompt call returned an error or incomplete answer.

get_chat_historyA

Get a list of recent Magic Prompt conversations. Returns conversation summaries with promptIds that can be used to continue conversations via ask_magic_prompt or retrieve full messages via get_chat_messages.

get_chat_messagesA

Get full message history for conversations. Can filter by promptId for a specific conversation, by media/folder, or search across all chat messages. Returns questions, answers, references, and metadata.

delete_chat_messageB

Delete a specific chat message from conversation history.

list_promptsA

List all available Magic Prompt templates. Use template IDs with ask_magic_prompt's assistantTemplateId parameter when using assistantType 'custom'.

get_favorite_promptsA

Get all prompts and answers that have been marked as favorites. Useful for finding saved insights and important AI-generated analysis.

toggle_prompt_favoriteA

Mark or unmark a chat message as a favorite for easy retrieval later.

update_chat_titleA

Update the title of a chat conversation for easier identification in history.

submit_chat_feedbackA

Submit feedback on a chat response (thumbs up/down). Helps improve AI answer quality.

get_chat_statisticsA

Get usage statistics for Magic Prompt / chat. Returns metrics on prompt usage, optionally filtered by date range.

export_chat_answerA

Export a specific Magic Prompt answer. Useful for saving AI-generated summaries, reports, or analysis results.

list_meeting_eventsA

List scheduled or completed meeting assistant events with filtering and pagination.

schedule_meeting_eventA

Schedule the Speak AI meeting assistant to join and record an upcoming meeting.

remove_assistant_from_meetingB

Remove the Speak AI assistant from an active or scheduled meeting.

delete_scheduled_assistantC

Cancel and delete a scheduled meeting assistant event.

get_live_meeting_transcriptA

Fetch new sentences from an in-progress or just-ended meeting transcript. Identify the meeting via meetingAssistantEventId (preferred) or mediaId. Pass back the previous response's nextCursor as sinceEndInSec to receive only what's been added since.

list_fieldsA

List all custom fields defined in the workspace.

create_fieldB

Create a new custom field for categorizing and tagging media.

update_multiple_fieldsA

Set custom field values across media in a single batch operation. Scope the update with folderId (all media in a folder) and/or mediaIds.

update_fieldA

Update a specific custom field by ID. name must always be supplied (the server replaces the field config).

list_automationsA

List automation rules in the workspace, with paging and filters.

list_automation_namesA

List automations as lightweight { name, id } pairs — useful for pickers without fetching full configs.

get_automationA

Get detailed information about a specific automation rule, including its trigger and step graph.

get_automation_runsA

Get the run history (executions) for an automation, with paging and optional status filter.

create_automationA

Create a new automation rule using the V2 graph model (trigger + ordered steps). Fetch valid step/trigger options with list_automation_triggers / list_automation_actions if unsure.

update_automationA

Update an existing automation rule. This replaces the whole automation (name, trigger, and steps), so fetch the current values with get_automation first and pass them all back with your changes.

toggle_automation_statusA

Toggle an automation rule between active and inactive. This flips the current state — call get_automation first if you need to know which way it will flip.

bulk_update_automation_statusA

Activate or deactivate multiple automations at once.

bulk_assign_automation_foldersA

Set the folder scope for multiple automations at once. Pass an empty folderIds array to remove the folder restriction (run on all folders).

run_automationsA

Manually run one or more automations against one or more media items now (outside the normal trigger).

delete_automationA

Permanently delete an automation rule.

list_automation_appsA

List the apps available in the automation catalog (e.g. Speak native + connected integrations). Use to discover what triggers/actions exist before building an automation.

list_automation_triggersA

List the trigger types available in the automation catalog. Optionally filter by app.

list_automation_actionsA

List the action/step types available in the automation catalog. Optionally filter by app.

create_webhookB

Create a new webhook to receive real-time notifications when events occur in Speak AI.

list_webhooksA

List all configured webhooks in the workspace.

update_webhookA

Update an existing webhook. This replaces the webhook config, so callbackUrl must always be supplied.

delete_webhookA

Delete a webhook and stop receiving notifications at its endpoint.

search_mediaA

Deep search across all media transcripts, insights, and metadata. Returns matching media with sentiment data, tags, and content excerpts. Use this to find specific topics, keywords, or themes across your entire library. For filtering by media type, folder, tags, or speakers, use the filterList parameter. Results are scoped by date range — defaults to current year if not specified.

create_clipA

Create a highlight clip from one or more media files by specifying time ranges. Clips are processed asynchronously (states: queued, processing, completed, failed) — use get_clips to check status. Maximum total clip duration is 30 minutes. Use multiple timeRanges to stitch segments from different media files together.

get_clipsA

List clips, optionally filtered by folder or media files. If clipId is provided, returns a single clip with its download URL (when processed).

update_clipB

Update a clip's title, description, or tags.

delete_clipA

Permanently delete a clip and its associated media file.

upload_and_analyzeA

Upload and transcribe media from a URL — a direct/public file URL, OR a shareable social/video link (YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, and similar), which Speak resolves to the underlying media automatically. Returns media_id immediately; after this returns, poll get_media_status until state is 'processed' (typically 1-3 min for under 60min audio), then call get_media_insights for AI summaries. This async pattern is required for remote MCP transports — long blocking calls die at proxy idle timeouts. (Vimeo links are not yet supported.)

upload_local_fileA

Upload a local file to Speak AI for transcription and analysis. Reads the file from disk, gets a pre-signed S3 URL, uploads the file, then creates the media entry. Works with any audio or video file on the local filesystem. After upload, use get_media_status to poll for completion, then get_transcript and get_media_insights.

list_usersA

List the users (members) in the workspace/company, with their ids, names, emails, and permissions. Use the returned _id values when assigning members to user groups.

list_user_groupsA

List all user groups in the company. Each group includes its members (hydrated names/emails) and member ids. Use this to discover group ids and current membership before updating or deleting a group.

create_user_groupA

Create a new user group and assign members. Member ids come from list_users. Fails with a 409 if a group with the same name already exists in the company.

update_user_groupA

Update a user group's name and member list. NOTE: the users array is a FULL REPLACEMENT, not a delta — any member id you omit is removed from the group. Fetch the current members with list_user_groups first and send the complete list.

delete_user_groupA

Delete a user group. This removes the group only; it does not delete the users themselves.

list_dashboardsA

List all analytics dashboards the caller can access, including share state.

get_dashboardA

Get a single dashboard's full config (widgets, filters, date range, folder scope).

Prompts

Interactive templates invoked by user choice

NameDescription
analyze-meetingUpload a meeting recording and get a full analysis — transcript, insights, action items, and key takeaways.
research-across-mediaSearch for themes, patterns, or topics across multiple recordings or your entire media library.
meeting-briefPrepare a brief from recent meetings — pull transcripts, extract decisions, and summarize open items.

Resources

Contextual data attached and managed by the client

NameDescription
media-libraryList of all media files in your Speak AI workspace
foldersList of all folders in your Speak AI workspace
supported-languagesList of supported transcription languages

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