telegram-slack-mcp について
telegram-slack-mcpは、Claudeが個人アカウントのTelegramチャットと複数のSlackワークスペースを読める2つのMCPサーバーを提供します。メッセージ検索やメディア閲覧に対応し、本人としての送信は既定で無効です。
主な機能
- 01Telegramの個人チャット、グループ、チャンネルを読む
- 02複数のSlackワークスペースを横断検索・閲覧
- 03チャット内の画像やファイルを表示
- 04QRコードでTelegramにログイン
- 05メッセージ送信は既定で無効
活用シーン
- 01未読メッセージをまとめる
- 02チャットやワークスペース内のメッセージを探す
- 03共有された画像やファイルを確認する
- 04返信を作成し、設定後に本人として送信する
MCP 対応
TelegramとSlackそれぞれのMCPサーバーを提供し、個人アカウントのチャット、メッセージ検索、メディア閲覧をMCPクライアントに公開します。メッセージ送信には明示的な設定が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y telegram-slack-mcpTELEGRAM_API_IDapi_id from https://my.telegram.org (Telegram server only)TELEGRAM_API_HASHシークレットapi_hash from https://my.telegram.org (Telegram server only)TELEGRAM_ALLOW_SENDSet to 1 to allow sending Telegram messages as you. Off by default.SLACK_USER_TOKENSシークレットOne Slack user token (xoxp-) per workspace, comma separated (Slack server only)SLACK_ALLOW_SENDSet to 1 to allow posting to Slack as you. Off by default.CHAT_MCP_DATA_DIRWhere the Telegram session is stored. Defaults to ~/.chat-mcpローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
telegram-slack-mcp
Claude に実際のチャットを見せましょう。
個人の Telegram アカウントと Slack アカウントを Claude に接続する 2 つの MCP サーバーです — ボットの受信箱ではなく、実際の DM、グループ、チャンネルに接続します。
claude mcp add telegram -- npx -y telegram-slack-mcp telegram
claude mcp add slack -- npx -y telegram-slack-mcp slack
あとは話しかけるだけです:
「Telegram で実際の人から届いた未読メッセージは?」 「Priya との直近 30 件のメッセージを読んで、返信の下書きを作って」 「すべての Slack ワークスペースから、デプロイの事後検証に関する投稿を検索して」 「Priya が送ってくれたスクリーンショットには何が写ってる?」
これを作った理由
Telegram の連携の多くは Bot API を使っており、これは自分で作成したボット宛てに送られたメッセージしか確認できません。既存の会話を読むことはできません。telegram-slack-mcp は、公式アプリと同じプロトコルである MTProto を使い、あなたとして認証するため、Claude は実際にあなたが参加しているチャットを確認できます。
Slack では、通常のコネクターは 1 つのワークスペースに限定されています。telegram-slack-mcp はワークスペースごとにユーザートークンを 1 つ受け取り、それらをまとめて扱います。そのため、「すべてを検索する」とは、本当にすべてを検索することを意味します。
インストール
すでに使っているランタイムを選んでください。どちらも同じツールを提供します。
Node
claude mcp add telegram -- npx -y telegram-slack-mcp telegram
claude mcp add slack -- npx -y telegram-slack-mcp slack
Python
claude mcp add telegram -- uvx telegram-slack-mcp telegram
claude mcp add slack -- uvx telegram-slack-mcp slack
Claude Code プラグイン
/plugin marketplace add nileshpatil6/telegram-slack-mcp
/plugin install telegram@telegram-slack-mcp
/plugin install slack@telegram-slack-mcp
その他の MCP クライアント(Claude Desktop、Cursor、…)
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["-y", "telegram-slack-mcp", "telegram"],
"env": { "TELEGRAM_API_ID": "1234567", "TELEGRAM_API_HASH": "your_hash" }
},
"slack": {
"command": "npx",
"args": ["-y", "telegram-slack-mcp", "slack"],
"env": { "SLACK_USER_TOKENS": "xoxp-one,xoxp-two" }
}
}
}
セットアップ
Telegram — 2 分
-
https://my.telegram.org にアクセスし、API development tools → アプリを作成します。
-
api_idとapi_hashをコピーして、設定します:claude mcp add telegram -e TELEGRAM_API_ID=1234567 -e TELEGRAM_API_HASH=your_hash -- npx -y telegram-slack-mcp telegram -
アカウントをリンクします。Claude に 「Telegram にログインして」 と頼むか、MCP クライアントがなくてもできる方法として、ターミナルで自分で行います:
TELEGRAM_API_ID=1234567 TELEGRAM_API_HASH=your_hash npx -y telegram-slack-mcp login# PowerShell $env:TELEGRAM_API_ID="1234567"; $env:TELEGRAM_API_HASH="your_hash" npx -y telegram-slack-mcp loginどちらの方法でも QR コードをスキャンすると、セッションが
~/.chat-mcpに保存されます。Claude を使う場合:
loginが呼び出され、QR コードを表示するページへのリンクが返されます(クライアントで表示できる場合は、コードもテキストで表示されます)。スマートフォンの Telegram でスキャンします — 設定 → デバイス → デスクトップデバイスをリンク — すると、確認のためにlogin_statusが呼び出されます。電話番号も SMS コードも不要で、2FA パスワードを入力する必要もありません。同じマシン上であれば、スキャンの代わりに「Telegram Desktop で開く」をクリックできます。セッションは
~/.chat-mcpに保存され、保持されます。この作業は 1 回だけです。
スキャンできない場合は電話番号を使う方法
login_start(phone) でコードが送信され、login_complete(code, password?) で完了します。
この方法では、電話番号とログインコードがツール引数として会話を通るため、モデルのコンテキストに含まれる点に注意してください。QR コードを使う方法なら、これらがコンテキストに含まれることはありません。
Slack — 5 分
-
https://api.slack.com/apps にアクセスし、Create New App → From a manifest を選択します。
-
slack-app-manifest.yamlを貼り付けます — すべてのスコープが事前に入力されます。 -
Install to Workspace を選択してから、User OAuth Token(
xoxp-…。xoxb-ではありません)をコピーします。 -
接続したい各ワークスペースでステップ 3 を繰り返します。同じアプリを使い、トークンはワークスペースごとに 1 つです。
-
Claude に 「Slack を接続して」 と頼みます —
loginツールがトークンを求め、各トークンを Slack で検証してから~/.chat-mcpに保存します。設定ファイルに記述するものはありません。環境変数を使いたい場合も、引き続き利用できます:
claude mcp add slack -e SLACK_USER_TOKENS=xoxp-aaa,xoxp-bbb -- npx -y telegram-slack-mcp slack
Slack にはローカルの OAuth フローがありません。そのため、自分でアプリを作成します。Slack の OAuth にはクライアントシークレットと HTTPS のリダイレクト URL が必要です。そのため、npm で配布されるパッケージが、シークレットを公開するかコールバックサーバーを実行することなく、このフローを完了することはできません。このプロジェクトにはサーバーがないため、代わりにトークンを入力してもらいます。
ツール
Telegram
| ツール | 説明 |
|---|---|
login() | QR コードをスキャンしてアカウントを連携します — 電話番号もコードも不要です |
login_status() | QR コードがスキャンされたかどうかを確認します |
login_start(phone) | 代替手段:自分宛てにログインコードを送信します |
login_complete(code, password?) | ログインを完了し、セッションを保存します |
whoami() | 接続中のアカウントを確認します |
list_chats(limit, query, unread_only, kind) | 最近のチャット。kind で dm、group、channel、bot などに絞り込みます |
read_chat(chat, limit, before_id) | 1 つのチャットのメッセージを取得します — chat には @username、ID、または名前の一部を指定できます |
search_messages(query, chat?, limit) | 1 つのチャットまたはすべてのチャットを全文検索します |
unread_summary(limit, per_chat, kind) | 未読の確認用ビューです。kind: "dm" を指定すると、チャンネルの通知を除外できます |
read_media(chat, message_id, max_kb) | 写真やファイルを表示します — 種類だけでなく、実際の画像を返します |
send_message(chat, text, reply_to?) | あなたとして返信します — TELEGRAM_ALLOW_SEND=1 の場合を除き無効です |
Slack
| ツール | 説明 |
|---|---|
login() | xoxp- トークンの入力を求め、検証して保存します |
whoami() | 接続中のすべてのワークスペースと、それぞれでのあなたのアカウントを表示します |
list_channels(limit, query, workspace, types) | 複数のワークスペースにまたがるチャンネルを一覧表示します |
list_dms(limit, workspace) | 1 対 1 およびグループの DM を一覧表示します |
read_channel(channel, limit, workspace, before_ts) | 1 つのチャンネルまたは DM を読み取ります |
read_thread(channel, thread_ts, limit, workspace) | スレッド内の返信を取得します |
search_messages(query, limit, workspace) | in:#chan、from:@user に対応しています |
unread_summary(limit, per_chat, workspace) | すべての未読メッセージを確認します |
read_file(file_id, workspace, max_kb) | Slack で共有されたファイルを表示します — 実際の画像を返します |
send_message(channel, text, workspace, thread_ts?) | あなたとして投稿します — SLACK_ALLOW_SEND=1 の場合を除き無効です |
Slack の各ツールでは、任意で workspace(名前の一部)を指定できます。空欄のままにすると、すべてのワークスペースが対象になります。チャンネル名が複数のワークスペースに存在する場合にのみ指定が必要で、その場合はエラーメッセージに該当するワークスペースが表示されます。
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
TELEGRAM_API_ID | — | my.telegram.org で取得します |
TELEGRAM_API_HASH | — | my.telegram.org で取得します |
TELEGRAM_ALLOW_SEND | 0 | 1 にすると、Claude があなたとして Telegram メッセージを送信できます |
SLACK_USER_TOKENS | — | ワークスペースごとに 1 つの xoxp- トークンを、カンマ区切りで指定します |
SLACK_ALLOW_SEND | 0 | 1 にすると、Claude があなたとして Slack に投稿できます |
CHAT_MCP_DATA_DIR | ~/.chat-mcp | Telegram セッションの保存先です |
どちらのサーバーも、送信機能はデフォルトで無効です。安全なデフォルト設定では読み取りのみを行い、書き込みは明示的に有効にします。
プライバシー
このプロジェクトが所有するサーバーにデータが送信されることはありません。そのようなサーバーは存在しません。
telegram-slack-mcp はすべてお使いのマシン上で動作します。ネットワーク通信は、お使いの認証情報を使用して Telegram と Slack の各 API に直接アクセスするものだけです。テレメトリ、分析、クラッシュレポート、ライセンス確認、「ホームへの送信」はありません — ソースを grep すれば、接続先のエンドポイントが存在しないことを確認できます。
データの流れは、正確には次のとおりです。
your machine <--> Telegram / Slack APIs (your credentials, your account)
your machine <--> Claude (only what you ask Claude to read)
お使いの認証情報が Claude に渡ることはありません。セッションファイルと xoxp- トークンは ~/.chat-mcp と環境内に保持されます。サーバーはそれらをローカルで使用して API を呼び出し、メッセージ本文のみを返します。
Claude に渡るのは、質問したチャットの内容です — それがこのツールの目的だからです。Claude に会話の読み取りを依頼すると、その会話は Claude との会話に含まれ、自分でテキストを貼り付けた場合と同様に、Anthropic のプライバシーポリシーに従って取り扱われます。それ以外の情報は読み取られず、バックグラウンドで読み取られることもありません。サーバーが動作するのは、Claude がツールを呼び出したときだけです。
このプロジェクトの作者がこれらの情報を見ることはできません。
セキュリティ
この部分をお読みください。
- これらはボットではなく、あなたとして動作します。 送信したものはすべてあなたのアカウントから送信されたように表示され、チャット内の相手には違いがわかりません。
- 保存されたセッションは完全な認証情報です。
~/.chat-mcp/telegram.sessionとxoxp-トークンは、あなたとしてログインしているのと同等です。これらをコピーした人は、あなたのアカウントにアクセスできます。これらがあなたのマシンから外部に送信されることはなく、ここから外部に通信することもありません。 - Claude が読み取るものはすべて、モデルのコンテキストに取り込まれます。 モデルに送信しないデータを含むアカウントには接続しないでください。
- Telegram ではこれをユーザーボットと呼びます。 個人アカウントの自動化は、Telegram の利用規約で制限されています。個人的な読み取りと返信を少量行う使い方は一般的で、リスクも低いですが、大量の自動化を行うとアカウントが停止されます。判断はあなた次第です。アカウントの責任はあなたにあります。
- いつでもアクセスを取り消せます。Telegram → 設定 → デバイスに移動するか、Slack のアプリ設定でトークンを削除してください。
~/.chat-mcpを削除すると、ローカルのセッションが消去されます。
トラブルシューティング
「Telegram にまだログインしていません」 — ログインフローを実行してください。Claude に電話番号でログインするよう依頼します。その後はログイン状態が保持されます。何度も表示される場合は、CHAT_MCP_DATA_DIR に書き込み権限があることを確認してください。
「Telegram の認証情報がありません」 — TELEGRAM_API_ID / TELEGRAM_API_HASH がサーバーに渡されていません。claude mcp add を使う場合は、-e で渡してください。
Slack から何も返ってこない — 空のワークスペース、または間違ったワークスペースで認証されている可能性が非常に高いです。whoami を実行して、実際に接続されているワークスペースを確認してください。
"#general" は複数のワークスペースに存在します — workspace を渡して対象を特定してください。エラーには選択肢が表示されます。
Slack 検索で not_allowed_token_type が返される — トークンがボットトークン(xoxb-)です。ユーザー OAuth トークン(xoxp-)が必要です。
開発
git clone https://github.com/nileshpatil6/telegram-slack-mcp
cd telegram-slack-mcp
npm install && npm run build
node dist/cli.js telegram # run the server on stdio
cd python && python -m build # build the Python distribution
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。