DocumentationMCP Server

MCP Server

Connect AI tools like Claude and Cursor to your note1 meetings with the note1 MCP Server

Updated on October 13, 2026 to reflect note1's current plans and features.

note1 MCP Server

Connect your AI tools to note1 and work with your meetings from anywhere: search past conversations, pull summaries and transcripts, check your calendar, and schedule recordings — directly from Claude, Cursor, Slackbot, or any MCP-compatible client.

What is MCP?

Model Context Protocol (MCP) is an open standard that lets AI applications securely connect to external tools and data. The note1 MCP Server exposes your meetings as tools your AI assistant can call — always with your own note1 permissions, so private meetings stay private.

Server details

The note1 MCP Server is available at:

https://api.note1.ai/mcp

It supports two authentication methods:

  • OAuth — the browser-consent flow used by claude.ai. No setup needed; you'll be asked to log in to note1 and approve access.
  • Personal Access Token (PAT) — a long-lived API token for clients that send auth headers (Claude Desktop, Claude Code, Cursor).

Related resources:

  • GitHub: note1-ai/note1-mcp — connector source and setup examples
  • npm: @note1ai/mcp — npx -y @note1ai/mcp stdio bridge for command-based MCP clients
  • MCP Registry: ai.note1/mcp — official registry listing

Create a Personal Access Token

  1. Sign in to your note1 account.
  2. Go to Account → API tokens.
  3. Enter a name (for example, "Claude Desktop") and select Create token.
  4. Copy the token immediately — it is shown only once.

Tokens act as you, with your exact meeting permissions. You can revoke them anytime from the same page.

Configuration by platform

Claude (web)

Claude connects via OAuth — no token needed:

  1. Open Claude Settings → Connectors.
  2. Select Add custom connector.
  3. Name it note1 and enter the URL: https://api.note1.ai/mcp.
  4. Leave the OAuth Client ID and Secret fields empty — registration is automatic.
  5. Select Add. Your browser opens a note1 consent page — select Allow.

You can revoke Claude's access anytime under Account → Connected apps. OAuth access is limited to the scopes you select during consent: read meetings, read calendar, manage meetings, and manage team integrations (integrations:write).

Claude Desktop

Add the following to your claude_desktop_config.json (Settings → Developer → Edit Config), replacing n1_YOURTOKEN with your Personal Access Token:

{
  "mcpServers": {
    "note1": {
      "command": "npx",
      "args": ["-y", "@note1ai/mcp"],
      "env": { "NOTE1_API_TOKEN": "n1_YOURTOKEN" }
    }
  }
}

Restart Claude Desktop after saving. Node.js is required. The @note1ai/mcp package (source) is a thin bridge to the hosted server — clients with native remote support can use the URL directly instead.

Claude Code

claude mcp add note1 --transport http https://api.note1.ai/mcp \
  --header "Authorization: Bearer n1_YOURTOKEN"

Cursor

