GRANOLA · FILES & DOCS
Meeting notes and transcripts from the user’s own Granola account.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
granola_get_account_infoREADReport which Granola account email and active workspace this connection is bound to. CALL THIS WHEN A MEETING SEARCH RETURNS NOTHING: Granola MCP follows whichever workspace is selected in the desktop app, so the wrong workspace, the wrong account email, a free plan's 30-day window and a genuinely empty workspace all produce the same empty result. Granola's own troubleshooting guide names this as the first diagnostic step.
granola_get_meeting_transcriptREADRead the raw transcript of one Granola meeting over Granola's MCP server, for direct quotes and exact wording where the AI summary is not enough. PAID PLANS ONLY - a free-plan account is refused by Granola in its own words rather than by Agentic Fabriq, and that sentence should be relayed to the user rather than retried. The transcript is verbatim speech from everyone present, including people who never used Agentic Fabriq.
granola_get_meetingsREADRead one or more Granola meeting notes in full over Granola's MCP server: title, date, attendees, the user's own private notes and the AI summary. Takes several meeting ids in a single call. Ids come from granola_list_meetings or granola_query_meetings - never a meeting title and never a guess.
granola_get_noteREADGet one Granola meeting note by id, including its AI summary (plain text and markdown), attendees, calendar event and folder membership. Pass include=transcript to get the transcript inline; if it is too large the call fails with TRANSCRIPT_TOO_LARGE and granola_get_transcript must be used instead. A meeting whose summary and transcript are still being generated answers 404 - that is a normal not-ready state, not a broken connection.
granola_get_transcriptREADRead a Granola meeting transcript in pages. Use this for long meetings and whenever granola_get_note answers TRANSCRIPT_TOO_LARGE. Each item carries the spoken text, its start and end time, and a speaker whose attribution is 'me' (the note taker) or 'them'. Page with hasMore and cursor, not by counting items.
granola_list_foldersREADList the Granola folders this key can see, with each folder's parent so the hierarchy can be reconstructed. Use it to find the folder_id that granola_list_notes filters on.
granola_list_meeting_foldersREADList the Granola folders the connected account can access over Granola's MCP server, with id, title, description and note count. The ids are what granola_list_meetings filters on. PAID PLANS ONLY.
granola_list_meetingsREADList meeting notes the connected Granola account can access, with meeting id, title, date and attendees. Runs over Granola's MCP server. Folder filtering is a paid-plan feature; on the free plan only the last 30 days of personal notes are visible. The ids returned here are what granola_get_meetings and granola_get_meeting_transcript consume - they are NOT interchangeable with the not_* ids granola_list_notes returns.
granola_list_notesREADList Granola meeting notes, newest data first, filtered by creation or update date and optionally by folder. Returns id, title, owner and timestamps for each note - call granola_get_note for the summary and transcript. Only meetings that already have a generated AI summary and transcript are returned; one still being processed is silently absent rather than an error, so an empty result is not evidence of an empty workspace and must not be treated as a failure.
granola_list_webhook_endpointsREADList the webhook endpoints registered on this Granola workspace, to audit where meeting notes are being shipped and by whom. Granola redacts each delivery url to its bare origin for anyone who did not create the endpoint, because a webhook path can carry a credential. Read-only - creating, repointing and deleting webhooks are not exposed.
granola_query_meetingsREADAsk a natural-language question across the user's Granola meetings and get an answer with citations. THIS IS THE ONLY SEARCH GRANOLA HAS - its REST API declares no query, search or full-text parameter on any endpoint, so granola_list_notes cannot answer 'which meeting did we agree the pricing in' at any page size. Runs over Granola's MCP server and needs the browser sign-in connection, which works on every Granola plan including free. Full sentences work better than keywords.
Put Granola behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.