contacts_search
ChatGPTSearch the workspace's contact book by name, role or company, or list contacts (most recently met first) when query is omitted. Returns compact cards: name, role, company, primary email, and how many meetings the contact appears in.
contacts_update
ChatGPTEdit one contact's card: any of name, email, role or company. Passing name also confirms it across the contact's meetings (participant labels are updated and placeholder speaker names cleared); email replaces the contact's primary address. Returns the updated card.
drive_rename
ChatGPTRename one Drive file. Owner-only. Pass if_match (the etag from drive_search) to refuse the rename when the file changed since that read, instead of silently overwriting.
drive_search
ChatGPTSearch the workspace's Drive files by name, or list them when query is omitted. Returns compact rows: name, type, size, tags, whether the caller owns the file, an etag for safe renames, and a meeting.ai link (the file page is not live yet, so present the name rather than the link). This is paginated: when next_cursor is not null, call again with the same query and pass next_cursor as cursor, and keep going until next_cursor is null — only then do you have every matching file.
drive_tag
ChatGPTApply one or more existing tags to a Drive file, by tag name or id. Tools apply existing tags only — creating, renaming or deleting tags stays in the web app. An unknown tag is refused with the list of available tags.
media_audio_gen
ChatGPTTurn text into spoken audio using your coins. Pick a voice to fit the tone, or leave it out for the default. Saves a playable audio file in the active workspace Drive and returns its login-required link. Each call creates a new recording.
media_image_gen
ChatGPTGenerate an image from text using your coins. Saves it in the active workspace Drive and returns the image plus its login-required Drive link. Each call creates a new image.
meetings_create
ChatGPTStart a new meeting from a URL — two kinds are accepted: a live Zoom, Google Meet, or Microsoft Teams invite link (the Meeting.ai notetaker joins the call), or a Google Drive file link to an audio/video recording (it gets transcribed; the file must be downloadable by link viewers). Returns the new meeting_id immediately — the notetaker join and the transcription run in the background, so call meetings_notes with that meeting_id to follow progress and collect the notes when ready. Meetings are billed per the workspace's plan; a depleted balance comes back as a fixable error stating the balance is depleted.
meetings_export
ChatGPTExport one meeting to the user's Drive and return a meeting.ai link behind their login. Formats: "pdf" (the full Visual Notes & Summary document), "summary_only" / "transcript_only" / "summary_and_transcript" (Markdown). The file is saved to the user's Drive and tagged "MCP Deliverables". PDF is prepared in the background: the first call returns status "processing" — call again with the same arguments to collect status "ready" with the drive_link; the Markdown formats return "ready" immediately. Once "ready" is returned the file is already saved in the user's Drive: do NOT call meetings_export again for the same meeting and format — every repeat call creates a duplicate file. The meeting must be finished.
meetings_notes
ChatGPTOne meeting in full: its facts (title, status, when it happened, duration, participants, workspace, and the caller's role) plus the AI notes — every section (summary, decisions, action items, ...) with its id, title, and content. Each section's id is the handle meetings_update_notes edits by. A meeting still running or processing is not an error: status reflects that, metadata is always returned, and for a meeting in progress the sections carry the live rolling notes so far (live true at the top level, is_live per section) — live notes are provisional and will still change until the meeting finishes, so re-call to get fresher notes. A meeting with no notes yet returns its metadata with empty sections.
meetings_search
ChatGPTSearch the workspace's meetings by keyword across titles, notes and transcripts, or list meetings in a date range when query is omitted. Returns compact hits with the matching snippets and the caller's role on each meeting; use meetings_notes or meetings_transcript_search for detail. This is paginated: when next_cursor is not null, call again with the same query, dates and limit and pass next_cursor as cursor, and keep going until next_cursor is null — only then do you have every matching meeting. A page can hold fewer meetings than limit before the end. total_count is approximate (it can slightly over-count until workspace-scoped search is fully enabled).
meetings_share
ChatGPTTurn on a meeting's public share link and return the meeting.ai URL. Owner only. The link is PIN-protected by default; pass require_pin false to open it to anyone with the URL. A public link exposes the meeting's notes and, by default, its transcript to anyone who has the link (and the PIN, when one is required). Sharing by email is not available through this tool — that stays in the web app.
meetings_stop
ChatGPTStop the recording of an ongoing meeting where the Meeting.ai notetaker is in the call — a live Zoom, Google Meet, or Microsoft Teams meeting. Owner only. The notetaker leaves the call and the meeting is finalised, so its transcript and notes are generated from what was captured up to that point — call meetings_notes with the same meeting_id to follow processing and collect the notes when ready. Use this only for a meeting currently being recorded by the notetaker; if the notetaker has already left or the meeting has ended, this comes back as a fixable error. Meetings from an uploaded file or the mobile/web app are not stopped this way.
meetings_tag
ChatGPTApply one or more of the caller's EXISTING tags to a meeting, by name. This never creates tags — an unknown or ambiguous name comes back as a fixable error and NOTHING is applied; create or rename tags in the web app. Returns all of the caller's tags on the meeting afterwards.
meetings_transcript
ChatGPTRead one meeting's FULL transcript in time order, one page at a time. Returns segments (speaker, start/end seconds, text) plus a next_cursor. This is paginated: pass the returned next_cursor back in the cursor argument to get the following page, and keep going until next_cursor is null — that null means you have the whole transcript. To regenerate or edit a meeting's notes from its transcript, first page through to the end here (next_cursor null) so you have the complete text, then write the result back with meetings_update_notes. Use meetings_transcript_search instead when you only need the spots where a specific phrase was said. Segments reflect the transcript so far for a meeting still in progress.
meetings_transcript_search
ChatGPTFind where something was said inside one meeting. Returns the matching transcript segments with speaker and start/end seconds, in time order. This is paginated: when next_cursor is not null, call again with the same meeting and query and pass next_cursor as cursor, and keep going until next_cursor is null — only then do you have every match. total_matches counts all matches.
meetings_update_notes
ChatGPTEdit a meeting's AI notes and/or its title, and/or redraw its visual note. Owner only. To replace notes, pass sections as an array of { id, text } — the id is a section's id from meetings_notes (call it first); each listed section's text is replaced. An unknown id edits nothing and returns the meeting's valid section id+title pairs. Pass title to rename the meeting. The visual note redraws by default from the meeting's current notes UNLESS the only change is the title (a rename alone never redraws); pass regenerate_visual_note:false to skip it, or true to force it. Redrawing spends coins on the user's own balance; a depleted balance comes back as a fixable error stating the balance is depleted. Edits are versioned like a web edit, so history is preserved and existing exports may go stale.
recipe_visual_note
ChatGPTTurn content into a house-styled visual note using your coins. Saves the image to the active workspace Drive and returns it with a login-required Drive link. Each call generates a new image.
workspace_list
ChatGPTThe workspaces this account belongs to, and which one is active for this connection.
workspace_set_active
ChatGPTChange which workspace this connection reads from by default. Only changes this connection's default; it never moves or edits meetings.