# Granola meeting notes

> Turn decisions and action items from your Granola meeting notes into proposed team decisions and shared tasks, with Granola's own MCP server in your coding agent. Comity stores only the decision and a link back.

Comity has no server-side Granola integration yet: it never connects to your Granola account and never reads your notes. Instead, connect **Granola's official MCP server** to your coding agent. Your agent then reads your meeting notes with your own Granola access and records what came out of the meeting in Comity: decisions as proposed [team decisions](/docs/collaboration/decisions), action items as [shared tasks](/docs/collaboration/shared-tasks).

Each person connects their own Granola account. Granola MCP works on every Granola plan, with Granola's limits: on Basic (free) it reads notes from the last 30 days, and the transcript and folder tools need a paid plan. See [Granola's MCP guide](https://docs.granola.ai/help-center/sharing/integrations/mcp).

## Connect Granola to your agent

Granola's server is `https://mcp.granola.ai/mcp` (Streamable HTTP, sign-in with your Granola account in the browser; no API key). Its tools include `query_granola_meetings`, `list_meetings`, `get_meetings`, `get_meeting_transcript` and `list_meeting_folders`.

### Claude Code

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

Add `--scope user` to have it in every project. Start `claude` again, run `/mcp`, select **granola** and choose **Authenticate**.

### Cursor

Add Granola to `~/.cursor/mcp.json` (every project) or `.cursor/mcp.json` (this project), next to Comity:

```json
{
  "mcpServers": {
    "granola": { "url": "https://mcp.granola.ai/mcp" }
  }
}
```

Cursor lists it under **Settings → MCP**; sign in to Granola when it asks. In the Cursor CLI: `agent mcp login granola`.

### Codex

```sh
codex mcp add granola --url https://mcp.granola.ai/mcp
codex mcp login granola
```

That writes this to `~/.codex/config.toml`:

```toml
[mcp_servers.granola]
url = "https://mcp.granola.ai/mcp"
```

Other agents: add `https://mcp.granola.ai/mcp` as a remote (Streamable HTTP) MCP server with OAuth. See [Any MCP client](/docs/agents/mcp-clients).

## Ask your agent

```text
Record the decisions and action items from today's planning meeting.
```

```text
What did we decide about the billing retries in Tuesday's sync?
```

```text
Go through this week's architecture meetings and propose team decisions for anything we settled about the database.
```

What the agent does:

1. Finds the meeting with its Granola tools (`list_meetings`, `get_meetings`, `query_granola_meetings`), as you, with your Granola access.
2. For each decision, calls [`decision_record`](/docs/reference/mcp-tools#decision_record): a short title, the reasons in its own words, the repository (or org-wide), any rules worth enforcing, and the source `{kind: "meeting", url: "<the Granola note's link>"}`. The decision starts as **proposed**: an owner or admin confirms it in the dashboard, in Needs you or in a Slack DM. In Claude Code, an owner or admin can confirm it right away in Comity's popup.
3. For action items, posts a shared task list with [`task_add`](/docs/reference/mcp-tools#task_add) (one task per item, in the repository they belong to), so your agents and your teammates' agents can take them.
4. For "what did we decide" questions, it can check both: Comity's record ([`decisions`](/docs/reference/mcp-tools#decisions), the confirmed version and its history) and the meeting notes. Ask it to say which one it answered from.

The agent doesn't paste transcripts, summaries or quotes from the meeting into Comity: it writes the decision and its reasons briefly and links to the note. Comity tells agents exactly this, in its `decision_record` tool description and in the agent instructions `comity init` writes (the same text as the [recommended snippet](/docs/agents/best-practices#recommended-snippet)).

## Privacy

- Comity stores only what the agent records: the proposed decision (title, reasons, scope, rules) with the Granola note's link, and any tasks it posts. No transcript, summary or note content, and no Granola credentials.
- The link opens only for people who can open the note in Granola.
- In a [metadata-only](/docs/admin/security) org, decisions keep their title, structural fields and the link; the reasons aren't stored.
- Your Granola sign-in lives in your agent (Claude Code, Cursor, Codex), per user. Teammates without Granola access don't get it through Comity.
- Every recorded decision is a proposal until a person confirms it, so nothing from a meeting reaches other agents unreviewed.
