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-dirparameter (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:
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:
python skills/fireflies/scripts/fetch_transcripts.py \
--list \
--limit 50
With date filtering:
python skills/fireflies/scripts/fetch_transcripts.py \
--list \
--start-date "2024-12-01" \
--end-date "2024-12-31" \
--limit 100
With participant filtering:
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:
python skills/fireflies/scripts/fetch_transcripts.py \
--transcript-id "abc123xyz"
With full transcript sentences:
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:
python skills/fireflies/scripts/askfred_query.py \
create \
--query "What were the main action items discussed?" \
--transcript-id "abc123xyz"
Query across all meetings:
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:
python skills/fireflies/scripts/askfred_query.py \
continue \
--thread-id "thread_abc123" \
--query "Can you elaborate on the second point?"
List existing threads:
python skills/fireflies/scripts/askfred_query.py \
list \
--limit 20
User and Team Analytics
Get current user info:
python skills/fireflies/scripts/fetch_user.py \
--mode user
Get team analytics:
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