mila-telegram
Mila Telegram
Ejecuta tu sesión de Claude Code desde Telegram — y mantenla en marcha.
Este es un fork extendido del plugin oficial del canal de Telegram (Apache-2.0). El original conecta un bot de Telegram a una sesión de Claude Code. Este fork añade las cosas que empiezas a necesitar cuando realmente trabajas así todos los días: equipos en chats de grupo, notas de voz y un poller que no pierde tus mensajes cuando la sesión se reinicia.
Qué añade este fork
Un daemon que sobrevive a la sesión. En el original, el poller de Telegram vive dentro del proceso de la sesión: reinicia Claude Code y todos los mensajes enviados mientras tanto se pierden. Aquí el poller se ejecuta como un daemon de larga duración que añade eventos a un archivo de journal, y la sesión los reproduce desde un cursor al iniciarse. Reinicio, caída, actualización — los mensajes entrantes esperan en el archivo y llegan cuando la sesión vuelve.
Auto-unión a grupos con aprobación de un toque. Añade el bot a un grupo y envía /channel_join. El propietario recibe una tarjeta de cuatro botones en un chat privado: responder a todos, solo menciones, solo escucha (el bot oye el chat, pero las respuestas dentro de él están bloqueadas mecánicamente) o rechazar. Cada decisión — incluidas las rechazadas — se añade a un journal auth-log.jsonl, y cada chat conectado recibe una tarjeta de contexto en chats/<id>.md más un registro generado CHATS.md. Sin IDs de chat numéricos, sin editar JSON a mano; los mensajes de grupo nunca pueden cambiar la lista de permitidos por sí mismos — la aprobación solo ocurre en el chat privado del propietario.
Transcripción de voz. Las notas de voz se pasan a un comando de transcripción de tu elección (configura TELEGRAM_VOICE_TRANSCRIBE_CMD), y el texto llega al asistente junto con el audio. Si no se configura, las notas de voz simplemente pasan sin transcribir — sin valor predeterminado, sin proveedor.
Contexto de cita de respuesta. Cuando alguien responde a un mensaje anterior, el texto citado viaja con el nuevo, así el asistente responde sobre el mensaje al que realmente apuntaste en lugar de lo último en el chat.
Todo lo del plugin original sigue funcionando: emparejamiento, listas de permitidos, detección de menciones, reply / react / edit_message, fotos, adjuntos, indicadores de escritura.
Related MCP server: tsgram-mcp
Seguridad
Lee esto antes de ponerlo en una máquina que importa.
Los mensajes son entrada no confiable. Cualquier cosa que alguien envíe al bot llega a tu asistente como contenido. Alguien en un chat permitido puede intentar instruirlo. Trata el canal como una puerta pública a una sesión que puede leer archivos y ejecutar comandos.
Los grupos requieren una mención por defecto. Un grupo aprobado se añade con requireMention: true, así que el bot solo responde cuando se le dirige la palabra. Desactivar eso significa que cada mensaje de cada miembro va directo a la sesión — eso es una superficie real de inyección de prompts, no teórica. Desactívalo solo para un chat donde confíes en cada miembro.
Los adjuntos pueden salir. La herramienta reply envía cualquier ruta absoluta que el asistente le pase. Eso es deliberado — así es como sacas archivos de una sesión — pero combinado con el punto anterior también es una vía de exfiltración. Tus ajustes de permisos, no este plugin, son lo que se interpone entre un mensaje y un archivo que sale de tu máquina.
El journal de eventos es un límite de confianza. El daemon escribe eventos en un archivo y la sesión los reproduce; cualquier cosa que pueda escribir ese archivo habla con la voz de Telegram. El journal y su directorio se crean con 0600/0700, y el puente reproduce solo una lista de permitidos de dos métodos para que una línea falsificada no pueda invocar métodos arbitrarios. Mantén el directorio de estado en un sistema de archivos que solo tú puedas escribir.
Tu token vive en ~/.claude/channels/telegram/.env con 0600, y se elimina de la salida de errores antes de que se registre cualquier cosa.
Requisitos previos
Bun — el servidor MCP se ejecuta en Bun:
curl -fsSL https://bun.sh/install | bash
Configuración
1. Crea un bot. Envía un mensaje a @BotFather, envía /newbot y copia el token que te dé (todo, incluidos los dígitos iniciales y los dos puntos).
2. Instala el plugin. Desde una sesión de Claude Code:
/plugin marketplace add shakhruz/mila-telegram
/plugin install mila-telegram@mila3. Dale el token al servidor.
/telegram:configure 123456789:AAHfiqksKZ8...Esto escribe TELEGRAM_BOT_TOKEN=... en ~/.claude/channels/telegram/.env. Puedes escribir ese archivo tú mismo, o configurar la variable en tu shell — el shell gana.
Para ejecutar varios bots en una máquina, apunta
TELEGRAM_STATE_DIRa un directorio diferente por instancia.
4. Relanza con la bandera del canal. El servidor no se conectará sin ella:
claude --channels plugin:mila-telegram@mila5. Empareja. Envía un mensaje directo a tu bot; responde con un código de 6 caracteres. En la sesión:
/telegram:access pair <code>6. Ciérralo. El emparejamiento existe para capturar tu ID. Una vez que estés dentro, cambia a una lista de permitidos para que los extraños dejen de recibir códigos de emparejamiento:
/telegram:access policy allowlistEjecutar el daemon
El daemon es lo que hace que los reinicios sean gratuitos. Ejecuta receiver.ts como un servicio bajo el supervisor de procesos de tu elección — launchd en macOS, systemd en Linux — con RECEIVER_DAEMON=1 en su entorno:
RECEIVER_DAEMON=1 bun /path/to/plugin/receiver.tsEscribe eventos en $TELEGRAM_STATE_DIR/inbound/events.jsonl. Cuando una sesión se inicia y encuentra el daemon vivo, lee de ese journal en lugar de hacer polling, así los dos nunca pelean por la API de Telegram. Sin daemon en ejecución, la sesión hace polling directamente exactamente como hace el plugin original — el daemon es opcional.
Configuración
Variable | Propósito |
| Token del bot de BotFather. Requerido. |
| Directorio de estado. Por defecto |
| Comando que transcribe un archivo de voz. Sin configurar significa sin transcripción. |
| Configúralo a |
Control de acceso
Consulta ACCESS.md para políticas de mensajes directos, grupos, detección de menciones, configuración de entrega, comandos de habilidades y el esquema de access.json.
Los IDs son IDs de usuario numéricos — obtén el tuyo de @userinfobot. ackReaction solo acepta la lista blanca fija de emojis de Telegram.
Herramientas expuestas al asistente
Herramienta | Propósito |
| Enviar a un chat. Toma |
| Añadir una reacción emoji por ID de mensaje. Solo la lista blanca fija de Telegram (👍 👎 ❤ 🔥 👀 …). |
| Editar un mensaje que el bot envió. Bueno para "trabajando…" → resultado. Solo mensajes propios. |
| Obtener un archivo por |
Los mensajes entrantes activan un indicador de escritura automáticamente.
Sin historial, sin búsqueda
La API de Bot de Telegram no expone ninguna de las dos. El bot solo ve los mensajes a medida que llegan — no hay forma de recuperar el pasado de un chat. Si el asistente necesita contexto anterior, tiene que pedírtelo. Este es un límite de Telegram, no de este plugin, y es por eso que las fotos se descargan con avidez al llegar.
Licencia y atribución
Apache-2.0. Este es un fork modificado del plugin de canal telegram de anthropics/claude-plugins-official, con copyright de Anthropic, PBC. Consulta NOTICE para la lista de cambios.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables remote control of AI coding assistants (Claude Code/Codex) via Telegram, allowing you to manage long-running tasks, send commands, and receive notifications from anywhere. Supports unattended mode with smart polling for up to 7 days and multi-session management.829MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Code sessions to Telegram, enabling AI-powered code assistance and file management directly from Telegram chats.92MIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude Code to act as an autonomous Telegram agent with tools for replying, reacting, editing messages, searching history, and handling attachments. Includes a TUI watchdog for unattended operation.1AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables Claude Code to send messages to and receive instructions from Telegram, with task tracking and persistent storage.
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shakhruz/mila-telegram'
If you have feedback or need assistance with the MCP directory API, please join our Discord server