Skip to main content
Glama

mcp-telegram

Telegram用MCPサーバー — AIアシスタントがあなたのTelegramアカウントと連携できるようにします

MCP Server Go Version License: MIT Go Report Card mcp-telegram MCP server

mcp-telegram MCP server


機能

  • チャット管理: チャットの一覧表示、検索、ミュート/ミュート解除

  • メッセージ: メッセージの読み取り、検索、コンテキストの確認、送信、下書き、予約送信、リンク解決、バックアップ

  • AI要約: 複数のLLMプロバイダーを使用してチャットの会話を要約

  • セキュリティ: セッションはmacOSキーチェーンに保存(Linux/Windowsではファイルベースのストレージ)

インストール

go install github.com/tolmachov/mcp-telegram@latest

またはソースからビルドする場合:

git clone https://github.com/tolmachov/mcp-telegram.git
cd mcp-telegram
make

セットアップ

1. Telegram API認証情報を取得する

  1. my.telegram.org/apps にアクセスします

  2. アプリケーションを作成します

  3. api_idapi_hash をコピーします

2. 環境設定

認証情報を保存します(macOSキーチェーン、Linux/Windowsでは ~/.local/state/mcp-telegram/config.json0600 パーミッションでプレーンテキストJSONとして保存):

mcp-telegram config set TELEGRAM_API_ID 123456789
mcp-telegram config set TELEGRAM_API_HASH abcd1234efgh5678

または .env ファイルを使用します:

cp .env.example .env
# Edit .env with your credentials

3. Telegramにログイン

mcp-telegram login --phone +1234567890

Telegramに送信された確認コードの入力を求められます。

4. MCPクライアントの設定

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) または %APPDATA%\Claude\claude_desktop_config.json (Windows) に追加します:

{
  "mcpServers": {
    "telegram": {
      "command": "mcp-telegram",
      "args": ["run"],
      "env": {
        "TELEGRAM_API_ID": "your_api_id",
        "TELEGRAM_API_HASH": "your_api_hash"
      }
    }
  }
}

Claude Code

claude mcp add telegram -- /path/to/mcp-telegram run

.env ファイルに環境変数を設定するか、--env を介して渡します。

利用可能なツール

MCPクライアントに19個のツールが公開されています。メッセージは不透明な文字列ハンドル(通常は "42"、予約済みは "s:42")で識別されます。ツール出力からそのままコピーして後続の呼び出しに使用してください。手動で解析や構築はしないでください。

ツール

説明

GetMe

現在のユーザー情報を取得

GetChats

すべてのチャット、グループ、チャンネルを一覧表示

SearchChats

名前でチャットをあいまい検索

GetChatInfo

チャットの詳細情報を取得

GetMessages

チャットからメッセージを取得(include_scheduled=true を設定すると、保留中の予約メッセージも別のフィールドに一覧表示されます)

SearchMessages

チャット内で部分一致検索(日付/送信者/メディア/スレッドのフィルタリングオプションあり)

SearchMessagesGlobal

不透明なカーソルベースのページネーションを使用して、すべてのチャットを横断して部分一致検索

GetMessageContext

特定のアンカーメッセージ周辺のメッセージを時系列順に取得

SendMessage

メッセージの送信、返信、予約、下書き。mode = send (デフォルト) / schedule / draftreply_to_message_id はどのモードでも動作。schedule_at はRFC3339形式

EditMessage

メッセージの編集。予約済みハンドルの場合、schedule_at で同じ呼び出し内で配信時間を再設定可能

DeleteMessage

メッセージの削除。"s:<id>" ハンドルは保留中の予約メッセージをキャンセル

ForwardMessage

送信済みメッセージの転送(予約済みハンドルは拒否されます)

ResolveMessageLink

t.me / tg:// メッセージリンクを chat_idmessage_id、およびフォーラムリンク用の topic_message_id に解析

MarkAsRead

1つ以上のチャットを既読にする

BackupMessages

メッセージをテキストファイルにエクスポート(べき等、ターゲットを上書き)

ResolveUsername

@username をユーザー/チャット情報に解決

SetChatMute

