Power your agent
คำสั่งของผู้เผยแพร่เอง ไม่ใช่เอนด์พอยต์ของ PlugMCP
Host a copy with our keys and logs.
npx -y [email protected]Claude Code ไม่มีลิงก์ติดตั้งสำหรับคำสั่งแบบโลคัล ให้คัดลอกคำสั่งด้านล่างแล้วรันในเทอร์มินัล
claude mcp add meetmate -- npx -y meetmate@8.25.0รันในเทอร์มินัล
{ "mcpServers": { "meetmate": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}claude_desktop_config.json
URL แบบรีโมตหรือคำสั่งบนเครื่องของคุณ? การติดตั้งสองแบบต่างกันอย่างไร
รันบน PlugMCP
A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.
เปิดBring your own AI agent into Google Meet, Zoom & Discord voice channels — as a real voice participant.
Meetmate does exactly one thing: it gives your AI agent a seat in your meeting. It joins as a participant with a face and a voice — you call its name, it answers; you ask for something, it gets it done. We kept the scope that small on purpose, and polished that one thing relentlessly.
What you need: Node.js ≥ 26 · an Attendee account (Meet/Zoom) or a Discord bot token (Discord — no Attendee, no tunnel) · Soniox (or Deepgram) for speech-to-text · a TTS provider (Fish Audio, ElevenLabs, or OpenAI-compatible) · an LLM endpoint (OpenClaw Gateway or any OpenAI-compatible) · usually ngrok or Tailscale for Meet/Zoom · and Google Meet will ask you to admit the bot. The third-party services may cost money.
In an empty folder:
npm install meetmate
npx meetmate init # the wizard collects your API keys, voice ID, and LLM endpoint — and tells you where to get each
npx meetmate start # starts the server and prints the settings-UI URL
Open the printed URL — it's the settings UI, not the dashboard yet. If anything required is still empty (or you skipped init entirely — the server still starts, just in setup mode), a banner tells you what's missing; fill it in, save, and restart. One exception can't be filled in from the browser: the LLM connection values (gateway URL/token or the OpenAI-compatible key) are environment-only — the init wizard writes them to .env for you, so if you skipped it, add them there. Once it's loaded, open the dashboard at the same host's /, paste a Meet or Zoom URL, and click Join — here's what that screen looks like. Approve the bot's "Ask to join" request in Meet — then call its wake word and start talking. (For Discord there's no URL: pick the Discord transport on the same dashboard and enter the server and voice-channel IDs — the setup guide's Discord section covers creating the bot first.) ngrok/Tailscale and the Meet admission step stay manual; the wizard's closing message and the Setup guide walk you through them.
One screen, one job: get your agent into the room. This is the dashboard, at / — once setup is done, it's one click away from the settings UI (the screen npx meetmate start actually prints the URL for). (Its labels are Japanese today; the captions below tell you what each step does.)
Start. Once setup is done, this is what greets you at /. The big field takes a meeting; Join stays disabled until it has one.
Paste an invite. A bare Meet/Zoom URL works — but so does a whole calendar invite, pasted as-is. Meetmate extracts the meeting URL for you (the green "検出済み" line) and enables Join.
Join and wait at the door. A session card appears the moment you click — the elapsed timer starts right away, next to the WS status and your agent's name. The bot spins up (🔄 起動中...), asks Meet for admission, and the WS status flips to connected once it's in the room.
Admit it in Meet. The one manual step, on your side of the call — approve the bot's "Ask to join" request like any other guest. Then call its wake word and start talking.
The Setup guide walks through the same flow with more detail, from API keys to first hello.
Where the bot runs. The Meet/Zoom bot runs on Attendee cloud by default; you can switch to a self-hosted Attendee (its own URL, key and lip-sync offset) in the settings UI — see Choosing where the bot runs for the resource numbers, the 15 fps ceiling and the Attendee licence note.
Configure from the browser. Every day-to-day setting lives behind that same settings UI — vendor keys, the wake word, the greeting, voice presets, connection tests — organized into tabs, with per-field notes on whether a change applies live or needs a restart. There's no repo to clone or JSON to hand-edit; only connection values like the gateway URL/token (and a couple of generated tokens) stay in .env as environment values.
See the settings reference for the full tab-by-tab breakdown.
From the moment you call its name to the moment it leaves:
A quick exchange, mid-meeting:
You: "Meetmate, can you check what changed in the pricing doc since Monday?"
Meetmate: [soft voice] Got it, checking now.
...a few seconds later...
Meetmate: [warm] Two changes — the annual discount moved to 15%, and a new
enterprise tier was added. Want me to post the diff to the channel?
Want the avatar to move? Two experiments already ship: a frame-swap lip-sync avatar that animates six PNGs in time with speech (v8.4.0), and a 2.5D-rig proof of concept. The static image stays the default — the frame-swap avatar section of the setup guide shows how to try the frame-swap one (it needs Fish Audio TTS and a public HTTPS origin); the rig PoC has no user docs yet.
The init wizard collects the API keys, the voice ID, and the LLM endpoint for you; ngrok/Tailscale and the Meet admission step remain manual. This table is the reference for what each item is and when it applies.
Enter keys through the init wizard or the settings UI — vendor keys (Soniox / Deepgram / Fish Audio / ElevenLabs / OpenAI-compatible TTS / Attendee / Slack) are stored in config.json (created with permissions 0600), while LLM connection values (gateway URL/token and the OpenAI-compatible LLM key) live in .env. Do not commit either file, screenshots of secrets, or shared config files with live credentials.
If you connect a tool-capable OpenAI-compatible gateway, keep that route local and trusted. Meetmate's trust opt-in is intended only for a trusted meeting with a trusted local gateway; external or untrusted meetings remain unsupported for that mode.
git clone [email protected]:caty-ai/meetmate.git
cd meetmate
npm install
cp .env.example .env && cp config.json.example config.json # then fill in the keys
npm start
Meetings are where humans actually collaborate — decisions, nuance, tone, the "oh wait, one more thing" moments. If your AI agent lives only in a chat box, it misses all of that.
We believe agents should sit where their humans sit. Not as a transcription bot at the edge of the call, but as a colleague in the grid: present, addressable, useful. And because it's your agent — with its own memory and character — the difference is between "an AI joined the call" and "she joined the call."
Meetmate is deliberately a small tool. It doesn't try to run your meeting, score your calls, or replace your calendar. It puts your agent in the room. Everything else is up to the two of you.
%%{init: {'theme':'base', 'themeVariables': {
'primaryColor': '#EEEBFB', 'primaryTextColor': '#10131A', 'primaryBorderColor': '#7C3AED',
'secondaryColor': '#F1F3F7', 'secondaryTextColor': '#10131A', 'secondaryBorderColor': '#E2E5EC',
'mainBkg': '#F1F3F7', 'nodeBorder': '#E2E5EC', 'lineColor': '#7C3AED',
'textColor': '#10131A', 'edgeLabelBackground': '#FFFFFF',
'fontFamily': '-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif'
}}}%%
flowchart LR
M["Google Meet / Zoom"] -->|meeting audio| S["Speech to text"]
S --> W{"Wake word?"}
W -->|yes| L["Your agent<br/>(OpenClaw Gateway or<br/>OpenAI-compatible LLM)"]
L --> T["Text to speech"]
T -->|agent's voice| M
L -.->|heavy tasks| B["Background delegation"]
One agent = one server instance.
Multiple agents? Run one Meetmate instance per agent (see the setup guide’s second-instance section). Let meet-floor-hub arbitrate who speaks. In-meeting agent switching inside one instance is not supported.
The server bridges meeting audio into a speech pipeline (speech-to-text → your agent's LLM → text-to-speech) and streams the reply back into the call — fast enough to feel like conversation.
Full engineering detail — architecture, module map, providers, audio specs — lives in docs/TECHNICAL.md.
Entry points for the most common tweaks. The full reference is docs/operations.md.
Disconnecting cloud arbitration removes saved installation credentials, but cannot remove a HUB_TOKEN supplied by the operating-system environment.
Something not working? See Troubleshooting.
ℹ️ Some documents under
docs/are currently in Japanese; the reference tables and command snippets are language-neutral.
Issues and PRs welcome — see CONTRIBUTING.md. We use an issue-first flow and Conventional Commits.
Meetmate stands on excellent services and OSS: Attendee (meeting bot infrastructure), Soniox (real-time STT), Fish Audio (expressive TTS), OpenClaw Gateway (agent infrastructure — SOUL / memory / skills / tools), and the OpenAI-compatible LLM ecosystem.
Bring your own AI agent into Google Meet, Zoom & Discord voice channels, as a real voice participant.
{ "mcpServers": { "meetmate": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}เครื่องมือ
ยังไม่มีรายการเครื่องมือ เซิร์ฟเวอร์แบบรีโมตจะได้รายการหลังการตรวจสอบสถานะครั้งแรก
FAQ
คัดลอกคอนฟิก stdio สำหรับ Cursor, Claude Desktop, Claude Code หรือ VS Code ได้ในหน้านี้ คอนฟิกนี้ใช้การติดตั้งของผู้เผยแพร่ ไม่ใช่พร็อกซีของ PlugMCP
ระเบียนนี้ไม่ได้ระบุตัวแปรสภาพแวดล้อมที่จำเป็น
Meetmate ทำงานแบบโลคัลผ่าน stdio
ตรวจสอบล่าสุดเมื่อ 2026-10-28 Bring your own AI agent into Google Meet, Zoom & Discord voice channels, as a real voice participant.