← Back to all apps

Granola

Productivityby Granola

Connect Claude to your meeting history. Ask questions about your work and use your conversation context to get things done.

10ChatGPT Tools
4Claude Tools
GranolaDeveloper
ProductivityCategory

Use Cases

productivity

Available Tools

Get account info

get_account_info
Full Description

Get the email, active workspace, and effective note-access scopes for the Granola account currently connected to this MCP session.

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
  • 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

When scope-based access controls are active, 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.

Read detailed meeting summary

get_detailed_meeting
Full Description

Read a saved, agent-oriented summary of a specific Granola meeting. Returns meeting_id and detailed_summary. It provides more context than the human-readable summary, including participant details, a longer summary, and references where available. Does not include the transcript. Use this when you know the meeting ID and need deeper context to answer a question. Returns unavailable when no detailed summary has been generated; does not generate one. Use get_meetings for the standard notes or get_meeting_transcript for verbatim wording.

Parameters (1 required)
Required
meeting_idstring

Meeting UUID

Read meeting transcript

get_meeting_transcript
Full Description

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. Use this when the user needs exact quotes, specific wording, or wants to review what was literally said in a meeting. For summarized content or action items, use query_granola_meetings or list_meetings/get_meetings instead.

Parameters (1 required)
Required
meeting_idstring

Meeting UUID

Read meetings

get_meetings
Full Description

Get detailed meeting information for one or more Granola meetings by ID. Returns private notes, AI-generated summary, attendees, metadata, and note URLs. 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.

Parameters (1 required)
Required
meeting_idsarray

Array of meeting UUIDs (max 10)

Get person

get_person
Full Description

Look up one person the user has met, by name or email. Returns their name, job title, company, how many meetings they share with the user, and when they first and last met.

When to use:

  • User asks who someone is, e.g. 'who is Jane Chen?'
  • User asks when they last met someone, or how often they meet
  • User asks whether someone is a colleague or external
  • Before a meeting, to recall the user's relationship with an attendee

When NOT to use:

  • User asks what was discussed with someone: use query_granola_meetings
  • User wants the meetings themselves: use list_meetings
  • User asks about someone they have never met. This covers the user's own meeting history only, not a directory of everyone at their company.

If several people match a name, this returns the candidates with their email addresses; call it again with one of those addresses. Facts come from a periodically rebuilt profile of the user's meeting history; context_updated_at says when it was last built.

Parameters (1 required)
Required
querystring

Full or partial name, or email address, of one person the user has met. Examples: "Jane Chen", "jane", "jane@acme.com".

List meeting folders

list_meeting_folders
Full Description

List the user's Granola meeting folders. Returns folder ID, title, description, and note count including nested folders.

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.

List meetings

list_meetings
Full Description

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.

Parameters (0 required, 6 optional)
Optional
custom_endstring

ISO date for custom range end (required if time_range is 'custom')

custom_startstring

ISO date for custom range start (required if time_range is 'custom')

folder_idstring

Optional folder ID to list meetings from a specific folder. Use list_meeting_folders to discover folder IDs.

involvementobject

Optional involvement filter. Conditions set to true form an OR inclusion group. Conditions set to false are exclusions applied using AND. Omitted conditions are ignored.

time_rangestring

Time range to query meetings from

Options:this_weeklast_weeklast_30_dayscustom
Default: last_30_days
workspace_onlyboolean

Set to true only when the user explicitly asks for Team Space, public workspace, or workspace-visible meetings. Omit to search every meeting the user is allowed to access.

Query meetings

query_granola_meetings
Full Description

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) or get_meeting_transcript (meeting_id), where allowed.

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.

Parameters (1 required, 1 optional)
Required
querystring

The query to run on Granola meeting notes

Optional
document_idsarray

Optional list of specific meeting IDs to limit context to

Remove note from folder

remove_note_from_folder
Full Description

Remove a Granola note from a folder. Use list_meeting_folders to find the folder ID and list_meetings to find the note ID. Removing the note may revoke folder-derived access for other people.

Parameters (2 required)
Required
folder_idstring

Folder UUID

note_idstring

Granola note UUID

Search meetings by keyword

search_meetings_by_keywords
Full Description

Find the user's meetings that mention specific words, using BM25 keyword ranking. Returns metadata only — title, date, participants and note headings — ordered by relevance, which favours recent meetings.

When to use:

  • User names an exact term, project, product or acronym and wants the meetings that mention it
  • User wants a list of matching meetings rather than an answer
  • You need meeting ids to pass to another tool

When NOT to use:

  • User asks an open-ended question about what was discussed or decided: use query_granola_meetings
  • User wants the full notes of a meeting you already identified: use get_meetings
  • User wants to browse by date, folder or attendance rather than by word: use list_meetings

Matching is literal, so pass the words as the user said them plus obvious synonyms. A term the user never wrote in a note will not match.

Parameters (1 required, 4 optional)
Required
keywordsarray

Words or phrases to search for. A meeting matches if it contains any of them. Examples: ["onboarding"], ["pricing", "discount"].

Optional
from_datestring

Only meetings on or after this ISO date

include_sharedboolean

Also search notes other people shared with the user

Default: False
limitinteger

Max meetings to return

Default: 30
to_datestring

Only meetings on or before this ISO date