Granola Connector
CleanAccess Granola meeting notes, transcripts, AI summaries, and action items through the Granola MCP connector. Use when querying past meetings, follow-ups, decisions, or searching across notes. Authentication is managed automatically via Polly's OAuth2 system.
SKILL.md
---
name: granola-connector
description: >
Query and retrieve Granola meeting notes, transcripts, summaries, and action items using the Granola MCP connector.
Use when the user asks about meetings, what was discussed, follow-ups, decisions, action items, or wants to search across meeting notes.
Keywords: granola, meeting, notes, transcript, summary, action items, follow-up, discussed.
metadata:
polly:
polly_managed_connector: true
auth:
- env: GRANOLA_ACCESS_TOKEN
type: oauth2
integration_id: granola-mcp
description: Granola OAuth access
scopes:
- openid
- email
- profile
- offline_access
primaryEnv: GRANOLA_ACCESS_TOKEN
---
# Granola Connector
Access your Granola meeting notes, transcripts, and AI summaries through the
[Granola MCP Server](https://mcp.granola.ai/mcp) using `mcporter`.
---
## Prerequisites
### 1. Ensure mcporter is available
Always run this before invoking any Granola tools:
```bash
export PATH="$HOME/lib/node/bin:$PATH"
if ! command -v mcporter &>/dev/null; then
npm install -g mcporter --prefix ~/lib/node
fi
```
### 2. Authentication
This skill uses **Polly-managed OAuth2 authentication**. The access token is automatically managed and refreshed by Polly's auth system via the `GRANOLA_ACCESS_TOKEN` environment variable.
**No manual token refresh is needed** — Polly handles token refresh automatically when needed.
On first use, if not connected, call:
```
manage_auth(action="connect", integration_id="granola-mcp", auth_env="GRANOLA_ACCESS_TOKEN")
```
---
## Invocation Pattern
```bash
export PATH="$HOME/lib/node/bin:$PATH"
mcporter --config ~/.mcporter/mcporter.json call granola.<tool_name> [key=value ...]
```
---
## Available Tools
### List recent meetings
```bash
mcporter --config ~/.mcporter/mcporter.json call granola.list_meetings time_range=this_week
# time_range options: this_week | last_week | last_30_days
```
### Query meetings with natural language
```bash
mcporter --config ~/.mcporter/mcporter.json call granola.query_granola_meetings query="what were the action items from this week?"
```
> Always preserve citation links `[[0]](url)` in your response — they link back to source notes.
### List meeting folders
```bash
mcporter --config ~/.mcporter/mcporter.json call granola.list_meeting_folders
```
### Get full meeting details (summary, notes, attendees)
```bash
mcporter --config ~/.mcporter/mcporter.json call granola.get_meetings meeting_ids='["<uuid>","<uuid>"]'
```
### Get verbatim transcript
```bash
mcporter --config ~/.mcporter/mcporter.json call granola.get_meeting_transcript meeting_id=<uuid>
```
---
## File Locations
| File | Purpose |
|------|---------|
| `~/.mcporter/mcporter.json` | mcporter config with bearer token |
| `scripts/oauth_setup.py` | Initial OAuth PKCE setup (for manual setup only) |
---
## Notes
- Access tokens are valid for ~6 hours and are **automatically refreshed by Polly's auth system**
- The LLM never directly accesses refresh tokens — they are managed securely by Polly
- The `GRANOLA_ACCESS_TOKEN` environment variable is injected automatically when the skill runs
Authorstella
Downloads7
Versions4
Published1d ago
Auth Requirements
GRANOLA_ACCESS_TOKENoauth2integration: granola-mcp
Version History
v1.3.0latest
Added connector-skill tag and polly_managed_connector metadata flag for better discoverability and classification
Apr 9, 2026
Clean.zip
v1.2.0
Add polly_managed_connector flag and connector-skill tag
Apr 9, 2026
Clean.zip
v1.1.0
Security improvement: refresh tokens now managed entirely by Polly's auth system, never exposed to LLM. Removed manual refresh_token.py script.
Apr 9, 2026
Clean.zip
v1.0.0
Initial release of Granola connector with Polly-managed OAuth2 authentication
Apr 9, 2026
Clean.zip
SHA-256 (latest)
cd8a68ae9ca47c066df2dfc1ed3d3139dc2d15368d373e009d4aa11fb77cf13d