Fireflies MCP Server
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., "@Fireflies MCP Serversearch for mentions of 'Q4 roadmap' in my recent meetings"
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.
Fireflies MCP Server
Supercharge your meeting workflows with seamless transcript access, search, and AI-powered summaries—right from your terminal or automation tools!
🚀 Introduction
Fireflies MCP Server is an open source Modern Command Protocol (MCP) server that unlocks the full power of the Fireflies.ai API. Instantly retrieve, search, and summarize your meeting transcripts with simple commands or integrate into your favorite tools. Perfect for productivity enthusiasts, automation fans, and teams who want to get more from their meeting data.
Related MCP server: Fathom MCP Server
✨ Why Fireflies MCP Server?
Instant Access: Fetch and filter all your Fireflies meeting transcripts in seconds.
Deep Insights: Get detailed transcript info, including speakers and full content.
Smart Search: Find exactly what you need with powerful keyword and phrase search.
AI Summaries: Generate concise, actionable summaries in your preferred format.
Easy Integration: Works with Claude Desktop, scripts, and any MCP-compatible client.
Open Source & Extensible: Community-driven, MIT-licensed, and ready for your contributions!
⚡️ Quick Start
# 1. Install (requires Node.js and npm or pnpm)
npm install -g fireflies-mcp-server
# 2. Get your Fireflies API key from https://fireflies.ai/dashboard/settings/api
# 3. Start the server
FIREFLIES_API_KEY=your_api_key fireflies-mcp-server🛠 Features
Transcript Management: List and filter your Fireflies meeting transcripts
Transcript Details: Retrieve in-depth information for any transcript, including speakers and full content
Keyword Search: Locate transcripts by searching for specific words or phrases
Automated Summaries: Instantly generate concise summaries in either paragraph or bullet point format
🔌 Endpoints
fireflies_get_transcripts— List transcripts (with optional filters:limit,from_date,to_date)fireflies_get_transcript_details— Get full details for a transcript (transcript_id)fireflies_search_transcripts— Search transcripts by keyword or phrase (query, optionallimit)fireflies_generate_summary— Generate a summary for a transcript (transcript_id, optionalformat)
🧑💻 Setup & Usage
1. Prerequisites
Node.js (v16+ recommended)
A Fireflies API key (get yours here)
2. Installation
npm install
# or
pnpm install3. Build
npm run build
# or
pnpm build4. (Optional) Use a Custom Build Directory
By default, the build output goes to the dist directory. To specify a different build/output directory, set the BUILD_DIR environment variable before building:
BUILD_DIR=custom-dist npm run buildThis will output the build to custom-dist instead of dist.
5. Configuration for Claude Desktop
After building, you'll want to point Claude Desktop to your custom build directory. Here's what your terminal output and configuration might look like:
$ echo "Add this to your claude_desktop_config.json mcpServers array:"
Add this to your claude_desktop_config.json mcpServers array:
{
"mcpServers": {
"fireflies": {
"command": "node",
"args": ["/absolute/path/to/custom-dist/index.js"],
"env": {
"FIREFLIES_API_KEY": "<YOUR_API_KEY>"
}
}
}
}Replace /absolute/path/to/custom-dist/index.js with the actual path to your custom build output.
6. Running the Server
FIREFLIES_API_KEY=your_api_key npm start
# or
FIREFLIES_API_KEY=your_api_key pnpm startOr use the setup script:
./setup.sh
FIREFLIES_API_KEY=your_api_key npm start🤝 Contributing
We love contributions! Whether it's a bug fix, new feature, or documentation improvement, your help is welcome. Please check out CONTRIBUTING.md for guidelines, or open an issue to start a discussion.
💬 Community & Support
GitHub Issues — for bug reports and feature requests
Join the conversation! PRs and feedback are always appreciated.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
4 toolsfireflies_generate_summaryB
Generate a summary of a meeting transcript
| Name | Required | Description | Default |
|---|---|---|---|
| transcript_id | Yes | ID of the transcript to summarize | |
| format | No | Format of the summary (bullet_points or paragraph) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('generate a summary') but doesn't describe what the summary includes (e.g., key points, action items), how long it takes, potential rate limits, or authentication needs. For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Generate a summary of a meeting transcript.' It's front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple tool. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or integration with siblings. Without annotations or output schema, more context would be helpful, but it meets a basic threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (transcript_id and format with enum values). The description doesn't add any meaning beyond what the schema provides—it doesn't explain what a transcript_id is, where to get it, or the implications of the format choices. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate a summary of a meeting transcript' specifies the verb ('generate') and resource ('summary of a meeting transcript'). It distinguishes from sibling tools like 'fireflies_get_transcript_details' which retrieves details rather than generating summaries. However, it doesn't explicitly differentiate from potential alternative summary tools (though none are listed among siblings).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid transcript_id), exclusions, or comparisons to sibling tools like 'fireflies_search_transcripts' for finding transcripts first. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fireflies_get_transcript_detailsB
Retrieve detailed information about a specific transcript. Returns a human-readable formatted transcript with speaker names and text, along with metadata and summary information.
| Name | Required | Description | Default |
|---|---|---|---|
| transcript_id | Yes | ID of the transcript to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions the return format ('human-readable formatted transcript with speaker names and text, along with metadata and summary information'), which adds some behavioral context. However, it omits critical details like authentication needs, rate limits, error handling, or whether the operation is read-only or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's purpose and return value without unnecessary details. It is appropriately sized and front-loaded, though it could be slightly more concise by avoiding redundancy like 'detailed information' and 'formatted transcript'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and lack of annotations or output schema, the description provides a basic overview but is incomplete. It covers the purpose and return format but misses behavioral aspects like safety, performance, and error handling, which are important for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'transcript_id' adequately. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and resource 'detailed information about a specific transcript', making the purpose evident. It distinguishes from siblings by focusing on a single transcript rather than lists or summaries, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by specifying 'specific transcript' and the required transcript_id parameter, suggesting this tool is for detailed retrieval of a known transcript. However, it lacks explicit guidance on when to use this versus siblings like fireflies_get_transcripts for lists or fireflies_generate_summary for summaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fireflies_get_transcriptsA
Retrieve a list of meeting transcripts with optional filtering. By default, returns up to 20 most recent transcripts with no date filtering. Note that this operation may take longer for large datasets and might timeout. If a timeout occurs, a minimal set of transcript data will be returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of transcripts to return (default: 20). Consider using a smaller limit if experiencing timeouts. | |
| from_date | No | Start date in ISO format (YYYY-MM-DD). If not specified, no lower date bound is applied. Using a narrower date range can help prevent timeouts. | |
| to_date | No | End date in ISO format (YYYY-MM-DD). If not specified, no upper date bound is applied. Using a narrower date range can help prevent timeouts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively adds context beyond the input schema by describing performance traits: 'this operation may take longer for large datasets and might timeout' and 'If a timeout occurs, a minimal set of transcript data will be returned.' This covers critical behavioral aspects like latency, timeout risks, and fallback behavior, which are not captured in the schema. However, it doesn't mention authentication needs, rate limits, or error handling details, preventing a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. Each sentence adds value: the first states the purpose, the second covers defaults, and the third addresses performance and fallback behavior. There's no wasted text, but it could be slightly more structured (e.g., bullet points for performance notes) to enhance clarity, hence a 4 instead of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (list retrieval with filtering), no annotations, and no output schema, the description does a good job of covering key aspects: purpose, default behavior, and performance constraints. It compensates for the lack of annotations by disclosing timeout behavior and fallback outcomes. However, it doesn't describe the return format (e.g., structure of transcript list) or error scenarios, which would be helpful for an agent, keeping it from a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all three parameters (limit, from_date, to_date). The description adds minimal value beyond the schema, only implying date filtering and limit usage without providing additional syntax or format details. According to the rules, with high schema coverage (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve a list of meeting transcripts with optional filtering.' This specifies the verb (retrieve) and resource (meeting transcripts), and distinguishes it from siblings like 'fireflies_get_transcript_details' (single transcript) and 'fireflies_search_transcripts' (search functionality). However, it doesn't explicitly differentiate from 'fireflies_generate_summary' in terms of data retrieval vs. processing, keeping it at a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance by mentioning default behavior (returns up to 20 most recent transcripts) and performance considerations (timeouts with large datasets). However, it lacks explicit guidance on when to use this tool versus alternatives like 'fireflies_search_transcripts' or 'fireflies_generate_summary', and doesn't specify prerequisites or exclusions. This results in a score of 3 for implied but incomplete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fireflies_search_transcriptsC
Search for transcripts containing specific keywords, with optional date filtering. Returns a human-readable list of matching transcripts with metadata and summary information.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to find relevant transcripts | |
| limit | No | Maximum number of transcripts to return (default: 20) | |
| from_date | No | Start date in ISO format (YYYY-MM-DD) to filter transcripts by date. If not specified, no lower date bound is applied. | |
| to_date | No | End date in ISO format (YYYY-MM-DD) to filter transcripts by date. If not specified, no upper date bound is applied. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool returns a 'human-readable list of matching transcripts with metadata and summary information', which gives some output context, but lacks details on permissions, rate limits, error handling, or whether this is a read-only operation. For a search tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality ('search for transcripts containing specific keywords') and adds secondary details ('optional date filtering', 'returns a human-readable list'). There's no wasted text, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (search with filtering), 100% schema coverage, no output schema, and no annotations, the description is adequate but has gaps. It covers the basic purpose and output format but lacks behavioral context (e.g., safety, limits) and usage guidelines relative to siblings, making it minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters thoroughly. The description adds minimal value beyond the schema by implying date filtering is optional, but doesn't provide additional syntax, format details, or usage examples. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching for transcripts containing keywords with optional date filtering. It specifies the verb ('search'), resource ('transcripts'), and scope ('keywords, with optional date filtering'), but doesn't explicitly differentiate from sibling tools like 'fireflies_get_transcripts' which might retrieve transcripts without searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'fireflies_get_transcripts' or 'fireflies_get_transcript_details'. It mentions optional date filtering but doesn't specify scenarios where this tool is preferred over siblings, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.1- First observed
fireflies_generate_summary - First observed
fireflies_get_transcript_details - First observed
fireflies_get_transcripts - First observed
fireflies_search_transcripts
TDQS
Each tool has a clearly distinct purpose: generate_summary creates a summary, get_transcript_details retrieves a single transcript with details, get_transcripts lists transcripts, and search_transcripts finds transcripts by keywords. There is no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern with the prefix 'fireflies_' (e.g., fireflies_generate_summary, fireflies_get_transcript_details). The verbs (generate, get, search) are clear and appropriately matched to their actions, ensuring predictability and readability.
With 4 tools, the server is well-scoped for handling meeting transcripts, covering key operations: listing, retrieving details, searching, and generating summaries. This count is appropriate as each tool earns its place without being too sparse or overwhelming.
The tool set provides strong coverage for the domain of meeting transcript management, including listing, detailed retrieval, searching, and summary generation. A minor gap is the lack of update or delete operations, but these might not be necessary for a read-focused transcript service, and agents can work around this limitation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search meetings, export summaries and transcripts, and manage recordings from any AI tool.
The Fireflies MCP Server enables AI tools to connect directly to meeting data from Fireflies.ai, providing access to meeting transcripts, summaries, action items, and insights without switching platforms. It includes capabilities for querying cross-meeting data for analysis (such as sales insights or product feedback), and a separate Documentation MCP Server that allows searching the Fireflies knowledge base for API references, guides, and code examples.
Search recordings, summarize meetings, create clips, and automate workflows from your AI assistant.
- RecordXOAuthio.recordx
Read-only access to your RecordX meetings: search transcripts, summaries, action items.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables access to Fireflies.ai API for retrieving, searching, and summarizing meeting transcripts with various filtering options and formats.5-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Fathom AI meeting data including transcripts, summaries, teams, and team members. Provides tools to list meetings with filters, retrieve detailed transcripts and summaries, and manage team information.28MIT
- AlicenseAqualityDmaintenanceProvides access to Fathom meeting recordings, enabling users to list meetings with filters, retrieve AI-generated summaries, and access full transcripts with speaker attribution and timestamps.33MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and retrieve meeting transcripts from Otter.ai, supporting full-text search, speaker identification, and transcript retrieval.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cassler/fireflies-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server