# Fireflies

> Fetch meeting transcripts, summaries, and AI insights from Fireflies.ai. Retrieve transcripts, AI summaries, action items, speaker analytics, conversation insights. Query meetings via AskFred AI for natural-language analysis across one or many meetings. Use for meeting analytics, conversation intelligence, speaker performance, or extracting action items. MCP-first (no API key), with bundled Python scripts as fallback.

- Skill: `buzzmatic/fireflies` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add buzzmatic/fireflies`
- Raw SKILL.md: https://api.skillmd.com/api/skills/buzzmatic/fireflies/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: Buzzmatic (https://skillmd.com/u/buzzmatic)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/buzzmatic/fireflies

---


# Fireflies Skill

Fetch meeting transcripts, summaries, and analytics from Fireflies.ai.

## How to use this skill — read this first

This skill has **two access paths**. Always prefer the MCP tools.

### PRIMARY: MCP tools (`mcp__claude_ai_Fireflies__*`) — no API key needed

When the `mcp__claude_ai_Fireflies__*` MCP tools are available in your run, **use them directly**.
You (the agent) call these tools yourself — they need **no** `FIREFLIES_API_KEY` and require no
environment setup. This is the default, preferred path.

| Task | MCP tool |
|------|----------|
| Get a single transcript by ID | `mcp__claude_ai_Fireflies__fireflies_get_transcript` |
| List / fetch many transcripts (with date / participant filters) | `mcp__claude_ai_Fireflies__fireflies_get_transcripts` |
| Search meetings / natural-language AskFred-style queries | `mcp__claude_ai_Fireflies__fireflies_search` |
| Get current user info & team analytics | `mcp__claude_ai_Fireflies__fireflies_get_user` |

Tool names can vary slightly by MCP build — if one of the above is not present, look for the
matching `mcp__claude_ai_Fireflies__*` tool exposed in your run and use it. Only fall back to the
Python scripts below when **no** `mcp__claude_ai_Fireflies__*` tool is available.

When you need the result persisted to disk, take the MCP tool's JSON output and write it to the
appropriate file yourself.

### FALLBACK: bundled Python scripts — require `FIREFLIES_API_KEY`

Use the `scripts/` below **only when the MCP tools are unavailable**. These call the Fireflies
GraphQL API directly and therefore **require** the `FIREFLIES_API_KEY` environment variable. If a
script reports a missing key, do not stop — switch to the PRIMARY MCP path above. Only set
`FIREFLIES_API_KEY` if MCP is genuinely unavailable in the run.

## Quick Start

All scripts:
- Accept an optional `--output-dir` parameter (default: `output/`)
- Save raw JSON and processed CSV to that directory
- Return JSON with `{"output_files": [...], "summary": "..."}`

## Authentication (FALLBACK path only)

The MCP tools (PRIMARY path) need **no** authentication. The following applies **only** to the
bundled Python scripts, used when MCP is unavailable.

Set the `FIREFLIES_API_KEY` environment variable:
```bash
export FIREFLIES_API_KEY="your-api-key"
```

Get your API key from: https://app.fireflies.ai/integrations/custom/fireflies

## Core Operations

### List Transcripts

Fetch all meeting transcripts with optional filtering:

```bash
python skills/fireflies/scripts/fetch_transcripts.py \
  --list \
  --limit 50
```

**With date filtering:**
```bash
python skills/fireflies/scripts/fetch_transcripts.py \
  --list \
  --start-date "2024-12-01" \
  --end-date "2024-12-31" \
  --limit 100
```

**With participant filtering:**
```bash
python skills/fireflies/scripts/fetch_transcripts.py \
  --list \
  --participant "user@example.com" \
  --participant "other@example.com"
```

### Get Single Transcript

Fetch a specific transcript with full details:

```bash
python skills/fireflies/scripts/fetch_transcripts.py \
  --transcript-id "abc123xyz"
```

**With full transcript sentences:**
```bash
python skills/fireflies/scripts/fetch_transcripts.py \
  --transcript-id "abc123xyz" \
  --include-sentences
```

### Query Meetings with AskFred AI

Ask natural language questions about your meetings:

**Query a specific meeting:**
```bash
python skills/fireflies/scripts/askfred_query.py \
  create \
  --query "What were the main action items discussed?" \
  --transcript-id "abc123xyz"
```

**Query across all meetings:**
```bash
python skills/fireflies/scripts/askfred_query.py \
  create \
  --query "What topics have been discussed about the Q1 roadmap?" \
  --start-date "2024-01-01" \
  --end-date "2024-03-31"
```

**Continue a conversation:**
```bash
python skills/fireflies/scripts/askfred_query.py \
  continue \
  --thread-id "thread_abc123" \
  --query "Can you elaborate on the second point?"
```

**List existing threads:**
```bash
python skills/fireflies/scripts/askfred_query.py \
  list \
  --limit 20
```

### User and Team Analytics

**Get current user info:**
```bash
python skills/fireflies/scripts/fetch_user.py \
  --mode user
```

**Get team analytics:**
```bash
python skills/fireflies/scripts/fetch_user.py \
  --mode analytics \
  --start-date "2024-01-01" \
  --end-date "2024-12-31"
```

## Output Data

### Transcript Fields

| Field | Description |
|-------|-------------|
| id | Unique transcript identifier |
| title | Meeting title |
| organizer_email | Meeting organizer's email |
| date | Meeting date/time |
| duration_minutes | Meeting length in minutes |
| transcript_url | Link to view in Fireflies dashboard |
| speakers | Comma-separated speaker names |
| attendees | Comma-separated attendee emails |
| meeting_type | AI-classified meeting type |
| gist | One-sentence meeting summary |
| topics | Topics discussed |

### Summary Fields

| Field | Description |
|-------|-------------|
| overview | AI-generated meeting summary |
| action_items | Extracted action items |
| keywords | Key terms from the meeting |
| outline | Meeting outline with timestamps |
| notes | Detailed meeting notes |
| gist | One-sentence summary |
| bullet_gist | Bullet point summary with emojis |
| topics_discussed | List of topics covered |

### Analytics Fields

| Field | Description |
|-------|-------------|
| meeting_count | Total meetings |
| meeting_duration_min | Total duration in minutes |
| avg_talk_listen_ratio | Speaking vs listening ratio |
| avg_words_per_minute | Speech rate |
| avg_questions | Questions asked per meeting |
| avg_filler_words | Filler words used |
| avg_monologues | Extended speaking segments |

## Rate Limits

| Plan | Limit |
|------|-------|
| Free/Pro | 50 requests/day |
| Business/Enterprise | 60 requests/minute |

## Advanced Topics

For detailed API schemas and GraphQL query structures, see:
- [API Schemas Reference](references/api-schemas.md)

