Granola MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Granola MCP Server Summarize the action items from my last meeting about the project roadmap"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Granola MCP Server
A Model Context Protocol (MCP) server for integrating Granola.ai meeting intelligence with Claude Desktop and other MCP clients. Access your meetings, notes, and transcripts directly from AI assistants.
β οΈ Disclaimer
This is an unofficial, community-built tool. It is not affiliated with, endorsed by, or supported by Granola, Inc.
This server uses undocumented APIs discovered through network inspection. Use of this tool may violate Granola's Terms of Service. Use at your own risk.
If you are from Granola and would like this repository removed or would like to discuss official API access, please open an issue.
Related MCP server: Granola MCP Server
Features
π Meeting Search - Search meetings by title, content, and participants
π Full Content Access - Retrieve complete meeting notes in Markdown format
π’ Workspace Management - List and filter by workspaces (organizations)
π Folder Organization - List and filter by document folders
π Real-time API Access - Direct access to Granola's API
π Secure Authentication - Uses your existing Granola credentials
β‘ Smart Caching - 5-minute cache for optimal performance
Prerequisites
Node.js 18+
Granola.ai installed and logged in on macOS
Claude Desktop (or another MCP client)
Installation
git clone https://github.com/EoinFalconer/granola-mcp-server.git
cd granola-mcp-server
npm install
npm run buildConfiguration
Claude Desktop
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"granola": {
"command": "node",
"args": ["/path/to/granola-mcp-server/index.js"]
}
}
}Then restart Claude Desktop.
Available Tools
Tool | Description | Parameters |
| Search meetings by title/content |
|
| Get meeting metadata |
|
| Get full notes as Markdown |
|
| List all workspaces | - |
| List document folders |
|
| Filter meetings by workspace |
|
| Filter meetings by folder |
|
Usage Examples
Once configured, use natural language in Claude:
"Search for meetings about quarterly planning"
"Get the content from yesterday's standup"
"List all my workspaces"
"Show me meetings in the Sales folder"
How It Works
Authentication
The server reads your existing Granola credentials from:
~/Library/Application Support/Granola/supabase.jsonNo additional login required - it uses your existing Granola session.
API Integration
Direct REST API calls to Granola's backend
ProseMirror content converted to readable Markdown
In-memory caching with 5-minute TTL
Troubleshooting
"Failed to get access token"
Ensure Granola is installed and you're logged in. The server needs:
~/Library/Application Support/Granola/supabase.jsonServer not appearing in Claude
Verify the config path is correct
Run
npm run buildRestart Claude Desktop completely
Development
npm run build # Compile TypeScript
npm run watch # Watch mode
npm run dev # Build and runCredits & Acknowledgments
This project was inspired by and built upon the reverse-engineering work of:
Joseph Thacker - Detailed blog post on reverse-engineering Granola's API
getprobo/reverse-engineering-granola-api - API documentation and research
Thank you for sharing your findings with the community! π
Related Projects
cobblehillmachine/granola-claude-mcp - Python-based, cache file approach
btn0s/granola-mcp - TypeScript, similar API approach
Contributing
Contributions welcome! Please feel free to submit issues and pull requests.
License
MIT Β© Eoin Falconer
Available Tools
7 toolsfilter_by_folderC
Filter meetings by folder
Inputs: folder_id (required).
filter_by_workspaceC
Filter meetings by workspace
Inputs: workspace_id (required).
get_meeting_contentC
Get the full notes/content for a meeting in Markdown format
Inputs: meeting_id (required).
get_meeting_detailsB
Get detailed information about a specific meeting
Inputs: meeting_id (required).
list_foldersC
List all document folders
Inputs: workspace_id.
list_workspacesB
List all available workspaces
Inputs: no named parameters.
search_meetingsC
Search meetings by title, content, or participants
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose with no ambiguity. Filter_by_folder and filter_by_workspace target different filtering criteria, while get_meeting_content and get_meeting_details provide different levels of meeting information. List_folders and list_workspaces are distinct listing operations, and search_meetings offers a broader search capability that doesn't overlap with the filters.
All tool names follow a consistent verb_noun pattern using snake_case. The verbs (filter_by, get, list, search) are applied predictably to nouns (folder, workspace, meeting_content, meeting_details, folders, workspaces, meetings), making the set highly readable and uniform.
With 7 tools, the count is well-scoped for a meetings management server. Each tool earns its place by covering essential operations like filtering, retrieving details, listing resources, and searching, without being overly sparse or bloated.
The tool set provides strong coverage for core meeting operations, including retrieval, listing, filtering, and searching. A minor gap exists in CRUD lifecycle coverage, as there are no tools for creating, updating, or deleting meetings, but agents can likely work around this for read-only use cases.
Maintenance
Related MCP Connectors
Search, read, analyze and create HappyScribe transcripts and meeting notes from any MCP client
Search and manage your team's knowledge from MCP clients.
Memoket β access your recording transcripts, summaries, and key takeaways over MCP.
Official MCP bridge to Exogramβthe Personal AI Agent for your work, people, and life.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides access to Granola notes, meeting transcripts, calendar events, and document panels through the Granola API, enabling search and retrieval of meeting-related content.75-
- AlicenseNot gradedqualityDmaintenanceEnables access to Granola meeting notes through OAuth authentication, allowing users to search, retrieve, and summarize meeting transcripts and documents.MIT
- AlicenseAqualityDmaintenanceIntegrates local Granola.ai meeting intelligence with Claude Desktop to enable searching and analyzing meeting transcripts, notes, and summaries. Users can perform natural language queries to retrieve meeting details, analyze participant patterns, and access full speaker-identified conversations.5MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides AI agents access to Granola meeting notes. It enables searching notes, retrieving full content with transcripts, and paginating through meeting history.3MIT