Labsco
MCP SERVER

GranolaMCP

by pedramamini

Read your Granola.ai meeting transcripts and summaries straight from the local cache, no API calls.

Speech Synthesis & Transcription
Summary
It reads the cache file, which is why there is no key and no network dependency.

Working from cache-v3.json rather than an API means it is offline, private, and not rate-limited — the trade is that it sees whatever Granola has already synced locally. The split between AI summary and human notes is the useful part: you can ask for what the model wrote versus what you wrote, rather than one merged blob.

What it is

A server that reads Granola's local cache file and exposes meetings, transcripts and summaries — plus analytics — as eight tools.

What you get
  • list_meetings and get_meeting — the roster with filters, and full detail on one meeting
  • get_transcript returns the speaker-identified transcript; get_meeting_notes separates the AI summary from human notes
  • search_meetings searches across titles, content and participants; list_participants lists who was in them
  • get_recent_meetings pulls the latest; analyze_patterns and get_statistics report frequency and duration trends
  • export_meeting writes a meeting out to markdown
  • Everything runs offline against the cache file, so meeting data never leaves the machine
Requirements

Granola installed, with GRANOLA_CACHE_PATH pointing at its cache-v3.json. Install from source with pip install -e . Pure Python standard library — no third-party dependencies, no API key, no account. It reads the cache directly and makes no calls to Granola's servers.

Setup effort

One command — pip install -e .