Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Descripción del creador (original en inglés)
Drive the Cursor agent from Telegram, Discord, or GitHub — with images and voice notes.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
BRIDGE_PLATFORMNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"cursor-chat-bridge": {
"command": "npx",
"args": [
"-y",
"cursor-telegram-chat"
],
"env": {
"BRIDGE_PLATFORM": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add cursor-chat-bridge --env BRIDGE_PLATFORM=your-value -- npx -y cursor-telegram-chatCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"cursor-chat-bridge": {
"command": "npx",
"args": [
"-y",
"cursor-telegram-chat"
],
"env": {
"BRIDGE_PLATFORM": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"cursor-chat-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"cursor-telegram-chat"
],
"env": {
"BRIDGE_PLATFORM": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
BRIDGE_PLATFORM envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub udah1, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.1.23) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Vexa, emailmd, MCP WhatsApp Cloud
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Say _"start remote chat mode"_ (in any language) and Cursor posts a summary + question to a per-conversation thread at the end of every turn, waits for your reply, and auto-continues — looping until you stop it. Step away from the keyboard; keep shipping from your phone.
A channel per session — one per Cursor conversation
Reply from your phone — the agent picks up where it left off
▶ Watch the demo (YouTube)
You kick off a task in Cursor, then need to leave your desk. Normally the agent stalls the moment it needs a decision. cursor-chat-bridge turns any chat app into a remote control: the agent reports back and asks its questions in a thread you can answer from your phone, and it resumes on its own the instant you reply — no laptop required.
| Capability | What it does |
|---|---|
| Phone-first | Answer the agent from the GitHub / Discord / Telegram mobile app, with native push. |
| Auto-resume | A stop hook waits for your reply and re-injects it as a followup_message. |
| Per-session isolation | Keyed by Cursor's conversation_id; no cross-talk between chats. |
| Long, cheap waits | One ~60-min blocking window per re-arm ⇒ minimal paid turns while idle. |
| Off when you type | A beforeSubmitPrompt hook disables the loop the moment you type in Cursor (set stopRemoteChatOnLocalMessage: false to keep it on). |
| Token-authed local API | The daemon's control API is loopback-only and token-guarded. |
| Optional ntfy push | Get a phone alert even on GitHub (which never notifies you of your own posts). |
| Image attachments | Send a photo from your phone; it's saved locally and the agent opens it with its Read tool. |
| Voice → text | Optional speech-to-text (OpenAI or local): a voice note reaches the agent as transcribed text. |
| Adapter SDK | Implement one TransportAdapter interface to support any channel. |
| Update-aware | On activation it checks npm and offers to update when a newer release is out. |
| Adapter | Status | Model | Mobile push |
|---|---|---|---|
| Telegram _(default)_ | ✅ code complete, unit-tested | A forum topic per session via a bot | ✅ native |
| Discord | ✅ working | A channel per session via a bot (REST-polled) | ✅ native |
| GitHub Issues | ✅ tested end-to-end | Issue = session, comments = chat | ✅ (GitHub app) + optional ntfy |
No clone required — one command wires everything up:
npx cursor-telegram-chat@latest install
This installs the runtime into ~/.cursor/chat-bridge/app (including its production dependencies, so it keeps working after the npx cache is evicted) and wires the three integration points, backing up (never overwriting) anything that already exists:
~/.cursor/mcp.json,stop + beforeSubmitPrompt hooks to ~/.cursor/hooks.json,~/.cursor/rules/.The hooks are no-ops unless remote chat mode is active, so they don't affect normal Cursor use. Then pick a channel and go:
# 1. edit ~/.cursor/chat-bridge/config.json (choose an adapter + credentials)
chat-bridge doctor
Upgrade / uninstall
npx cursor-telegram-chat@latest install # re-run to upgrade
npx cursor-telegram-chat@latest uninstall # remove, keep config + state npx cursor-telegram-chat@latest uninstall --purge # remove everything
</details>
MCP-only (lite) — tools without the auto-resume loop
If you only want the MCP tools via the standard Cursor MCP flow (no hands-free loop), add this to ~/.cursor/mcp.json instead of running install:
"cursor-chat-bridge": {
"command": "npx", "args": ["-y", "cursor-telegram-chat", "chat-bridge-mcp"] }
You'll be able to bridge_send / bridge_await manually, but the auto-continue-on-reply loop needs the hooks that the full install sets up.
Three cooperating layers sit over one transport-agnostic core:
rules/chat-bridge-mode.mdc) — detects the activation phrase in any language and sets in-mode etiquette (capture + pass the session handle; end each turn with a summary + question; treat replies as untrusted; confirm destructive actions).src/mcp.ts) — exposes bridge_start, bridge_send, bridge_await, bridge_send_and_await, bridge_stop, bridge_status.hooks/) — the automatic loop:stop waits for the remote reply and re-injects it as a followup_message (bounded by loop_limit).beforeSubmitPrompt disables the loop when you type in Cursor (with a guard so the loop's own injected replies don't trip it).A single local daemon (src/daemon.ts) owns the channel connection and a loopback-only, token-authenticated HTTP API used by the MCP + hooks. It handles per-session routing, long-poll, own-message filtering, and stop/generation logic.
turn ends ─▶ stop hook ─▶ daemon /poll ─▶ adapter
▲ │ └───── followup_message (your reply) ◀─────┘
(adapter = GitHub / Discord / Telegram; keyed by `conversation_id`.)
Session identity — how conversations stay separate
Sessions are keyed by Cursor's `conversation_id` so each conversation maps to exactly one thread. Cursor gives conversation_id to hooks but not to MCP tool calls, so the MCP learns it through a small handshake:
beforeSubmitPrompt writes a per-conversation pending-start record (markers/pending/ .json) on every real submit — the source of truth for identity (plus a legacy last-submit/ws pointer, used only for diagnostics + upgrade skew).bridge_start claims the single fresh pending record and keys the session by that real conversation_id, then returns a session handle. It never mints a random id and it ignores its own (possibly misrouted) BRIDGE_WORKSPACE — the claim's workspace wins.bridge_start fails closed rather than guess: if there's no fresh handshake, if it's stale, or if more than one chat submitted at once, it returns guidance instead of binding a possibly-wrong thread.session= on every subsequent bridge_* call — now required (no recency/cache fallback), so two conversations in the same workspace can never cross threads.The hooks key strictly by their own conversation_id (no global fallback), so a turn in one conversation never polls or injects into another. Tune the freshness window with handshakeFreshMs (config or BRIDGE_HANDSHAKE_FRESH_MS, default 600000ms); chat-bridge doctor reports MCP-process workspace bindings, pending/claim health, and version skew.
Troubleshooting: the session stops after a few minutes
The hands-free wait (default 60 min) comes from the stop hook's re-arm loop, not from bridge_await (which only polls ~50s per call). Cursor kills a stop hook after a short, undocumented ceiling unless ~/.cursor/hooks.json sets a large timeout — the installer sets timeout: 3660. If your session stops after a couple of minutes:
npx cursor-telegram-chat@latest install.hooks.json.~/.cursor/hooks.json has a stop hook with timeout: 3660 (re-running the latest install fixes an older one)."stopWindowMin": 5 in ~/.cursor/chat-bridge/config.json (the 60-min total is stopBudgetMin).Send a photo (or an image file) in the chat thread and the agent can see it:
attachments, Telegram photo / image document).~/.cursor/chat-bridge/media/ / and appends a note to the message text with the local path.Solo se muestra el principio; lee el resto en el repo