Skip to content

Fireflies MCP Server Configuration Fix Problem Summary The Fireflies MCP server was failing to connect with HTTP 401 and 406 errors when attempting to use direct HTTP JSON-RPC communication. Investigation revealed that Fireflies MCP requires using npx mcp-remote as a command-line proxy with stdio transport, not direct HTTP connections.

Initial Issues Encountered HTTP 401 Unauthorized: Missing Bearer token prefix in Authorization header HTTP 406 Not Acceptable: The endpoint doesn't accept direct JSON-RPC HTTP requests Root Cause The Fireflies API documentation shows that their MCP server must be accessed via the mcp-remote npm package:

{ "mcpServers": { "fireflies": { "command": "npx", "args": [ "mcp-remote", "https://api.fireflies.ai/mcp", "--header", "Authorization: Bearer YOUR_API_KEY_HERE" ] } } } Changes Implemented 1. Updated create_fireflies_mcp_server Function File: parrot/mcp/integration.py

Before: OAuth-based configuration with HTTP transport After: API key-based configuration with stdio transport

def create_fireflies_mcp_server( , - user_id: str, - client_id: str, - auth_url: str = "https://api.fireflies.ai/oauth/authorize", - token_url: str = "https://api.fireflies.ai/oauth/token", - scopes: list[str] = ("meetings:read", "transcripts:read"), + api_key: str, api_base: str = "https://api.fireflies.ai/mcp", - client_secret: str | None = None, - redis=None, + kwargs ) -> MCPServerConfig: - return create_oauth_mcp_server( + return MCPServerConfig( name="fireflies", - url=api_base, - ... + command="npx", + args=[ + "mcp-remote", + api_base, + "--header", + f"Authorization: Bearer {api_key}" + ], + transport="stdio", + *kwargs ) 2. Updated add_fireflies_mcp_server Method File: parrot/mcp/integration.py

Simplified the signature to only require an API key:

async def add_fireflies_mcp_server( self, api_key: str, kwargs ) -> List[str]: """Add Fireflies.ai MCP server capability.""" config = create_fireflies_mcp_server(api_key=api_key, kwargs) return await self.add_mcp_server(config) 3. Created Bearer Token Support (Collateral Enhancement) File: parrot/mcp/client.py

Added use_bearer_prefix parameter to MCPAuthHandler._get_api_key_headers() for other APIs that might need Bearer token format with HTTP transport.

Testing Test Script File: examples/test_fireflies_bearer_auth.py

async def test_fireflies_auth(): agent = BasicAgent( name="test-agent", model="gpt-4", instructions="You are a helpful assistant.", )

await agent.configure()

# Add Fireflies MCP server
tools = await agent.add_fireflies_mcp_server(
    api_key="c73a26e6-73d1-4b1d-a0c8-c7065099fa5e"
)

print(f"✅ Successfully registered Fireflies tools: {tools}")
await agent.cleanup()

Test Results ✅ SUCCESS - The connection now works correctly:

[INFO] Connected to MCP server fireflies via stdio with 8 tools ✅ Successfully registered Fireflies tools: [ 'mcp_fireflies_fireflies_get_transcript', 'mcp_fireflies_fireflies_get_summary', 'mcp_fireflies_fireflies_get_transcripts', 'mcp_fireflies_fireflies_get_user', 'mcp_fireflies_fireflies_get_usergroups', 'mcp_fireflies_fireflies_get_user_contacts', 'mcp_fireflies_fireflies_search', 'mcp_fireflies_fireflies_fetch' ] Usage For Agent Developers Use the dedicated helper method:

from parrot.bots.agent import BasicAgent

Create and configure agent

agent = BasicAgent(name="my-agent", model="gpt-4") await agent.configure()

Add Fireflies MCP server

tools = await agent.add_fireflies_mcp_server( api_key="your-fireflies-api-key" ) Get Your Fireflies API Key Go to Fireflies.ai Settings Navigate to Developer Settings Copy your API key See detailed guide → Available Fireflies Tools After successful connection, the following 8 tools are available:

fireflies_get_transcript - Get transcript for a specific meeting fireflies_get_summary - Get AI-generated summary of a meeting fireflies_get_transcripts - List all transcripts fireflies_get_user - Get current user information fireflies_get_usergroups - Get user groups fireflies_get_user_contacts - Get user contacts fireflies_search - Search through meetings and transcripts fireflies_fetch - Fetch specific meeting data Prerequisites IMPORTANT

Node.js and npm must be installed on your system for npx to work. The mcp-remote package is automatically installed by npx on first run.

Key Learnings Not all MCP servers use HTTP: Some MCP servers require stdio transport with command-line tools Always check official documentation: The Fireflies docs clearly showed the npx mcp-remote requirement Protocol mismatch causes 406 errors: When a server expects a different communication protocol, it returns 406 Not Acceptable Bearer tokens can be implemented different ways: Some APIs use HTTP headers directly, others require proxy tools