Servidor MCP de Telegram: leer y enviar mensajes de Telegram desde un agente
Un servidor MCP de Telegram le da cuatro acciones a un agente: leer conversaciones, enviar un mensaje, responder en un hilo abierto y abrir un chat con alguien que ya ha escrito a tu bot. Funciona sobre la Bot API oficial, así que un solo token es toda la instalación. En Telegram no hay publicaciones. Todo lo de abajo se revisó el 13 de noviembre de 2026.
Lo que sabe hacer un servidor MCP de Telegram
Telegram es un canal de mensajería. Como WhatsApp, no tiene feed, no tiene objeto publicación y por tanto no tiene alcance, impresiones ni tasa de interacción. Así que la lista de herramientas que recibe un agente por MCP es corta: listar conversaciones, leer el historial de mensajes de una, enviar texto, responder en un hilo, abrir una conversación con un id de chat conocido.
En PlugKit las herramientas se llaman list_conversations, get_conversation, list_messages, send_message, send_dm, create_conversation y sync_conversations, y la bandeja de entrada es única: las mismas cuatro herramientas leen Instagram, Facebook, WhatsApp y Telegram. Eso pesa más de lo que parece. Un agente que clasifica tu bandeja no debería necesitar una herramienta distinta por red, porque en cuanto la necesita, eres tú quien escribe la lógica de enrutado en el prompt.
Lo que no vas a encontrar: programación, analítica, moderación de comentarios. Cualquier servidor que anuncie analítica de Telegram está describiendo estadísticas de canal sacadas de otra superficie, o algo que no existe en la Bot API.
Por qué la Bot API lo convierte en el MCP más fácil de montar
Cualquier otra plataforma de esta categoría te obliga a registrar una app, pedir scopes, pasar una revisión y luego renovar un token para siempre. El servidor MCP de Instagram necesita una cuenta profesional, una app de Meta y una revisión de app. El de LinkedIn necesita acceso de partner para la mitad de sus endpoints.
Telegram pide una conversación con otro bot. Le escribes a @BotFather, envías /newbot, eliges un nombre y un nombre de usuario que acabe en bot, y te entrega un token con la forma 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Ese token es la credencial. No caduca, no hay ciclo de renovación y no hay cola de revisión.
Las llamadas van a https://api.telegram.org/bot<token>/METHOD_NAME por HTTPS, GET o POST. Lo que significa que el token va en la ruta de la URL en cada petición, así que acaba en los logs del proxy y en el historial del shell. Trátalo como una contraseña y usa /revoke en BotFather en cuanto se filtre uno.
En PlugKit la herramienta que hace esto es connect_telegram: le das el token de BotFather, lo valida contra Telegram antes de guardarlo y el bot aparece como una cuenta conectada. Sin ida y vuelta de OAuth, porque no hay nada que autorizar.
| Plataforma | Credencial | Revisión | Caducidad del token |
|---|---|---|---|
| Telegram | Token de bot de BotFather | ninguno | ninguno |
| Token OAuth de larga duración | Revisión de app de Meta | 60 días, renovable | |
| Token de WABA por Embedded Signup | Verificación de empresa de Meta | variable, hace falta volver a autenticar | |
| Token OAuth | programa de partners para casi todos los endpoints | 60 días | |
| X | Token OAuth 2.0 | plan de API de pago | renovable |
La única regla que frena en seco a tu agente
La propia documentación de Telegram lo dice en una línea: «Bots can't start conversations with users. A user must either add them to a group or send them a message first.»
Es el equivalente en Telegram de la ventana de 24 horas de Meta, solo que permanente en vez de un temporizador. Tu agente no puede buscar un nombre de usuario y escribirle. Solo puede responder a quien ya ha pulsado Start en tu bot, o hablar en los grupos donde se añadió el bot.
La consecuencia práctica para un flujo de agente: una lista de conversaciones no es una lista de contactos a la que puedas apuntar. Antes de construir nada que avise a usuarios, necesitas un recorrido que les haga abrir el bot primero, normalmente un enlace profundo con la forma t.me/yourbot?start=payload, donde la carga útil llega en el primer mensaje /start y te dice quiénes son.
Dentro de los grupos hay un segundo límite que conviene conocer antes de depurarlo durante una hora. Por defecto, un bot en un grupo solo recibe los mensajes que le incumben: comandos, respuestas a sus propios mensajes, menciones. Telegram lo llama modo privacidad. Si tu agente tiene que leer una conversación de grupo entera, hay que desactivar primero el modo privacidad en BotFather, y luego sacar y volver a meter el bot en el grupo para que el cambio se aplique.
getUpdates o un webhook: cómo llegan los mensajes al servidor
La Bot API ofrece exactamente dos formas de recibir mensajes, y son mutuamente excluyentes. Activar una desactiva la otra, que es de lejos la causa más común de «mi bot dejó de recibir nada».
getUpdateses long polling. Pides las actualizaciones con unoffset, unlimitentre 1 y 100, y untimeout. Práctico para desarrollo local.setWebhookhace que Telegram envíe cada actualización por POST a una URL HTTPS tuya, conmax_connectionsentre 1 y 100 y una cabecerasecret_tokenque deberías poner siempre. Es lo que usa un servidor alojado.
Si tienes un servidor MCP local en tu portátil, estás en getUpdates, lo hayas elegido o no, porque Telegram no entrega un webhook a una máquina sin dirección HTTPS pública. Un servidor alojado registra el webhook una vez y las actualizaciones llegan sin polling. Los compromisos son los mismos que cubre MCP server hosting.
Los límites de frecuencia que convierten un envío masivo en un 429
Telegram los publica en su FAQ de bots, y son más estrictos de lo que casi todo el mundo espera, porque nada te avisa hasta que llega el 429.
| Situación | Límite | Qué pasa si lo superas |
|---|---|---|
| Chat individual | alrededor de 1 mensaje por segundo | ráfagas cortas toleradas, exceso sostenido devuelve 429 |
| Grupo | 20 mensajes por minuto | 429 |
| Notificaciones masivas | alrededor de 30 mensajes por segundo en todos los chats | 429, salvo que tengas activadas las difusiones de pago |
| Difusiones de pago | hasta 1000 mensajes por segundo | 0,1 Stars por mensaje a partir de los 30 primeros por segundo |
Un mensaje por segundo y chat suena generoso hasta que un agente decide responder a una pregunta larga en cinco párrafos, cada uno como mensaje propio. Dile que mande un mensaje, no un hilo. Y si te tienta que un agente reparta un aviso a unos miles de chats, ahí está la línea de los 30 por segundo: una difusión a 3000 personas tarda al menos 100 segundos aun con todo sano.
Conéctalo a Claude, ChatGPT o Cursor
El servidor MCP alojado de PlugKit cubre Telegram junto a las plataformas de publicación, y esa es la razón para usar un solo endpoint en vez de un servidor solo para Telegram: el mismo agente que responde un mensaje de Telegram puede publicar la publicación de Instagram de la que le han hablado. Funciona en https://api.plugkit.co/mcp sobre Streamable HTTP, siguiendo la revisión de la especificación MCP del 28 de julio de 2026, con 103 herramientas y tres workflows preparados a 13 de noviembre de 2026.
En Claude Code:
claude mcp add -t http plugkit https://api.plugkit.co/mcp
En las apps de Claude es Customize, luego Connectors, luego Add, y luego un conector personalizado con la misma URL. ChatGPT lo acepta en Add custom MCP server. Cursor y VS Code admiten un enlace de un clic o unas líneas de JSON. La autenticación es OAuth 2.1 con PKCE y sin client secret, con mcp:read para leer conversaciones y mcp:write para enviar. Empieza con mcp:read: leer una bandeja de entrada es reversible, enviar un mensaje de Telegram no lo es.
PlugKit cuesta 49 $ al mes por 5 cuentas conectadas, cancelas cuando quieras, o 97 $ por 30. Siete días gratis, con tarjeta al registrarte y nada cobrado antes del día 7. Los mensajes de Telegram en sí no cuestan nada, porque la Bot API no cobra por mensaje fuera de las difusiones de pago.
Si solo necesitas Telegram y nada más, escríbelo tú. Un token de bot y 40 líneas contra sendMessage es honestamente el trabajo de una mañana, y sigue siendo la respuesta correcta para un proyecto de un solo canal. El argumento para un servidor alojado es la segunda plataforma, donde empieza el trabajo con las credenciales. MCP frente a una API normal es la versión larga de ese compromiso.
Preguntas frecuentes
¿Existe un servidor MCP de Telegram oficial?
No. Telegram publica la Bot API; cualquier capa MCP encima es de terceros. Merece la pena comprobarlo antes de instalar uno, porque algunos servidores de la comunidad manejan una cuenta de usuario con la API cliente MTProto en vez de un bot, lo que pone en riesgo tu cuenta personal en lugar de un bot que puedes revocar.
¿Puede Claude enviar mensajes de Telegram?
Sí, con un servidor MCP conectado a la Bot API. Claude no tiene acceso propio a Telegram. Una vez añadido el servidor, enviar es una llamada de herramienta, sujeta a la misma regla que cualquier bot: quien recibe tiene que haber iniciado tu bot o compartir un grupo con él.
¿Por qué mi bot no puede escribir primero a un usuario?
Porque Telegram lo prohíbe por diseño. Un usuario tiene que escribir al bot o añadirlo a un grupo antes de que el bot pueda escribirle. El rodeo habitual es un enlace profundo, t.me/yourbot?start=payload, que abre el bot con una carga útil que puedes asociar al usuario.
¿Necesito OAuth para un servidor MCP de Telegram?
Para Telegram no. La Bot API se autentica con un token de BotFather y nada más. Puedes querer OAuth igualmente entre tu agente y el servidor MCP, que es otra capa y está cubierta en MCP server OAuth authentication.
¿Puede un bot de Telegram leer todos los mensajes de un grupo?
Solo si el modo privacidad está desactivado. Por defecto, un bot añadido a un grupo recibe comandos, respuestas a sus propios mensajes y menciones, nada más. Desactivas el modo privacidad en BotFather y luego sacas y vuelves a meter el bot en el grupo para que el cambio se aplique.
Un solo plug para cada plataforma que toca tu agente
49 $ al mes por 5 cuentas conectadas, cancela cuando quieras. Todas las funciones en todos los planes.
Consigue tu clave de API →