Telegram MCP Server
Telegram MCP Server
Telegram Bot APIを介してTelegramとやり取りするためのMCPサーバー。このサーバーは、LLMクライアントにメッセージの送信、利用可能な最新メッセージの読み取り、チャット情報の取得を行うためのツールセットを提供します。
機能
サーバーは3つのMCPツールを提供します:
send_message— 指定されたTelegramチャットにテキストメッセージを送信します。get_recent_messages— 指定されたチャットから利用可能な最新メッセージを取得します。get_chat_info— Telegramチャットの基本情報を返します。
サーバーはstdioトランスポートを使用するため、別途HTTPサーバーを用意しなくてもMCP Inspectorや他のMCPクライアントに接続できます。
Related MCP server: Telegram MCP Server
アーキテクチャ
MCP client / MCP Inspector
│
│ MCP over stdio
▼
src/server.py
│
▼
src/telegram_client.py
│
│ HTTPS
▼
Telegram Bot APIserver.pyはMCPインターフェースとツールの登録を担当します。
telegram_client.pyはTelegram Bot APIとのHTTP通信をカプセル化します。
config.pyは環境変数からトークンを読み込みます。
スタック
Python 3.10+
MCP Python SDK 2.x
Telegram Bot API
httpxpython-dotenv
プロジェクト構造
telegram-mcp/
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── telegram_client.py
│ └── server.py
├── .env.example
├── .gitignore
├── requirements.txt
└── README.md要件
Python 3.10以降
@BotFatherで作成されたTelegramボットNode.jsと
npx—mcp dev経由でMCP Inspectorを使用する場合のみ必要
インストール
リポジトリをクローンし、そのディレクトリに移動します:
git clone <repository-url>
cd telegram-mcp仮想環境を作成します:
python3 -m venv .venv
source .venv/bin/activate依存関係をインストールします:
pip install -r requirements.txtTelegramボットの設定
Telegramを開き、
@BotFatherを検索します。/newbotを実行します。ボットを作成し、Bot APIトークンを取得します。
トークンをソースコードやGitに追加しないでください。
.envファイルを作成します:
cp .env.example .envトークンを指定します:
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here.envは.gitignoreに追加されています。
チャットの準備
個人チャット
作成したボットを開きます。
Startを押すか、ボットにメッセージを送信します。get_recent_messagesをテストするために、いくつかのテキストメッセージを送信します。
グループ
テスト用グループを作成します。
グループにボットを追加します。
ボットがグループの通常メッセージを表示できるようにするには、
@BotFatherでプライバシーモードを無効にします(/setprivacy→Disable)。グループにいくつかのメッセージを送信します。
chat_idを取得するには、ボットが目的のチャットからメッセージを受け取った後に、get_chat_infoまたはget_recent_messagesを呼び出すと便利です。
起動
プロジェクトのルートディレクトリから:
python src/server.pyサーバーはstdio経由で動作し、MCP接続を待機します。そのため、起動後にターミナルに通常の出力が表示されないのは正常な動作です。
開発と確認にはMCP CLIを使用できます:
mcp dev src/server.pyこのコマンドはサーバーとMCP Inspectorを起動します。Inspectorはnpxを使用するため、Node.jsがPATHに含まれている必要があります。
MCPツール
send_message
Telegramにテキストメッセージを送信します。
パラメータ:
chat_id: string — ID чата
text: string — текст сообщения例:
chat_id: 123456789
text: Привет! Сообщение отправлено через MCP.サーバーは送信確認とmessage_idを返します。
get_recent_messages
指定されたチャットの利用可能な最新メッセージを取得します。
パラメータ:
chat_id: string — ID чата
limit: integer — количество сообщений, по умолчанию 10limitは1から100の範囲に制限されます。
例:
chat_id: 123456789
limit: 10結果には、各利用可能なメッセージの送信者とテキストが含まれます。
get_chat_info
チャットの基本情報を取得します。
パラメータ:
chat_id: string — ID чата応答には、ID、タイプ、名前、ユーザー名、名、姓など、利用可能なフィールドが表示されます。
メッセージ取得の仕組み
Telegram Bot APIは、ボットにチャット履歴を任意に読み取るための個別のメソッドを提供しません。受信メッセージを取得するために、サーバーはgetUpdatesを使用します。
get_recent_messagesは、利用可能な最新のアップデートを最大100件取得し、その後chat_idでフィルタリングします。そのため、このツールはTelegramがアップデートキューを通じてボットに提供するメッセージを扱い、チャットの完全な履歴ではありません。
つまり、このツールは全履歴にアクセスできるTelegramクライアントの代わりにはなりません。テストするには、ボットをチャットに追加した後にメッセージを送信し、その後get_recent_messagesを呼び出せば十分です。
重要:getUpdatesはアクティブなwebhookと同時に使用できません。ボットにwebhookが設定されている場合は、まずそれを削除してから、getUpdatesによるロングポーリングでアップデートを受信できるようにしてください。
シナリオ例
MCP Inspectorを起動します。
src/server.pyを接続します。以下のツールが利用可能であることを確認します:
send_messageget_recent_messagesget_chat_info
get_chat_infoを呼び出してチャットへの接続を確認します。send_messageを呼び出し、メッセージがTelegramに表示されることを確認します。Telegramにいくつかのメッセージを送信します。
get_recent_messagesを呼び出し、取得したメッセージリストを確認します。
セキュリティ
Telegram Bot APIトークンは、環境変数TELEGRAM_BOT_TOKENを介してのみ渡されます。
実際の.envはGitに含めてはいけません。リポジトリには、動作トークンを含まない.env.exampleのみが保存されます。
制限事項
ボットはBot APIを介してTelegramチャットの全履歴にアクセスできません。
get_recent_messagesは利用可能なボットアップデートを扱います。グループでは、ボットが受信するメッセージのセットはTelegramのプライバシー設定に依存します。
getUpdatesとwebhookは、アップデートを取得する方法として相互に排他的です。
This server cannot be deployed
Maintenance
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Messaging tools for AI agents: send messages, manage chats, groups and channels.
Run a Telegram channel from your AI agent. Posts go out through your own bot, not your account.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
Related MCP Servers
- 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.12 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to send notifications and receive responses via Telegram.33 npm4MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with a user's Telegram account: list chats, read history, search, and send messages through Telegram's MTProto API.1MIT