Provides access to Granola meeting notes through OAuth authentication, enabling retrieval of meetings, searching by keyword, and accessing document summaries from the Granola platform.
Click on "Install 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 Serversearch for meetings about the Q3 product 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
MCP server for Granola meeting notes. Deploys to Cloudflare Workers with OAuth.
Setup
npm install
wrangler kv namespace create TOKENSUpdate wrangler.toml with your KV namespace ID, then deploy:
npm run deployConfigure MCP Client
Add to your MCP config (e.g. Claude Desktop, ChatGPT):
{
"mcpServers": {
"granola": {
"url": "https://granola-mcp-server.YOUR-SUBDOMAIN.workers.dev/mcp"
}
}
}On first use, you'll be prompted to authenticate via Google. Follow the on-screen instructions.
Tools
Tool | Description |
| List recent meetings (limit: default 20) |
| Get single meeting by document ID |
| Meetings from last N days |
| Search by keyword |
| Full summary for a document |
| Today's meetings |
Development
npm run dev # Local server at localhost:8787
npm run deploy # Deploy to Cloudflare
wrangler tail # View logsDebug Endpoints
# Check token status
curl -H "Authorization: Bearer SESSION_ID" \
https://YOUR-WORKER.workers.dev/debug/test-refresh
# Force token refresh
curl -H "Authorization: Bearer SESSION_ID" \
"https://YOUR-WORKER.workers.dev/debug/test-refresh?force=true"Notes
Tokens stored in Cloudflare KV (no expiry, persists until Granola invalidates)
Access tokens auto-refresh before expiry
Read-only access to Granola API
Reverse-engineered from Granola Electron app v6.267.0
License
MIT. Not affiliated with Granola.