mcp-telegram
mcp-telegram
Un servidor MCP que conecta asistentes de IA como Claude a tu cuenta real de Telegram mediante la API de usuario (MTProto). No es un bot: Claude lee y envía mensajes como si fueras tú.
Construido con gotd/td y el SDK oficial de MCP para Go.
Términos de servicio de la API de Telegram: Este proyecto utiliza la API de usuario de Telegram. Debes obtener tu propio
api_idyapi_hashen my.telegram.org y cumplir con los Términos de servicio de la API de Telegram. El uso indebido de la API de usuario (spam, mensajería masiva, scraping) puede resultar en la prohibición de tu cuenta. Eres el único responsable de cómo utilizas esta herramienta.
Contenido
Características
Herramienta | Qué hace | Permiso requerido |
| Devuelve la información de la cuenta actual | — |
| Lista los diálogos visibles para la lista blanca de la ACL | — |
| Obtiene el historial de mensajes con paginación, filtrado por fecha y descarga de archivos multimedia |
|
| Busca mensajes en un chat mediante consulta de texto, con filtro opcional de remitente |
|
| Envía un mensaje de texto o archivo, con respuesta opcional a un mensaje |
|
| Reenvía mensajes de un chat a otro |
|
| Guarda un borrador de mensaje (no lo envía) |
|
| Marca un chat como leído |
|
Capacidades adicionales:
Envío de archivos y fotos
Reenvío de mensajes entre chats
Responder a mensajes específicos
Descarga de fotos y documentos del historial de mensajes
Filtrado del historial por rango de fechas (
since/until)Referencias de pares tipadas (
user:ID,chat:ID,channel:ID) para evitar colisiones de IDResolución de pares diferida (lazy) — evita errores
FLOOD_WAITal iniciarLimitación de tasa global a nivel de RPC
Qué puedes hacer con esto
Una vez conectado, puedes pedirle a tu asistente de IA cosas como:
Ponerse al día con los mensajes
"Revisa mis mensajes de Telegram no leídos y hazme un resumen"
"¿Qué escribió @alice en las últimas 24 horas?"
"Muéstrame los mensajes del chat del equipo de desarrollo desde el lunes"
Responder y comunicarse
"Redacta una respuesta al último mensaje de @bob, pero no la envíes todavía"
"Envía 'me parece bien, reunámonos a las 3pm' a @alice"
"Responde al mensaje 1234 en el chat del proyecto con mis comentarios"
Gestionar tu bandeja de entrada
"Marcar todo como leído en el canal de noticias"
"¿Cuáles de mis chats en la lista blanca tienen mensajes no leídos?"
"Descarga las fotos de los mensajes de hoy en el chat de diseño"
Investigar y analizar
"Busca todos los mensajes que mencionen el despliegue en la última semana"
"Resume la discusión en el chat del equipo de ayer"
"¿Qué archivos se compartieron en el canal del proyecto este mes?"
Comparación con chaindead/telegram-mcp
mcp-telegram | chaindead/telegram-mcp | |
Control de acceso | Lista blanca ACL con denegación predeterminada y permisos granulares por chat | Acceso total a todos los chats |
Direccionamiento de pares | Referencias tipadas ( | Solo IDs numéricos (propenso a colisiones) |
Configuración | Configuración YAML con expansión de variables de entorno | Flags de CLI |
Seguridad al inicio | Resolución de pares diferida (sin llamadas masivas a la API) | Resolución inmediata (riesgo de |
Limitación de tasa | Middleware de token bucket integrado | Ninguna |
Soporte de archivos | Envío de archivos, fotos; descarga de multimedia del historial | Solo texto |
Soporte de respuesta | Sí | No |
Filtrado por fecha | Sí | No |
Inicio rápido
Requisitos previos
Go 1.26+
Una cuenta de Telegram
Credenciales de API de my.telegram.org (
api_idyapi_hash)
Instalación
Homebrew (macOS / Linux):
brew install Prgebish/tap/mcp-telegramBinarios precompilados (macOS / Linux / Windows):
Descárgalos desde GitHub Releases.
Instalación con Go:
go install github.com/Prgebish/mcp-telegram/cmd/mcp-telegram@latestDesde el código fuente:
git clone https://github.com/Prgebish/mcp-telegram.git
cd mcp-telegram
go build ./cmd/mcp-telegramEsto genera mcp-telegram (o mcp-telegram.exe en Windows) en el directorio actual.
Autenticación
Ejecuta el comando de autenticación una vez para crear un archivo de sesión. Se te solicitará tu número de teléfono, el código de inicio de sesión y (si está habilitado) tu contraseña de 2FA.
macOS / Linux:
export TG_APP_ID=12345
export TG_API_HASH="your_api_hash"
mcp-telegram auth --config config.yamlWindows (PowerShell):
$env:TG_APP_ID = "12345"
$env:TG_API_HASH = "your_api_hash"
mcp-telegram.exe auth --config config.yamlWindows (cmd):
set TG_APP_ID=12345
set TG_API_HASH=your_api_hash
mcp-telegram.exe auth --config config.yamlConfiguración
Crea un archivo config.yaml:
telegram:
app_id: ${TG_APP_ID}
api_hash: ${TG_API_HASH}
session_path: ~/.config/mcp-telegram/session.json
acl:
chats:
- match: "@username"
permissions: [read, draft, mark_read]
- match: "user:123456789"
permissions: [read, send]
- match: "channel:2225853048"
permissions: [read, mark_read]
limits:
max_messages_per_request: 50
max_dialogs_per_request: 100
rate:
requests_per_second: 2.0
burst: 3
logging:
level: infoLas variables de entorno con sintaxis ${...} se expanden al cargar.
Configuración del cliente
El servidor se comunica a través de stdio: tu cliente MCP inicia y gestiona el proceso.
Claude Code (CLI — añadir mediante comando):
claude mcp add telegram -- /path/to/mcp-telegram serve --config /path/to/config.yamlClaude Desktop / Claude Code (~/.claude.json o claude_desktop_config.json):
{
"mcpServers": {
"telegram": {
"command": "/path/to/mcp-telegram",
"args": ["serve", "--config", "/path/to/config.yaml"],
"env": {
"TG_APP_ID": "12345",
"TG_API_HASH": "your_api_hash"
}
}
}
}Cursor (Ajustes > Servidores MCP > Añadir):
{
"telegram": {
"command": "/path/to/mcp-telegram",
"args": ["serve", "--config", "/path/to/config.yaml"],
"env": {
"TG_APP_ID": "12345",
"TG_API_HASH": "your_api_hash"
}
}
}Configuración
ACL
La ACL es de denegación predeterminada. Solo los chats listados explícitamente en acl.chats son accesibles, y solo con los permisos que especifiques.
Patrones de coincidencia admitidos:
Patrón | Ejemplo | Descripción |
|
| Coincidencia por nombre de usuario de Telegram (sin distinguir mayúsculas) |
|
| Coincidencia por número de teléfono |
|
| Coincidencia de usuario por ID numérico |
|
| Coincidencia de chat grupal por ID numérico |
|
| Coincidencia de canal o supergrupo por ID numérico |
Tipos de permiso: read, send, draft, mark_read.
Si el mismo par coincide con varias reglas (por ejemplo, mediante @username y user:ID), los permisos se combinan; nunca se solapan entre sí.
Limitación de tasa
La sección limits.rate configura un token bucket global que envuelve todas las llamadas RPC de Telegram:
requests_per_second— tasa sostenida (predeterminado: 2.0)burst— tamaño máximo de ráfaga (predeterminado: 3)
Descarga de archivos multimedia
media:
download: [photo, document, video, voice, audio]
directory: ~/telegram-media
allowed_upload_dirs:
- ~/Documents
- ~/DownloadsCuando se configura, tg_history descargará automáticamente los archivos multimedia al directorio especificado. El parámetro download_to puede sobrescribir la ruta, pero solo dentro de media.directory o sus subdirectorios.
allowed_upload_dirs restringe los directorios desde los cuales tg_send puede leer archivos. El envío de archivos está deshabilitado a menos que esto esté configurado.
Seguridad
ACL de denegación predeterminada — ningún chat es accesible a menos que esté explícitamente en la lista blanca
Límite del sistema de archivos —
tg_sendsolo puede leer archivos deallowed_upload_dirs;download_toestá restringido a subdirectorios demedia.directoryPermisos del archivo de sesión — forzados a
0600(lectura/escritura solo para el propietario)Sin registro de secretos — los hashes de API, tokens de sesión y claves de autenticación nunca se escriben en los registros
Sin exposición de hashes de acceso — los hashes de acceso internos de Telegram se eliminan de toda la salida de las herramientas
Limitación de tasa — evita el abuso accidental de la API
Zona horaria local — los filtros de fecha utilizan la zona horaria de tu sistema, no UTC
Licencia
Si este proyecto te resulta útil, por favor dale una estrella: ayuda a que otros lo descubran.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Prgebish/mcp-telegram'
If you have feedback or need assistance with the MCP directory API, please join our Discord server