telegram-bot-mcp
telegram-bot-mcp
Un servidor MCP que permite a Claude gestionar un canal de Telegram a través de la API de Telegram Bot: realiza un seguimiento del crecimiento de suscriptores día a día, y publica, edita, fija o elimina publicaciones.
🇮🇷 راهنمای فارسی · Guía de implementación · راهنمای دپلوی
Qué es esto
La API de Telegram Bot es una API HTTPS simple. Este repositorio la envuelve en el Protocolo de Contexto de Modelo para que un asistente de IA pueda invocarla como herramientas — "¿cómo le fue al canal esta semana?" en lugar de curl https://api.telegram.org/bot.../getChatMemberCount.
Se distribuye en dos formatos, a partir de las mismas definiciones de herramientas:
Servidor remoto ( | Plugin local ( | |
Se ejecuta en | Val Town (o cualquier host compatible con Deno) | Tu propia máquina |
Se conecta mediante | Conector personalizado de Claude (OAuth) | Plugin de Claude Code (stdio) |
Funciona en | Claude web, escritorio, móvil, tareas programadas | CLI de Claude Code |
Persistencia | Almacenamiento de blobs de Val Town | Archivo CSV en disco |
Autenticación | OAuth 2.1 integrado + contraseña | Archivo de configuración local |
Elige el servidor remoto si quieres informes diarios que se ejecuten sin ti. Elige el plugin si solo usas Claude Code y prefieres que nada salga de tu máquina.
Related MCP server: SimpleTgChatMcp
Herramientas
Ambas versiones exponen las mismas ocho herramientas.
Herramienta | Descripción |
| Título, nombre de usuario, descripción, número de suscriptores, enlace de invitación |
| Solo número de suscriptores — rápido |
| Registra el conteo de hoy y devuelve el cambio respecto a la instantánea anterior |
| Instantáneas registradas con cambios por día y un resumen del cambio neto |
| Publica un mensaje de texto (HTML/Markdown, silencioso, sin vista previa) |
| Reemplaza el texto de una publicación |
| Elimina una publicación por ID de mensaje |
| Fija o desfija una publicación |
Inicio rápido (servidor remoto)
Crea un bot con @BotFather →
/newbot→ copia el token.Añade el bot como administrador de tu canal.
Crea un val HTTP en val.town y pega el contenido de
remote/telegram-mcp.ts.Establece tres variables de entorno en la barra lateral del val:
TELEGRAM_BOT_TOKEN,TELEGRAM_CHANNEL,MCP_PASSWORD.En Claude: Configuración → Conectores → Añadir conector personalizado →
https://<tu-val>.web.val.run/mcp→ introduce tu contraseña.
Guía completa, incluida la ruta del plugin local y la resolución de problemas: docs/deployment.md.
Seguridad
No se incluye ninguna credencial en este repositorio. config.json y .env están en .gitignore; solo se rastrean los archivos .example. Antes de hacer push de cualquier fork, confirma con git status que ninguno de los dos aparece.
El servidor remoto implementa un flujo completo de autorización OAuth 2.1 en lugar de quedar abierto en internet:
Las solicitudes sin un token válido reciben un
401con una cabeceraWWW-Authenticateque apunta a los metadatos del recurso, según RFC 9728.Los clientes se registran dinámicamente (RFC 7591); no se distribuyen secretos de cliente.
Los códigos de autorización están protegidos con PKCE (S256) y los URI de redirección se validan contra el conjunto registrado.
Los tokens de acceso y de actualización están firmados con HMAC-SHA256 y no tienen estado: acceso de 24 horas, actualización de 30 días.
La pantalla de consentimiento está protegida por
MCP_PASSWORD, que tú eliges.
Tu token de bot permanece en las variables de entorno del host y nunca lo devuelve ninguna herramienta.
Trata MCP_PASSWORD como una contraseña para tu canal. Cualquiera que la tenga puede conectarse y publicar mensajes.
Limitaciones
La API de Bot informa solo del número de suscriptores. Las vistas de las publicaciones, los reenvíos y las estadísticas oficiales del canal no están expuestos a los bots — requieren un cliente MTProto con una cuenta de usuario que administre el canal.
Un bot generalmente solo puede editar mensajes que él mismo haya enviado. Telegram define el derecho de administrador can_edit_messages ("puede editar mensajes de otros usuarios; solo para canales"), pero el comportamiento del bot con publicaciones de administradores humanos no está claramente documentado — pruébalo en tu propio canal antes de confiar en ello. La eliminación es diferente: can_delete_messages cubre explícitamente los mensajes de otros usuarios.
La comparación de crecimiento requiere que el historial sobreviva entre ejecuciones. En Val Town eso es el almacenamiento de blobs, que persiste. En el plugin local es un archivo CSV — guárdalo en un lugar duradero, no en un directorio temporal.
Estructura del repositorio
remote/telegram-mcp.ts Remote MCP server (Val Town HTTP val, Deno)
plugin/ Claude Code plugin
.claude-plugin/plugin.json Plugin manifest
.mcp.json stdio MCP server registration
server/telegram_mcp_server.py MCP server (Python 3, stdlib only)
skills/telegram-channel-report/ Skill that turns tools into a readable report
config.example.json Template — copy to config.json
tests/ Test suite for the remote server
docs/ Deployment guides (English / فارسی)Pruebas
npm testRequiere Node 22.6+. Veintidós comprobaciones cubren el flujo de OAuth (desafío 401, documentos de descubrimiento, registro dinámico, rechazo de PKCE, concesión de tokens y rechazo de tokens falsificados) y el protocolo MCP (inicialización, notificaciones, listado de herramientas, aritmética de delta de crecimiento, rutas de error de herramientas). La API de Telegram está simulada; no se necesita acceso a la red ni un token de bot real.
La suite se ejecuta contra el código fuente implementado — tests/build.mjs reescribe exactamente una línea, la importación del blob de Val Town, y no cambia nada más.
Licencia
This server cannot be deployed
Maintenance
Related MCP Connectors
Run a Telegram channel from your AI agent. Posts go out through your own bot, not your account.
Telegram channels you administer: analytics, content plans, scheduled publishing. No userbot
Hosted Telegram MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Postlyra.app is a Telegram MCP server for creating and publishing rich posts from AI chats. Build drafts with editable tables, images, source links and buttons; review the preview, then publish or schedule in a connected channel or group. Install the published Postlyra plugin in ChatGPT, or connect remote MCP in compatible clients such as Claude, Claude Code, Codex and Cursor. OAuth connects your own Postlyra account. Saving a draft does not publish it. Free Beta includes usage limits and Postlyra attribution. AI-client subscriptions are separate. [Install in ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6aa661b9f69c81919d9108aae8f09364) · [MCP setup guide](https://postlyra.app/en/guides/telegram-mcp?utm_source=mcp_directory&utm_medium=referral&utm_campaign=seo_guides_202609&utm_content=release_en) · [Official website](https://postlyra.app)
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with the Telegram Bot API via the Model Context Protocol to send, edit, and delete messages, photos, and videos. It allows Claude to manage Telegram communications and fetch bot updates through natural language commands.15 npm-
- AlicenseNot gradedqualityCmaintenanceEnables Claude to send messages, media, and manage Telegram chat messages through a Telegram bot, including sending photos, documents, and editing or deleting messages.MIT
- AlicenseAqualityDmaintenanceEnables Claude to send and manage Telegram messages through a bot, supporting remote deployment for scheduled automations.1013 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables managing Telegram channels from MCP-capable AI assistants, including drafting and scheduling posts, publishing content, and retrieving channel analytics.MIT