Skip to content
K

Grain

The Grain integration brings meeting transcripts, notes, and action items into Monday Morning. This gives your agent full context from client conversations, standups, and planning meetings — so it can reference decisions and extract tasks without you summarizing anything manually.

In the desktop app, ingested meetings surface in the comms inbox stage occupant alongside email and Slack items, where a meeting can be triaged and converted into an issue or a spec.

mm_import_meeting_notes and mm_save_grain_note belong to the opt-in imports tool group. They are not listed in the agent’s tool catalog until you opt in via the Monday Morning server entry in .mcp.json:

"env": { "MM_TOOL_GROUPS": "imports" }

The tools still dispatch by name even when not listed. Reading stored meeting context uses mm_get with entity: "meeting_context" — a core universal verb that is always listed.

  • A Grain account with meeting recordings
  • A Grain plan that includes API access, and an API token

There is also a separate, OAuth-based Claude.ai Grain MCP you can connect in Claude.ai’s own integration settings for ad-hoc meeting search in conversations. It is independent of the Monday Morning plugin; the plugin is what persists meeting context into your project’s .mm/ directory. You can use both.

  1. Log into grain.com and go to Settings → Integrations → API
  2. Click Generate Token (or copy an existing one)
  3. Copy the token value

The import tools read the token from the GRAIN_API_TOKEN environment variable in the MCP server’s environment:

Terminal window
export GRAIN_API_TOKEN="your_grain_api_token_here"

The desktop app’s Grain plugin settings (Settings → Plugins, Configure on the Grain row) also hold an API Token field for the app’s own surfaces, plus a Grain MCP URL (leave the default unless you are on a self-hosted or staging Grain instance) and per-project Filter Keywords.

Ask your agent to import recent meetings:

Import my recent Grain meeting notes into this project

The agent will call mm_import_meeting_notes. If configured correctly, meeting notes appear as markdown files in .mm/notes/ (named meeting-*.md).

ToolDescriptionRequires API Token
mm_import_meeting_notesImport meeting notes from Grain by meeting ID, search query, or date range. Deduplicates by meeting ID and can create tasks from action items when given a spec_path.Yes
mm_save_grain_noteSave a Grain meeting note locally as markdown. Handles deduplication via meeting ID.No (local file operation)
mm_get with entity: "meeting_context"Retrieve recent meeting context for a project — summaries, decisions, and open action items within a configurable lookback period.No (reads local files)

The old mm_get_project_meeting_context name is deprecated — it still dispatches, but new work should call mm_get with entity: "meeting_context".

Import all Grain meetings from the past 7 days into this project

The agent calls mm_import_meeting_notes with a date range, pulling in transcripts and notes.

Import the meeting from yesterday and add action items to the 2026-03-28-auth-redesign spec

The agent calls mm_import_meeting_notes with a spec_path, creating tasks in that spec from the meeting’s action items.

Get meeting context for a planning session

Section titled “Get meeting context for a planning session”
What decisions were made in recent meetings about this project?

The agent calls mm_get with entity: "meeting_context" to retrieve summaries and decisions from stored meeting notes.

Using the Claude.ai MCP path, search for a meeting and then save it locally:

Find the meeting where we discussed the API redesign, then save those notes to this project

The agent searches via the Grain MCP, then calls mm_save_grain_note to persist the result.

“No Grain API token found” error Set GRAIN_API_TOKEN in the environment the MCP server runs in.

“Unauthorized” error when importing Your API token is invalid or expired. Generate a new one at Settings → Integrations → API in Grain.

No API section in Grain settings API access is not available on all Grain plans. Check your subscription tier or contact Grain support.

The agent says it can’t see the import tools The imports group is not opted in. Add "MM_TOOL_GROUPS": "imports" to the server’s env in .mcp.json — or ask the agent to call the tool by its exact name; delisted tools still dispatch.

Duplicate meeting notes The plugin tracks imported meetings by ID and automatically deduplicates. If you see duplicates, they may have been imported through different paths (e.g., both manually and via the import tool).

Empty transcripts Grain needs time to process recordings after a meeting ends. If a transcript is empty, wait a few minutes and try again.