Overview
The Fireflies MCP (Model Context Protocol) Server provides tools for searching, retrieving, and managing meeting transcripts, summaries, soundbites, channels, and user data. Tools operate within your authenticated Fireflies account — some are read-only while others allow you to take actions like sharing meetings or creating soundbites. For setup and configuration instructions, see MCP Server Configuration.Available Tools
Meeting & Transcript Tools
fireflies_search and fireflies_fetch are experimental tools that may not be available to all users. They are being progressively rolled out and may require feature flag enablement.Tool
Description: Advanced search for meeting transcripts using mini grammar syntax. (Experimental)Parameters:
query(string, required) - Search query with grammar syntaxformat(string) - Response format: “toon” (default), “json”, or “text”
keyword:"term"- Search keywordsscope:title|sentences|all- Search scopefrom:YYYY-MM-DD- Filter from dateto:YYYY-MM-DD- Filter to datelimit:N- Max results (50)skip:N- Pagination offsetorganizers:email1,email2- Filter by organizersparticipants:email1,email2- Filter by participantsmine:true|false- User’s meetings onlychannel:CHANNEL_ID- Filter by channel/folder ID (find IDs withfireflies_list_channels)
Tool
Description: Query multiple meetings with structured filters. Returns metadata and summaries.Parameters:Returns: Meeting IDs, titles, dates, participants, summaries (excludes detailed transcript content).
keyword(string) - Search term (max 255 chars)scope(enum) - “title”, “sentences”, or “all”fromDate(string) - ISO date (YYYY-MM-DD)toDate(string) - ISO date (YYYY-MM-DD)limit(number) - Max results (max 50)skip(number) - Pagination offsetorganizers(array) - Organizer emailsparticipants(array) - Participant emailsmine(boolean) - Only user’s meetingschannelId(string) - Only meetings in this channel/folder (find IDs withfireflies_list_channels)format(string) - “toon” (default), “json”, or “text”
Tool
Description: Fetch detailed transcript by ID with sentences, speakers, and timestamps. Excludes summary data. If the meeting is currently live (Returns: Sentences with speaker attribution and metadata. Each sentence is prefixed with a
is_live: true), returns a point-in-time snapshot of the live transcript with sentences captured so far.Parameters:transcriptId(string, required) - Meeting ID
[start - end] timestamp range (e.g. [00:05 - 00:08] Speaker: text, switching to h:mm:ss past an hour) so moments can be anchored back to the recording.Tool
Description: Retrieve complete meeting data including transcript, summary, and metadata. (Experimental)Parameters:Returns: Complete meeting data with transcript content, summary, analytics, and metadata.
id(string, required) - Meeting ID
Tool
Description: Fetch meeting summary by ID with action items, keywords, and overview. Excludes transcript content.Parameters:Returns: Keywords, action items, overview, topics discussed, meeting type, and outline.
transcriptId(string, required) - Meeting ID
Tool
Description: Retrieves a list of currently active (in-progress) meetings. Returns meeting details including ID, title, organizer, meeting link, start/end time, privacy, and state. Admins can query active meetings for any user; regular users can only query their own.Parameters:Returns: List of active meetings with ID, title, organizer, meeting link, start time, privacy, and state.
email(string, optional) - Email address to filter active meetings by a specific user. Admins can query any team member; regular users can only use their own email or omit this field.states(array, optional) - Array of meeting states to filter by. Possible values:"active"(currently in progress),"paused"(meeting has been paused). If omitted, returns meetings in both states.
Tool
Description: Retrieves team and per-user meeting and conversation analytics. Returns meeting counts, durations, conversation metrics (filler words, questions, monologues, sentiment, talk-listen ratio, words per minute), and comparison data against previous periods. Team-level analytics require admin privileges.Parameters:Returns: Team and per-user meeting counts, durations, and conversation metrics with period-over-period comparisons.
startTime(string, optional) - Start date/time filter in ISO 8601 format (e.g."2024-01-01T00:00:00.000Z"). Limits analytics to meetings after this time.endTime(string, optional) - End date/time filter in ISO 8601 format (e.g."2024-12-31T23:59:59.999Z"). Limits analytics to meetings before this time.
Meeting Management Tools
Description: Shares a meeting transcript with specified email addresses. The authenticated user must be the owner of the meeting or a team admin. Up to 100 emails can be provided. Optionally set an expiry period for the shared access.Parameters:Returns: Confirmation of the sharing operation.
meetingId(string, required) - The meeting ID / transcript ID to shareemails(array, required) - Array of email addresses to share the meeting with (max 100)expiryDays(number, optional) - Expiry period in days for the shared access. Must be one of:7,14,30
Tool
Description: Revokes a previously shared meeting access for a specific email address. The authenticated user must be the owner of the meeting or a team admin.Parameters:Returns: Confirmation of the access revocation.
meetingId(string, required) - The meeting ID / transcript ID to revoke access fromemail(string, required) - The email address to revoke access for
Tool
Description: Updates the title of a meeting transcript. The authenticated user must be the owner of the meeting or a team admin. The title must be between 5 and 256 characters.Parameters:Returns: Confirmation of the title update.
meetingId(string, required) - The meeting ID / transcript ID to updatetitle(string, required) - The new title for the meeting (5-256 characters)
Tool
Description: Moves one or more meeting transcripts to a specified channel/folder. The authenticated user must be the owner of the meetings or a team admin. Up to 5 meeting IDs can be provided.Parameters:Returns: Confirmation of the move operation.
meetingIds(array, required) - Array of meeting IDs / transcript IDs to move (max 5)channelId(string, required) - The target channel/folder ID to move the meetings to
Channel Tools
Tool
Description: Lists all channels/folders available to the authenticated user. Returns channel details including ID, title, privacy setting, and members.Parameters: NoneExample:Returns: List of channels with ID, title, privacy setting, and member details.
Tool
Description: Retrieves details of a specific channel/folder by its ID. Returns channel title, privacy setting, and member list.Parameters:Returns: Channel title, privacy setting, and member list.
channelId(string, required) - The ID of the channel to retrieve
Soundbite Tools
Tool
Description: Fetches soundbites (short shareable audio/transcript clips from meetings). Can filter by transcript, ownership, or team. At least one of Returns: List of soundbites with IDs, names, start/end times, summaries, and associated meeting details.
mine, transcript_id, or my_team must be provided.Parameters:transcript_id(string, optional) - Transcript/meeting ID to get soundbites for a specific meetingmine(boolean, optional) - Filter to only include soundbites owned by the authenticated usermy_team(boolean, optional) - Filter to include soundbites from the authenticated user’s teamlimit(number, optional) - Limit for the number of soundbites to return (max 50)skip(number, optional) - Number of soundbites to skip for paginationformat(string) - “toon” (default), “json”, or “text”
Tool
Description: Creates a soundbite (clip) from a meeting transcript. A soundbite is a short audio/video segment extracted from a meeting. The authenticated user must have write access to the meeting.Parameters:Returns: Created soundbite details including ID and share URL.
transcriptId(string, required) - The transcript ID / meeting ID to create the soundbite fromstartTime(number, required) - Start time of the soundbite in seconds (must be >= 0)endTime(number, required) - End time of the soundbite in seconds (must be > 0 and > startTime)name(string, optional) - Name/title for the soundbite (max 256 characters)mediaType(string, optional) - Media type (e.g. “audio”, “video”)privacies(array, optional) - Privacy settings. Values:"public","team","participants"summary(string, optional) - Summary text for the soundbite (max 500 characters)
File Upload Tools
fireflies_create_upload_url and fireflies_confirm_upload are listed only for accounts with direct upload enabled (the same access as the createUploadUrl mutation), require a paid plan, and need the meetings.upload scope. They upload a file the MCP client can read locally (for example in Claude Code); the file content never passes through the MCP server.Tool
Description: Step 1 of uploading a local audio or video file for transcription. Creates an empty meeting and returns a pre-signed Returns:
upload_url valid for 1 hour, plus a curl command that reads the file path from the shell variable FILE.Parameters:contentType(enum, required) - MIME type of the file, e.g.audio/mpeg,audio/x-m4a,audio/wav,video/mp4,video/quicktime. See supported content typesfileSize(integer, required) - Exact file size in bytes (audio up to 400 MB, video up to 2 GB)title(string, optional) - Meeting title (max 256 characters)customLanguage(string, optional) - Language code, e.g.es(max 5 characters)meetingDate(string, optional) - When the recording took place, RFC 3339 (YYYY-MM-DDorYYYY-MM-DDTHH:MM:SSZ/±HH:MM); not in the future
meeting_id, upload_url, expires_at, and upload (method: "PUT", the Content-Type header to send, and a curl command; set FILE to the file’s path, quoted for your shell, before running it). Upload the raw bytes with an HTTP PUT to upload_url using exactly that Content-Type, then call fireflies_confirm_upload.Tool
Description: Step 3 of the upload: verifies the file arrived in storage and starts transcription. Only the user who created the upload URL can confirm it.Parameters:Returns:
meetingId(string, required) - Themeeting_idreturned byfireflies_create_upload_url
success, meeting_id and a status message. Transcription takes a few minutes; then fetch it with fireflies_get_transcript.Send-to Tools (Transcript Import)
These tools require a paid plan and the
meetings.upload scope. They are not listed for a free plan or when your organization has disabled file uploads. They make Fireflies a “Send to” destination: an assistant that holds a meeting transcript as text (for example Claude Meetings) copies it into a new Fireflies meeting. Only text is imported, with no audio, video or chat. It is a one-time copy and nothing syncs afterwards.[HH:MM:SS] Speaker Name: what they said. The time is elapsed from the start of the meeting and kept as written: [00:10:00] is ten minutes in. A time with two parts is minutes and seconds ([10:03] is 10 minutes 3 seconds in), so always include the hours. Clock times also work when they carry AM/PM ([02:15:07 PM]) or match the clock time of startTime as written, so give startTime in the meeting’s local offset (2026-11-05T09:30:00-08:00, not the same instant as 17:30:00Z). They are converted to elapsed time, including across midnight. A transcript may span at most 24 hours; a longer one is refused when it is submitted. Generic labels such as Speaker 2 or Room are kept as speaker names. A line without a leading time continues the previous speaker. Each call takes at most 50,000 characters. A longer transcript goes in up to 40 numbered parts, each cut at a line break. Sending a part number again replaces that part, so a retry never duplicates text.
Tool
Description: Creates a new meeting from a text transcript and returns its link.Parameters:
title(string, required) - Meeting title (max 256 characters)startTime(string, required) - ISO 8601 with the offset of the time zone the meeting took place in, e.g.2026-11-05T09:30:00-08:00; not in the futuretranscript(string, required) - Part 1 of the transcript, in the format abovecomplete(boolean, required) -trueif this is the whole transcript,falseif more parts follow
meeting_id, url, status (receiving, submitting or submitted), and the parts received so far. Once submitted, the url opens right away, and the transcript appears there within a few minutes. If the meeting was created but the transcript could not be submitted, the call still returns its meeting_id, with a message saying how to retry.Tool
Description: Adds or replaces a numbered part of the transcript. Set
complete: true on the last part to build the transcript. After that, the meeting cannot change.Parameters:meetingId(string, required) - Fromfireflies_create_meeting_from_transcriptpartNumber(integer, required) - 2, 3, … in transcript order (max 40); part 1 is the text sent at creationtext(string, optional) - The part, in the format above. Omit it, withcomplete: true, to only submit the parts already sent.complete(boolean, required) -trueon the last part
complete: true answers submitting or a temporary error, send complete: true again in a couple of minutes. The transcript is resent only if Fireflies did not receive it.Tool
Description: Shows what has landed: for each part, its character count, its number of non-empty lines, and its first and last line, plus the status. Use it after a failed call to decide which parts to send again.Parameters:
meetingId(string, required)
User & Team Tools
Tool
Description: Fetch user account details. Returns authenticated user if no ID provided.Parameters:Returns: User ID, email, name, transcript count, recent meeting date, minutes consumed, admin status, and integrations.
userId(string, optional) - User ID (omit for current user)
Tool
Description: Fetch user groups for the authenticated user or team.Parameters:Returns: Group ID, name, handle, members with emails and roles.
mine(boolean) - true for user’s groups only, false (default) for all team groups
Tool
Description: Fetch contact list sorted by most recent meeting date.Parameters:Returns: Contact emails, names, profile pictures, and last meeting dates.
format(string) - “toon” (default), “json”, or “text”
Automation Tools
Tool
Description: Retrieves rule execution logs grouped by meeting. Shows which automation rules were triggered on meetings, including the actions taken (sharing, moving to channels, changing privacy). Requires Enterprise tier access. Results are paginated.Parameters:Returns: Rule execution logs grouped by meeting, including rule names, actions taken, and execution status.
ruleId(string, optional) - Filter by a specific rule IDmeetingId(string, optional) - Filter by a specific meeting IDdateFrom(string, optional) - Filter executions from this date (ISO 8601 format, e.g."2024-01-01T00:00:00Z")dateTo(string, optional) - Filter executions up to this date (ISO 8601 format, e.g."2024-12-31T23:59:59Z")limit(number, optional) - Maximum number of meeting groups to return (default: 10, max: 50)cursor(string, optional) - Pagination cursor from a previous response to fetch the next page
Tool Comparison Matrix
Response Formats
Several tools support multiple response formats via theformat parameter:
- toon (default) - Token-efficient format optimized for AI model consumption
- json - Standard JSON format for programmatic processing
- text - Human-readable text format for display
Common Workflows
Search and Retrieve Pattern
- Use
fireflies_searchorfireflies_get_transcriptsto find relevant meetings - Extract meeting IDs from results
- Use
fireflies_fetchto get complete details, or:- Use
fireflies_get_transcriptfor conversation only - Use
fireflies_get_summaryfor insights only
- Use
Team Analysis Pattern
- Use
fireflies_get_usergroupsto get team structure - Extract member emails from target groups
- Use
fireflies_get_transcriptswithparticipantsfilter - Optionally use
fireflies_get_userfor individual member details
Contact-Based Search Pattern
- Use
fireflies_get_user_contactsto get contact list - Find target contact by name or email
- Use
fireflies_get_transcriptswith contact email inparticipants - Retrieve detailed transcripts or summaries as needed
Meeting Management Pattern
- Use
fireflies_get_transcriptsto find meetings to organize - Use
fireflies_list_channelsto see available channels - Use
fireflies_move_meetingto move meetings into channels - Use
fireflies_update_meeting_titleto rename meetings as needed
Soundbite Workflow
- Use
fireflies_get_transcriptto review a meeting’s conversation - Identify key moments by timestamp
- Use
fireflies_create_soundbiteto clip important segments - Use
fireflies_get_soundbitesto browse existing clips
Meeting Sharing Pattern
- Use
fireflies_get_transcriptsto find meetings to share - Use
fireflies_share_meetingto share with external or internal users - Use
fireflies_revoke_meeting_accessto remove access when no longer needed
Getting Started
To use these tools:-
Configure MCP Server - Add Fireflies MCP Server to your AI application
- Remote server URL:
https://api.fireflies.ai/mcp - Supports OAuth or API key authentication
- Remote server URL:
- Authenticate - Use OAuth flow or provide API key in configuration
- Invoke Tools - Call tools using their standardized names with JSON parameters
Additional Resources
MCP Configuration
Set up the Fireflies MCP Server in your AI application
GraphQL API
Direct GraphQL API access for custom integrations
Authorization
Learn about API authentication and security
LLM Development
Enhance AI coding experience with Fireflies data