Your meetings,
inside your assistant.
MeetNotes is a remote MCP server. Connect it to Claude and ask across your own meeting history: what was decided, who owns what, and the exact words — each answer linked to the passage it came from.
One URL
https://getmeetnotes.com/mcp
Streamable HTTP, stateless. The server negotiates the protocol version with your client. mcp.getmeetnotes.com is reserved as a future alias and is not live yet — use the address above.
It reads only what your MeetNotes account can already see: your own recordings and meetings, plus meetings shared into a workspace you belong to, under the same rules the app applies. Recording still happens in the MeetNotes app; the server never asks your assistant for a microphone. An audio file you attach in the chat can be sent for transcription — see attach and transcribe.
Sign in once, in your browser
Compatible assistants use the same OAuth flow: paste the URL, a MeetNotes page opens in your browser, you sign in the way you already do on the web (email code, Google or Apple) and approve the connection. No password or key is typed into the assistant, and you can end the connection from the assistant's own settings.
Claude
Available now. Connect MeetNotes to Claude: open connector settings, name it MeetNotes, paste the URL, then connect your account.
Claude Code:
claude mcp add --transport http meetnotes https://getmeetnotes.com/mcp
then run /mcp inside Claude Code and choose Authenticate next to meetnotes.
Grok Bot
Available now. Grok Bot adds servers from the chat: type “Add a custom MCP server called MeetNotes at https://getmeetnotes.com/mcp” (say custom, or it installs a catalogue plugin instead), click Add it, then Authorize on the card and sign in; the same OAuth flow. Check it under Settings → Plugins → Yours. Step by step.
Grok on grok.com: Connectors → New Connector → Custom, paste the URL above and sign in. Step by step.
VoiceOS
VoiceOS connects an MCP server from its URL: open Integrations → Custom → Build anything, paste the URL above, then sign in to MeetNotes when asked. Step by step.
ChatGPT
Available now in ChatGPT's apps directory: MeetNotes for ChatGPT. Click Connect and sign in; the same OAuth flow as above. The listing exposes the standard search and fetch tools alongside the MeetNotes tools below.
Any other MCP client, or a server of your own
The server publishes standard metadata, so a client that supports OAuth 2.1 with PKCE and dynamic registration connects without setup:
https://getmeetnotes.com/.well-known/oauth-protected-resource
https://getmeetnotes.com/.well-known/oauth-authorization-server
Apps that ask for a token instead of signing in
Some AI apps ask for a server URL and a Bearer token rather than signing you in. Use the server URL above and a personal key: sign in at getmeetnotes.com/app/assistants, choose Create key under "Other AI apps", and paste it as the Bearer token. It opens your own account, the same as signing in. Delete it on that page and it stops working at once.
Authorization: Bearer mk_user_...
Businesses building transcription into their own product use a partner API key (mk_live_...) the same way; that connection acts as the partner account, not a personal one.
Eleven tools: eight read,
one export, one import,
one notetaker
| Tool | What it does |
|---|---|
meetnotes_get_capabilities | What this connection can do: account, languages, formats, limits, how to add a recording. |
meetnotes_list_recordings | Your recordings and meetings with processing state — find an id, or see whether a recording has finished. |
search | Search your finished meetings by words or meaning; returns overview documents and transcript parts. |
fetch | One document by id: a meeting overview (minutes plus its transcript parts) or one part with exact words and speaker labels. |
meetnotes_get_transcript | The transcript as stored, paged: speaker, timing in milliseconds, and a link to each passage. |
meetnotes_list_actions | Action items with owner, status, resolved due date and the transcript segment they came from. |
meetnotes_export_meeting | A private PDF, Word, Markdown, text or JSON export, or the meeting's original audio recording, with a signed download link that expires after an hour — never a public share link. |
meetnotes_import_audio | Transcribe an audio file attached in the chat: returns a job receipt, the meeting appears in your account, and the same file twice never processes twice. |
meetnotes_invite_notetaker | Send the MeetNotes Notetaker into a Google Meet, Zoom or Teams call from its link, now or at a set time. Returns a job receipt; the minutes follow once the call ends. |
meetnotes_get_job | Status of an export, an import, a notetaker, or a meeting that is still processing. A completed meeting carries its full minutes as Markdown. |
meetnotes_about | Facts about MeetNotes itself — pricing, platforms, the notetaker, comparisons, privacy, languages — generated from this website, with the pages they came from. |
Every tool is bounded to your account: an id you were handed earlier is checked again on every call. Transcript pages hold up to 100 segments or 64 KB; transcript parts returned by fetch hold up to 24 KB of text and carry the meeting's revision, so an edited meeting answers REVISION_CHANGED rather than serving different words under an old id.
Links open the app. Every meeting link a tool returns (url, source_url) is a /open/meeting/… address: tapped on a phone it opens that meeting in the MeetNotes app you are already signed into; on a computer it offers the signed-in web page, with the cited passage's anchor carried across. The web page itself is beside it as web_url.
The minutes arrive in the chat. When meetnotes_get_job reports a meeting completed — an import, a notetaker call or a recording made in the app — the result carries minutes_markdown: the full minutes, every section the meeting has, rendered exactly as the app's own Markdown export, so the assistant shows them without a second call. Very long minutes are cut at 64 KB with a note pointing at the export.
Recording is still done in the MeetNotes app — phone or desktop — and every recording appears in meetnotes_list_recordings; meetnotes_get_job says when it is ready. The two other ways in are an attachment and a call link:
Attach and transcribe
In a compatible client that can pass an audio attachment to a tool, attach a file and say what you want — "transcribe this with MeetNotes". The assistant passes the attachment to meetnotes_import_audio, which answers at once with a job receipt (job_id, status, a link to the meeting) while MeetNotes processes the audio the same way it processes a recording from the app: same transcript, same minutes, same minutes-balance. Ask again in a moment and the assistant checks meetnotes_get_job; once it is completed, the meeting is readable through every other tool and in your MeetNotes app, where it shows the attachment's file name under its title.
- Accepted: audio files —
m4a,mp3,wav,aac,ogg,opus,flac,webm,amr,caf,m4b— up to 300 MB. Video, archives and empty files are refused asUNSUPPORTED_AUDIO. - Once only: the same file attached twice returns the same meeting with
deduplicated: true— it is never processed or charged twice. - Minutes: an import spends your MeetNotes minutes exactly like a recording. On an empty balance the meeting still processes and waits locked until minutes are added; past two hours of locked, unpaid meetings, further imports are refused with
INSUFFICIENT_ALLOWANCE. - Only the chat's own attachments: the server fetches the file from the assistant's file store and nowhere else. It never fetches an arbitrary web address, never follows a link to a private network, and never records the temporary download link.
- Language hints: up to five BCP-47 tags (
en,hi,pt-BR) may accompany the file; the transcript still reports the language actually spoken.
An expired attachment link answers FILE_REFERENCE_EXPIRED: attach the file again rather than retrying. Whether a given ChatGPT client hands over attachments this way depends on that client; the MeetNotes app's own import remains the fallback for everything else.
Send the notetaker to a call
Paste a Google Meet, Zoom or Microsoft Teams link into the chat and ask for MeetNotes to join — now, or at a time you name. The assistant calls meetnotes_invite_notetaker, which books the same bot the app's own "Invite the notetaker" button does and answers with a job receipt. The bot joins as a visible participant named MeetNotes Notetaker; the host admits it from the waiting room. It records until the call ends, the recording is processed like any other, and the next meetnotes_get_job after that carries the minutes.
- Same rules as the app: at most two invitations waiting or in a call per account, a join booked at most 7 days ahead, and the same link while an invitation is active returns that invitation with
deduplicated: true. - Minutes: a recorded call spends your MeetNotes minutes like a recording; an empty balance past the locked backlog is refused with
INSUFFICIENT_ALLOWANCEbefore anything is booked. - Leaving or cancelling is done from the MeetNotes app, where the invitation also appears.
- Language:
output_language(a tag or a name, for both the notetaker and an attachment) sets the language the minutes are written in; omitted, your account's preference applies.
Download a meeting's recording
Ask for the audio — "get me the recording of this morning's meeting so I can forward it" — and the assistant calls meetnotes_export_meeting with format: "audio". The result is a signed link to the original recording, valid for one hour; the file itself never passes through the chat. A recording in a format that does not play everywhere is delivered as MP3.
- Your own recordings only: the person who recorded the meeting can download its audio. A workspace member who can read the minutes cannot take the recording.
- Locked meetings: a meeting waiting for minutes gives no audio until it is unlocked in the app (
INSUFFICIENT_ALLOWANCE). - Deleted recordings: if the recording was deleted in the app, or the account does not keep recordings after processing, the answer says so; the minutes and transcript can still be exported.
- Checked again at download: a link stops working if the meeting is deleted or locked, or its recording removed, before it is opened.
Ask about MeetNotes itself
meetnotes_about answers questions about the product — what it costs, which platforms it runs on, how the notetaker works, how it compares with other tools, how it treats privacy, which languages it handles — with text generated from this website at build time and the pages it came from, so an assistant repeats what the site says and nothing it does not. Meetings recorded with a clinical format (doctor consultations, operation notes) are never available through an assistant; they stay in the app. On pricing it states only the free grant: the plugin never displays plans or prices, never sells anything and links to no checkout.
Scopes
| Scope | Grants |
|---|---|
meetings:read | Read capabilities, recordings, meeting documents and transcripts. |
actions:read | Read action items from accessible meetings. |
exports:create | Create private exports of accessible meetings, and download links to the recordings of your own meetings. |
transcripts:create | Send an attached audio file for transcription (meetnotes_import_audio) or the notetaker into a call (meetnotes_invite_notetaker). Both spend the account's minutes. |
Errors
A failure comes back as a small JSON object in the tool result — code, message and retryable — never as an empty answer, so an assistant can tell "nothing found" from "not allowed".
| Code | Meaning |
|---|---|
RESOURCE_NOT_FOUND | No such meeting, document or job in this account — including anything that belongs to somebody else — or a recording that is no longer stored. |
ASSET_NOT_READY | The meeting is still processing. Check meetnotes_get_job and try again later. |
INSUFFICIENT_ALLOWANCE | The meeting is locked until minutes are added in the MeetNotes app. |
REVISION_CHANGED | The meeting was edited after that id or cursor was issued. Fetch it again for current ids. |
PERMISSION_DENIED | The connection was not granted the scope this tool needs, or the request is for the audio of a meeting somebody else recorded. |
INVALID_INPUT | An argument was malformed — a cursor this server did not issue, or an attachment from a source that is not accepted. |
UNSUPPORTED_AUDIO | The attachment is not an audio file MeetNotes can process (video, archives and empty files included). |
FILE_TOO_LARGE | The attachment is over the 300 MB limit. |
FILE_REFERENCE_EXPIRED | An export link is past its hour, or an attachment link has expired. Create the export, or attach the file, again. |
RATE_LIMITED | More than 60 tool calls in a minute for one account. Wait and retry. |
PROCESSING_FAILED | Processing of that meeting failed; retry it from the app. |
DEPENDENCY_UNAVAILABLE | A temporary server-side problem. Retry shortly. |
What the assistant sees
Meeting text, minutes and links for the meetings your account can open — nothing about other accounts, no billing details, and no voice data unless you ask for the recording of a meeting you recorded, which comes as a private download link rather than into the chat. Content that has already been returned into a conversation stays in that conversation; disconnecting stops any further access. Export links are signed, tied to your account, and expire after an hour. An attached audio file is fetched once, kept under the same rules as a recording made in the app, and its temporary download link is never stored or logged. A notetaker joins only the one call link you gave it, from our own servers.
Questions: support@getmeetnotes.com.
