Skip to main content
Glama
cassler

Fireflies MCP Server

by cassler

Fireflies MCP Server

npm version MIT License PRs Welcome

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, optional limit)

  • fireflies_generate_summary — Generate a summary for a transcript (transcript_id, optional format)


🧑‍💻 Setup & Usage

1. Prerequisites

2. Installation

npm install
# or
pnpm install

3. Build

npm run build
# or
pnpm build

4. (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 build

This 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 start

Or 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


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Available Tools

4 tools
fireflies_generate_summaryB

Generate a summary of a meeting transcript

ParametersJSON Schema
NameRequiredDescriptionDefault
transcript_idYesID of the transcript to summarize
formatNoFormat of the summary (bullet_points or paragraph)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
transcript_idYesID of the transcript to retrieve

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of transcripts to return (default: 20). Consider using a smaller limit if experiencing timeouts.
from_dateNoStart 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_dateNoEnd 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

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to find relevant transcripts
limitNoMaximum number of transcripts to return (default: 20)
from_dateNoStart date in ISO format (YYYY-MM-DD) to filter transcripts by date. If not specified, no lower date bound is applied.
to_dateNoEnd date in ISO format (YYYY-MM-DD) to filter transcripts by date. If not specified, no upper date bound is applied.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv0.1.1
    • First observedfireflies_generate_summary
    • First observedfireflies_get_transcript_details
    • First observedfireflies_get_transcripts
    • First observedfireflies_search_transcripts

TDQS

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    28
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    3
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve meeting transcripts from Otter.ai, supporting full-text search, speaker identification, and transcript retrieval.
    5
    MIT

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/cassler/fireflies-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server