Setup Granola Integration
Install and configure Granola MCP server for meeting synchronization. Includes prerequisites verification, server cloning, and .mcp.json integration.
Setup Granola Integration Skill
Copy this to .claude/skills/setup-granola/SKILL.md to enable automatic installation.
---
name: setup-granola
description: Install and configure Granola MCP server for meeting sync. Use when user says "set up Granola", "install Granola integration", or "connect Granola".
---
# Setup Granola Integration
Automatically install and configure the Granola MCP server for syncing meetings to Personal OS.
## Prerequisites Check
Before starting, verify:
1. User is on macOS (Granola is macOS only)
2. User has Granola.ai installed
3. Python 3.12+ is available
4. uv is installed (or can be installed)
## Instructions
### Step 1: Check Prerequisites
Run these checks and report any issues:
```bash
# Check OS
uname -s # Should be Darwin
# Check Python version
python3 --version # Should be 3.12+
# Check uv
uv --version # Install if missing: brew install uv
# Check if Granola cache exists
ls ~/Library/Application\ Support/Granola/cache-v3.json
If uv is missing, offer to install it:
brew install uv
If Granola cache doesn't exist, inform user they need to:
- Install Granola from https://granola.ai
- Attend or record at least one meeting
Step 2: Clone MCP Server
Ask user where to clone (suggest ~/Projects):
cd ~/Projects # or user's preferred location
git clone https://github.com/proofgeist/granola-ai-mcp-server.git
cd granola-ai-mcp-server
uv sync
Step 3: Test Server
Verify installation works:
cd ~/Projects/granola-ai-mcp-server
uv run python test_server.py
Step 4: Create Transcripts Folder
mkdir -p Knowledge/Transcripts
Step 5: Install Skills
Copy the Granola skills to the user's Claude skills folder:
mkdir -p .claude/skills/meeting-sync
cp core/integrations/granola/skills/meeting-sync/SKILL.md .claude/skills/meeting-sync/
Step 6: Update .mcp.json
Read the current .mcp.json file and add the granola server config.
The config should be:
{
"mcpServers": {
"granola": {
"command": "uv",
"args": [
"--directory",
"<GRANOLA_MCP_PATH>",
"run",
"granola-mcp-server"
],
"env": {
"KNOWLEDGE_PATH": "<PERSONAL_OS_PATH>/Knowledge"
}
}
}
}
Replace:
<GRANOLA_MCP_PATH>with absolute path to granola-ai-mcp-server<PERSONAL_OS_PATH>with absolute path to personal-os workspace
Step 7: Verify Setup
Ask user to restart Claude Code, then test:
Search my meetings for "test"
or
Check for new Granola meetings
Success Criteria
- [ ] Prerequisites verified
- [ ] granola-ai-mcp-server cloned and dependencies installed
- [ ] test_server.py passes
- [ ] Knowledge/Transcripts folder exists
- [ ] meeting-sync skill installed to .claude/skills/
- [ ] .mcp.json updated with granola config
- [ ] Claude Code restarted
- [ ] Granola tools accessible (search_meetings works)
Troubleshooting
Python version too old
brew install python@3.12
uv sync fails
pip install uv # Alternative installation
Permission denied on cache
Granola must be running with proper permissions. User should open Granola app once.
MCP not loading
Check .mcp.json syntax and ensure paths are absolute (not relative).
After Setup
Inform user they can now:
- Say "Sync my Granola meetings" to sync new meetings
- Morning planning will automatically check for new meetings
- Search across all meeting content
Related skills
Docker Compose Architect
Designs optimized Docker Compose configurations.
Incident Postmortem Writer
Writes structured and blameless incident postmortem reports.
Runbook Creator
Creates clear operational runbooks for common DevOps procedures.