Telegram MCP Server
Telegram MCP Server
MCP-Server für die Interaktion mit Telegram über die Telegram Bot API. Der Server stellt dem LLM-Client eine Reihe von Tools zum Senden von Nachrichten, Lesen der letzten verfügbaren Nachrichten und Abrufen von Chat-Informationen zur Verfügung.
Funktionen
Der Server bietet drei MCP-Tools:
send_message– sendet eine Textnachricht an einen angegebenen Telegram-Chat.get_recent_messages– ruft die letzten verfügbaren Nachrichten aus einem angegebenen Chat ab.get_chat_info– gibt grundlegende Informationen über einen Telegram-Chat zurück.
Der Server verwendet den stdio-Transport, sodass er ohne separaten HTTP-Server an den MCP Inspector und andere MCP-Clients angeschlossen werden kann.
Related MCP server: agent-telegram-mcp
Architektur
MCP client / MCP Inspector
│
│ MCP over stdio
▼
src/server.py
│
▼
src/telegram_client.py
│
│ HTTPS
▼
Telegram Bot APIserver.py ist für die MCP-Schnittstelle und die Registrierung der Tools verantwortlich.
telegram_client.py kapselt die HTTP-Interaktion mit der Telegram Bot API.
config.py lädt das Token aus der Umgebungsvariable.
Technologie-Stack
Python 3.10+
MCP Python SDK 2.x
Telegram Bot API
httpxpython-dotenv
Projektstruktur
telegram-mcp/
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── telegram_client.py
│ └── server.py
├── .env.example
├── .gitignore
├── requirements.txt
└── README.mdVoraussetzungen
Python 3.10 oder neuer
Ein über
@BotFathererstellter Telegram-BotNode.js und
npx– nur erforderlich, wenn der MCP Inspector übermcp devverwendet wird
Installation
Klonen Sie das Repository und wechseln Sie in das Verzeichnis:
git clone <repository-url>
cd telegram-mcpErstellen Sie eine virtuelle Umgebung:
python3 -m venv .venv
source .venv/bin/activateInstallieren Sie die Abhängigkeiten:
pip install -r requirements.txtEinrichtung des Telegram-Bots
Öffnen Sie Telegram und suchen Sie nach
@BotFather.Führen Sie
/newbotaus.Erstellen Sie einen Bot und erhalten Sie den Bot-API-Token.
Fügen Sie das Token nicht in den Quellcode oder in Git ein.
Erstellen Sie eine .env-Datei:
cp .env.example .envGeben Sie das Token an:
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here.env wurde zu .gitignore hinzugefügt.
Vorbereitung des Chats
Privater Chat
Öffnen Sie den erstellten Bot.
Klicken Sie auf
Startoder senden Sie ihm eine Nachricht.Senden Sie einige Textnachrichten, um
get_recent_messageszu testen.
Gruppe
Erstellen Sie eine Testgruppe.
Fügen Sie den Bot zur Gruppe hinzu.
Wenn der Bot normale Gruppennachrichten sehen soll, deaktivieren Sie den Privatsphäre-Modus über
@BotFather(/setprivacy→Disable).Senden Sie einige Nachrichten in die Gruppe.
Um die chat_id zu erhalten, rufen Sie am besten zuerst get_chat_info oder get_recent_messages auf, nachdem der Bot eine Nachricht aus dem entsprechenden Chat erhalten hat.
Start
Aus dem Stammverzeichnis des Projekts:
python src/server.pyDer Server arbeitet über stdio und wartet auf eine MCP-Verbindung. Daher ist das Fehlen einer normalen Terminalausgabe nach dem Start normales Verhalten.
Für Entwicklung und Tests kann die MCP-CLI verwendet werden:
mcp dev src/server.pyDer Befehl startet den Server und den MCP Inspector. Der Inspector verwendet npx, daher muss Node.js im PATH verfügbar sein.
MCP-Tools
send_message
Sendet eine Textnachricht an Telegram.
Parameter:
chat_id: string — ID чата
text: string — текст сообщенияBeispiel:
chat_id: 123456789
text: Привет! Сообщение отправлено через MCP.Der Server gibt eine Bestätigung des Sendens und die message_id zurück.
get_recent_messages
Ruft die letzten verfügbaren Nachrichten des angegebenen Chats ab.
Parameter:
chat_id: string — ID чата
limit: integer — количество сообщений, по умолчанию 10limit ist auf einen Bereich von 1 bis 100 beschränkt.
Beispiel:
chat_id: 123456789
limit: 10Das Ergebnis enthält den Absender und den Text jeder verfügbaren Nachricht.
get_chat_info
Ruft grundlegende Informationen über einen Chat ab.
Parameter:
chat_id: string — ID чатаDie Antwort zeigt die verfügbaren Felder an, einschließlich ID, Typ, Name, Benutzername, Vor- und Nachname.
Wie der Nachrichtenabruf funktioniert
Die Telegram Bot API bietet dem Bot keine separate Methode zum Lesen einer beliebigen Chat-Historie. Zum Abrufen eingehender Nachrichten verwendet der Server getUpdates.
get_recent_messages fragt bis zu 100 der letzten verfügbaren Updates ab und filtert sie dann nach chat_id. Daher arbeitet das Tool mit Nachrichten, die Telegram dem Bot über die Update-Warteschlange bereitstellt, und nicht mit der vollständigen Chat-Historie.
Das bedeutet, dass das Tool keinen Telegram-Client mit Zugriff auf die gesamte Nachrichtenhistorie ersetzt. Für Tests reicht es aus, Nachrichten zu senden, nachdem der Bot zum Chat hinzugefügt wurde, und dann get_recent_messages aufzurufen.
Wichtig: getUpdates kann nicht gleichzeitig mit einem aktiven Webhook verwendet werden. Wenn für den Bot ein Webhook konfiguriert ist, entfernen Sie ihn zuerst, damit Long Polling über getUpdates Updates empfangen kann.
Beispielszenario
Starten Sie den MCP Inspector.
Verbinden Sie
src/server.py.Stellen Sie sicher, dass folgende Tools verfügbar sind:
send_messageget_recent_messagesget_chat_info
Rufen Sie
get_chat_infoauf, um die Verbindung zum Chat zu überprüfen.Rufen Sie
send_messageauf und überprüfen Sie, ob die Nachricht in Telegram erscheint.Senden Sie einige Nachrichten in Telegram.
Rufen Sie
get_recent_messagesauf und überprüfen Sie die erhaltene Nachrichtenliste.
Sicherheit
Der Telegram Bot API-Token wird nur über die Umgebungsvariable TELEGRAM_BOT_TOKEN übergeben.
Die echte .env-Datei sollte nicht in Git gelangen. Im Repository wird nur .env.example ohne funktionierendes Token gespeichert.
Einschränkungen
Der Bot hat über die Bot API keinen Zugriff auf die gesamte Telegram-Chat-Historie.
get_recent_messagesarbeitet mit den verfügbaren Bot-Updates.In Gruppen hängt der Satz von Nachrichten, die der Bot erhält, von den Telegram-Datenschutzeinstellungen ab.
getUpdatesund Webhook schließen sich gegenseitig als Methoden zum Empfangen von Updates aus.
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 gradedqualityDmaintenanceEnables AI agents to read, send, and organize Telegram messages and chats. Supports tools for listing chats, fetching messages, sending/reply, archiving, muting, and folder management.1MIT
- AlicenseAqualityDmaintenanceEnables AI agents to send and receive messages, media, and files on Telegram, and manage chats via a bot token.17MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Telegram Bot API, allowing them to send messages, forward messages, get bot information, and receive updates.273MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to send notifications and receive responses via Telegram.174MIT
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
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
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/polinenysh/telegram-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server