Back to the MCP Gateway catalog

MCP Gateway · Catalog

Grain icon

Grain MCP server

Official

Grain MCP is the official Model Context Protocol server for Grain, with OAuth and tools that let agents search meetings, pull notes, transcripts, and coaching feedback, work with deals, and create clips and collections. Connect it through the Speakeasy MCP Gateway and agents such as Claude, Cursor, and ChatGPT get one governed URL for it, with SSO, RBAC, and a full audit trail.

Productivity22 toolsAuth: oauth

Behind the MCP Gateway

Run Grain MCP behind the MCP Gateway

One URL for every agent, sign-in through your IdP, RBAC down to the tool, and every Grain call inspected and logged.

Deploy on MCP Gateway

Tools · 22

Each tool below can be allowed or denied per team and role at the MCP Gateway, and every call is inspected and logged.

myself

Get information about the logged-in Grain user.

list_meetings

Returns a filtered list of Grain meetings you have access to, ordered by most recent. If the list contains more than `limit` meetings, the response will also contain a non-null `cursor` value that can be used to fetch the next page of meetings in the list by calling the tool again and passing the `cursor` along with the same `filters`. The list will be empty if there are no meetings matching the supplied filters. If only looking for meetings the user attended, use `list_attended_meetings` instead.

list_attended_meetings

Returns a filtered list of Grain meetings you have attended, ordered by most recent. If the list contains more than `limit` meetings, the response will also contain a non-null `cursor` value that can be used to fetch the next page of meetings in the list by calling the tool again and passing the `cursor` along with the same `filters`. The list will be empty if there are no meetings matching the supplied filters. If also looking to include meetings the user didn't attend, use `list_meetings` instead.

fetch_meeting

Fetches information about a single Grain meeting by ID. The response format is the same as is returned by list_meetings.

fetch_meeting_notes

Fetches the AI notes payload from a single Grain meeting by ID. In some cases, older meetings may not have had notes generated for them. In these cases you can use `fetch_meeting_transcript` instead to determine the content of the meeting.

fetch_meeting_action_items

Fetches the action items extracted from a single Grain meeting by ID. Action items include the task description, timestamp, status (pending or completed), due date, and the person assigned to the action item (if any). In some cases, older meetings may not have had action items generated for them.

fetch_user_recording_notes

Fetches the current user's private notes for a single Grain meeting by ID. Returns the notes as markdown text, or a message if no notes exist.

fetch_meeting_transcript

Fetches the transcript from a single Grain meeting by ID.

search_persons

Returns a filtered list of persons that were participants of Grain meetings you have access to.

search_companies

Returns a filtered list of companies that were participants of Grain meetings you have access to.

search_meetings_v2

Performs hybrid semantic + keyword search over meeting transcript segments. Segments are coherent conversation chunks with summaries, topics, entities, and speaker info. Returns matched segments grouped by meeting, ordered by relevancy.

create_clip

Creates a clip on a recording at the given timestamp. Use search_meetings first to find the recording and relevant transcript timestamps, then call this tool with the meeting ID and start timestamp. Smart boundary detection automatically determines optimal clip start/end points from the transcript.

tag_meetings

Add or remove a tag from one or more meetings by recording ID. Creates the tag if it doesn't exist (on add).

list_workspace_users

Get information about all the users in the logged-in Grain user's workspace. Each user's person ID is also returned and can be used to list recordings attended by that person.

list_coaching_feedback

List AI-generated sales-coaching feedback and scorecards for a filtered set of meetings. If the list contains more than `limit` meetings, the response will also contain a non-null `cursor` value that can be used to fetch the next page of meetings in the list by calling the tool again and passing the `cursor` along with the same `filters`. The list will be empty if there are no meetings matching the supplied filters.

fetch_meeting_coaching_feedback

Fetches AI-generated sales coaching feedback and scorecard for a single Grain meeting by ID. The response format is the same as is returned by list_coaching_feedback.

list_all_deals

List status of hubspot-linked deals that are synced in Grain. If the list contains more than `limit` deals, the response will also contain a non-null `cursor` value that can be used to fetch the next page of deals in the list by calling the tool again and passing the `cursor` along with the same `filters`. The list will be empty if there are no deals matching the supplied filters.

list_open_deals

List status of open hubspot-linked deals that are synced in Grain. If the list contains more than `limit` deals, the response will also contain a non-null `cursor` value that can be used to fetch the next page of deals in the list by calling the tool again and passing the `cursor` along with the same `filters`. The list will be empty if there are no open deals matching the supplied filters. If also looking to include closed deals, use `list_all_deals` instead.

fetch_deal

Fetches information about a single HubSpot deal by ID. In addition to returning the same data as returned by list_all_deals, this returns data about all the activity that has occurred on the deal.

create_collection

Creates a new empty playlist (collection) with the given title. The playlist is created with restricted visibility (only you can see it). Use add_recordings_to_collection to add meetings, and update_collection_share_state to change visibility.

add_recordings_to_collection

Adds one or more recordings to an existing playlist (collection) by recording ID. Use list_meetings or search_meetings first to find recording IDs.

update_collection_share_state

Changes the visibility of a playlist (collection). Options: 'restricted' (only shared users), 'workspace' (all workspace members), 'public' (anyone with the link).

Questions

What is a Grain MCP server?
A Grain MCP server exposes Grain to AI agents as Model Context Protocol tools. Instead of a custom integration per agent, any MCP client can connect to the server and call tools such as myself or list_meetings to work with Grain. The server in this catalog is the official Grain MCP server, which authenticates with OAuth.
What can you do with Grain MCP?
Agents can search meetings, pull notes, transcripts, and coaching feedback, work with deals, and create clips and collections. The catalog lists 22 tools for this server, including myself, list_meetings, and list_attended_meetings. The full list with descriptions is on this page.
Why put Grain MCP behind an MCP gateway?
Connecting the Grain MCP server directly to each client means a separate credential per developer, no inventory of who can reach Grain through an agent, and no record of what agents did with it. An MCP gateway sits between every agent and the Grain server, so sign-in runs through your identity provider, role-based access decides which teams can call which Grain tools, and every call is inspected and logged in one place. The Speakeasy MCP Gateway applies those controls to Grain and to every other server in your catalog.
How do you connect Grain MCP through a gateway?
Add the Grain server from the Speakeasy MCP catalog and every agent reaches it through one gateway URL, next to the rest of your approved servers. Authentication uses OAuth 2.1 with PKCE and dynamic client registration, sign-in runs through your identity provider, and role-based access controls decide which teams can use which Grain tools. Every prompt, response, and tool call is inspected and logged at the gateway.
How is this different from an unofficial Grain MCP?
Community-built Grain MCP servers wrap the same Grain surface but are not vendor-maintained, and most authenticate with a static credential that gives an agent everything the credential owner can touch. This catalog lists the official Grain MCP server, which uses OAuth. Running it behind the Speakeasy MCP Gateway adds SSO, role-based access, and an audit trail of every call.

AI everywhere.

Control here.