Telegram MCP
Un servidor MCP para interactuar con el servicio de mensajería de Telegram utilizando la biblioteca mtcute.
Documentación
telegram-mcp
Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con Telegram usando mtcute.
Características
- Enviar mensajes de texto a chats
- Esperar mensajes entrantes en chats específicos
- Leer mensajes de chats
- Buscar mensajes
- Listar y obtener información sobre diálogos (chats)
- Obtener mensajes recientes de todos los chats
- Establecer y consultar IDs de estado emoji para cuentas y canales
Configuración
Instalación
Opción 1: Descargar el binario precompilado
Descarga la última versión para tu plataforma desde la página de versiones:
- macOS (Apple Silicon):
telegram-mcp-darwin-arm64.tar.gz - macOS (Intel):
telegram-mcp-darwin-x64.tar.gz - Linux:
telegram-mcp-linux-x64.tar.gz - Windows:
telegram-mcp-win-x64.exe.zip
Extrae el archivo y haz que el binario sea ejecutable (sistemas Unix):
tar -xzf telegram-mcp-*.tar.gz
chmod +x telegram-mcp
Opción 2: Compilar desde el código fuente
-
Clona el repositorio e instala las dependencias:
git clone git@github.com:zhigang1992/telegram-mcp.git cd telegram-mcp bun install -
Compila el ejecutable:
bun run build
Configuración inicial (solo la primera vez)
-
Obtén tus credenciales de la API de Telegram desde https://my.telegram.org
-
Ejecuta la configuración inicial para autenticarte con Telegram:
export API_ID=your_api_id export API_HASH=your_api_hash ./telegram-mcpEl servidor:
- Te pedirá que ingreses tu número de teléfono
- Te enviará un código de verificación a través de Telegram
- Solicitará el código de verificación
- Mostrará la ruta de almacenamiento absoluta (la necesitarás para la configuración de MCP)
-
Anota la ruta de almacenamiento mostrada en la salida. Se verá algo así:
Storage path: /Users/username/telegram-mcp/bot-data/session
Uso
Como servidor MCP
Agrégalo a la configuración de Claude Desktop usando la ruta de almacenamiento de la configuración inicial:
{
"mcpServers": {
"telegram": {
"command": "/path/to/telegram-mcp",
"env": {
"API_ID": "your_api_id",
"API_HASH": "your_api_hash",
"TELEGRAM_STORAGE_PATH": "/absolute/path/from/initial/setup"
}
}
}
}
Importante: TELEGRAM_STORAGE_PATH debe ser la ruta absoluta mostrada durante la configuración inicial. Esto garantiza que el servidor MCP use la sesión autenticada.
Herramientas disponibles
Herramientas de mensajes
-
messages_sendText- Enviar un mensaje de texto a un chatchatId(obligatorio): ID de chat/usuario o nombre de usuariotext(obligatorio): Texto del mensaje a enviarreplyToMessageId: ID de mensaje opcional para responder
-
messages_getHistory- Obtener el historial de mensajes de un chatchatId(obligatorio): ID de chat/usuario o nombre de usuariolimit: Número de mensajes (predeterminado: 100, máximo: 100)offsetId: ID de mensaje para paginación
-
messages_search- Buscar mensajesquery(obligatorio): Consulta de búsquedachatId: Chat específico para buscar (opcional)limit: Número de resultados (predeterminado: 50)
-
messages_getRecent- Obtener mensajes recientes de todos los chatslimit: Número de chats (predeterminado: 10)messagesPerChat: Mensajes por chat (predeterminado: 10)
Herramientas interactivas
wait_for_reply- Esperar el siguiente mensaje en un chatchatId(obligatorio): ID de chat/usuario o nombre de usuario del que esperar un mensajetimeoutSeconds: Tiempo de espera en segundos (predeterminado: 60, máximo: 300)
Herramientas de estado
-
status_getCurrent- Obtener el estado emoji actual de un peerpeerId: Peer de destino, por defectoself
-
status_setEmoji- Establecer o borrar un estado emojipeerId: Peer de destino, por defectoselfemojiId: ID de documento de emoji personalizado, obligatorio a menos queclear=trueisCollectible: EstablecertruecuandoemojiIdes un ID coleccionableuntil: Marca de tiempo ISO-8601 opcional o cadena de marca de tiempo Unixclear: Borrar el estado actual en lugar de establecer uno
-
status_listAvailable- Listar los IDs de estado emoji predeterminados disponiblesscope:selfochannel(predeterminado:self)limit: Máximo de IDs a devolver (predeterminado: 100)
-
status_listCollectibles- Listar los IDs coleccionables propiedad del usuario utilizables como estados emoji propiosowner: Peer a inspeccionar, por defectoselflimit: Máximo de coleccionables a devolver (predeterminado: 100)
Herramientas de diálogos
-
dialogs_list- Listar todos los diálogoslimit: Máximo de diálogos (predeterminado: 50)filter: Opciones de filtro (onlyUsers, onlyGroups, onlyChannels)
-
dialogs_getInfo- Obtener información detallada del diálogochatId(obligatorio): ID de chat/usuario o nombre de usuario
Desarrollo
Ejecutar en modo de desarrollo:
bun run dev
El servidor almacena los datos de sesión en el directorio bot-data/.