Skip to content
Live · MCP 2025-11-25

Bring every meeting into the conversation.

Connect Wave to Claude, ChatGPT, Claude Code, and any MCP-compatible client. Search sessions, pull exact transcripts, organize folders, and keep action items in sync.

OAuth 2.0 + PKCE
User-scoped access
No JSON config files
Secure remote MCP

Endpoint

https://mcp.wave.co
Claude Code
$ claude mcp add --transport http wave https://mcp.wave.co
18
Tools
OAuth
Preferred
HTTP
Streamable
18 purpose-built tools
Search, read, organize, and act
OAuth by default
PKCE with bearer-token fallback
Three protocol versions
Latest plus broad compatibility
One-user boundary
Every call stays account-scoped

Overview

Your meeting memory, ready when you need it.

Wave MCP turns recordings, summaries, transcripts, folders, and action items into tools your AI assistant can call—without exporting a library or maintaining a second knowledge base.

Search by meaning

Ask in natural language and find the right discussion across meetings, calls, lectures, and recordings.

Retrieve exact context

Pull summaries for speed or speaker-attributed transcripts when exact wording matters.

Close the loop

Organize sessions into folders and safely round-trip structured action items back to Wave.

Focused writes, not open-ended access

Write tools manage action items, folders, and session sharing. MCP cannot edit recordings or transcripts, and it cannot delete sessions.

Connect

One endpoint. Use it from the client you already have.

Every setup finishes at https://mcp.wave.co and the same Wave sign-in.

Follow the Wave integration guides for Claude, ChatGPT, Claude Code, Codex, Cursor, and other clients. Setup instructions live there; the protocol and tool reference are below.

Capabilities

18 focused tools, with clear boundaries.

Read tools retrieve your own and shared meeting knowledge. Write tools manage action items, folders, and session sharing. Read tools require mcp:read; write tools require mcp:write.

For shared content, pass both session_id and owner_id to get_session, get_transcript, and get_action_items. Deep-research fetch accepts shared:owner_id:session_id (the fetch_id from list_shared_sessions). Search covers only your own sessions. Shared sessions cannot be edited or put in folders: update_action_items rejects owner_id and folder tools reject it too. share_session grants other people read access; confirm with the user unless they clearly asked. unshare_session accepts exactly one of recipient_id, email, or everyone: true; everyone also invalidates the old link. Share events, Teams sources, and per-invite scopes are deferred.

Read tools

Search, browse, retrieve, and inspect

Read
search_sessions

Search across your Wave sessions using semantic search. Start here for cross-session questions, then fetch only the relevant session details. Returns sessions that match the query based on meaning, not just keywords. Sessions of type "phone" include a `phone` object (direction inbound/outbound, to_number, from_number, status, ongoing).

query, limit?, folder?, tag?, tag_mode?

Read
list_sessions

List your recent Wave sessions. Returns session summaries with metadata. For synthesis, start with 10–20 and paginate; use 100 only for an explicitly exhaustive request. Sessions of type "phone" include a `phone` object (direction inbound/outbound, to_number, from_number, status, ongoing — for inbound bridge calls the other party is unknown so from_number is null).

limit?, type?, since?, cursor?, folder?, tag?, tag_mode?

Read
list_folders

List the user's folders. Users organize sessions into folders in the Wave app. Use this to discover folder ids/names, then pass `folder` to list_sessions or search_sessions to scope results (useful for work/personal separation on a single account). Each folder also carries `pinned`, `sort_order` (sort for the sessions inside it), `order` (manual position) and `last_opened_at` when set; absence means not pinned / newest first / no manual position / never opened. Folders are returned in display order: pinned first, then by `order` ascending (folders with an order before those without), then by name.

No inputs

Read
get_session

Get full details for a specific Wave session, including the summary and optionally the transcript. Sessions of type "phone" include a `phone` object (direction inbound/outbound, to_number, from_number, status, ongoing). For a session shared with the user, pass its owner_id too; the result adds owner_id, owner_name, access "shared" and the share scope, and omits anything the owner did not share.

session_id, include_transcript?, owner_id?

Read
get_transcript

Get the transcript for a Wave session with speaker attribution. For a session shared with the user, pass its owner_id too.

session_id, format?, owner_id?

Read
get_action_items

Read the structured action items attached to a Wave session, plus the current version. Returned items have provenance: source="agent" means the item was written by an AI, source="user" means the user wrote or edited it. Pair with update_action_items using `expected_version` for safe round-trip edits. For a session shared with the user, pass its owner_id too; shared action items are read-only (read_only: true) and carry no provenance or version.

session_id, owner_id?

Read
search

Search the user's Wave sessions (meetings, calls, recordings) by meaning. Returns matching sessions as citable results with id, title, and url. This is the deep-research search interface; in interactive chats prefer search_sessions, which returns richer structured data.

query

Read
fetch

Fetch the full content of a Wave session by id: summary plus speaker-labeled transcript, with metadata. Use ids returned by `search`, or a `fetch_id` ("shared:{owner_id}:{session_id}") from list_shared_sessions for a session someone shared with the user. This is the deep-research fetch interface; in interactive chats prefer get_session / get_transcript.

id

Read
list_shared_sessions

List sessions other Wave users have shared with the user, newest share first. Each row has session_id, owner_id, owner_name, title, shared_at, the share scope (which of summary / transcript / audio / action_items the owner shared) and a fetch_id. To read one, pass BOTH session_id and owner_id to get_session, get_transcript or get_action_items (or fetch_id to fetch). Shared sessions are read-only and are not covered by search_sessions or search.

limit?, cursor?

Read
list_session_access

