- Home
- MCP servers
- Granola
Granola
- python
0
GitHub Stars
python
Language
5 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"maxgerlach1-granola-ai-mcp-server": {
"command": "/Users/YOUR_USERNAME/granola-ai-mcp-server/.venv/bin/granola-mcp-server",
"args": [],
"env": {
"GRANOLA_PARSE_PANELS": "1"
}
}
}
}This MCP server lets your Claude Desktop workspace query Granola.ai meeting data locally, using Granola’s cache to provide fast, private access to meeting search, details, transcripts, and documents. You can ask natural-language questions and get structured results that stay on your machine.
How to use
You connect Claude Desktop to the Granola MCP server to interrogate your Granola meeting data using plain language. Once configured, you can search for meetings by title, content, participants, or transcripts; retrieve full transcripts and meeting notes; view detailed meeting metadata with local time display; and run pattern analyses across multiple meetings. All data processing happens locally, with no external API calls.
Typical usage patterns include: searching for meetings by topic or participant, requesting a full meeting transcript, pulling meeting documents, and asking for insights such as patterns in participation or topics over a date range. You can also ask for content in your local timezone so timestamps display in your preferred time zone.
How to install
# Prerequisites
- Python 3.12+
- uv package manager
- macOS with Granola.ai installed
- Claude Desktop application
- Granola cache file at `~/Library/Application Support/Granola/cache-v3.json`
# 1. Clone the MCP server into your home directory
cd ~
git clone <repository-url>
cd granola-ai-mcp-server
# 2. Install dependencies with uv
uv sync
# 3. Test the installation
uv run python test_server.py
# 4. Configure Claude Desktop
# Create or edit claude_desktop_config.json with the following snippet
Note: Use the direct path to the virtual environment’s script to avoid working directory issues. The config example shows replacing YOUR_USERNAME with your macOS username and pointing to your home-directory installation.
{
"mcpServers": {
"granola": {
"command": "/Users/YOUR_USERNAME/granola-ai-mcp-server/.venv/bin/granola-mcp-server",
"args": [],
"env": {}
}
}
}
- Restart Claude Desktop to load the MCP server. Quit Claude completely and reopen:
# Quit Claude completely
osascript -e 'quit app "Claude"'
# Reopen Claude
open -a "Claude"
Configuration and troubleshooting notes
The server reads from Granola’s local cache file. If you encounter issues, ensure the Granola cache exists at the expected path and that Claude Desktop can access the MCP script from your home directory. If you see permission or path-related errors, move the installation into your home directory and re-run the setup steps to rebuild the virtual environment.
If Claude Desktop does not show the MCP server after updating the config, verify the absolute path in your claude_desktop_config.json, check Claude Desktop logs at ~/Library/Logs/Claude/mcp-server-granola.log, and ensure there are no spaces or special characters in the path. Restart Claude after changes.
Security & privacy
All processing is local. No external API calls are made, and the server reads only from Granola’s cache with read-only access to ensure data integrity and user privacy.
Performance & capabilities
The server loads cache data quickly, supports large transcripts and notes, and performs multi-field searches efficiently. Timestamps automatically display in your local timezone, and the system is designed to handle hundreds of transcripts per meeting with lazy loading to conserve memory.
Current status
The MCP server is production-ready for local Granola data. It provides access to full transcripts, rich meeting content, speaker identification, and timezone-aware timestamps for recent meetings.
Troubleshooting
Common issues and fixes include:
- Cache file not found: Ensure Granola.ai is installed and the cache file exists at
~/Library/Application Support/Granola/cache-v3.json. - uv command not found: Install uv with
curl -LsSf https://astral.sh/uv/install.sh | shor use a Python-based fallback in Claude config. - Permission denied or Operation not permitted: Move the installation to your home directory and re-run
uv sync; if needed, grant Claude Desktop Full Disk Access and restart Claude. - Current directory does not exist: Use the direct path to the venv script instead of relying on working directory context.
- Server not appearing in Claude Desktop: Verify the absolute path in the config, review logs, and restart Claude after changes.
- Failed to spawn process or No such file or directory: Rebuild the venv with
uv syncand confirm the granola-mcp-server script exists at the expected path.
If transcript notes appear empty in Claude, Granola may store rich notes inside documentPanels rather than notes_plain. You can disable panel parsing by setting GRANOLA_PARSE_PANELS=0 in the environment and re-run tests to verify content rendering.
Available tools
search_meetings
Search meetings by query string across title, content, participants, and transcripts.
get_meeting_details
Retrieve detailed metadata for a specific meeting by its ID.
get_meeting_transcript
Fetch the complete transcript for a specified meeting, including speaker identification.
get_meeting_documents
Get documents associated with a specific meeting.
analyze_meeting_patterns
Analyze patterns across multiple meetings, such as topics, participants, and frequency.