Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
제작자가 쓴 설명(영어 원문)
Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
Authorization비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"server": {
"command": "npx",
"args": [
"-y",
"@chamade/mcp-server"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http server https://mcp.chamade.io/mcp/ --header 'Authorization: your-value'claude mcp add server -- npx -y @chamade/mcp-server실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"server": {
"url": "https://mcp.chamade.io/mcp/",
"headers": {
"Authorization": "your-value"
}
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"server": {
"command": "npx",
"args": [
"-y",
"@chamade/mcp-server"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"server": {
"type": "http",
"url": "https://mcp.chamade.io/mcp/",
"headers": {
"Authorization": "your-value"
}
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@chamade/mcp-server"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
Authorization 비밀 필수 HTTP header이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 도메인 chamade.io 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: Authorization
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(5.1.0)은 4개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Vexa, emailmd, MCP WhatsApp Cloud
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
MCP (Model Context Protocol) server for Chamade — a voice and chat gateway that lets your AI agent join meetings and DMs on Discord, Microsoft Teams, Google Meet, Telegram, SIP, Zoom, Nextcloud Talk, Slack, and WhatsApp.
The recommended voice path is hosted STT/TTS with bring-your-own-key. Drop your own ElevenLabs / Deepgram / OpenAI / Cartesia API key in your dashboard once — Chamade runs the full speech pipeline on its side using that key. Transcripts flow in as call_transcript events, chamade_call_say speaks into the meeting. Free on Chamade's side; you only pay your provider. Your agent stays fully text-driven.
Already have a voice pipeline you want to keep (OpenAI Realtime, LiveKit Agents, Pipecat, Deepgram Voice Agent, a manual cascade)? Chamade also exposes the call's raw-PCM audio as a bidirectional WebSocket — BYO audio, Chamade transports, you run the speech layer. Either mode, same MCP tools for control.
File attachments work out of the box on DMs and meeting chat for Discord, Telegram, Slack, WhatsApp (incl. voice notes), and Nextcloud Talk. Use chamade_file_upload_url to mint a pre-signed no-auth upload URL, then pass the returned file_id in attachments on chamade_dm_chat or chamade_call_chat. Inbound files arrive on chamade_inbox as Chamade-signed URLs — your agent can curl them with no extra auth. Teams + Meet support is code-ready but gated until the respective platform certifications complete.
Chamade is currently in early access: free, no subscription, no quota.
The Chamade MCP server is now hosted at `https://mcp.chamade.io/mcp/` and speaks the Streamable HTTP transport. That's the single source of truth — every tool, every resource, every push event lives there.
mcp-remote under the hood to bridge stdio to the hosted HTTP endpoint. Same tools, same push events, same latency. Zero drift because there is no parallel stdio implementation.v4 is a server-side wire-shape change picked up automatically by the shim. Headline items, full detail in docs/AGENTS.md:
agent everywhere on the wire and in tool descriptions.chamade_dm_chat, chamade_call_join, event payloads, and reply XML tag attributes.data carries account_id + from + from_name (sender_* fields removed) and a pre-stuffed agent_context.{accounts, active_calls} snapshot so the agent always knows what it's on without an extra round-trip. , , …) for cross-target initiation.Earlier versions of this package (v2.x and below) shipped a full native stdio server that implemented the 13 tools locally in TypeScript against Chamade's REST API. v3+ replaces that with a shim — please upgrade to avoid maintaining two surfaces that slowly diverge.
If your client speaks Streamable HTTP, skip this package entirely:
{
"mcpServers": { "chamade": { "type": "http", "url": "https://mcp.chamade.io/mcp/", "headers": { "Authorization": "Bearer chmd_..." } } } }
For stdio-only clients:
{
"mcpServers": { "chamade": { "command": "npx", "args": ["-y", "@chamade/mcp-server@3"], "env": { "CHAMADE_API_KEY": "chmd_..." } } } }
`CHAMADE_API_KEY` is required. Get a real one at https://chamade.io/dashboard → API keys and paste the full chmd_… value (≥ 40 chars after the prefix). If the env var is missing, empty, or still contains a placeholder like chmd_..., the shim refuses to start instead of silently falling back to OAuth — that fallback path loops on refresh-and-revoke and is not a viable auth method for this server.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows). Use Option A or B above.
.mcp.json at the root of your project. Use Option A (HTTP direct) for the best experience.
For real-time push events (transcripts, incoming DMs, ringing calls, WhatsApp dm_delivered flush), launch Claude Code with the channel flag every time:
claude --dangerously-load-development-channels server:chamade --continue
The flag is a per-launch client-side opt-in mandated by Claude Code for MCP channels not yet on the Anthropic allowlist — it's not dangerous, it's just the standard opt-in for experimental channels during the research preview. The server name after server: must match the key in your .mcp.json. Without the flag, tools still work but push events are silently ignored — you have to poll chamade_inbox and chamade_call_status to see new activity.
Same format. Path varies by client: .cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, ~/.openclaw/config.json. Use Option A if the client supports HTTP, otherwise Option B.
| Tool | Description | ||
|---|---|---|---|
chamade_call_join | Join a voice meeting (platform + meeting_url). | ||
chamade_call_say | Speak text aloud via TTS in the meeting. | ||
chamade_call_chat | Send a text chat message in the meeting. Optional `attachments: [{file_id} \ | {url} \ | {bytes_b64, name, mime}] to send files along with the text; text` becomes the caption when both are set. 25 MB cap per attachment. |
chamade_call_status | Get call state and new transcript lines (delta pattern). | ||
chamade_call_accept | Answer a ringing inbound call (SIP, etc.). | ||
chamade_call_refuse | Refuse/reject a ringing inbound call. | ||
chamade_call_typing | Send a typing indicator in meeting chat. | ||
chamade_call_leave | Hang up and leave the meeting. | ||
chamade_call_list | List all active calls. | ||
chamade_inbox | Check DM conversations (Discord, Telegram, Teams, WhatsApp, Slack, NC Talk). Shows WhatsApp 24h window state inline. Inbound file attachments arrive as attachments[] on each message, with Chamade-signed URLs. | ||
chamade_dm_chat | Send a DM message by platform. Optional `attachments: [{file_id} \ | {url} \ | {bytes_b64, name, mime}] to send files; text` becomes the caption. On WhatsApp outside the 24h window, returns 202 queued and auto-fires a re-engagement template. |
chamade_dm_typing | Send a typing indicator in DM by platform. | ||
chamade_file_upload_url | Mint a short-lived (5 min) pre-signed upload URL. Your shell / agent curl -F file=@path with no auth header (URL itself is the auth), then pass the returned file_id in attachments: [{file_id}] on a subsequent send. Recommended path for any non-trivial local file — a shell-streamed upload keeps the tool call tiny instead of forcing every base64 character through the model's output budget. | ||
chamade_account | Check account status, plan, credit/quota, and per-platform readiness (incl. a files bool per platform). |
| URI template | Description |
|---|---|
chamade://calls/{call_id}/transcript | Live transcript. Each read returns only new lines since the last read (delta pattern). Channel-mode clients also receive push notifications for every new line. |
Channel mode pushes DM messages, incoming SIP calls, transcript lines, call state changes, and WhatsApp dm_delivered flush events directly into the agent's context — no polling.
Server side — nothing to configure. The hosted Chamade MCP server always declares the experimental.claude/channel capability during the initialize handshake. The v2.x --channel arg / CHAMADE_CHANNEL=1 env var are gone.
Client side — Claude Code needs a per-launch flag. Claude Code only processes notifications/claude/channel from MCP servers you've explicitly opted in:
claude --dangerously-load-development-channels server:chamade --continue
Required every launch. Without it, Chamade tools still work but push events are silently dropped client-side — the agent has to poll chamade_inbox and chamade_call_status to see new activity.
Other MCP clients (Claude Desktop, Cursor, Windsurf) currently do not have a channel receiver and will silently ignore push notifications. They still work in polling mode via chamade_inbox with last_message_cursor + optional wait for long-polling.
Only the stdio shim uses these. Direct HTTP config has everything in JSON.
| Variable | Required | Default | Description |
|---|---|---|---|
CHAMADE_API_KEY | Yes | — | API key (chmd_*, ≥ 40 chars of entropy) from chamade.io/dashboard. The shim validates the shape at startup and exits 1 on placeholders or missing values; there is no OAuth fallback. |
CHAMADE_URL | No | https://chamade.io | Chamade instance URL. The shim derives the MCP endpoint automatically: https://chamade.io → https://mcp.chamade.io/mcp/, https://dev.chamade.io → https://mcp.dev.chamade.io/mcp/. |
CHAMADE_MCP_URL | No | — | Explicit MCP endpoint override. Skip unless you're running a custom proxy. |
The v2.x --channel CLI flag is silently accepted for backwards-compat, but it's a no-op — channel mode is always on in v3.
⚠️ Google Meet voice — beta limitation. Real-time audio capture on Meet relies on Google's Meet Media API, currently in Developer Preview. Every meeting participant must be individually enrolled — if anyone isn't, audio capture fails. Calendar integration and in-meeting chat work normally for everyone. For production voice use cases, prefer Teams, Discord, Nextcloud Talk, or SIP.
Agent (Claude Desktop앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요