Serveur MCP Telegram : lire et envoyer des messages Telegram depuis un agent
Un serveur MCP Telegram donne quatre actions à un agent : lire les conversations, envoyer un message, répondre dans un fil existant, et ouvrir une discussion avec quelqu'un qui a déjà écrit à ton bot. Il tourne sur l'API Bot officielle, donc un seul token suffit à tout installer. Il n'y a pas de posts sur Telegram. Tout ce qui suit a été vérifié le 13 novembre 2026.
Ce qu'un serveur MCP Telegram sait faire
Telegram est un canal de messagerie. Comme WhatsApp, il n'a pas de fil, pas d'objet post et donc pas de portée, d'impressions ni de taux d'engagement. La liste d'outils qu'un agent reçoit via MCP est donc courte : lister les conversations, lire l'historique de messages de l'une d'elles, envoyer du texte, répondre dans un fil, ouvrir une conversation avec un identifiant de discussion connu.
Sur PlugKit, les outils s'appellent list_conversations, get_conversation, list_messages, send_message, send_dm, create_conversation et sync_conversations, et l'inbox est unifiée : les mêmes quatre outils lisent Instagram, Facebook, WhatsApp et Telegram. Ça compte plus qu'il n'y paraît. Un agent qui trie ton inbox ne devrait pas avoir besoin d'un outil différent par réseau, parce qu'à la seconde où c'est le cas, c'est toi qui écris la logique de routage dans le prompt.
Ce que tu ne trouveras pas : la programmation, les analytics, la modération de commentaires. Tout serveur qui annonce des analytics Telegram décrit soit des statistiques de chaîne récupérées sur une autre surface, soit quelque chose qui n'existe pas dans l'API Bot.
Pourquoi l'API Bot en fait le MCP le plus simple à installer
Toutes les autres plateformes de cette catégorie te font enregistrer une app, demander des scopes, passer une revue, puis renouveler un token à vie. Le serveur MCP Instagram demande un compte professionnel, une app Meta et une revue d'app. Celui de LinkedIn demande un accès partenaire pour la moitié de ses endpoints.
Telegram demande une conversation avec un autre bot. Tu écris à @BotFather, tu envoies /newbot, tu choisis un nom et un nom d'utilisateur qui finit par bot, et il te donne un token de la forme 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Ce token est le justificatif. Il n'expire pas, il n'y a pas de cycle de renouvellement, et il n'y a pas de file de revue.
Les appels partent sur https://api.telegram.org/bot<token>/METHOD_NAME en HTTPS, GET ou POST. Ce qui veut dire que le token est dans le chemin de l'URL à chaque requête, donc dans les logs de proxy et l'historique du shell. Traite-le comme un mot de passe, et utilise /revoke dans BotFather dès qu'il fuit.
Sur PlugKit, l'outil qui fait ça est connect_telegram : tu lui donnes le token BotFather, il le valide auprès de Telegram avant de le stocker, et le bot apparaît comme un compte connecté. Pas d'aller-retour OAuth, parce qu'il n'y a rien à autoriser.
| Plateforme | Credential | Revue | Expiration du token |
|---|---|---|---|
| Telegram | Token de bot donné par BotFather | aucun | aucun |
| Token OAuth longue durée | Revue d'app Meta | 60 jours, renouvelable | |
| Token WABA via Embedded Signup | Vérification business Meta | variable, reconnexion nécessaire | |
| Token OAuth | programme partenaire pour la plupart des endpoints | 60 jours | |
| X | Token OAuth 2.0 | palier d'API payant | renouvelable |
La seule règle qui bloque ton agent net
La documentation de Telegram le dit en une ligne : « Bots can't start conversations with users. A user must either add them to a group or send them a message first. »
C'est l'équivalent Telegram de la fenêtre de 24 h de Meta, sauf que c'est permanent plutôt qu'un minuteur. Ton agent ne peut pas chercher un nom d'utilisateur et lui écrire. Il ne peut répondre qu'aux gens qui ont déjà appuyé sur Start sur ton bot, ou parler dans les groupes où le bot a été ajouté.
La conséquence pratique pour un workflow d'agent : une liste de conversations n'est pas une liste de contacts que tu peux cibler. Avant de construire quoi que ce soit qui notifie des utilisateurs, il te faut un parcours qui les amène à ouvrir le bot d'abord, en général un lien profond de la forme t.me/yourbot?start=payload, où la charge utile arrive dans le premier message /start et te dit qui ils sont.
Dans les groupes, il y a une deuxième limite à connaître avant d'y passer une heure de debug. Par défaut, un bot dans un groupe ne reçoit que les messages qui le concernent : les commandes, les réponses à ses propres messages, les mentions. Telegram appelle ça le mode privacy. Si ton agent est censé lire toute une conversation de groupe, le mode privacy doit d'abord être désactivé dans BotFather, et le bot doit être retiré puis rajouté au groupe pour que le changement prenne.
getUpdates ou webhook : comment les messages arrivent au serveur
L'API Bot offre exactement deux façons de recevoir les messages, et elles s'excluent mutuellement. Activer l'une désactive l'autre, ce qui est de loin la cause la plus fréquente de « mon bot ne reçoit plus rien ».
getUpdates, c'est du long polling. Tu demandes les mises à jour avec unoffset, unelimitentre 1 et 100, et untimeout. Pratique en développement local.setWebhookfait envoyer par Telegram chaque mise à jour en POST vers une URL HTTPS que tu possèdes, avecmax_connectionsentre 1 et 100 et un en-têtesecret_tokenque tu devrais toujours définir. C'est ce qu'utilise un serveur hébergé.
Si tu fais tourner un serveur MCP local sur ton portable, tu es sur getUpdates, que tu l'aies choisi ou non, parce que Telegram ne livrera pas de webhook à une machine sans adresse HTTPS publique. Un serveur hébergé enregistre le webhook une fois et les mises à jour arrivent sans polling. Les arbitrages sont les mêmes que ceux détaillés dans MCP server hosting.
Les limites de débit qui transforment une diffusion en 429
Telegram les publie dans sa FAQ Bot, et elles sont plus strictes que la plupart des gens ne l'imaginent, parce que rien ne te prévient avant l'arrivée du 429.
| Situation | Limite | Ce qui se passe au-delà |
|---|---|---|
| Discussion unique | environ 1 message par seconde | court dépassement toléré, excès soutenu renvoie 429 |
| Groupe | 20 messages par minute | 429 |
| Notifications de masse | environ 30 messages par seconde toutes discussions confondues | 429, sauf si les diffusions payantes sont activées |
| Diffusions payantes | jusqu'à 1000 messages par seconde | 0,1 Star par message au-delà des 30 premiers par seconde |
Un message par seconde et par discussion a l'air généreux jusqu'à ce qu'un agent décide de répondre à une longue question en cinq paragraphes, chacun en message séparé. Dis-lui d'envoyer un message, pas un fil. Et si tu es tenté de faire diffuser une notification par un agent vers quelques milliers de discussions, c'est la ligne des 30 par seconde : une diffusion à 3000 personnes prend au moins 100 secondes même quand tout va bien.
Le brancher à Claude, ChatGPT ou Cursor
Le serveur MCP hébergé de PlugKit couvre Telegram en plus des plateformes de publication, et c'est la raison d'utiliser un seul endpoint plutôt qu'un serveur dédié à Telegram : le même agent qui répond à un message Telegram peut publier le post Instagram dont on lui a parlé. Il tourne sur https://api.plugkit.co/mcp en Streamable HTTP, suivant la révision de la spécification MCP du 28 juillet 2026, avec 103 outils et trois workflows prêts à l'emploi au 13 novembre 2026.
Dans Claude Code :
claude mcp add -t http plugkit https://api.plugkit.co/mcp
Dans les apps Claude, c'est Customize, puis Connectors, puis Add, puis un connecteur personnalisé avec la même URL. ChatGPT le prend sous Add custom MCP server. Cursor et VS Code prennent un lien en un clic ou quelques lignes de JSON. L'authentification est en OAuth 2.1 avec PKCE et sans client secret, avec mcp:read pour lire les conversations et mcp:write pour envoyer. Commence sur mcp:read : lire une inbox est réversible, envoyer un message Telegram ne l'est pas.
PlugKit est à 49 $ par mois pour 5 comptes connectés, résiliable à tout moment, ou 97 $ pour 30. Sept jours gratuits, avec une carte à l'inscription et rien de prélevé avant le 7e jour. Les messages Telegram eux-mêmes ne coûtent rien, puisque l'API Bot n'a pas de frais par message en dehors des diffusions payantes.
S'il te faut seulement Telegram et rien d'autre, écris-le toi-même. Un token de bot et 40 lignes contre sendMessage, c'est honnêtement le travail d'une matinée, et ça reste la bonne réponse pour un projet à un seul canal. L'argument pour un serveur hébergé, c'est la deuxième plateforme, celle où commence le travail sur les identifiants. MCP face à une API classique est la version longue de cet arbitrage.
FAQ
Est-ce qu'il existe un serveur MCP Telegram officiel ?
Non. Telegram publie l'API Bot ; toute couche MCP par-dessus est tierce. Ça vaut le coup de vérifier avant d'en installer un, parce que certains serveurs communautaires pilotent un compte utilisateur via l'API client MTProto plutôt qu'un bot, ce qui met ton compte personnel en jeu plutôt qu'un bot que tu peux révoquer.
Est-ce que Claude peut envoyer des messages Telegram ?
Oui, via un serveur MCP connecté à l'API Bot. Claude n'a aucun accès Telegram en propre. Une fois le serveur ajouté, envoyer est un appel d'outil, soumis à la même règle que pour tout bot : le destinataire doit avoir démarré ton bot ou partager un groupe avec lui.
Pourquoi mon bot ne peut-il pas écrire à un utilisateur en premier ?
Parce que Telegram l'interdit par construction. Un utilisateur doit envoyer un message au bot ou l'ajouter à un groupe avant que le bot puisse lui écrire. Le contournement habituel est un lien profond, t.me/yourbot?start=payload, qui ouvre le bot avec une charge utile que tu peux rattacher à l'utilisateur.
Est-ce qu'il me faut OAuth pour un serveur MCP Telegram ?
Pas pour Telegram lui-même. L'API Bot s'authentifie avec un token donné par BotFather et rien d'autre. Tu peux quand même vouloir de l'OAuth entre ton agent et le serveur MCP, ce qui est une autre couche, détaillée dans MCP server OAuth authentication.
Est-ce qu'un bot Telegram peut lire tous les messages d'un groupe ?
Seulement si le mode privacy est désactivé. Par défaut, un bot ajouté à un groupe reçoit les commandes, les réponses à ses propres messages et les mentions, rien d'autre. Tu désactives le mode privacy dans BotFather, puis tu retires et rajoutes le bot au groupe pour que le changement s'applique.
Un plug pour chaque plateforme que ton agent touche
49 $ par mois pour 5 comptes connectés, résiliable à tout moment. Toutes les fonctionnalités dans tous les forfaits.
Récupère ta clé API →