granola について
granolaは、MCPサーバー経由でJoelのGranola会議ノートにアクセスするコマンドラインスキルです。会議の検索、詳細や文字起こしの取得に対応し、次の操作を含むJSONを返します。
主な機能
- 01期間を指定して会議を一覧表示
- 02会議の詳細と参加者を取得
- 03全文の文字起こしを取得
- 04会議ノートを検索
- 05次の操作を含むJSONを返却
活用シーン
- 01指定期間内の会議を探す
- 02会議の要約と参加者を確認
- 03会議の文字起こしを取得または検索
MCP 対応
granolaコマンドラインは直接APIではなく、mcporter経由でGranola MCPサーバーに接続します。会議の検索、一覧、詳細、文字起こし取得のツールをラップします。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ joelhooks/ joelclaw --skill granolaインストール後、Claude Code で/granolaを入力して読み込まれたか確認します。
詳細
Granola ミーティングインテリジェンス
mcporter 経由で Granola MCP サーバーをラップする granola CLI を使用して、Joel の Granola ミーティングノートにアクセスします。
セットアップ
- バイナリ:
~/.local/bin/granola - ソース:
~/Code/joelhooks/granola-cli - 設定:
~/.config/granola-cli/mcporter.json - トランスポート: mcporter 経由の MCP(直接 API ではなく、npm パッケージでもありません)
- 認証: Granola のローカル認証情報を自動的に使用します
CLI コマンド
ミーティング一覧の取得
granola meetings [--range this_week|last_week|last_30_days|custom] [--start YYYY-MM-DD] [--end YYYY-MM-DD]
ミーティングの詳細(概要、参加者)の取得
granola meeting <meeting-id>
全文書き起こしの取得
granola meeting <meeting-id> --transcript
ミーティングの検索
granola search "<query>"
認証/接続の確認
granola --help
MCP トランスポートが機能している場合は "connected": true が返されます。
出力形式
すべてのコマンドは、HATEOAS の next_actions を含むエージェント優先の JSON を返します。
{
"ok": true,
"command": "granola meetings",
"result": { ... },
"next_actions": [
{ "command": "granola meeting <id>", "description": "Get details" }
]
}
重要な注意事項
- タイムスタンプは UTC です。 Granola はすべての日付を UTC で返します。2 月 26 日の「午後 5:01」と表示されるミーティングは、実際には PST の午前 9:01 です。Joel に表示するときや Vault ファイルに書き込むときは、必ず変換してください。
- 実際のアクセス可否を確認してください。 Executor に保存されている Granola 接続と現在の統合契約を使用してください。過去のサンドボックスでの EPERM は、あらゆる状況での機能上の制限を意味するわけではありません。まず概要から確認し、生の証拠を取得する場合は、必要なスコープ指定のドリルダウンレシートが必要です。
既知の制限事項
- レート制限:
get_meeting_transcriptエンドポイントは厳しいレート制限を適用します。書き起こしの取得をまとめて行わず、間隔を空けてください。 - 並行処理: 書き起こしの取得時は並行処理数を 1 にしてください。元の並行処理数 3 では API に過剰な負荷がかかりました。
- ローカルで Granola アプリを起動する必要はありません: MCP サーバーは保存済みの認証情報を使って認証を処理するため、Granola デスクトップアプリを起動しておく必要はありません。
MCP ツール(基盤)
granola CLI は以下の MCP ツールをラップします。
query_granola_meetings— 引用付きの自然言語検索list_meetings— 期間を指定した一覧取得get_meetings— ID 配列を指定した詳細取得get_meeting_transcript— ID を指定した逐語的な書き起こし取得
パイプライン統合
新しいミーティングが検出されたら、Inngest イベントを発行します。
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 関数:
check/granola-meetings— 新しいミーティングを確認するイベントトリガー型のチェックgranola-check-cron— 新しいミーティングをポーリングする毎時の cron(7 * * * *)granola-backfill— すべてのミーティングを一括でバックフィル
関連項目
- ADR-0055:Granola ミーティングインテリジェンスパイプライン
- ソースリポジトリ:
~/Code/joelhooks/granola-cli - Inngest 関数:
packages/system-bus/src/inngest/functions/check-granola.ts - ミーティング分析:
packages/system-bus/src/inngest/functions/meeting-analyze.ts - 書き起こしのインデックス作成:
packages/system-bus/src/inngest/functions/meeting-transcript-index.ts
コメント
Markdown 対応