AgentStack
MCP verified MIT Self-run

Mymeet Mcp Server

mcp-mymeetai-mymeet-mcp-server · by MyMeetAI

MyMeet MCP Server — Connect your AI assistant to your meetings

No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add mcp-mymeetai-mymeet-mcp-server

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Mymeet Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

MyMeet MCP Server

English | [Русский](README.ru.md)

Connect your AI assistant to your meetings. Record, transcribe, search, analyze, and export meetings from Google Meet, Zoom, Microsoft Teams and 5 more platforms — directly from Claude, Cursor, Codex, or any MCP-compatible client.

  • 🧰 11 tools — list, search, check status, summarize, transcript, download, record, rename, re-analyze, edit, delete
  • 🗂️ 11 analysis templates — sales, HR, 1:1, research, protocol, medical, and more
  • 🔌 Two ways to run — locally over stdio (npx, zero config) or against a remote server over HTTP
  • 🔑 Simple auth — your MyMeet API key (an env var locally, Authorization: Bearer … over HTTP)
  • 📦 Published as @mymeet/mcp-server · Node ≥ 18 · built on the official MCP SDK

> Need a key first? Get your API key at app.mymeet.ai/settings (or email hello@mymeet.ai for B2B access), then pick a setup below.


Contents

  • [Which setup should I use?](#which-setup-should-i-use)
  • [Option 1 — Local (npm, stdio)](#option-1--local-npm-stdio)
  • [Option 2 — Remote (HTTP)](#option-2--remote-http)
  • [Universal setup (any MCP client)](#universal-setup-any-mcp-client)
  • [Tools](#tools)
  • [Templates](#templates)
  • [Supported platforms](#supported-platforms)
  • [Example prompts](#example-prompts)
  • [Configuration](#configuration)
  • [Self-hosting the remote server](#self-hosting-the-remote-server)
  • [How it works](#how-it-works)
  • [Development](#development)
  • [License](#license)

Which setup should I use?

| | Local — npm / stdio | Remote — HTTP | | -------------- | -------------------------------------- | ---------------------------------------------- | | Install | npx, runs on your machine | nothing — just point at a URL | | Best for | Claude Desktop, Claude Code, Cursor, Codex | Team/hosted setups, browser clients | | Auth | MYMEET_API_KEY env var | Authorization: Bearer | | Hosting | n/a | use hosted mcp.mymeet.ai or self-host |

Both expose the exact same tools — choose whatever your client supports. Using a client that isn't listed below? Jump to [Universal setup](#universal-setup-any-mcp-client).


Option 1 — Local (npm, stdio)

The server runs on your machine through npx; your API key lives in the client config and is sent only to the MyMeet backend (as X-API-KEY) — never to any third party. Requires Node 18+.

Claude Desktop

Easiest — the .mcpb bundle (one-click). Grab mymeet.mcpb from the releases page (or build it yourself with npm run pack:mcpb), then in Claude Desktop open Settings → Extensions → Advanced → Install Extension…, select the file, and paste your API key into the field — no JSON editing, and the key is stored in your OS keychain.

Or configure it manually via npx — edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "mymeet": {
      "command": "npx",
      "args": ["-y", "@mymeet/mcp-server"],
      "env": { "MYMEET_API_KEY": "your-api-key-here" }
    }
  }
}

Claude Code

claude mcp add mymeet --transport stdio -e MYMEET_API_KEY=your-key -- npx -y @mymeet/mcp-server

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "mymeet": {
      "command": "npx",
      "args": ["-y", "@mymeet/mcp-server"],
      "env": { "MYMEET_API_KEY": "your-api-key-here" }
    }
  }
}

Codex (OpenAI)

codex mcp add mymeet --env MYMEET_API_KEY=your-key -- npx -y @mymeet/mcp-server

Or add the server to ~/.codex/config.toml by hand:

[mcp_servers.mymeet]
command = "npx"
args = ["-y", "@mymeet/mcp-server"]
env = { MYMEET_API_KEY = "your-api-key-here" }

> Run /mcp inside Codex to confirm the server connected and see its tools.

> Some other client? Every stdio MCP client reduces to the same three values — see [Universal setup](#universal-setup-any-mcp-client) below.


Option 2 — Remote (HTTP)

No local install — connect your client to the server URL and authenticate per request. Great for browser-based clients and shared team deployments.

Hosted URL: https://mcp.mymeet.ai/mcp

Claude Desktop

Claude Desktop's JSON config works reliably through mcp-remote, which runs locally over stdio and forwards requests to the hosted MCP endpoint. Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "mymeet": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.mymeet.ai/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer your-api-key-here"
      }
    }
  }
}

Claude Code

claude mcp add mymeet --transport http https://mcp.mymeet.ai/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Cursor

{
  "mcpServers": {
    "mymeet": {
      "url": "https://mcp.mymeet.ai/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Codex (OpenAI)

export MYMEET_API_KEY=YOUR_API_KEY
codex mcp add mymeet --url https://mcp.mymeet.ai/mcp --bearer-token-env-var MYMEET_API_KEY

Or add it to ~/.codex/config.toml directly:

[mcp_servers.mymeet]
url = "https://mcp.mymeet.ai/mcp"
bearer_token_env_var = "MYMEET_API_KEY"

> Codex reads the token from the named env var and sends it as Authorization: Bearer … on every request, so the key stays out of the config file.


Universal setup (any MCP client)

Using a client that isn't listed above? Every MCP client reduces to the same handful of values — map them onto whatever shape it expects (a JSON mcpServers object, Codex's TOML [mcp_servers.*] table, or a … mcp add command). Both modes expose the identical tools.

| Setting | Local — stdio | Remote — HTTP | | --------- | ------------------------------ | --------------------------------- | | command | npx | — | | args | ["-y", "@mymeet/mcp-server"] | — | | env | MYMEET_API_KEY= | — | | url | — | https://mcp.mymeet.ai/mcp | | auth | — | Authorization: Bearer |

JSON clients (Claude Desktop, Cursor, VS Code, Cline, Windsurf, Zed, …) — local (stdio) mode:

{
  "mcpServers": {
    "mymeet": {
      "command": "npx",
      "args": ["-y", "@mymeet/mcp-server"],
      "env": { "MYMEET_API_KEY": "your-api-key-here" }
    }
  }
}

For remote (HTTP) mode, clients that support Streamable HTTP directly can swap command/args/env for a url and an auth header:

{
  "mcpServers": {
    "mymeet": {
      "url": "https://mcp.mymeet.ai/mcp",
      "headers": { "Authorization": "Bearer your-api-key-here" }
    }
  }
}

Claude Desktop can use the hosted endpoint through mcp-remote:

{
  "mcpServers": {
    "mymeet": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.mymeet.ai/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer your-api-key-here"
      }
    }
  }
}

TOML clients (Codex) — use the [mcp_servers.mymeet] blocks shown in [Option 1](#option-1--local-npm-stdio) and [Option 2](#option-2--remote-http).


Tools

Read-only tools default to the current user's meetings (scope: "mine"); pass scope: "workspace" to span the whole workspace (owners/admins). Full parameters, responses, and edge cases live in [docs/TOOLS.md](docs/TOOLS.md).

| Tool | Type | Description | |------|------|-------------| | mymeet_list_meetings | read | List meetings (paginated). scope: "workspace" for all workspace meetings | | mymeet_get_meeting_status | read | Processing status: new → queued → processing → processed / failed | | mymeet_get_meeting_report | read | AI summary: key points, action items, decisions (no transcript) | | mymeet_get_transcript | read | Full transcript with speaker labels and timestamps | | mymeet_search_meetings | read | Search across all pages by title, people, date range, or status | | mymeet_download_meeting | read | Export report — md/json inline, pdf/docx as a download URL | | mymeet_record_meeting | write | Schedule/start recording on 8 platforms, with optional cron | | mymeet_rename_meeting | write | Rename a meeting | | mymeet_regenerate_template | write | Re-analyze a meeting with a different template | | mymeet_update_summary | write | Edit AI-generated summary sections | | mymeet_delete_meeting | write | ⚠️ Permanently delete a meeting |

Resource: mymeet://templates returns the list of templates with descriptions, so the assistant can suggest the right one.


Templates

Used by mymeet_record_meeting and mymeet_regenerate_template:

| Template | Use case | |----------|----------| | default-meeting | Standard summary with key points and action items | | sales-meeting | Sales call: objections, next steps, deal signals | | sales-coaching | Sales coaching feedback: technique, improvement areas | | hr-interview | Candidate evaluation: strengths, concerns, key answers | | research-interview | User research: insights, patterns, methodology notes | | team-sync | Per-person updates, blockers, decisions | | article | SEO article/blog post from meeting content | | lecture-notes | Key concepts, examples, study takeaways | | one-to-one | Manager 1:1: feedback, goals, action items | | protocol | Formal protocol: agenda, decisions, responsible parties | | medicine | Medical consultation: anamnesis, symptoms, recommendations |

Supported platforms

Google Meet · Zoom · Microsoft Teams · Yandex Telemost · SberJazz · TrueConf · KonturTalk · Jitsi

The platform is auto-detected from the meeting URL, or set it explicitly with the source parameter.


Example prompts

"Show me my recent meetings"
"What was discussed in my last sales call?"
"Find my meetings with Vladimir from last week"
"Show all workspace meetings that failed processing"
"Record my Zoom meeting tomorrow at 2pm as a sales meeting"
"Re-analyze meeting X using the hr-interview template"
"Download the report for meeting Y as markdown"

Configuration

All configuration is via environment variables.

| Variable | Mode | Required | Default | Description | |----------|------|----------|---------|-------------| | MYMEET_API_KEY | stdio | ✅ (stdio) | — | Your API key. Used in local/stdio mode. | | MYMEET_ENABLE_SEARCH_TOOL | both | — | true | Set to false/0 to hide mymeet_search_meetings. | | MYMEET_API_URL | both | — | https://backend.mymeet.ai | Override the backend base URL (dev/staging). | | PORT | http | — | 3000 | HTTP listen port (Railway sets this automatically). | | MYMEET_OAUTH_ISSUER | http | — | — | OAuth issuer URL. Set together with MYMEET_OAUTH_AUDIENCE to accept OAuth JWTs alongside api keys. | | MYMEET_OAUTH_AUDIENCE | http | — | — | OAuth audience used to validate JWT access tokens. | | MYMEET_SERVICE_SECRET | http | — | — | Shared secret the backend trusts for OAuth-authenticated calls (sent as X-Service-Secret). Required when OAuth is enabled. |

> Auth: In stdio mode the key comes from MYMEET_API_KEY. In HTTP mode each request carries its own API key in Authorization: Bearer … — there is no env-key fallback in HTTP mode, so every client presents its own key. Whichever entry point is used, the server authenticates to the MyMeet backend with the X-API-KEY header.


Self-hosting the remote server

The remote server is the same binary started with --http. It exposes:

| Path | Purpose | |------|---------| | POST /mcp | MCP Streamable HTTP endpoint | | GET /health | Health check (returns ok) |

Docker

docker build -t mymeet-mcp .
docker run -p 3000:3000 mymeet-mcp
# Clients connect to http://localhost:3000/mcp with an Authorization header

The image runs node dist/index.js --http --port 3000 and ships a /health healthcheck.

Railway

railway.json is preconfigured (NIXPACKS build, npm start, /health healthcheck, restart-on-failure). Push the repo and set env vars in the Railway dashboard.

systemd + nginx (bare VM)

Reference units are in [deploy/](deploy/):

  • [deploy/mymeet-mcp.service](deploy/mymeet-mcp.service) — runs node dist/index.js --http --port 3100 under systemd.
  • [deploy/nginx-mcp.conf](deploy/nginx-mcp.conf) — reverse-proxies mcp.mymeet.ai127.0.0.1:3100. SSE-critical settings (proxy_buffering off, long read timeouts) are already in place for Streamable HTTP.
sudo cp deploy/mymeet-mcp.service /etc/systemd/system/
sudo systemctl enable --now mymeet-mcp
sudo cp deploy/nginx-mcp.conf /etc/nginx/sites-available/mcp && \
  sudo ln -s /etc/nginx/sites-available/mcp /etc/nginx/sites-enabled/ && \
  sudo nginx -s reload
# then issue TLS with certbot (see the commented lines in the conf)

How it works

MCP client (Claude / Cursor / Codex / Code / …)
        │  JSON-RPC over stdio  ── or ──  Streamable HTTP
        ▼
   index.ts      parse args, resolve credential, start transport
        ▼
   server.ts     register 11 tools + templates resource
        ▼
   client.ts     native fetch · 15s timeout · retry w/ backoff
        ▼
   https://backend.mymeet.ai/api/   (MyMeet REST API)

Design notes (logging that's safe for stdio, the report/transcript split, client-side search) are documented in [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).


Development

git clone https://github.com/MyMeetAI/mymeet-mcp-server.git
cd mymeet-mcp-server
npm install
cp .env.example .env   # add your MYMEET_API_KEY

| Command | Description | |---------|-------------| | npm run dev | Run from source with tsx (hot reload, stdio) | | npm start | Run the built server in HTTP mode | | npm run build | Bundle to dist/index.js with tsup | | npm test | Run the test suite (vitest) | | npm run test:watch | Tests in watch mode | | npm run lint | Type-check with tsc --noEmit | | npm run pack:mcpb | Build and package the .mcpb desktop bundle (→ mymeet.mcpb) |

To run the remote server locally: npm run build && node dist/index.js --http --port 3000.

To build the desktop bundle: npm run pack:mcpb produces mymeet.mcpb (manifest + built server + production node_modules), installable via Claude Desktop's Install Extension….

License

MIT

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.