Telegram MCP Server について
Telegram MCP Serverは、Telegramの連絡先、メッセージ、チャット履歴、チャンネル投稿を扱うツールを提供します。CursorやClaude DesktopなどのMCPクライアントからTelegramを操作する用途を想定しています。
主な機能
- 01連絡先の一覧表示と検索
- 02名前または電話番号でのメッセージ送信
- 03日付指定によるチャット履歴の取得
- 04チャンネルの検索と情報表示
- 05日付指定による投稿の取得
活用シーン
- 01連絡先にTelegramメッセージを送信
- 02指定期間のチャット履歴を確認
- 03特定期間のチャンネル投稿を検索
MCP 対応
Telegramの連絡先、メッセージ、チャット履歴、チャンネル操作を、CursorやClaude DesktopなどのMCPクライアント向けツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Telegram MCP サーバー
MCP(Multi-Client Protocol)を通じて、連絡先の管理、メッセージの送信、チャンネル情報の取得を行うさまざまなツールを提供する、強力な Telegram 統合サーバーです。
機能
-
連絡先の管理
- 連絡先の一覧を取得
- 連絡先を検索
- 最近のやり取りを取得
-
メッセージ
- 名前または電話番号で連絡先にメッセージを送信
- 日付範囲で絞り込んだチャット履歴を取得
- 最近のやり取りを表示
-
チャンネル機能
- チャンネルの投稿を取得
- チャンネルを検索
- チャンネル情報を表示
- 日付範囲で投稿を絞り込み
前提条件
- Python 3.8 以降
- Node.js 14 以降(npx でインストールする場合)
- Telegram API 認証情報(api_id と api_hash)
- Telegram アカウント
インストール
- リポジトリをクローンします。
git clone https://github.com/yourusername/telegram-MCP-server.git
cd telegram-MCP-server
- 必要な依存関係をインストールします。
uv venv .venv # Create a virtual environment
source .venv/bin/activate # Activate it (Linux/macOS)
.\venv\Scripts\activate # Activate it (Windows)
uv pip install .
- Telegram API ID と API Hash を取得します。
- https://my.telegram.org にアクセスします
- 電話番号でログインします
- 「API development tools」をクリックします
- 必要な項目を入力します(アプリのタイトルと短縮名は任意のものを使用できます)
- 送信すると、API ID と API Hash が表示されます
- プロジェクトのルートに、Telegram の認証情報を記載した
.envファイルを作成します。
TG_API_ID=your_api_id
TG_API_HASH=your_api_hash
phone=your_phone_number # Format: +1234567890
- 初回のみ、Telegram の認証を行います。
uv run telegram_auth.py
プロンプトが表示されたら、Telegram 経由で受け取ったコードを入力します。
Cursor/Claude Desktop との統合
以下の JSON を、適切な {{PATH}} の値に置き換えてコピーします。
{
"mcpServers": {
"telegram": {
"command": "{{PATH_TO_UV}}", // Run `which uv` and place the output here
"args": [
"--directory",
"{{PATH_TO_SRC}}\\telegram-mcp-server", // cd into the repo, run `pwd` and enter the output here + "/whatsapp-mcp-server"
"run",
"main.py"
]
}
}
}
Claude の場合は、Claude Desktop の設定ディレクトリに claude_desktop_config.json という名前で保存します。
~/Library/Application Support/Claude/claude_desktop_config.json
Cursor の場合は、Cursor の設定ディレクトリに mcp.json という名前で保存します。
~/.cursor/mcp.json
ツールのドキュメント
get_contacts()
名前、電話番号、ユーザー名を含む、Telegram の連絡先一覧を返します。
send_message_by_identifier(identifier: str, message: str)
名前または電話番号で識別される連絡先にメッセージを送信します。
identifier:連絡先の名前または電話番号message:送信するテキストメッセージ
get_last_interaction(identifier: str)
特定の連絡先と最後にやり取りしたメッセージを返します。
identifier:連絡先の名前または電話番号
get_chat_history(identifier: str, start_date: str = None, end_date: str = None, limit: int = 20)
指定した期間内の連絡先とのチャット履歴を取得します。
identifier:連絡先の名前または電話番号start_date:開始日(省略可能、YYYY-MM-DD)end_date:終了日(省略可能、YYYY-MM-DD)limit:返すメッセージの最大数
get_channel_posts(channel_name: str, start_date: str = None, end_date: str = None, limit: int = 20)
Telegram チャンネルの投稿を取得します。
channel_name:チャンネルのユーザー名または名前start_date:開始日(省略可能、YYYY-MM-DD)end_date:終了日(省略可能、YYYY-MM-DD)limit:返す投稿の最大数
エラー処理
サーバーには、以下を対象とする包括的なエラー処理が含まれています。
- 無効な認証情報
- ネットワークの問題
- レート制限
- 無効なパラメーター
- 権限エラー
セキュリティに関する考慮事項
- API 認証情報を安全に保管してください
.envファイルを決して共有しないでください- 本番環境では環境変数を使用してください
- 本番環境で使用する場合は、レート制限を実装してください
- 使用状況を監視し、ログを記録してください
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細については、LICENSE ファイルを参照してください。
謝辞
- Telegram API との統合に使用する Telethon ライブラリ
- サーバーフレームワークの FastMCP
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。