For one of the user's own sessions, list the people who have access (recipient_id, name, email, shared_at, how they got it) and the emailed invites nobody has accepted yet. An existing share link cannot be read back; share_session without emails creates one.

session_id

Write tools

Limited, user-scoped, and non-destructive

Write
update_action_items

Write back the structured action items for a Wave session. The array fully replaces the current list — preserve items by keeping their `id`. Items you add without an `id` get one assigned. Pass `expected_version` (from a prior get_action_items call) to reject the write if the user edited in between. Defaults `source` to "agent" for new items you add.

session_id, action_items, expected_version?

Write
create_folder

Create a folder for organizing sessions. Folders are non-exclusive (a session can be in many folders). If a folder with the same case-insensitive name already exists, returns it instead of erroring — safe to retry.

name, color?

Write
add_session_to_folder

Add a session to a folder. Non-exclusive: a session can belong to many folders simultaneously. Idempotent — calling this for a session already in the folder is a no-op.

session_id, folder_id

Write
remove_session_from_folder

Remove a session from a folder. The session itself is not deleted; only the folder link is removed.

session_id, folder_id

Write
update_folder

Rename, recolour, pin, reorder, or change the session sort of a folder. Pass any of `name` (trimmed, 1–100 chars), `color` (hex "#RRGGBB", or null to clear it), `pinned` (boolean; pinned folders sort first everywhere), `sort_order` ("newest" | "oldest" | "title" — the remembered sort for the sessions inside the folder), or `order` (integer from 0 to 2^53 - 1; manual position, folders with an order sort ascending before those without) — at least one is required; anything omitted is left unchanged. Membership is not touched: use add_session_to_folder / remove_session_from_folder for that. Use list_folders to find the folder_id.

folder_id, name?, color?, pinned?, sort_order?, order?

Write
delete_folder

Delete a folder. Only the folder itself is removed — the sessions in it are never deleted and stay in any other folders they belong to. This cannot be undone, so confirm with the user before deleting a folder they did not explicitly ask to remove. Use list_folders to find the folder_id.

folder_id

Write
share_session

Share one of the user's own sessions with other people. This grants them read access to the session, so confirm with the user before calling unless they clearly asked to share it. With `emails` (1–10 addresses, optional `message` up to 500 characters), Wave emails each person an invite and returns which addresses were sent and which were skipped (with a reason). Without `emails`, returns a share link (app.wave.co/i/…, valid 30 days) that anyone signed in to Wave can use to get access.

session_id, emails?, message?

Write
unshare_session

Remove access to one of the user's own sessions. Pass exactly one of: `recipient_id` (from list_session_access) to remove that person; `email` to cancel a pending emailed invite; or `everyone: true` to remove every person and reset the share link, so the old link stops working (a new, unsent link is returned). Confirm with the user before removing access they did not explicitly ask to remove.

session_id, recipient_id?, email?, everyone?

Try it

Start with a real question, not a demo query.

Once Wave is connected, ask naturally. Your assistant chooses the right tools and sees your own sessions and sessions shared with you.
Meeting prep
01

“Prep me for my next call with Acme. Use our last three meetings and surface unresolved decisions.”

Exact recall
02

“Find the exact part where we discussed launch timing and quote it with the speaker’s name.”

Weekly synthesis
03

“Summarize all of my meetings this week, grouped by project, with decisions and open questions.”

Action-item write-back
04

“Turn yesterday’s product-review decisions into action items, assign owners when named, and save them to the session.”

Automatic organization
05

“Create a “Customer research” folder and add every customer interview from this month.”

Scoped research
06

“Only use sessions in my “work” folder. Find every discussion about retail media strategy.”

Protocol

Standards-based from transport to sign-in.

Wave uses Streamable HTTP, standard MCP version negotiation, and OAuth discovery so modern clients can connect without custom setup logic.
Endpoint
https://mcp.wave.co
Protocol
MCP 2025-11-25, compatible with 2025-06-18 and 2025-03-26
Transport
Streamable HTTP · JSON-RPC
Authentication
OAuth 2.0 + PKCE (preferred) or wave_mcp_… bearer token
Discovery
https://mcp.wave.co/.well-known/oauth-authorization-server
https://mcp.wave.co/.well-known/oauth-protected-resource
Data boundary
Reads and focused writes are scoped to the authenticated user’s own sessions, folders, and action items, plus read-only shared sessions.
Write boundary
No session deletion. No recording or transcript edits. Action-item updates support optimistic version checks.

Troubleshooting

The usual fixes, in one place.

Most connection issues come down to the endpoint, an unfinished OAuth window, or client-level action permissions.
My client cannot find or connect to Wave
Confirm the URL is exactly https://mcp.wave.co with no additional path. Choose Streamable HTTP when your client asks for a transport. Some desktop clients need a full restart after adding a remote server.
Authentication keeps looping or fails
Finish the Wave sign-in in the same browser window your client opened. If you use a manual token, verify it starts with wave_mcp_ and has not been revoked in Wave settings.
The connector returns no sessions
Use list_sessions for your own sessions and list_shared_sessions for sessions shared with you. Confirm you authorized the account that holds the recordings. Newly completed sessions may need a few minutes to finish processing and indexing.
Write tools are missing or disabled
Your client or workspace admin may allow read tools while disabling actions. In ChatGPT managed workspaces, admins can review Action control and refresh the app’s tool list. On Pro, custom apps currently use read/fetch permissions only.
Search results feel too broad
Use natural-language context and add a folder or exact tag filter. For example: “Only search the work folder for sessions tagged roadmap, and require all tags.”
Ready in a few minutes

Put your meeting memory to work.

Connect with OAuth, choose the tools your client may use, and start asking questions across your Wave library.

Open MCP settings