Skip to content
OpenSmartRoute
Skillv1.0.0

granola

Access and process Granola meeting notes and transcripts via the granola CLI (MCP-backed). Use when pulling meeting data, analyzing transcripts, backfilling meetings, or any task involving Granola mee

by joelhooks(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from joelhooks/joelclaw (skills/granola/SKILL.md). Install upstream with npx skills add joelhooks/joelclaw --skill granola. Copyright stays with the author.

Granola Meeting Intelligence

Access Joel's Granola meeting notes via the granola CLI, which wraps the Granola MCP server through mcporter.

Setup

  • Binary: ~/.local/bin/granola
  • Source: ~/Code/joelhooks/granola-cli
  • Config: ~/.config/granola-cli/mcporter.json
  • Transport: MCP via mcporter (NOT direct API, NOT npm package)
  • Auth: Uses Granola's local credentials automatically

CLI Commands

List meetings

granola meetings [--range this_week|last_week|last_30_days|custom] [--start YYYY-MM-DD] [--end YYYY-MM-DD]

Get meeting details (summary, participants)

granola meeting <meeting-id>

Get full transcript

granola meeting <meeting-id> --transcript

Search meetings

granola search "<query>"

Check auth/connection

granola --help

Returns "connected": true if MCP transport is working.

Output Format

All commands return agent-first JSON with HATEOAS next_actions:

{
  "ok": true,
  "command": "granola meetings",
  "result": { ... },
  "next_actions": [
    { "command": "granola meeting <id>", "description": "Get details" }
  ]
}

Important Notes

  • Timestamps are UTC. Granola returns all dates in UTC. A meeting showing "5:01 PM" on Feb 26 is actually 9:01 AM PST. Always convert when displaying to Joel or writing to Vault files.
  • Discover actual access: Use Executor’s saved Granola connection and current integration contract. Historical sandbox EPERM is not a universal capability limit. Start with summaries; raw evidence needs the required scoped drilldown receipt.

Known Limitations

  • Rate limiting: get_meeting_transcript endpoint rate-limits aggressively. Don't batch transcript pulls — space them out.
  • Concurrency: Keep concurrency at 1 for transcript fetches. Original concurrency of 3 overwhelmed the API.
  • Granola app not required locally: The MCP server handles auth via stored creds, Granola desktop app does NOT need to be running.

MCP Tools (underlying)

The granola CLI wraps these MCP tools:

  1. query_granola_meetings — NL search with citations
  2. list_meetings — by time range
  3. get_meetings — details by ID array
  4. get_meeting_transcript — verbatim transcript by ID

Pipeline Integration

When a new meeting is detected, fire an Inngest event:

curl -X POST "http://localhost:8288/e/$EVENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "meeting/noted",
    "data": {
      "meeting_id": "<id>",
      "title": "<title>",
      "date": "<YYYY-MM-DD>",
      "source": "granola",
      "participants": ["Person A", "Person B"]
    }
  }'

Inngest functions that process meetings:

  • check/granola-meetings — event-triggered check for new meetings
  • granola-check-cron — hourly cron (7 * * * *) polling for new meetings
  • granola-backfill — bulk backfill all meetings

Related

  • ADR-0055: Granola Meeting Intelligence Pipeline
  • Source repo: ~/Code/joelhooks/granola-cli
  • Inngest functions: packages/system-bus/src/inngest/functions/check-granola.ts
  • Meeting analysis: packages/system-bus/src/inngest/functions/meeting-analyze.ts
  • Transcript indexing: packages/system-bus/src/inngest/functions/meeting-transcript-index.ts

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/joelhooks-joelclaw-granola/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

joelhooks-joelclaw-granola.ocm.jsonjson
{
  "ocm": "1",
  "id": "joelhooks-joelclaw-granola",
  "kind": "skill",
  "name": "granola",
  "description": "Access and process Granola meeting notes and transcripts via the granola CLI (MCP-backed). Use when pulling meeting data, analyzing transcripts, backfilling meetings, or any task involving Granola meeting content.",
  "publisher": "joelhooks",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "granola",
      "meetings",
      "transcripts",
      "mcp",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Access and process Granola meeting notes and transcripts via the granola CLI (MCP-backed). Use when pulling meeting data, analyzing transcripts, backfilling meetings, or any task involving Granola meeting content."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/joelhooks/joelclaw",
      "path": "skills/granola/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/joelhooks/joelclaw/blob/HEAD/skills/granola/SKILL.md",
      "key": "joelhooks/joelclaw/skills/granola/SKILL.md"
    }
  },
  "instructions": "# Granola Meeting Intelligence\n\nAccess Joel's Granola meeting notes via the `granola` CLI, which wraps the Granola MCP server through `mcporter`.\n\n## Setup\n\n- **Binary**: `~/.local/bin/granola`\n- **Source**: `~/Code/joelhooks/granola-cli`\n- **Config**: `~/.config/granola-cli/mcporter.json`\n- **Transport**: MCP via mcporter (NOT direct API, NOT npm package)\n- **Auth**: Uses Granola's local credentials automatically\n\n## CLI Commands\n\n### List meetings\n```bash\ngranola meetings [--range this_week|last_week|last_30_days|custom] [--start YYYY-MM-DD] [--end YYYY-MM-DD]\n```\n\n### Get meeting details (s",
  "cost": {
    "context_tokens": 823
  }
}

Fetch it by URL: GET /api/v1/registry/joelhooks-joelclaw-granola/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.