# Granola MCP server: setup, tools and plan limits

> Granola's official MCP server at mcp.granola.ai: setup in Claude, ChatGPT, Claude Code, Codex and Cursor, its tools, what Free can reach, limits and privacy.

Updated 2026-11-06 · https://upsy.ai/guides/granola-mcp-server

## Short answer

Yes, Granola has an official MCP server (a connector that lets an AI agent use your meeting notes) at `https://mcp.granola.ai/mcp`. Add it to Claude, ChatGPT, Claude Code, Codex, Cursor or any MCP client, sign in to Granola, and the agent can search and read your meeting notes, and on paid plans your transcripts. It works on every Granola plan, but Basic (Free) only reaches the last 30 days. In Claude Code:

```
claude mcp add granola --transport http https://mcp.granola.ai/mcp
```

Then run `/mcp` and authenticate. Add Granola through Upsy if an agent should only read, shouldn't see transcripts, or should use Granola next to your email, calendar and task apps.

## Granola's MCP server

| | |
|---|---|
| Address | `https://mcp.granola.ai/mcp` (Streamable HTTP, no SSE) |
| Launched | February 4, 2026 ([Granola](https://www.granola.ai/blog/granola-mcp)) |
| Sign-in | OAuth with dynamic client registration. "There is no API key or service account access method for MCP" |
| Reach | Your personal notes and public notes in the active workspace |
| Plans | Basic (Free): the last 30 days, and some folder, search and transcript tools are paid only. Business: everything. Enterprise: what the admin allows |
| Limits | "Around 100 requests per minute across all tools", varying by plan and tool |

Granola's [MCP docs](https://docs.granola.ai/help-center/sharing/integrations/mcp) have the details.

### What it can reach

- **Personal notes:** notes you own, notes shared directly with you, and notes in private folders shared with you.
- **Public notes:** notes visible to everyone in the workspace, and the Team space.
- **One workspace at a time.** "MCP does not combine notes across workspaces." The `switch_workspace` tool changes your active workspace in the Granola app and in every other connected AI tool too.

It can't see other people's private notes, even if you're in the same workspace.

### Connect it to your client

**Claude.** Open **Customize › Connectors**, search for Granola (made by Granola) and click **Connect**. Then turn it on in a chat under **+ › Connectors**.

**Claude Code.** Run the command above, add `--scope user` to use it in every project, then `/mcp`, pick granola and choose **Authenticate**. If Granola is connected in claude.ai, it may already show up.

**ChatGPT.** In **Settings › Apps**, search for Granola and connect it, then type `@Granola` in a chat.

**Codex.** Run `codex mcp add granola --url https://mcp.granola.ai/mcp`, then `codex mcp login granola`.

**Cursor.** Add `{"mcpServers":{"granola":{"url":"https://mcp.granola.ai/mcp"}}}` to `~/.cursor/mcp.json`, then click **Connect**.

**VS Code.** Add `{"servers":{"granola":{"type":"http","url":"https://mcp.granola.ai/mcp"}}}` to `.vscode/mcp.json`.

**Anything else.** Add a remote MCP server with the address and OAuth, and leave any client ID and secret fields empty.

### Its tools

| Tool | What it does |
|---|---|
| `query_granola_meetings` | Ask Granola's own chat a question about your meetings |
| `list_meetings` | Meetings you can access, with title, date and attendees. Filtering by folder is paid only |
| `get_meetings` | The notes of one or more meetings: your private notes and Granola's summary |
| `get_meeting_transcript` | The raw transcript of a meeting. Paid plans only |
| `get_meeting_attachment` | Screenshots of screens shared in a meeting, such as slides. Needs Snapshots on |
| `list_meeting_folders` | Your folders, with note counts. Paid plans only |
| `get_account_info` | The Granola account, active workspace and joined workspaces of this connection |
| `switch_workspace` | Change the active workspace, if you're in more than one |
| `sign_out` | Sign this AI tool out of Granola |

Granola's docs also say MCP can "add or remove notes from folders and send feedback", without naming those tools, and Claude's directory lists `search_meetings` and `search_transcripts`. The tools you see can differ by plan and client.

### Enterprise controls

On Enterprise, admins manage MCP under **Settings › Workspace › General › Apps & connectors › MCP access › Manage**:

- **Personal notes** and **Public notes**, each on or off. With both off, members have no MCP.
- **Meeting transcripts over MCP**, on by default. Off stops every AI tool from reading transcripts.
- **Make changes over MCP**, on by default. Off makes MCP read-only.

Enterprise workspaces with SSO and at least 50 seats can also let Okta or Claude grant access without a consent screen.

### Where Granola's server stops

- **Free reaches 30 days.** Older notes, transcripts and folders need Business.
- **No read-only or transcript switch below Enterprise.** On Basic and Business, every connected tool gets everything your plan allows.
- **One workspace per connection,** and switching it affects every connected tool.
- **No keys for scripts.** For automations, Granola's [REST API](https://docs.granola.ai/introduction) uses API keys, on Business and Enterprise.
- **About 100 requests a minute.** A big "summarize every meeting this quarter" request can hit it.

For one person in one or two AI tools, Granola's server is enough.

## Granola MCP, API and other servers

| | Granola MCP | Granola API | Upsy | Local cache servers |
|---|---|---|---|---|
| For | AI chats and agents | Scripts and automations | AI agents, with limits per agent | Reading notes offline |
| Sign-in | OAuth per person | API key | OAuth to Upsy; Upsy signs in to Granola | None: reads Granola's files on your Mac |
| Plans | All, with Free limited to 30 days | Business and Enterprise | All, with Granola's plan limits | Any |
| Limits | Enterprise admin switches | Key scopes | Read-only or picked tools, per agent | None |
| Workspaces | One per connection | Per key | Up to 5 Granola accounts | The signed-in account |

### Community servers

Before Granola's own server, community servers such as [proofsh/granola-mcp-server](https://github.com/proofsh/granola-mcp-server) read the cache file the Granola app keeps on your Mac. They work offline but break when Granola changes that file: users report it moved to a new format in February 2026 and is now encrypted. Granola's terms also bar reverse engineering its services. Others, such as NimbleBrain's, are archived with a note to use Granola's own server.

## Upsy's Granola MCP server

Upsy connects to Granola's server with your Granola sign-in, so Granola's plan limits still apply. It's the same address as Upsy's other apps, `https://upsy.ai/connect`.

What it adds:

- **Read-only on any plan.** Set an agent to **Read-only** and it can search and read notes but change nothing.
- **No transcripts for some agents.** With **Pick actions**, leave out `get_meeting_transcript`, and that agent sees summaries and notes only.
- **Granola next to your other apps.** One server holds Granola, Gmail, Calendar, Slack, Linear and more, so an agent can turn a meeting's action items into Linear issues or draft the follow-up email in Gmail.
- **Several Granola accounts,** such as work and personal, each with its own access.
- **History and alerts:** every Granola tool an agent runs, listed under that agent.
- **Any client:** Claude, Claude Code, Cursor, Codex, ChatGPT, Grok, Muse, or anything with remote MCP and OAuth.

### Connect Granola to Upsy

1. Go to [upsy.ai](https://upsy.ai) and click **Set up Upsy**.
2. Open **Apps**, click **Connect an app** and pick **Granola**. Sign in with the email your Granola account uses. For another account, click **Add account** next to Granola.
3. On the **Assistants** page, click **Add assistant** and choose your client under **Which assistant?** for its exact steps.

### Add the server to your client

Signing in opens an Upsy page: tick Granola, keep full access or pick **Read-only**, and click **Allow**. To leave out transcripts, use **Pick actions** on the agent's page afterwards.

- **Claude Code:** `claude mcp add --transport http --scope user upsy https://upsy.ai/connect`, then `/mcp` to sign in.
- **Cursor:** add `{"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}}` to `~/.cursor/mcp.json`, then click **Connect** next to upsy.
- **Codex:** `codex mcp add upsy --url https://upsy.ai/connect`, then `codex mcp login upsy`.
- **Claude and ChatGPT:** add `https://upsy.ai/connect` as a custom connector ([Claude](/guides/claude/custom-connector), [ChatGPT](/guides/chatgpt/custom-connector)).
- **Grok and Muse:** paste the setup prompt Upsy shows into a chat and approve the sign-in ([Grok](/guides/grok/granola)).

Server details, such as OAuth endpoints and token lifetimes, are in the [Gmail MCP server guide](/guides/gmail-mcp-server#server-details); they're the same for Granola.

### Check that it works

> Using Upsy, which Granola account am I signed in with? Then list my meetings from last week.

The agent should name your Granola email and workspace, then list meetings with dates and attendees. Both calls show in Upsy's **History** under that agent.

## Prompts to try

- "What did we decide in yesterday's pricing meeting, and who owns each next step?"
- "Draft a follow-up email to the attendees of my 2pm call with the action items. Don't send it."
- "Turn the action items from this morning's sprint review into Linear issues for the Web team."
- "Find every customer call this month where someone mentioned the export bug, with quotes."
- "What was on the roadmap slide in Tuesday's all-hands?"

## Troubleshooting

### Claude says "No tools available"

Granola's fix: open [claude.ai/customize/connectors](https://claude.ai/customize/connectors), click **Disconnect** on Granola, then **Connect** again without refreshing the page.

### You're connected to the wrong Granola account

A plain disconnect keeps your Granola session. Open `https://mcp-auth.granola.ai/api/logout`, then connect again with the right email. Ask "Which Granola account am I signed in with?" to check.

### An error right after signing in

You signed in with an email that isn't your Granola account's. Sign in with the email you use in the Granola app.

### The agent can't find older meetings or transcripts

On Basic (Free), MCP reaches only the last 30 days, and transcripts and folders are paid only. On Enterprise, your admin may have turned off transcripts or one of the note scopes.

### Claude Code shows "connected" but tools fail

Run `/mcp`, pick granola and choose **Authenticate** again. Some Claude Code versions showed the server as connected without a valid sign-in.

### Requests fail during a big summary

You hit Granola's limit of about 100 requests a minute. Ask about fewer meetings at once, or a shorter date range.

### "The user hasn't allowed you to use Granola's …"

That's Upsy refusing a tool outside the agent's level, such as `get_meeting_transcript` when you didn't pick it. Change Granola's level on the agent's page in Upsy.

## Security and privacy

- **Granola's own controls:** SOC 2 Type II, GDPR and UK GDPR compliance with a DPA, and data stored on AWS in the US only ([Granola's security FAQ](https://docs.granola.ai/help-center/consent-security-privacy/security-privacy-data-faqs)). Audio isn't kept.
- **Training:** Granola may use anonymized data to improve its own models unless you turn off **Use my data to improve models for everyone**; Enterprise is opted out by default. Granola says third parties like OpenAI and Anthropic never train on your data ([model training](https://docs.granola.ai/help-center/consent-security-privacy/model-training)).
- **What MCP shares:** only notes you can view. Once notes and transcripts reach your AI tool, its own retention rules apply.
- **Meeting content carries risk.** Transcripts hold other people's words, and a meeting can contain instructions aimed at your agent. Give agents that act on other apps only the Granola tools they need.
- **Through Upsy,** agents never get your Granola token: they call Upsy, and Upsy calls Granola. Upsy emails you when one agent reads 100 or more items in 10 minutes, and when a new agent or app connects.

## FAQ

### Does Granola have an MCP server?

Yes. Granola launched its official MCP server in February 2026, at `https://mcp.granola.ai/mcp`, for Claude, ChatGPT, Cursor, Claude Code, Codex and other MCP clients.

### Is Granola MCP free?

It works on every plan. On Basic (Free), it reaches only the last 30 days of notes, and transcripts, folders and some search tools need a paid plan.

### Can Granola MCP read transcripts?

Yes, on paid plans, with `get_meeting_transcript`. On Enterprise, an admin can turn transcripts off for every AI tool.

### Can Granola MCP change my notes?

Only a little: it can add or remove notes from folders and send feedback. It can't edit a note's text. On Enterprise, **Make changes over MCP** turns that off; elsewhere, use Upsy's Read-only.

### Can I use an API key with Granola MCP?

No. MCP signs in with OAuth only. For scripts, use Granola's REST API with an API key, on Business and Enterprise.

### Is Granola GDPR compliant?

Granola says it complies with GDPR and UK GDPR and offers a DPA, but it stores data in the US only, with no EU data residency.

### Does Granola use my data for AI training?

By default it may use anonymized data to improve its own models, which you can turn off in settings. It says OpenAI, Anthropic and other third parties never train on your data.

### Can I connect two Granola workspaces?

Not at once in one connection: MCP uses your active workspace, and switching it switches every tool. Through Upsy, you can connect up to five Granola accounts side by side.

---

Upsy connects personal AI assistants (Muse, Grok, ChatGPT, Claude, Cursor, Claude Code, Codex, Devin) to your Gmail, Google Calendar, Google Drive, Slack, Notion and other apps through one MCP server, with a shared memory, files and a cloud browser signed in to your sites. You choose what each assistant may do in each app, see everything it did, and turn it off in one click. Upsy is free. To add Upsy to an assistant, add a remote MCP server (Streamable HTTP) named Upsy at https://upsy.ai/connect. It signs in with OAuth; there is no API key.
