An MCP (Model Context Protocol) server that gives AI agents access to your Granola meeting notes. Search notes, retrieve full content with transcripts, and paginate through your meeting history.
- List notes with date filtering and cursor-based pagination
- Get full note content including AI summaries and meeting transcripts
- Search notes by title or summary keywords
- Works with Claude Code, Gemini CLI, and any MCP-compatible client
- Zero external dependencies beyond the MCP SDK
npm install @devli13/mcp-granolaOr clone and install locally:
git clone https://github.com/devli13/mcp-granola.git
cd mcp-granola
npm install- Open the Granola desktop app
- Go to Settings > API
- Click Create new key
- Copy the key (starts with
grn_)
Add to your .mcp.json (Claude Code) or .gemini/settings.json (Gemini CLI):
{
"mcpServers": {
"granola": {
"command": "npx",
"args": ["-y", "@devli13/mcp-granola"],
"env": {
"GRANOLA_API_KEY": "grn_your_api_key_here"
}
}
}
}Or run directly:
GRANOLA_API_KEY=grn_your_key node server.js| Environment Variable | Required | Description |
|---|---|---|
GRANOLA_API_KEY |
Yes | Your Granola API key (starts with grn_). Get it from Granola app > Settings > API. |
| Tool | Description | Key Parameters |
|---|---|---|
list_notes |
List notes, most-recent first | limit, created_after, created_before, cursor |
get_note |
Fetch a single note by ID | id (required), include_transcript |
search_notes |
Search notes by title/summary keywords | query (required), limit |
{
"name": "list_notes",
"arguments": {
"limit": 5,
"created_after": "2025-01-01T00:00:00Z"
}
}{
"name": "get_note",
"arguments": {
"id": "not_abc123def456",
"include_transcript": true
}
}- Granola API is in beta — endpoints and response shapes may change.
- Personal API keys only access notes you own or that are shared with you directly.
search_notesperforms client-side substring matching over the 200 most recent notes. It is not a full-text search engine. For large note volumes, uselist_noteswith date filters instead.- The API only returns notes with generated AI summaries and transcripts. Notes still being processed won't appear.
Granola enforces rate limits per workspace:
| Metric | Value |
|---|---|
| Burst capacity | 25 requests |
| Time window | 5 seconds |
| Sustained rate | 5 req/s (300/min) |
Issues and pull requests are welcome! Please open an issue first to discuss any significant changes.
MIT