Telegram MCP Server

by alexandertsai
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows Claude to access a Telegram account to read chats, view messages, send messages, mark messages as read, and retrieve conversation context to formulate natural-sounding replies.

Telegram MCP サーバー

これは、Claude が Telegram アカウントにアクセスしてメッセージを読んだり送信したりできるようにするシンプルな MCP サーバーです。

機能

  1. get_chats : Telegramチャットのリストを取得する
  2. send_message : チャットにメッセージを送信する
  3. get_message : チャットからメッセージを取得し、未読メッセージを出力します。
  4. mark_messages_read : メッセージを既読にする
  5. get_conversation_context : 20件を超えるメッセージを取得し、 convostyle.txtを読み取って適切な返信を決定します。

設定

ステップ1:Telegram API認証情報を取得する

  1. https://my.telegram.org/appsにアクセスしてください。
  2. ログインしてアプリケーションを作成する(または既存のアプリケーションを使用する)
  3. API IDAPIハッシュを書き留めてください

ステップ2: Python環境の設定

必要なパッケージをインストールします。

# 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 mcp uv venv source .venv/bin/activate # .venv\Scripts\activate for windows uv add "mcp[cli]" 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 の設定を編集します。

macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json

または、「設定」に移動し、「開発者」をクリックして「設定を編集」をクリックします。開発者モードが有効になっていることを確認してください。

これを設定に追加します(実際の資格情報に置き換えてください):

"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 ですべて "/" に置き換えてください)。

非常に重要:

  1. Pythonとmain.pyスクリプトの両方への完全な絶対パスを使用します
  2. API認証情報をステップ1の実際の値に置き換えます
  3. 電話番号を国際形式で設定する

ステップ6(オプション):

チャットボットがあなたのように応答し、あなたのように聞こえるようにしたい場合は、 src/mcp_telegramconvostyle.txt自由に設定してください。

それでおしまい!

Claude Desktop を再起動 (終了して再度開く) すると、Claude に次の操作を依頼できるようになります。

  • 最近のTelegramチャットを表示する
  • 特定のチャットからのメッセージを読む
  • 特定のメッセージを「既読」としてマークする
  • 自然な音声で連絡先やグループにメッセージを送信できます

クロードにプロンプトを尋ねる際は、必ず「Telegram」という言葉を含めてください。そうしないと、クロードは理解しない可能性があります。例えば、「クロード、未読のTelegramメッセージはありますか?」のように尋ねます。

厄介なトラブルシューティング

仮想環境内で、次のコマンドを実行してみてください。

ls -la ~/.mcp_telegram_*

次に、セッションファイルを終了します(ファイルのパスをコピーして、先頭にrmを付けて貼り付けるだけです)。

rm /Users/username/.mcp_telegram_numberininternationalformat*

手順 3 をもう一度試してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude があなたの Telegram アカウントにアクセスし、あなたに代わってメッセージを読んだり送信したりできるようにするシンプルな MCP サーバーです。

  1. Functions
    1. Setup
      1. Step 1: Get Your Telegram API Credentials
      2. Step 2: Set Up Python Environment
      3. Step 3: Add IDs
      4. Step 4: Run authentication
      5. Step 5: Add to Claude Desktop
      6. VERY IMPORTANT:
      7. Step 6 (optional):
    2. That's It!
      1. Pesky troubleshooting
        ID: iw2s0g45fo