granola
通过 MCP (mcporter) 访问 Granola AI 会议记录。查询会议、按日期范围列出、获取完整详细信息并提取逐字记录。当用户询问会议记录、讨论内容、行动项目、决策或会议中的任何内容时使用。当调用因身份验证错误而失败时,还可以处理 OAuth 令牌刷新。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~bholagabbar-granola-mcpcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~bholagabbar-granola-mcp/file -o bholagabbar-granola-mcp.md## 概述(中文)
通过 MCP (mcporter) 访问 Granola AI 会议记录。查询会议、按日期范围列出、获取完整详细信息并提取逐字记录。当用户询问会议记录、讨论内容、行动项目、决策或会议中的任何内容时使用。当调用因身份验证错误而失败时,还可以处理 OAuth 令牌刷新。
## 原文
# Granola MCP
Meeting notes AI connected via `mcporter call granola.<tool>`.
## Tools
```
granola.query_granola_meetings query=<string> [document_ids=<uuid[]>]
granola.list_meetings [time_range=this_week|last_week|last_30_days|custom] [custom_start=<ISO>] [custom_end=<ISO>]
granola.get_meetings meeting_ids=<uuid[]> (max 10)
granola.get_meeting_transcript meeting_id=<uuid>
```
## Usage Pattern
1. For open-ended questions ("what did we discuss about X?"), use `query_granola_meetings`
2. For listing meetings in a range, use `list_meetings`
3. For full details on specific meetings, use `get_meetings` with IDs from list results
4. For exact quotes or verbatim content, use `get_meeting_transcript`
Prefer `query_granola_meetings` over list+get for natural language questions. Responses include citation links (e.g. `[[0]](url)`). Preserve these in replies so the user can click through to original notes.
## Setup
1. Complete the Granola OAuth flow at `https://mcp-auth.granola.ai/oauth2/authorize`
2. Save credentials to `config/granola_oauth.json` with keys: `client_id`, `refresh_token`, `access_token`, `token_endpoint`
3. Configure `config/mcporter.json` with the Granola MCP server entry and `Authorization: Bearer <token>` header
4. (Optional) Set up a cron job to run `scripts/refresh_token.sh` periodically, since OAuth tokens expire every ~6 hours
## Auth & Token Refresh
**If a call fails with 401/auth error:**
```bash
bash {baseDir}/scripts/refresh_token.sh
```
The script reads `config/granola_oauth.json`, posts to the token endpoint (`https://mcp-auth.granola.ai/oauth2/token`), and updates both `config/granola_oauth.json` and `config/mcporter.json` with the new access token.
Then retry the call. If refresh also fails, the user needs to re-authenticate manually via the OAuth flow above.
## Config Files
- `config/granola_oauth.json` — OAuth credentials (client_id, refresh_token, access_token, token_endpoint). **Contains secrets; do not commit.**
- `config/mcporter.json` — MCP server config with bearer token header. **Contains secrets; do not commit.**