From fireflies-pack
Create a minimal working Fireflies.ai example that queries transcripts. Use when starting a new Fireflies.ai integration, testing your setup, or learning the GraphQL API patterns for meeting data. Trigger with phrases like "fireflies hello world", "fireflies example", "fireflies quick start", "simple fireflies code".
npx claudepluginhub flight505/skill-forge --plugin fireflies-packThis skill is limited to using the following tools:
Minimal working examples demonstrating core Fireflies.ai GraphQL queries: list users, fetch transcripts, and read a meeting summary.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Minimal working examples demonstrating core Fireflies.ai GraphQL queries: list users, fetch transcripts, and read a meeting summary.
fireflies-install-auth setupFIREFLIES_API_KEY environment variable setset -euo pipefail
curl -s -X POST https://api.fireflies.ai/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREFLIES_API_KEY" \
-d '{"query": "{ users { name user_id email } }"}' | jq '.data.users'
const FIREFLIES_API = "https://api.fireflies.ai/graphql";
async function firefliesQuery(query: string, variables?: Record<string, any>) {
const res = await fetch(FIREFLIES_API, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.FIREFLIES_API_KEY}`,
},
body: JSON.stringify({ query, variables }),
});
const json = await res.json();
if (json.errors) throw new Error(json.errors[0].message);
return json.data;
}
// List 5 most recent transcripts
const data = await firefliesQuery(`
query RecentMeetings {
transcripts(limit: 5) {
id
title
date
duration
organizer_email
participants
}
}
`);
for (const t of data.transcripts) {
console.log(`${t.title} (${t.duration}min) - ${t.date}`);
console.log(` Organizer: ${t.organizer_email}`);
console.log(` Participants: ${t.participants?.join(", ")}`);
}
async function getTranscriptSummary(id: string) {
return firefliesQuery(`
query GetTranscript($id: String!) {
transcript(id: $id) {
id
title
date
duration
organizer_email
speakers { id name }
summary {
overview
short_summary
action_items
keywords
}
}
}
`, { id });
}
const { transcript } = await getTranscriptSummary("your-transcript-id");
console.log(`Title: ${transcript.title}`);
console.log(`Summary: ${transcript.summary.overview}`);
console.log(`Action Items: ${transcript.summary.action_items?.join("\n - ")}`);
console.log(`Keywords: ${transcript.summary.keywords?.join(", ")}`);
import os, requests
API = "https://api.fireflies.ai/graphql"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.environ['FIREFLIES_API_KEY']}",
}
def gql(query, variables=None):
resp = requests.post(API, json={"query": query, "variables": variables}, headers=HEADERS)
data = resp.json()
if "errors" in data:
raise Exception(data["errors"][0]["message"])
return data["data"]
# List recent meetings
meetings = gql("{ transcripts(limit: 5) { id title date duration } }")
for m in meetings["transcripts"]:
print(f"{m['title']} - {m['duration']}min - {m['date']}")
| Query | Purpose | Key Fields |
|---|---|---|
user | Current user info | name, email, is_admin |
users | All workspace users | name, user_id, email |
transcripts(limit: N) | Recent meetings | id, title, date, duration |
transcript(id: "...") | Single meeting | sentences, summary, speakers |
| Error | Cause | Solution |
|---|---|---|
auth_failed | Missing or invalid API key | Verify FIREFLIES_API_KEY is set |
| Empty transcripts array | No meetings recorded yet | Record a meeting or upload audio |
null summary fields | Transcript still processing | Wait for processing to complete |
| Network timeout | API unreachable | Check internet connectivity |
https://api.fireflies.ai/graphqlProceed to fireflies-core-workflow-a for transcript retrieval and processing.