Add to ~/.cursor/mcp.json (or a project's .cursor/mcp.json):

{
  "mcpServers": {
    "note1": {
      "url": "https://api.note1.ai/mcp",
      "headers": { "Authorization": "Bearer n1_YOURTOKEN" }
    }
  }
}

Slackbot

If your Slack workspace is connected to note1 (Team → Integrations), no token is needed — Slack identifies you automatically by your Slack email:

  1. Open a DM with Slackbot.
  2. Select the Apps button in the Slackbot toolbar.
  3. Add note1 from the list.
  4. Ask Slackbot things like "what meetings did I have this week?"

Your Slack email must match your note1 account email in the connected workspace.

For automatic meeting recaps, /n1 private search, @note1 thread answers, and channel controls, see the note1 Slack integration.

Available tools

ToolDescription
note1_search_meetingsSearch your meetings. Mode search returns ranked source snippets; mode analysis returns an AI answer with cited sources.
note1_list_meetingsBrowse meetings without a query — filter by status and date range, paginated.
note1_get_meetingFetch one meeting: summary overview, sections, participants, status, its recurring series (previous and next occurrence), and the dashboard link.
note1_get_meeting_insightsA meeting's derived data: speakers with talk-time share, the questions asked and answered, the topics covered with time ranges, topic-tracker mentions, or the highlights. Use instead of the transcript for "who spoke most" or "what was asked".
note1_export_meetingExport a meeting's summary and/or full speaker-attributed transcript as paste-ready markdown or structured JSON.
note1_get_accountYour note1 account: plan, seats, what's left of this period's meeting allowance, the recording upload size limit, and the teams you belong to (with the active one). Check it before uploading a recording.
note1_list_action_itemsThe tracked action items you can see: for one meeting or the whole team, open by default, optionally only yours. Each with status, owner, meeting, date and its page, the tickets it is linked to (tool, identifier, link and whether the ticket was closed), and a "possibly done" hint when note1 has a pending suggestion that it is finished.
note1_create_action_itemCreate an action item under a meeting or with none, assigned to you, a named person, or nobody.
note1_update_action_itemChange an action item's text, description or owner, or mark it open, completed or dismissed. Marking an item completed also closes or asks about its linked tickets according to the team's settings; set closeLinkedTickets to close the linked tickets that are waiting for a decision, were declined or failed to close.
note1_list_integrationsSlack and the task tools (Linear, Jira, GitHub, Asana, Trello, Todoist, Motion, Notion) with their connection state (active or needs reconnecting), workspace, target and settings (for GitHub also the allowed repositories and what happens when note1 is unsure which one fits), and whether you can manage them. Any team member can read this.
note1_list_integration_optionsThe targets you can pick for one integration: projects, boards or databases, plus Trello's done lists and the suggested one, or Slack's channels.
note1_update_integrationChange an integration's target (by id or exact name; for GitHub the default repository), GitHub's allowed repositories (ids or exact names) and whether note1 leaves a suggestion or uses the default repository when it is unsure which one fits, match mode, auto-create, what happens when a ticket is closed or an item is marked done in note1, Trello's done list (id, name or none), or Slack's default channel and posting default. Admin only; needs integrations:write.
note1_connect_integrationGet the link that connects Slack or a task tool. It expires in 10 minutes and must be opened in a browser. Motion uses an API key, so it returns the dashboard link instead. Admin only; needs integrations:write.
note1_disconnect_integrationDisconnect an integration. Needs confirmed: true, so the assistant asks you first. Admin only; needs integrations:write.
note1_sync_action_itemsQueue the ticket sync for one action item (retry) or for every item of a meeting. Needs meetings:write and edit access to the item.
note1_decide_ticket_suggestionAct on an action item's pending ticket suggestion: link the existing ticket, create a new one (for GitHub, optionally in the repository you name), or dismiss it. Replies "Already handled" if it was decided meanwhile. Needs meetings:write.
note1_list_topic_trackersThe topic trackers you can see (team and your own) and where their phrases came up recently across meetings, newest first, with quotes.
note1_create_topic_trackerCreate a topic tracker: a named set of phrases note1 watches across meetings. Personal by default; a team tracker takes an admin.
note1_update_topic_trackerRename a tracker, or add or remove the phrases it watches.
note1_delete_topic_trackerDelete a tracker; its phrases are no longer watched.
note1_get_meeting_notesA meeting's notes in two layers: your personal notes (talking points, reminders; private to you) and the shared agenda. Every block carries a ref for updates.
note1_update_meeting_notesChange a meeting's notes block by block (insert under a heading or after a block, update, delete), or replace the whole document with markdown. Personal notes by default; the shared agenda needs edit access.
note1_get_calendarList your calendar events with recording status.
note1_get_scheduling_linkGet a prefilled calendar link (Google Meet or Teams) with note1 pre-invited — the human-in-the-loop way to set up a recorded meeting.
note1_schedule_recordingSend note1's recording bot to an existing calendar event or any meeting link at a given time. Does not create calendar events.
note1_update_meetingEdit a note1 meeting: title, bot time or link, summary style, language, video — optionally for a whole recurring series.
note1_cancel_recordingCall off the recording bot for a meeting or its series.
note1_get_recording_upload_optionsCheck the upload policy and get a workspace-specific browser link without reserving a meeting.
note1_upload_recordingReserve one recording upload and get limited HTTP transfer instructions. Recording bytes stay outside MCP.
note1_get_recording_uploadRead the original uploader's acknowledged chunks, byte progress, and actual meeting state.
note1_complete_recording_uploadConfirm a fully transferred recording and start the existing processing pipeline. Safe to retry.
note1_cancel_recording_uploadCancel a pending recording upload. Reports a conflict if completion already won.

Read tools run without confirmation prompts; tools that change something (action items, topic trackers, scheduling, updating, cancelling) ask for approval in clients that support it (like Slackbot). Search matches by keyword and by meaning on every plan.

Managing team integrations (note1_update_integration, note1_connect_integration, note1_disconnect_integration) is admin-only, and an OAuth connection needs the integrations:write scope, which you grant on the consent page. Personal access tokens carry every scope. Listing integrations only needs meetings:read.

Example prompts

  • "What did we decide about pricing in last week's meetings?"
  • "Export the transcript of yesterday's standup as markdown"
  • "Which of my meetings tomorrow are being recorded?"
  • "Who spoke the most in yesterday's standup, and what questions went unanswered?"
  • "What are my open action items? Mark the deck one as done."
  • "Start tracking mentions of pricing across our meetings"
  • "What changed since the previous occurrence of this meeting?"
  • "Record my 3pm meeting — here's the link: https://meet.google.com/..."
  • "Set up a meeting for Thursday at 2pm" (returns a scheduling link to click)
  • "Cancel the recording for Friday's 1:1, this week only"

Upload an existing recording

All five recording-upload tools require meetings:write, including policy and progress. Get the user's approval before reserving, transferring, or canceling a recording. Uploads are private by default, contain exactly one immutable original audio/video file, and do not launch a meeting bot. The effective size limit comes from the workspace policy (initially 2,000,000,000 bytes).

Direct transfer from a file-capable client

Your assistant needs access to the local file and an HTTP client that can send its exact byte slices. The MCP connection alone does not provide either capability. Do not send file bytes, base64, or local filesystem paths as tool arguments.

  1. Call note1_get_recording_upload_options to check policy before reserving.
  2. Call note1_upload_recording with metadata only. Keep the UUID and file metadata unchanged for retries:
{
  "requestId": "fe926ddd-03bf-4917-8f1b-b44d3f290049",
  "title": "Customer interview",
  "file": { "name": "interview.wav", "size": 123456, "mimeType": "audio/wav" },
  "language": "en",
  "style": "interview"
}

An optional teamId overrides the connected account's active workspace, subject to membership checks. The result contains teamId, meetingId, uploadId, fileId, the effective limit, and transfer instructions. Initialization reserves a meeting; it does not transfer a recording.

  1. Outside MCP, send each server-planned slice from offset for exactly size bytes. Use the returned HTTP method (POST, not PUT), replace only {index} in urlTemplate with the chunk's integer index, and include the returned headers: Content-Type: application/octet-stream and X-Note1-Upload-Token. Do not use an account bearer or put the upload token in a URL. Identical chunk retries are safe; changed bytes are rejected.
  2. After a lost response, call note1_get_recording_upload with uploadId and the same teamId to check acknowledged chunks. Retry initialization with the same requestId and frozen file metadata to renew an expired transfer permission or recover initialization; do not create a second request.
  3. Once all chunks are acknowledged, call note1_complete_recording_upload with uploadId, fileId, and the same teamId. It returns the actual meeting state and link. An accepted recording may still be processing: use note1_get_meeting when the transcript, summary, and action items are ready. Repeated completion does not queue another job.

The private upload-only permission lasts one hour. Renewal rotates it and invalidates the previous permission without extending upload retention. It cannot read recordings, complete/cancel an upload, or edit meetings. Revoking a PAT or OAuth connection alone does not immediately invalidate an already issued upload permission; expiry, rotation, cancellation, completion, or removal from the workspace does. Treat the returned upload header as a secret and do not paste it into public logs or chats.

Browser fallback

If your client cannot read the file or send HTTP byte slices, use the browser URL from note1_get_recording_upload_options before initialization. Sign in, verify the requested workspace, explicitly switch if needed, then choose one recording and submit the existing upload form. Merely opening the page or form creates no meeting.

This is a new browser upload, not cross-tab resume of a direct reservation. If a direct upload already exists, continue it or confirm cancellation before starting another upload; starting over can consume another meeting allowance. Completion opens the normal meeting page. There is no embedded MCP widget or automatic callback into your chat.

Usage and cancellation

Initialization reserves one meeting allowance; normal storage, transfer, and processing accounting applies. note1_cancel_recording_upload cancels only a pending upload and does not refund the meeting allowance or transfer usage. If completion already won, cancellation returns a conflict: check note1_get_recording_upload and open the retained meeting instead of claiming cancellation.

The @note1ai/mcp npm connector is only a bridge to these hosted tools. No new connector release is needed; refresh your client's tool list after the server is updated.

Permissions and privacy

  • Every tool acts as you: search results, transcripts, and calendar data follow your note1 permissions. Meetings you can't see in the dashboard don't appear in tool results either.
  • OAuth connections and tokens are managed under Account → API tokens; revoking cuts authenticated tool access immediately. An already issued upload-only permission follows the expiry/revocation rules above.
  • note1 holds no calendar write permissions — scheduling tools control note1's recording bot only and never create or modify calendar events. For creating events, note1_get_scheduling_link returns a link you open in your own calendar.

Troubleshooting

401 / authentication errors

  • Check the token is passed as Authorization: Bearer n1_... and hasn't been revoked (Account → API tokens shows last-used times).
  • For claude.ai, reconnect the connector — OAuth access may have been revoked.

A recently added tool doesn't appear

  • AI clients cache tool lists per session. Start a new conversation, or disconnect and reconnect the server (Claude Desktop: restart the app).

"This meeting has no transcript file"

  • The meeting may still be processing, or it never recorded. Check its status on the meeting page.

Slackbot doesn't offer note1

  • The workspace connection may predate MCP support: a team admin should reconnect Slack from Team → Integrations, then re-add note1 in Slackbot's Apps tab.
Updated 26 days ago
Did this page help you?