Speak AI MCP Server (speakai/speakai-mcp) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 113 tools. No publisher has claimed this listing.

C
Caution
74/100

Speak AI MCP Server

Connects Speak AI transcription and insight data to Claude and ChatGPT, enabling natural language queries for summaries, action items, and quotes from recordings.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

speakai

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Secret credentials may flow to a network call
1 flow detected: SPEAK_ACCESS_TOKEN. We can’t prove the destination matches the brand the credential belongs to.
⚠️
Known vulnerabilities in dependencies: 1 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
🔐
You'll be asked for 2 credentials: SPEAK_ACCESS_TOKEN, SPEAK_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes113 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

search_media
list_automations

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

list_automation_names

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

get_automation

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

get_automation_runs

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

create_automation
update_automation
toggle_automation_status

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_status

Activate or deactivate multiple automations at once.

bulk_assign_automation_folders

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

run_automations

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

delete_automation

Permanently delete an automation rule.

list_automation_apps

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_triggers

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

list_automation_actions

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

create_clip
get_clips

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

update_clip

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

delete_clip

Permanently delete a clip and its associated media file.

list_dashboards
get_dashboard
list_dashboard_widgets
create_dashboard
update_dashboard
delete_dashboard

Soft-delete a dashboard. This also deactivates its public share link.

duplicate_dashboard
share_dashboard

Enable public sharing for a dashboard and return its share token + embed id. WARNING: by default the public link resolves with no passphrase, so anyone with the token can view the dashboard data until an owner sets one.

get_dashboard_speakers_insight

Compute a speakers breakdown for a given folder scope, date range, and field filters. Standalone analytics — does not require a dashboard to exist.

create_embed

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_embed

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

check_embed

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

get_embed_iframe_url

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

export_media

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

export_multiple_media

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

list_fields

List all custom fields defined in the workspace.

create_field

Create a new custom field for categorizing and tagging media.

update_multiple_fields

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_field

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

get_all_folder_views

Retrieve all saved views across all folders.

get_folder_views

Retrieve all saved views for a specific folder.

create_folder_view

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

update_folder_view

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

clone_folder_view

Duplicate an existing folder view into a target folder.

list_folders

List all folders in the workspace with pagination and sorting.

get_folder_info

Get detailed information about a specific folder including its contents.

create_folder

Create a new folder in the workspace.

clone_folder

Duplicate an existing folder and all of its contents.

update_folder

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

delete_folder

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

get_signed_upload_url

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_media

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

list_media

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, key

get_media_insights

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_ai_chat instead.

get_transcript

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

update_transcript_speakers

Update or rename speaker labels in a single media transcript. Call get_transcript first to read the speaker list — a speaker's label is whatever it was last renamed to, not a fixed value, so ids from an earlier turn may be stale. Renaming a speaker to a name another speaker already has is refused as

update_transcription

Edit the official transcript text of a single media file by finding and replacing text. Replaces every occurrence of the original text with the replacement (leave replacement empty to delete the text) and reports how many occurrences were replaced. Use update_transcript_speakers to rename speaker la

get_media_status

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_metadata

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

delete_media

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

get_captions

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

list_supported_languages

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

get_media_statistics

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

toggle_media_favorite

Mark or unmark media files as favorites for quick access.

reanalyze_media

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_speakers

Normalise speaker names that are ALREADY correct across multiple media files — for example changing "Frederik S." to "Frederik" everywhere. Applies the same mapping to every specified media file. NOT a way to identify a speaker across a project: neither the numeric id nor a default label such as "Sp

bulk_move_media

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

list_meeting_events

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

schedule_meeting_event

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

remove_assistant_from_meeting

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

delete_scheduled_assistant

Cancel and delete a scheduled meeting assistant event.

get_live_meeting_transcript

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.

ask_ai_chat
get_analysis_quote
retry_ai_chat

Retry a failed or incomplete AI Chat response. Use when a previous ask_ai_chat call returned an error or incomplete answer.

get_chat_history

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

get_chat_messages

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_message

Delete a specific chat message from conversation history.

list_prompts

List all available AI Chat templates. Use template IDs with ask_ai_chat's assistantTemplateId parameter when using assistantType 'custom'.

get_favorite_prompts

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

toggle_prompt_favorite

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

update_chat_title

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

submit_chat_feedback

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

get_chat_statistics

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

export_chat_answer

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

check_recorder_status

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

create_recorder

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

list_recorders

List all recorders/surveys in the workspace.

clone_recorder

Duplicate an existing recorder including all its settings and questions.

get_recorder_info

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

get_recorder_recordings

List all submissions/recordings collected by a specific recorder.

generate_recorder_url

Generate a shareable public URL for a recorder/survey.

update_recorder_settings

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

update_recorder_questions

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

delete_recorder

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

create_text_note

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

get_text_insight

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

reanalyze_text

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

update_text_note

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

list_users

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_groups

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.

13 further tools are not listed here. The complete surface is in the source.

// known CVEs in dependencies1 high9 medium

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highaxios@1.16.1GHSA-gcfj-64vw-6mp9

Axios Node HTTP adapter can use an inherited proxy after interceptor config cloning

mediumaxios@1.16.1GHSA-42h9-826w-cgv3

Axios: Excessive recursion in formDataToJSON can cause denial of service

mediumaxios@1.16.1GHSA-7q8q-rj6j-mhjq

Axios: Nested axios option objects can consume polluted prototype values

mediumaxios@1.16.1GHSA-f4gw-2p7v-4548

Axios: NO_PROXY bypass for 0.0.0.0 local addresses in axios

mediumaxios@1.16.1GHSA-hcpx-6fm6-wx23

Axios form serializer maxDepth bypass via {} metatoken

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
🔐 secretSPEAK_ACCESS_TOKENNo Auto-managed JWT access token (auto-fetched and refreshed)
🔐 secretSPEAK_API_KEY3. Set your environment variable. Generate one at [app.speakai.co/developers/apikeys](https://app.speakai.co/developers/apikeys).
configSPEAK_BASE_URLNo https://api.speakai.co API base URL
// quality suggestions

Tool annotations

112/113 tools have annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

1/113 tools missing one or more hints — ask_ai_chat (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint). OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool inputs are validated

97/112 tool handlers declare input schemas (87%)

Declare an inputSchema with zod/joi/yup on every tool definition.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Secrets not logged

1 secret value sent to console.log

Redact or omit secret values from log output.

Production dependencies are patched

0 critical, 1 high severity in production deps — axios@1.16.1 (high), axios@1.16.1 (medium)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/speakai/speakai-mcp?variant=verified)](https://m8ven.ai/mcp/speakai/speakai-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 991d57928b65badd560e2cbf1084de483691b645
code hash: 5ddc5cca0c458256573d42e512d7dc194379167c1ec60ff3edc16e5d6d74287c
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client