Telegram MCP サーバー
これは、Claude が Telegram アカウントにアクセスしてメッセージを読んだり送信したりできるようにするシンプルな MCP サーバーです。
機能
get_chats: Telegramチャットのリストを取得するsend_message: チャットにメッセージを送信するget_message: チャットからメッセージを取得し、未読メッセージを出力します。mark_messages_read: メッセージを既読にするget_conversation_context: 20件を超えるメッセージを取得し、convostyle.txtを読み取って適切な返信を決定します。
Related MCP server: Twitter MCP Server
設定
推奨セットアップ
ステップ1:Telegram API認証情報を取得する
https://my.telegram.org/appsにアクセスしてください。
ログインしてアプリケーションを作成します (または既存のアプリケーションを使用します) 注: アプリケーションの種類は問いません。何でも作成してください。タイプでは必ず「Web」を選択してください。
API IDとAPIハッシュを書き留めてください
ステップ2: Python環境の設定
必要なパッケージをインストールします(ターミナルを開いてください。Macの場合はコマンド+スペースキーを押して「ターミナル」と入力し、Windowsの場合はWindowsキーを押して「ターミナル」と入力します。コードを1行ずつコピーしてターミナルに貼り付けます)。事前にGitがインストールされていることを確認してください。
# Clone the repository within your desired directory (if you haven't already)
git clone https://github.com/alexandertsai/mcp-telegram
cd mcp-telegram仮想環境を設定します。該当する場合は、代わりにpip3を使用してください。
# Set up virtual environment
pip install uv
uv venv
source .venv/bin/activate
# .venv\Scripts\activate for windows
uv add mcp-sdk telethon python-dotenv nest_asyncioステップ3: IDを追加する
Macの場合(bash):
仮想環境で、以下を実行します。
export TELEGRAM_PHONE=phone number with country code and no spaces
export TELEGRAM_API_ID=api_id
export TELEGRAM_API_HASH=api_hashターミナルでprintenvを使用してエクスポートされているかどうかを確認します。
Windows (Powershell) の場合:
仮想環境で以下を実行します。引用符を含めてください。引用符がないとPowerShellがうまく動作しない可能性があります。
$env:TELEGRAM_PHONE="phone number with country code and no spaces"
$env:TELEGRAM_API_ID="api_id"
$env:TELEGRAM_API_HASH="api_hash"PowerShell でgci env:を使用してエクスポートされているかどうかを確認します。
ステップ4: 認証を実行する
認証するには、これを実行します。2FAを設定している場合、パスワードを入力してもターミナルにテキストは表示されません。これは正常な動作です。2FA中に入力ミスをしないようにしてください。入力ミスをすると、プロセス全体が最初からやり直しになります。インストールされているpythonまたはpython3を使用してください。
cd src/mcp_telegram
python3 telethon_auth.py以下のことが求められます:
電話番号(+付きの国際電話番号)(スペースを入れないでください)
Telegramがあなたのアカウントに送信するコード
2FAパスワード(有効な場合)
これにより、ホームディレクトリにセッション ファイルが作成され、再度認証する必要がなくなります。
ステップ5:Claudeデスクトップに追加
Claude Desktop の設定を編集します。
Claudeデスクトップを開き、設定(cmd+,)に移動し、「開発」をクリックして「設定を編集」をクリックします。claude)desktop_config.jsonファイルを編集します。開発者モードが有効になっていることを確認してください。
macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json
これを設定に追加してください(実際の認証情報に置き換えてください)。保存するには、command+s を押してください。
"mcpServers": {
"telegram": {
"command": "/your/path/to/python3",
"args": ["/full/path/to/mcp-telegram/main.py"],
"env": {
"TELEGRAM_API_ID": "your_api_id_here",
"TELEGRAM_API_HASH": "your_api_hash_here",
"TELEGRAM_PHONE": "+65945678900"
}
}
}**main.py:**完全なパスを取得するには、IDE またはデスクトップに移動し、ファイルを見つけて右クリックし、「COPY PATH」をクリックします。
**python:**ターミナルでwhere.exe python (Windows) またはwhere python (Mac) を実行すると、フルパスが表示されます(必要に応じてpython3に置き換えてください)。Windows の場合、JSON フォーマットのため、パス内のバックスラッシュをスラッシュに置き換える必要がある場合があります(Ctrl + F で "\"、Ctrl + H ですべて "/" に置き換えてください)。
非常に重要:
Pythonとmain.pyスクリプトの両方への完全な絶対パスを使用します
API認証情報をステップ1の実際の値に置き換えます
電話番号を国際形式で設定する
ステップ6(オプション):
チャットボットがあなたのように応答し、あなたのように聞こえるようにしたい場合は、 src/mcp_telegramのconvostyle.txt自由に設定してください。
それでおしまい!
Claude Desktop を再起動 (終了して再度開く) すると、Claude に次の操作を依頼できるようになります。
最近のTelegramチャットを表示する
特定のチャットからのメッセージを読む
特定のメッセージを「既読」としてマークする
自然な音声で連絡先やグループにメッセージを送信できます
クロードにプロンプトを尋ねる際は、必ず「Telegram」という言葉を含めてください。そうしないと、クロードは理解しない可能性があります。例えば、「クロード、未読のTelegramメッセージはありますか?」のように尋ねます。
カスタマイズ
Claude Desktop にアクセスし、ユーザーをクリックして左下の設定を開き、個人設定を調整することで、よりカスタマイズされた応答を得ることができます。例えば、「MCP を使用して Telegram をチェックする際は、チャンネルを無視する」などです。
厄介なトラブルシューティング
仮想環境内で、次のコマンドを実行してみてください。
ls -la ~/.mcp_telegram_*次に、セッションファイルを終了します(ファイルのパスをコピーして、先頭にrmを付けて貼り付けるだけです)。
rm /Users/username/.mcp_telegram_numberininternationalformat*手順 3 をもう一度試してください。