Granola
Search and access your meeting notes.
MCP server URL
https://granola.gumstack.com/mcp
Works with
Tools 15
Query Granola Meetings
Query Granola about the user's meetings using natural language. Returns a tailored response with inline citation links in markdown (e.g. [[1]](url)) that reference source meeting notes. IMPORTANT: The response includes numbered citation links to specific Granola meeting notes. These citations MUST be preserved in your response to the user — they provide transparency and allow the user to verify information by clicking through to the original notes. For optional deeper reads, extract the meeting ID from the citation URL: https://notes.granola.ai/d/<meeting_id>. Pass that ID to get_meetings (meeting_ids). This tool is slow: an AI agent behind it searches and reads the user's notes before answering. Prefer a faster tool when it can answer the question: - list_meetings: find meetings by date range - get_meetings: read notes for meetings whose IDs you already have When to use: - User asks about what was discussed, decided, or action-items from meetings - User asks about follow-ups, todos, or commitments from recent meetings - User references 'Granola notes' or 'meeting notes' When NOT to use: - User is asking about calendar scheduling or upcoming events - User explicitly asks for a specific meeting by ID (use get_meetings instead) Prioritize using query_granola_meetings over list_meetings/get_meetings for open-ended or natural language queries about meeting content. If this tool does not find a requested detail, meeting summaries may have omitted it. Use list_meetings/get_meetings to identify the most relevant meetings, then get_meeting_transcript only where that meeting's workspace permits transcript access. If access is denied, report that limitation; do not retry through another tool or conclude the information was never discussed.
List Meetings
List the user's Granola meeting notes within a time range. Returns meeting titles, metadata, and note URLs. IMPORTANT: For short-term questions about recent meeting details, prefer using query_granola_meetings instead. When to use: - User asks to list their meetings - User asks about action items, decisions, or summaries from meetings over a longer or specific date range - User asks about content from their meeting transcripts - User references 'Granola notes' or 'meeting notes' or 'transcripts' When NOT to use: - User is asking about upcoming calendar events or scheduling - User wants to create/modify calendar invites Filtering: - Omit workspace_only and involvement to return every meeting the user is allowed to access - For 'my meetings' or meetings the user was involved in, set both involvement conditions to true; true conditions combine using OR - Set captured_by_me to true for meetings whose Granola notes the user captured, or false to exclude them - Set listed_as_participant to true for meetings where the user is a known participant, or false to exclude them - False involvement conditions are exclusions and combine with the positive conditions using AND; omit a condition to ignore it - For Team Space or public workspace meetings, set workspace_only to true - workspace_only and involvement combine using AND Use get_meetings to retrieve detailed meeting content after identifying relevant meetings. Use list_meeting_folders to discover folder IDs, then pass a folder_id to list meetings within a specific folder.
List Meeting Folders
List the user's Granola meeting folders. Returns folder ID, title, description, note count including nested folders, visibility (private or workspace) and who can see the folder's notes. When to use: - User asks about their folders or wants to browse meetings by folder - User wants to narrow down meeting searches to a specific folder Use the returned folder IDs with list_meetings (folder_id parameter) to list meetings within a specific folder.
Get Meetings
Get detailed meeting information for one or more Granola meetings by ID. Returns private notes, AI-generated summary, attendees, metadata, and note URLs. Does not return transcripts. Notes and summaries can omit details that were discussed. If a detail is missing, use get_meeting_transcript on the most relevant meetings only where that meeting's workspace permits transcript access. If access is denied, report that limitation; do not retry through another tool or conclude it was never discussed. Use this when you already have specific meeting IDs (e.g. from list_meetings results). For open-ended questions about meeting content, use query_granola_meetings instead.
Get Meeting Transcript
Get the full transcript for a specific Granola meeting by ID. Returns only the verbatim transcript content, not summaries or notes. Transcript blocks separate audio source (Microphone/System audio) from speaker identity. Participant attribution and user-confirmed names are preserved. Desktop diarization is omitted; mobile/imported transcripts can retain Speaker A/B/... labels for unnamed voices. Recording context identifies the document owner as the recorder for native recordings, not as the speaker. Missing recorder data stays unknown; the current viewer is not substituted. Channels and room labels may include multiple people. Older preformatted transcripts keep their original labels. Requires access to the meeting and transcript access permitted by that meeting's workspace. Use this for exact quotes or when query_granola_meetings/get_meetings does not surface a requested detail, such as a person, example, or explanation. Start with the most relevant meetings; a detail missing from summaries may still be in the transcript. If access is denied, report that limitation and do not retry through another tool. For general summaries or action items, start with query_granola_meetings or get_meetings.
Get Account Info
Get the email, active workspace, joined workspaces (names and IDs), and effective note-access scopes for the Granola account currently connected to this MCP session. Workspace membership does not imply MCP access to its meetings. mcp_plan is the effective plan used for MCP access and limits. When to use: - User asks 'who am I signed in as?', 'which Granola account is this?', or 'what's my email?' - User suspects they connected the wrong Granola account - User wants to switch Granola accounts: if sign_out_url is present, open it in the browser used to connect Granola, then disconnect and reconnect Granola in this client. This clears the browser login but does not revoke the client's authorization. - User asks which workspaces they belong to or mentions another workspace - Meeting results may be missing because the wrong workspace is active - Meeting results may be incomplete or empty because of the user's Granola plan or workspace MCP access controls - Before performing actions, to confirm identity if the user references a specific account mcp_note_access.scopes contains the note categories this connection can search: - personal: notes the connected user owns, notes shared directly with them, and notes accessible through private folders - public: notes accessible through workspace-visible Team Space folders - Both scopes means both categories can be searched. These scopes describe access, not who captured or participated in a meeting.
Sign Out
Revoke the connected Granola account's consent and refresh tokens for this MCP client. Only use when the user asks to sign out, disconnect, or switch Granola accounts. This affects all connections for this account using the same client authorization. New MCP requests using this authorization will be rejected immediately after sign-out. No browser action is needed to complete MCP sign-out. If the user wants to switch accounts, tell them to reconnect Granola in this client. Only if the browser automatically selects their previous account, open the returned sign_out_url in that browser before reconnecting again.
Get Meeting Attachment
Get up to 5 meeting attachments, such as screenshots of shared screens, as images in request order. Provide attachment_ids for a batch or attachment_id for one image. Each image is followed by its metadata; failed attachments return an error with their ID without discarding successful images. Attachment IDs come from the <attachments> section of get_meetings results. Use this when the description alone does not answer the user's question, for example to read a slide, chart, or code on screen.
Add Note To Folder
Add a Granola note to a folder. Use list_meeting_folders to find the destination folder ID and list_meetings to find the note ID; list_meetings shows which folders each note is already in. This operation is additive and idempotent. IMPORTANT: Adding a note grants everyone who can access the folder access to the note. A folder with visibility "workspace" shares the note with everyone in the workspace; check the folder's visibility and audience in list_meeting_folders first. Use only when the user has clearly requested that destination. The response confirms the write with an outcome (added or already_in_folder) and the destination folder's visibility and audience.
Remove Note From Folder
Remove a Granola note from a folder. Use list_meeting_folders to find the folder ID and list_meetings to find the note ID; list_meetings shows which folders each note is in. Removing the note may revoke folder-derived access for other people. The response confirms the write with an outcome (removed or not_in_folder) and the folder's visibility and audience.
Create Folder
Create a top-level Granola folder. Use only when the user explicitly asks for a new folder; to file notes into an existing folder, find it with list_meeting_folders and use add_note_to_folder. visibility "private" (the default) creates a folder only the user can see. visibility "workspace" creates it in the workspace's Shared space, where everyone in the workspace can see every note added to it: use it only when the user asks for a team or shared folder. Sub-folders can't be created. If a top-level folder with the same title and visibility already exists, it is returned with outcome already_exists instead of creating a duplicate. The response has outcome created or already_exists and the folder with its id, visibility and audience; pass the id to add_note_to_folder.
Update Folder
Rename a Granola folder or change its description. Use only when the user asks to rename or describe a folder. Get the folder ID from list_meeting_folders. Pass title, description or both; anything omitted stays the same. An empty description clears it. Requires owner or collaborator access to the folder (its role in list_meeting_folders). The response returns the updated folder, including its stored title and description.