チャット通知のミュート/ミュート解除(muted ブール値 + オプションの duration_seconds

SummarizeChat

サンプリング / Gemini / Ollama / Anthropic を介したAIチャット要約

GetMedia

メッセージリソースURIから写真メディアをダウンロード。MCP画像コンテンツを返します

利用可能なリソース

URI

説明

telegram://me

現在のユーザー情報

telegram://chats

すべてのチャットリスト

telegram://chat/{id}/info

リソーステンプレートを介した任意のチャットIDの詳細情報

telegram://chats/{id}

ピン留めされたチャットの最新100件のメッセージ(動的リソース、現在ピン留めされているチャットのみ)

ピン留めされたチャットリソースは、ピン留めされるたびに動的に作成され、バックグラウンドで更新されます。セットが変更されると、クライアントは resources/list_changed を受け取ります。

利用可能なプロンプト

MCPクライアントがスラッシュコマンドやクイックアクションとして公開する3つのパラメータ化されたプロンプト。

プロンプト

引数

説明

daily-digest

periodday (デフォルト) / week / month

アクティブなチャットを巡回し、チャットごとの主要な更新とアクションアイテムのダイジェストを作成します。読み取り専用。

chat-catchup

chat (必須) — ID / @username / タイトル; periodday / week (デフォルト) / month

特定のチャットを要約し、返信が必要と思われるメッセージを一覧表示します。読み取り専用。

find-and-reply

chat (必須), query (必須) — 検索対象, reply (必須) — 返信テキストまたは指示

メッセージを検索し、返信の下書きを表示します。ユーザーの明示的な確認後にのみ送信されます。

プロンプトの例

AIアシスタントで使用できるプロンプトの例をいくつか紹介します。

メッセージ管理

  • "Telegramの未読の重要メッセージを確認して"

  • "Telegramの未読メッセージをすべて要約して"

  • "未読メッセージを読み取って分析し、必要に応じて返信の下書きを作成して"

  • "重要ではない未読メッセージを確認して、概要を教えて"

  • "先週の仕事用チャットで 'invoice' に言及しているメッセージを探して"

  • "このTelegramリンクのコンテキストを開いて: https://t.me/example/123"

整理

  • "Telegramの対話を分析して、フォルダ構造を提案して"

  • "Telegramのチャットを重要度別に分類するのを手伝って"

  • "仕事関連の会話をすべて見つけて、整理方法を提案して"

コミュニケーション

  • "特定のチャットで [topic] に関する更新を監視して"

  • "[chat] の最後のメッセージに対する丁寧な返信を下書きして"

  • "チャットに未回答の質問がないか確認して"

  • "このTelegramメッセージリンクを解決して、スレッドのコンテキストを見せて"

バックアップとエクスポート

  • "[contact] との会話をファイルにバックアップして"

  • "[group] の先週のメッセージをエクスポートして"

  • "メディアのみの更新もバックアップして、何も見落とさないようにして"

チャット要約

SummarizeChat ツールは複数のLLMプロバイダーをサポートしています:

  • sampling (実験的): MCP Sampling を介してMCPクライアントのLLMを使用します。サンプリングをサポートするクライアント(VS Code, fast-agent, Continue)でのみ動作します。Claude DesktopやClaude Codeでは動作しません。

  • ollama: Ollama を介したローカルLLM - APIキー不要

  • gemini: Google Gemini API

  • anthropic: Anthropic Claude API

環境変数を介して設定します:

SUMMARIZE_PROVIDER=ollama  # or: sampling, gemini, anthropic
SUMMARIZE_MODEL=           # provider-specific model name

コマンド

# Run MCP server (used by MCP clients)
mcp-telegram run

# Login to Telegram
mcp-telegram login --phone +1234567890

# Logout and delete session
mcp-telegram logout

# Securely store config values (macOS Keychain / file on Linux)
mcp-telegram config set TELEGRAM_API_ID 123456789
mcp-telegram config set TELEGRAM_API_HASH abcd1234

# List stored keys
mcp-telegram config list

# Delete a stored value
mcp-telegram config delete TELEGRAM_API_ID

許可されるキー: TELEGRAM_API_ID, TELEGRAM_API_HASH, ANTHROPIC_API_KEY, GEMINI_API_KEY

設定オプション

環境変数

説明

デフォルト

TELEGRAM_API_ID

Telegram API ID

必須

TELEGRAM_API_HASH

Telegram API Hash

必須

TELEGRAM_ALLOWED_PATHS

バックアップ用の許可ディレクトリ

OSアプリデータディレクトリ

SUMMARIZE_PROVIDER

要約用LLMプロバイダー

sampling (実験的)

SUMMARIZE_MODEL

モデル名

プロバイダーのデフォルト

SUMMARIZE_BATCH_TOKENS

要約バッチごとのトークン数

8000

OLLAMA_URL

Ollama API URL

http://localhost:11434

GEMINI_API_KEY

Google Gemini APIキー

-

ANTHROPIC_API_KEY

Anthropic APIキー

-

TELEGRAM_MEDIA_MAX_BYTES

GetMedia が呼び出しごとにダウンロードする最大バイト数(大きな添付ファイルによるOOMを防ぐための上限)

52428800 (50 MiB)

TELEGRAM_RATE_LIMIT_RPS

Telegramへの履歴取得呼び出しのRPS上限。Telegramの FLOOD_WAIT しきい値を超えると、すべてのツールが一時停止されます。

0 (安全な組み込みデフォルト)

TELEGRAM_PINNED_REFRESH_SECONDS

ピン留めチャットリソース監視のポーリング間隔(秒)。0 で監視を無効化。

30

破壊的アクション

DeleteMessage のようなツールは、実行前に MCP elicitation を介してユーザーの確認を求めます。MCPクライアントがelicitationをサポートしていない場合、サーバーは破壊的操作を実行する前に、LLMの指示に従って口頭で確認を求めます。

セッションストレージ

  • macOS: キーチェーンに安全に保存されます。

  • Linux/Windows: ~/.local/state/mcp-telegram/session.json0600 ファイルパーミッションで保存されます。ファイルは プレーンテキスト です。含まれるユーザーアカウントを信頼し、機密性の高いアカウントを扱う場合はmacOSでの実行を推奨します。

mcp-telegram config set を介して設定された設定値(APIキー、Telegram認証情報)は、同じバックエンド(macOSではキーチェーン、Linux/WindowsではプレーンテキストJSON)に従います。

ライセンス

MIT

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

Latest Blog Posts

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/tolmachov/mcp-telegram'

If you have feedback or need assistance with the MCP directory API, please join our Discord server