Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
作者による説明(英語の原文)
Use WhatsApp from AI apps through the Kaption extension. OAuth 2.1 relay that cannot read messages.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://mcp.kaptionai.com/mcpターミナルでこれを実行します
claude mcp add --transport http extension-remote https://mcp.kaptionai.com/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"extension-remote": {
"url": "https://mcp.kaptionai.com/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"extension-remote": {
"type": "http",
"url": "https://mcp.kaptionai.com/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://mcp.kaptionai.com/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Kaption-AI で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.0)がレジストリに届いたのは33 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Cloud MCP relay for WhatsApp — lets AI assistants (Claude, ChatGPT, Cursor, etc.) interact with your WhatsApp conversations through the Model Context Protocol.
Setup guide: kaptionai.com/mcp — connect WhatsApp to Claude, ChatGPT or Cursor.
Live at: mcp.kaptionai.com (canonical) and mcp-ext.kaptionai.com (backward-compatible alias for existing connections)
The relay cannot read your messages. It forwards MCP tool calls between the AI client and the Kaption browser extension, which processes everything locally in your browser. Its source code is public (BUSL-1.1), so you can verify it yourself.
AI Client (Claude/ChatGPT/Cursor)
│ │ OAuth 2.1 + SSE/Streamable HTTP ▼ ┌─────────────────────────────────────┐ │ Cloudflare Worker │ │ mcp.kaptionai.com │ │ │ │ ┌────────────┐ ┌──────────────┐ │ │ │ OAuthProv │ │ Next.js │ │ │ │ /sse /mcp │ │ /authorize │ │ │ │ /token │ │ /ext-auth │ │ │ │ /register │ │ / (landing) │ │ │ └─────┬──────┘ └──────────────┘ │ │ │ │ │ ┌─────▼──────┐ ┌──────────────┐ │ │ │ RelayMCP │ │ Deployment │ │ │ │ (DO) │ │ ChainDO │ │ │ └─────┬──────┘ └──────────────┘ │ │ │ │ │ ┌─────▼──────┐ │ │ │ RelayRoom │ ◄── WebSocket ──┐ │ │ │ (DO/accountRef) │ │ │ │ └────────────┘ │ │ └─────────────────────────────────┼──┘ │ Browser Extension (WhatsApp Web tab)
| DO | Keyed By | Purpose |
|---|---|---|
| RelayMCP | OAuth session | McpAgent — registers tools, relays JSON-RPC to RelayRoom |
| RelayRoom | Opaque accountRef | WebSocket bridge to extension, auth handshake, request/response matching |
| DeploymentChainDO | "main" | Append-only hash chain for deployment transparency |
/.well-known/oauth-authorization-serverPOST /register (RFC 7591)/authorize/token/sse) or Streamable HTTP (/mcp)| Path | Method | Auth | Handler |
|---|---|---|---|
/ | GET | — | Next.js landing page |
/authorize | GET | — | Next.js OTP form (HMAC-signed oauthReqInfo) |
/authorize/send-otp | POST | — | Next.js API route → rest-api |
/authorize/verify | GET/POST | — | Next.js OTP verify → OAuthProvider completeAuthorization |
/authorize/reviewer-login | POST | Static review credentials | Password completion for the configured synthetic review phone |
/register | POST | — | OAuthProvider (RFC 7591 dynamic client registration) |
/token | POST | — | OAuthProvider (token exchange) |
/sse | GET | OAuth token | RelayMCP DO (SSE transport) |
/mcp | POST | OAuth token | RelayMCP DO (Streamable HTTP) |
/ws/ext | GET | JWT/token in auth msg | RelayRoom DO (WebSocket upgrade) |
/ext-auth/* | Various | — | Next.js extension auth pages + API |
/transparency | GET | — | DeploymentChainDO (chain history) |
/transparency/latest | GET | — | DeploymentChainDO (latest entry) |
/transparency/verify | GET | — | DeploymentChainDO (chain integrity) |
/transparency/gaps | GET | CF token | Cross-reference CF deploys with chain |
/transparency/append | POST | DEPLOY_API_KEY | Append entry (CI only) |
26 public tools are forwarded to the extension (the relay does not execute them). Reads and writes are separate tools: every read-only tool carries readOnlyHint: true, and the manage_* tools only write. The read tools for reminders, scheduled messages, chat lists and contact notes reach the extension as the matching manage_* call (TOOL_ROUTES in src/tools.ts), so every Kaption version answers them.
| Tool | Kind | Description |
|---|---|---|
query | read | Query conversations, contacts, messages, transcriptions, labels, communities, sessions |
summarize_conversation | write (private cache) | Get or generate a conversation summary |
download_media | read | Download image/video/audio/document from a message |
list_contacts, get_contact, get_contact_groups | read | Read contacts and their group memberships |
list_groups, get_group | read | Read cached or live group metadata |
export_contacts | read | Export contacts as CSV or JSON |
get_analytics | read | Analyze WhatsApp activity, rankings, response times, and exports |
call_recordings | read | List, read and search call recordings and transcripts |
list_reminders, get_reminder | read | Read personal reminders |
list_scheduled_messages, get_scheduled_message | read | Read scheduled messages (both modes) |
list_chat_lists, get_chat_list | read | Read personal chat lists |
get_contact_note | read | Read a contact's note (Business accounts) |
manage_labels | write | Add/remove/create/delete WhatsApp Business labels |
manage_notes | write | Set a contact's note (Business accounts) |
manage_chat | write | Archive, pin, mute, mark read/unread, set/clear draft |
manage_reminders | write | Create/update/complete/delete personal reminders |
manage_scheduled_messages | write | Schedule, change or cancel messages — from Kaption's number (bot, default) or from your own number on this computer (mode: "local", also to groups) |
manage_lists | write | Create/edit/delete personal chat lists and their chats |
send_message | write | Queue a message from your own number (needs sending from this computer turned on and consent in Kaption) |
create_attachment_upload | write | One-time upload slot for an attachment to send or schedule |
The square brand icon for directory listings and consent screens is served at /brand/kaption-mcp-icon.svg.
get_api_info is local-only and is deliberately excluded from the cloud surface because it returns private REST connection credentials.
Every deployment is cryptographically signed and recorded in a tamper-evident transparency chain. See SECURITY.md for full details.
GitHub Actions (push to main)
│ ├─ 1. Run tests ├─ 2. Build worker (OpenNext + wrap) ├─ 3. SHA-256 manifest every generated code and asset file ├─ 4. Pre-deploy: Sigstore sign the manifest → Rekor log ├─ 5. Deploy to Cloudflare ├─ 6. Post-deploy: verify hash unchanged, sign attestation → Rekor └─ 7. Append to transparency chain (hash-linked)
Daily heartbeat redeploys (6am UTC) ensure the chain stays active even without code changes.
wrangler deploy locallyAll production deploys go through GitHub Actions. Multiple layers enforce this:
wrangler.jsonc is gitignored; scripts/build-config.mjs renders it from wrangler.template.jsonc and refuses to run unless GITHUB_ACTIONS=true + GITHUB_RUN_ID are set (or KAPTIONAI_LOCAL_DEV=1 for dev).npm run predeploy aborts unless those same CI env vars are present.main is branch-protected: requires a reviewed PR + green test, deploy, and verify checks.To ship a change: open a PR → review + CI green → merge to main → Actions builds, signs (Sigstore), deploys, and appends to the transparency chain. npx wrangler deploy from a laptop will fail at step 1 because there is no wrangler.jsonc to deploy.
# 1. Check the transparency chain
curl -s https://mcp.kaptionai.com/transparency/latest | jq .
curl -s https://mcp.kaptionai.com/transparency/verify | jq .
COMMIT=$(curl -s https://mcp.kaptionai.com/transparency/latest | jq -r '.event.commitSha') cosign verify-blob \ --bundle build-manifest.sigstore.json \ --certificate-identity-regexp "https://github.com/Kaption-AI/mcp-extension-remote/.*" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \ build-manifest.json
# Full chain history (paginated)
GET /transparency?limit=50&offset=0
GET /transparency/latest
GET /transparency/verify
# SSE transport (for Claude Code, Cursor)
GET /sse
POST /mcp
# Install dependencies
npm install
npm test
npm run dev
npm run build:worker
src/
index.ts # Worker entry — Hono routing, OAuthProvider composition relay-mcp.ts # RelayMCP Durable Object (McpAgent) relay-room.ts # RelayRoom Durable Object (WebSocket bridge) deployment-chain.ts # DeploymentChainDO (transparency log) otp.ts # OTP generation, verification, JWT, HMAC, rate limiting schemas.ts # Zod schemas for API request validation tools.ts # MCP tool definitions (forwarded, not executed) types.ts # TypeScript interfaces (Env, DeploymentEvent, etc.) app/ page.tsx # Landing page (multilingual, client-side i18n) layout.tsx # Root layout i18n.ts # i18next init (8 languages) locales/ # Translation JSON files authorize/ # OAuth OTP flow pages + API routes ext-auth/ # Extension auth pages + API routes scripts/ wrap-worker.mjs # Post-build: wraps OpenNext output with custom routing
| Variable | Description |
|---|---|
INTERNAL_API_BASE_URL | Backend API base URL |
BUILD_HASH | SHA-256 of worker bundle (set by CI) |
COMMIT_SHA | Git commit SHA (set by CI) |
wrangler secret put)| Secret | Description |
|---|---|
INTERNAL_API_KEY | API key for rest-api OTP endpoint |
DEPLOY_API_KEY | API key for transparency chain append |
JWT_SECRET | Shared JWT signing secret (same as rest-api, schedule, metadata workers) |
PHONE_REF_SECRET | HMAC secret used to derive opaque durable account references from phone numbers |
EPHEMERAL_STATE_SECRET | Encryption secret for short-lived login hints, verify tickets, and encrypted session phone payloads |
OPENAI_APPS_CHALLENGE_TOKEN | Exact domain-verification token issued by the OpenAI plugin portal |
OPENAI_REVIEW_PASSWORD_SHA256 | Lowercase SHA-256 hex digest of the high-entropy reviewer password |
OPENAI_REVIEW_PHONE | Phone number used as the dedicated review username and to derive the synthetic account's opaque reference |
The three OPENAI_* values are also configured as GitHub Actions repository secrets. Add all three together, then run the manual Test, Build & Deploy workflow. CI writes them to an ephemeral mode-0600 file and passes that file to wrangler deploy --secrets-file, so the review configuration ships in the same signed, attested Worker version as the code. The workflow fails closed if only part of the three-value set is present and deletes the temporary file immediately after deployment. Existing Worker
冒頭だけを表示しています。続きはリポジトリで読めます