Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Granola MCP Server

A local Model Context Protocol (MCP) server for Granola. It lets Claude (Desktop, Code, or any MCP client) read your Granola meetings, AI-enhanced notes, and raw transcripts — using the login session of the Granola desktop app already installed on your machine.

⚡ Before you set this up: Granola now ships an official hosted MCP server at https://mcp.granola.ai/mcp. It uses OAuth (no local files, works on claude.ai web and mobile too) and is the zero-maintenance option. Use this project if you prefer a fully local integration that talks to Granola with your desktop app's own credentials, or want to customize the tools.

To use the official server instead, add a "Granola" connector in Claude's settings → Connectors, or in Claude Code:

claude mcp add --transport http granola https://mcp.granola.ai/mcp

Features

  • Zero-config auth — reuses the Granola desktop app's login (no API keys). Supports both the current stored-accounts.json and legacy supabase.json token formats.
  • Cross-platform — macOS, Windows, and Linux paths supported.
  • Meetings, notes & transcripts — list/search meetings, browse folders, read AI-enhanced notes as clean Markdown, and pull raw transcripts with speaker labels.
  • Self-diagnosing — an auth_status tool tells you exactly why a connection isn't working (missing file, expired token, encrypted install, …).
  • Private — runs entirely on your machine; only talks to api.granola.ai.

Tools

Tool Description
auth_status Diagnose local Granola authentication (run this first if things fail)
list_workspaces List your Granola workspaces
list_folders List folders with document counts
list_meetings List recent meetings, with optional title search (limit, search)
list_folder_meetings List meetings in a folder by name or id
get_meeting_notes Read a meeting's AI-enhanced notes as Markdown
get_meeting_transcript Raw transcript with Me/Them speaker labels and timestamps

Requirements

  1. The Granola desktop app, installed and logged in, on the same machine.
  2. Python 3.10+, and ideally uv (brew install uv).

Install & connect to Claude

Claude Code (CLI)

claude mcp add granola -- uvx --from git+https://github.com/bencockin/granola-mcp granola-mcp

Claude Desktop

Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:

{
  "mcpServers": {
    "granola": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/bencockin/granola-mcp", "granola-mcp"]
    }
  }
}

Then fully quit and reopen Claude Desktop.

No uv? Clone the repo and use plain Python instead:

git clone https://github.com/bencockin/granola-mcp.git && cd granola-mcp
python3 -m venv .venv && .venv/bin/pip install .

and set "command": "/path/to/granola-mcp/.venv/bin/granola-mcp" with "args": [].

Usage

Ask Claude things like:

  • "Summarize my meeting from this morning."
  • "What were the action items from the Weekly Sync?"
  • "Search my Granola notes for mentions of 'budget'."
  • "Give me the full transcript of my last meeting."

Configuration (optional)

Environment variable Purpose
GRANOLA_AUTH_PATH Explicit path to the Granola auth file, if yours lives somewhere unusual
GRANOLA_TOKEN Provide an access token directly (skips reading local files)
GRANOLA_CLIENT_VERSION Override the client version header sent to the API

Troubleshooting

Ask Claude to run the auth_status tool — it reports exactly what was found.

  • "No Granola auth file found" — make sure the Granola app is installed, opened, and logged in on this machine.
  • "Granola rejected the access token (401)" — the token on disk went stale; open the Granola app so it refreshes its session, then retry.
  • "This Granola install uses encrypted state (v6+)" — newer Granola versions can encrypt their local files (supabase.json.enc, storage.dek). This server cannot read those installs; use the official hosted MCP server (see the note at the top) instead.

How it works / disclaimer

Granola does not publish a public REST API. This server reads the access token the Granola desktop app stores locally and calls the same api.granola.ai endpoints the app itself uses. Those endpoints are unofficial and may change without notice — if something breaks, the official MCP server is the stable path.

Development

uv venv && uv pip install -e ".[dev]"
uv run pytest

About

Connect Claude Desktop to your Granola notes. An MCP server that reads local meetings, transcripts, and summaries directly from the Granola app on macOS.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages