@gongrzhe/server-fireflies-mcp
v0.0.2
Published
MCP server for using the Fireflies.ai API with session-aware multi-user support
Maintainers
Readme
Fireflies MCP Server
A stateless Model Context Protocol (MCP) server for the Fireflies.ai API, enabling transcript retrieval, search functionality, and summary generation.
Features
- Stateless Architecture: Complete request isolation with no session management overhead
- Bearer Token Authentication: Standard Authorization header support for secure API access
- Fresh Instance Per Request: Each request gets a new server instance for complete isolation
- Advanced Search: Search through meeting transcripts by keywords with date filtering
- Summary Generation: Generate formatted summaries in bullet points or paragraph format
- Comprehensive Error Handling: Clear error messages for common issues
- Timeout Resilience: Automatic fallback to minimal data on API timeouts
Quick Start
Starting the Server
# Start stateless HTTP server on port 30000 (default)
node dist/index.js
# Start HTTP server on custom port
PORT=8080 node dist/index.jsThe server provides these endpoints:
POST /mcp- Main MCP endpoint (stateless mode)GET|DELETE /mcp- Disabled (returns 405 Method Not Allowed)
Authentication
All requests require a Fireflies API Token via Authorization header:
Authorization: Bearer your_fireflies_api_token_hereCreate a Fireflies API Key from your Fireflies dashboard under Settings > API.
Tools
The server provides 4 tools for comprehensive Fireflies API access. Each tool requires Authorization: Bearer <token> header.
1. fireflies_get_transcripts
Retrieve a list of meeting transcripts with optional filtering.
curl -X POST http://localhost:30000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your_fireflies_token_here" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "fireflies_get_transcripts",
"arguments": {
"limit": 10,
"from_date": "2024-01-01",
"to_date": "2024-12-31"
}
}
}'2. fireflies_get_transcript_details
Get detailed information about a specific transcript including full conversation and metadata.
curl -X POST http://localhost:30000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your_fireflies_token_here" \
-d '{
"jsonrpc": "2.0",
"id": "2",
"method": "tools/call",
"params": {
"name": "fireflies_get_transcript_details",
"arguments": {
"transcript_id": "transcript_abc123"
}
}
}'3. fireflies_search_transcripts
Search for transcripts containing specific keywords with optional date filtering.
curl -X POST http://localhost:30000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your_fireflies_token_here" \
-d '{
"jsonrpc": "2.0",
"id": "3",
"method": "tools/call",
"params": {
"name": "fireflies_search_transcripts",
"arguments": {
"query": "project planning",
"limit": 5,
"from_date": "2024-01-01",
"to_date": "2024-12-31"
}
}
}'4. fireflies_generate_summary
Generate a formatted summary of a meeting transcript.
curl -X POST http://localhost:30000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your_fireflies_token_here" \
-d '{
"jsonrpc": "2.0",
"id": "4",
"method": "tools/call",
"params": {
"name": "fireflies_generate_summary",
"arguments": {
"transcript_id": "transcript_abc123",
"format": "bullet_points"
}
}
}'List Available Tools
Get the complete list of available tools:
curl -X POST http://localhost:30000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer your_fireflies_token_here" \
-d '{
"jsonrpc": "2.0",
"id": "tools-list",
"method": "tools/list",
"params": {}
}'Authentication Setup
Fireflies API Key
Create a Fireflies API Key with appropriate permissions:
- Go to Fireflies Dashboard
- Navigate to Settings > API
- Generate a new API key
- Copy the generated key for use in Authorization headers
Usage with Claude Desktop
NPX
{
"mcpServers": {
"fireflies": {
"command": "npx",
"args": [
"-y",
"@gongrzhe/server-fireflies-mcp"
],
"env": {
"FIREFLIES_API_KEY": "<YOUR_TOKEN>"
}
}
}
}Local Development
{
"mcpServers": {
"fireflies": {
"command": "node",
"args": [
"/path/to/fireflies-mcp/dist/index.js"
],
"env": {
"FIREFLIES_API_KEY": "<YOUR_TOKEN>"
}
}
}
}Installation
Option 1: Using npx (Recommended)
npx @gongrzhe/server-fireflies-mcpOption 2: Global Installation
npm install -g @gongrzhe/server-fireflies-mcp
fireflies-mcpOption 3: Development Setup
- Clone this repository
- Install dependencies:
npm install- Build the project:
npm run buildBuild
Build the project:
npm run buildHealth Check
Check if the server is running:
curl http://localhost:30000/healthReturns:
{
"status": "ok",
"server": "Fireflies MCP Server (Stateless)",
"timestamp": "2024-12-19T12:00:00.000Z",
"version": "1.0.0",
"sessionIsolation": false,
"stateless": true
}Migration from Session-Aware Version
Breaking Changes
- Authentication: Now uses
Authorization: Bearer <token>headers instead of custom headers - Port: Default port changed from 3000 to 30000
- Session Management: No longer supported (stateless mode only)
- Endpoints: Only POST /mcp is supported
- Transport: HTTP mode only, no STDIO or SSE support
Migration Steps
- Update client code to use Bearer tokens in Authorization headers
- Change default port to 30000 in configurations
- Remove any session management code from client implementations
- Update error handling for stateless responses
Benefits of Stateless Architecture
Scalability
- Horizontal Scaling: Easy to load balance across multiple instances
- No State Synchronization: No need to share state between instances
- Resource Efficiency: Memory usage scales linearly with concurrent requests
Security
- No Token Storage: Tokens are never cached or stored server-side
- Request Isolation: Complete separation between user requests
- Fresh Validation: Each request validates tokens independently
Reliability
- Fault Tolerance: Request failures don't affect other operations
- No Memory Leaks: Automatic cleanup after each request
- Simplified Debugging: Each request is independent and traceable
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
