Telegram MCP — Next Generation
Telegram MCP — Nueva generación
Una integración de Telegram orientada a producción para clientes compatibles con MCP, mantenida por LoneVertex y construida sobre Telethon y el Model Context Protocol. Este repositorio conserva la superficie funcional de Telegram del upstream y añade niveles de herramientas explícitos, controles de mutación con cierre ante fallos, límites de concurrencia por clave, reintentos acotados, caché local en SQLite/FTS5, rutas de medios más seguras, puntos de entrada de paquete y CI reproducible.
Postura por defecto: stdio local, nivel de herramientas
core, sin escrituras en Telegram, sin operaciones destructivas y sin raíces de sistema de archivos no verificadas.
Gobernanza del proyecto: Contribuciones · Política de seguridad · Apache License 2.0
Qué se incluye
La implementación registra 128 herramientas: las 125 herramientas del upstream que cubren cuentas, chats, contactos, mensajes, grupos, medios, perfiles, carpetas y eventos entrantes, más cache_health, search_cached_messages y sync_chat_cache. La procedencia del upstream se conserva en el commit 52cca204d945e4e6b0801a9d9723320c2a4b63; el paquete de nueva generación está en la versión 4.0.1.
Nivel | Propósito | Predeterminado |
| Herramientas de solo lectura para cuentas, chats, mensajes, búsqueda, perfiles, inspección de medios, contactos, carpetas, inspección administrativa y caché local | Sí |
| Núcleo más envíos de mensajes y medios, respuestas, reenvíos, reacciones, borradores, alias y esperas de eventos | No |
| Todas las herramientas del upstream, incluyendo operaciones administrativas y destructivas | No |
Establezca TELEGRAM_MCP_TIER para seleccionar un nivel. El nivel seleccionado controla qué herramientas se registran. TELEGRAM_SEND_ENABLED controla de forma independiente si las operaciones de escritura pueden ejecutarse, y TELEGRAM_DESTRUCTIVE_ENABLED es una segunda puerta para las acciones destructivas/administrativas. El servidor devuelve una respuesta estructurada nothing_sent o nothing_done cuando una puerta bloquea una llamada.
Related MCP server: telegram-mcp
Inicio rápido
Use Python 3.11 o 3.12. Obtenga las credenciales de la API de Telegram en my.telegram.org/apps y genere una sesión autorizada fuera del proceso MCP con el generador de sesiones incluido.
git clone https://github.com/LoneVertex/telegram-mcp-nextgen.git
cd telegram-mcp-nextgen
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# edit .env with TELEGRAM_API_ID, TELEGRAM_API_HASH, and an authorized session
telegram-mcpPara el desarrollo del paquete y la validación de los lanzamientos:
pip install -e '.[dev]'
pytest -q
ruff check telegram_mcp/config.py telegram_mcp/core telegram_mcp/db telegram_mcp/models
mypy --explicit-package-bases telegram_mcp/config.py telegram_mcp/core telegram_mcp/db telegram_mcp/models
python -m buildEl servidor es intencionalmente no interactivo. Use telegram-mcp-generate-session antes del arranque y mantenga privada la cadena de sesión resultante. Nunca comprometa .env, un archivo .session de Telethon, hashes de API o cadenas de sesión.
Configuración
La plantilla completa sin secretos está en .env.example. Los controles relevantes se resumen a continuación.
Variable | Predeterminado seguro | Significado |
|
| Nivel de herramientas registrado: |
|
| Puerta global de operaciones de escritura |
|
| Puerta adicional para borrar, bloquear, abandonar y operaciones similares |
|
| Raíz del estado persistente |
| Derivada | Ruta de la caché SQLite; debe permanecer dentro de |
|
| Máximo de reintentos acotados por FloodWait/errores transitorios |
|
| Espera máxima solicitada por el proveedor y aceptada para reintentar |
|
| Capacidad de ráfaga del token bucket por cuenta |
|
| Tasa de relleno de token bucket por cuenta |
|
| Tamaño máximo de descarga de medios |
|
| Tamaño máximo de subida de medios |
La construcción de la configuración no tiene efectos secundarios. Las credenciales y la autorización se comprueban cuando se inicia un cliente en vivo, no cuando las herramientas locales importan el paquete. El estado en tiempo de ejecución se crea bajo directorios de solo propietario cuando una operación de caché o de sesión lo requiere.
Clientes y transportes MCP
Vea config/mcp-configs.md para ejemplos sin secretos dirigidos a clientes MCP de escritorio. Se prefiere el stdio local. Streamable HTTP está disponible para un servicio local de larga duración:
MCP_TRANSPORT=http
MCP_HOST=127.0.0.1
MCP_PORT=8765No exponga el endpoint HTTP sin autenticación directamente a la Internet pública. Si se usa un proxy inverso, configure autenticación, TLS, hosts permitidos, orígenes permitidos y controles de red. El servidor conserva la protección contra DNS rebinding cuando MCP_ALLOWED_HOSTS está configurado.
Concurrencia y fiabilidad
Cada cuenta está protegida por un mutex asíncrono por clave y un token bucket. Las llamadas que comparten una cuenta se serializan en el límite del adaptador, mientras que la expansión de solo lectura en varias cuentas sigue siendo posible entre distintas etiquetas de cuenta. FloodWait y los fallos de conexión transitorios usan una única política de reintentos acotados con backoff exponencial y jitter. Los bloqueos advisory a nivel de sesión se mantienen para evitar que procesos duplicados usen simultáneamente la misma clave de autenticación de Telegram.
La caché local usa el modo WAL de SQLite, claves foráneas, conexiones de corta vida, transaciones explícitas, índices para el acceso por chat/fecha/remitente/tema y FTS5 para la búsqueda. La sincronización guarda puntos de control y usa upserts para reflejar las ediciones en lugar de duplicarlas. El trabajo con SQLite, la cación de directorios y las comprobaciones de integrdad se ejecutan en hilos de traba jo en luugar de bloquear el buce de eventos.
Medios y seguridad del sistema de archivos
Las herramientes de archivo requieren raíces MCP del cliente or raíces explícitas del lado del servidor. Las raíces vacías or no verificalbles signals produce a comportamiento de denagción totial a menos que TELEGRAM_ALLOW_SERVE_ROTS_FALLBACK se habilite intencionalmente. Las rutas se resuelven dentro de las raíces configuradas; se rechazan el path traversal y los bytes NUL, se rechazan las fugas mediante enlaces simbólicos, se aplican los límites de tamaño de medios, y los archivos generados usan permisos de solo el propietario. Las nuevas primitivas de seguridad permiten lecturas fragmentadas y sustitución atómica de la salida.
Los textos, pies de foto, nombres, etiquetas de botones, metadatos de medios y campos de eventos entrantes de Telegram son contenido de usuario no confiable. La saneación y las audiencias anotadas se conservan del upstream; los modelos no deben tratar esos campos como instrucciones.
Docker
La imagen usa una construcción de Python 3.12 en dos etapas, se ejecuta como UID 10001, guarda el estado en /var/lib/telegram-mcp y recibe las credenciales solo en el arranque.
cp .env.example .env
# edit .env
podman compose up --build
# or: docker compose up --buildEl Compose vincula HTTP a 127.0.0.1:8765, usa un volumen nombrado persistente, elimina las capacidades Linux, activa no-new-privileges, monta un sistema de archivos raíz de solo lectura y proporciona un /tmp restringido. La construcción del contenedor no se ejecutó en el sandbox usado para esta entrega porque Docker no estaba disponible; el flujo de trabajo CI lo valida en un runner con Docker.
Puertas de desarrollo y publicación
El flujo de trabajo integrado en .github/workflows/ci.yml se ejecuta con Python 3.11 y 3.12, ejecuta la suite de regresión heredada del upstream además de las pruebas de la nueva generación, ejecuta comprobaciones estrictas de Ruff en las nuevas capas de producción, ejecuta comprobaciones de mypy con base de paquete explícita, compila el paquete, genera una wheel/sdist, audita las dependencias declaradas y valida la imagen Docker y la configuración de Compose. Los adaptadores en vivo del upstream siguen cubiertos por su suite de regresión simulada heredada; los módulos lociales de confiabilidad/seguridad tienen pruebas y cobertura dedicadidas.
Propiedad, compatibilidad y procedencia
Mantenimiento del proyecto: LoneVertex.
El main.py raíz, los nombres de módulos de herramientas del upstream, el generador de sesiones, las etiquetas de cuenta, los ajustes de proxy, las variables de transporte MCP, el filtro de exposición heredado y la licencia Apache-2.0 del upstream se conservan para la compatibilidad. El nuevo punto de entrada del paquete es telegram_mcp.runner:main y se admite python -m telegram_mcp. El código fuente del upstream y su atribución siguen en el historial de Git y en AUDIT_REPORT.md.
Solución de problemas
Si al inicio se informa que no hay sesión configurada, genere una sesión autorizada y configure TELEGRAM_SESSION_STRING o un nombre de sesión de archivo válido. Si una escritura devuelve MutationDisabled, configure TELEGRAM_SEND_ENABLED a true y reinicie; para borrado o administración, además estabrica TELEGRAM_DESTRUCTIVE_ENABLED en true. Si una herramienta de archivo informa que no hay raíces disponibles, configure las raíces MCP del cliente o pase una raíz permitida del servidor como argumento posicional. Si un flood de Telegram supera el máximo configurado, la llamada devuelve intencionalmente un error en lugar de quedarse dormida indefinidamente. Use cache_health para inspeccionar la integridad de SQLite/FTS5 local sin contactar con Telegram.
Referencias
Licencia
Apache License 2.0. Ver LICENSE.
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
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with Telegram accounts through MCP, supporting messaging, contacts, groups, media, and admin functions.4Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible clients like Claude and Cursor to interact with Telegram accounts, supporting messaging, chat management, contacts, media, and admin operations via Telethon.Apache 2.0
- FlicenseBqualityCmaintenanceEnables MCP clients to interact with Telegram user accounts, providing tools for messaging, contacts, groups, channels, and media management through the Telegram API.85
- AlicenseNot gradedqualityAmaintenanceA safe-by-default MCP server for real Telegram accounts powered by TDLib, enabling AI agents to read and act on your account with read-only mode and human approval for destructive actions.2Apache 2.0
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
MemberPass MCP — manage projects, plans, members, payments, and analytics for Telegram creators.
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/LoneVertex/telegram-mcp-nextgen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server