Chatroost — unofficial Telegram MCP server について
Telegram MCP サーバーは非公式の MCP サーバーで、MTProto プロトコルを通じて個人の Telegram アカウントを userbot として接続し、Claude や ChatGPT などのアシスタントからチャットを読み取り・検索・返信できるようにします。自分のアカウントでメッセージを扱いたい利用者を対象とし、複数アカウントや共有デーモンにも対応しています。
主な機能
- 01メッセージの読み取り・検索・返信・リアクション
- 02MTProto による userbot としての個人アカウント操作
- 03フォーラムトピック、スタンプ、投票、予約送信
- 04チャットフォルダー、ストーリー、管理者機能
- 05QR コードによるログインとセッションの保持
- 06共有デーモンによる複数クライアントの同時接続
活用シーン
- 01AI アシスタントに個人のチャットを要約させ、返信を作成させる
- 02セッションファイルを分けて複数の Telegram アカウントを扱う
- 03共有デーモン経由で複数のコーディングエージェントから同一アカウントを利用する
MCP 対応
本プロジェクトは MCP サーバーであり、Claude Code、Claude Desktop、Cursor などの MCP クライアントに Telegram 関連のツールを公開します。ツール一覧はクライアントが自動で検出できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.mcp-telegram.com/mcpclaude mcp add --transport http telegram-mcp-telegram https://mcp.mcp-telegram.com/mcp{"mcpServers":{"telegram-mcp-telegram":{"type":"http","url":"https://mcp.mcp-telegram.com/mcp"}}}Cursor で開く{"servers":{"telegram-mcp-telegram":{"type":"http","url":"https://mcp.mcp-telegram.com/mcp"}}}VS Code で開く{"mcpServers":{"telegram-mcp-telegram":{"type":"http","url":"https://mcp.mcp-telegram.com/mcp"}}}{"mcpServers":{"telegram-mcp-telegram":{"serverUrl":"https://mcp.mcp-telegram.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Telegram MCP サーバー
📖 ドキュメント · ☁️ クラウド版 — QR コードを使って、API キーなしで 30 秒で Telegram を Claude.ai または ChatGPT に接続できます。
Telegram MCP サーバー — MTProto プロトコルを介して、Claude や ChatGPT などの AI アシスタントを Telegram に接続する Model Context Protocol サーバーです。ボットとは異なり、これはユーザーボットとして動作し、GramJS を使って個人の Telegram アカウント上で稼働するため、チャット、連絡先、メッセージ履歴にすべてアクセスできます。
機能
- 包括的なツール対応 -- 利用可能な Telegram MCP サーバーの中でも、最も多機能です
- MTProto プロトコル -- 制限のある Bot API ではなく、Telegram API に直接アクセスします
- ユーザーボット -- ボットではなく、個人アカウントとして動作します
- フル機能 -- メッセージ、リアクション、投票、予約送信メッセージ、スタンプ、メディア、連絡先などに対応します
- フォーラムトピック -- トピックの一覧表示、トピックごとのメッセージの読み取り、特定のトピックへの送信、トピックごとの未読件数に対応します
- スタンプ -- スタンプセットの検索、インストール済み/最近使用したスタンプの閲覧、任意のチャットへのスタンプ送信に対応します
- アカウントとプロフィールの管理 -- プロフィールの更新、絵文字ステータス・誕生日・個人チャンネル・プロフィール写真の設定、プライバシー設定・セッション・自動削除タイマーの管理に対応します
- チャットフォルダー -- フォルダーの作成、編集、削除、並べ替え、フォルダータグの切り替え、おすすめフォルダーの確認に対応します(v1.33.0)
- グローバルプライバシー -- アカウント全体のプライバシー設定の確認と変更に対応します(v1.33.0)
- グローバル検索 -- すべてのチャットのメッセージを一括検索できます
- リアルタイムポーリング -- ステートレスカーソルで更新を取得します。エージェントが
{pts, qts, date}の状態を管理します - インラインボットとボタン -- インラインボットへの問い合わせ、結果の送信、コールバックボタンの押下に対応します
- ストーリー -- ピアのストーリーの読み取り、ストーリー閲覧統計の取得、ストーリーの公開・編集・削除、リアクション、ピン留め、ステルスモード、アーカイブ、報告に対応します(v1.30.0)
- ディスカッション -- コメント付きチャンネル投稿のディスカッショングループ情報の取得、ディスカッションに利用できるグループの一覧表示に対応します(v1.30.0)
- 既読通知 -- 小規模グループでメッセージを読んだユーザーや、プライベートメッセージが読まれた時刻を確認できます(v1.30.0)
- 管理者向け操作 -- チャンネルの署名、スパム対策、フォーラムモード、過去メッセージの表示設定の切り替え、参加リクエストの承認に対応します
- 統計 -- チャンネルとスーパーグループの分析情報を取得できます(GetBroadcastStats / GetMegagroupStats)
- ブーストとビジネス -- ブースト状況、ブースター一覧、Telegram Business のチャットリンクの CRUD、営業時間、所在地、挨拶・不在時・紹介メッセージに対応します
- スターギフト -- 利用可能なギフトと保存済みギフトの閲覧、ギフトの保存・変換、Stars の残高とサブスクリプションの管理に対応します(
MCP_TELEGRAM_ENABLE_STARS=1でオプトイン、v1.34.0) - 共有デーモン -- 1 つのバックグラウンドプロセスで、単一の Telegram セッションを介して複数の MCP クライアントに対応します。共有デーモンガイドをご覧ください(v1.38.0)
- QR コードログイン -- Telegram アプリで QR コードをスキャンして認証できます
- セッションの永続化 -- 一度ログインすれば、再起動後も接続状態が維持されます
- 人が読みやすい出力 -- 数値 ID だけでなく、送信者名を解決して表示します
- あらゆる MCP クライアントで動作 -- Claude Code、Claude Desktop、ChatGPT、Cursor、VS Code、Mastra など
前提条件
- Node.js 18 以降
- Telegram API の認証情報 -- my.telegram.org で取得した
API_IDとAPI_HASH
クイックスタート
1. Telegram API の認証情報を取得する
- my.telegram.org にアクセスし、電話番号でログインします。
- API development tools に移動します。
- 新しいアプリケーションを作成します(名前とプラットフォームは任意です)。
- App api_id と App api_hash をコピーします。
2. ログインする
TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH npx @overpod/mcp-telegram login
ターミナルに QR コードが表示されます。スマートフォンで Telegram を開き、Settings > Devices > Link Desktop Device に移動して、コードをスキャンします。セッションは ~/.mcp-telegram/session に保存され、以後は自動的に再利用されます。
カスタムセッションパス:
TELEGRAM_SESSION_PATH=/path/to/sessionを設定すると、セッションファイルを別の場所に保存できます。
2 段階認証(2FA): アカウントでクラウドパスワードが有効になっている場合、QR コードのスキャンだけでは不十分です。Telegram ではパスワードも必要です。ログインを完了するには、
TELEGRAM_2FA_PASSWORDを使ってパスワードを指定します。TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH TELEGRAM_2FA_PASSWORD=YOUR_PASSWORD npx @overpod/mcp-telegram loginパスワードは Telegram の SRP チャレンジへの応答にローカルでのみ使用され、永続化されることはありません。
3. Claude に追加する
claude mcp add telegram -s user \
-e TELEGRAM_API_ID=YOUR_ID \
-e TELEGRAM_API_HASH=YOUR_HASH \
-- npx @overpod/mcp-telegram
これで完了です!Claude に telegram-status を実行するよう依頼して、動作を確認してください。
複数アカウント
TELEGRAM_SESSION_PATH を使用して、複数の Telegram アカウントを並行して実行できます。
# Login each account with a unique session path
TELEGRAM_API_ID=ID1 TELEGRAM_API_HASH=HASH1 TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-work npx @overpod/mcp-telegram login
TELEGRAM_API_ID=ID2 TELEGRAM_API_HASH=HASH2 TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-personal npx @overpod/mcp-telegram login
次に、それぞれを別個の MCP サーバーとして追加します。
claude mcp add telegram-work -s user \
-e TELEGRAM_API_ID=ID1 \
-e TELEGRAM_API_HASH=HASH1 \
-e TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-work \
-- npx @overpod/mcp-telegram
claude mcp add telegram-personal -s user \
-e TELEGRAM_API_ID=ID2 \
-e TELEGRAM_API_HASH=HASH2 \
-e TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-personal \
-- npx @overpod/mcp-telegram
各アカウントには専用のセッションファイルが割り当てられるため、競合しません。
複数のエージェント/同時クライアント(共有デーモン)
複数アカウントとは逆に、1 つのアカウントを複数のクライアントで同時に操作します。複数の Claude Code ウィンドウ、並列サブエージェント、複数の IDE などが該当します。通常、各プロセスが同じセッションを開くため、AUTH_KEY_DUPLICATED によって互いに接続を切断します。サーブモードを使えば、この問題を解決できます。
Telegram 接続を所有する単一の永続的なデーモンを実行します。ほかのすべてのプロセスは、PID ロックを介してデーモンを自動検出し、ローカル Unix ソケット経由でツール呼び出しをデーモンに転送する軽量クライアントになります。
# On the host, once: start the daemon (owns the connection, no stdio)
TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH mcp-telegram serve
# (or set MCP_TELEGRAM_DAEMON=1 instead of the `serve` argument)
次に、各 MCP クライアントで同じインストール先と同じ TELEGRAM_SESSION_PATH を指定します。serve 引数は不要です。クライアントはデーモンに自動で接続し、どのクライアントを閉じても共有接続は切断されません。認証情報が必要なのは所有者であるデーモンだけなので、クライアントのコマンドでは TELEGRAM_API_ID/TELEGRAM_API_HASH を省略し、デーモンの実行環境に設定しておけます。
systemd ユニットと SSH の使用方法については、共有デーモンガイド を参照してください。
プロキシのサポート
Telegram がブロックされている場合や、コンテナ化された環境(Docker、K3s)で実行している場合は、SOCKS5 または MTProxy を使用してください。
# SOCKS5 proxy
TELEGRAM_PROXY_IP=127.0.0.1 \
TELEGRAM_PROXY_PORT=10808 \
npx @overpod/mcp-telegram
# MTProxy
TELEGRAM_PROXY_IP=proxy.example.com \
TELEGRAM_PROXY_PORT=443 \
TELEGRAM_PROXY_SECRET=ee00000000000000000000000000000000 \
npx @overpod/mcp-telegram
| 変数 | 説明 |
|---|---|
TELEGRAM_PROXY_IP | プロキシサーバーのアドレス |
TELEGRAM_PROXY_PORT | プロキシサーバーのポート |
TELEGRAM_PROXY_SOCKS_TYPE | 4 または 5(デフォルト:5) |
TELEGRAM_PROXY_SECRET | MTProxy のシークレット(MTProxy モードを有効化) |
TELEGRAM_PROXY_USERNAME | 任意のプロキシ認証情報 |
TELEGRAM_PROXY_PASSWORD | 任意のプロキシ認証情報 |
WSS 経由での接続(ポート 443)
VPS またはホスティングの IP アドレスには送信ポート 443 で接続できるものの、デフォルトの MTProto ポート 80 では接続できない場合(不正利用防止ポリシーにより、一部のクラウドプロバイダーが Telegram の DC IP 範囲でポート 80 を禁止しています)は、次のように設定してください。
TELEGRAM_USE_WSS=true npx @overpod/mcp-telegram
| 変数 | 説明 |
|---|---|
TELEGRAM_USE_WSS | true の場合、gramJS は MTProto TCPFull トランスポートにポート 80 の代わりにポート 443 を使用します。デフォルト:false。TELEGRAM_PROXY_* とは併用できません(gramJS の制限)。両方が設定されている場合、useWSS は無視され、プロキシが優先されます(警告がログに記録されます)。 |
インストール方法
npx(推奨、インストール不要)
クローンやインストールは不要です。npx @overpod/mcp-telegram を使うだけです。
グローバルインストール
npm install -g @overpod/mcp-telegram
mcp-telegram # run server
mcp-telegram login # QR login
ビルド済みバイナリ(ランタイム不要)
リリース からダウンロードしてください。依存関係不要の、単一ファイルのスタンドアロンバイナリです。
| プラットフォーム | サーバー | ログイン CLI |
|---|---|---|
| Linux x64 | mcp-telegram-linux-x64 | mcp-telegram-login-linux-x64 |
| Linux ARM64 | mcp-telegram-linux-arm64 | mcp-telegram-login-linux-arm64 |
| macOS x64 | mcp-telegram-darwin-x64 | mcp-telegram-login-darwin-x64 |
| macOS ARM64 | mcp-telegram-darwin-arm64 | mcp-telegram-login-darwin-arm64 |
| Windows x64 | mcp-telegram-windows-x64.exe | mcp-telegram-login-windows-x64.exe |
# Download (example for Linux x64)
curl -L -o mcp-telegram https://github.com/mcp-telegram/mcp-telegram/releases/latest/download/mcp-telegram-linux-x64
curl -L -o mcp-telegram-login https://github.com/mcp-telegram/mcp-telegram/releases/latest/download/mcp-telegram-login-linux-x64
chmod +x mcp-telegram mcp-telegram-login
# Login
TELEGRAM_API_ID=YOUR_ID TELEGRAM_API_HASH=YOUR_HASH ./mcp-telegram-login
# Run
./mcp-telegram
ソースから
git clone https://github.com/mcp-telegram/mcp-telegram.git
cd mcp-telegram
npm install && npm run build
Docker
docker build -t mcp-telegram https://github.com/mcp-telegram/mcp-telegram.git
ログイン(対話型ターミナルが必要です):
docker run -it --rm \
-e TELEGRAM_API_ID=YOUR_ID \
-e TELEGRAM_API_HASH=YOUR_HASH \
-v ~/.mcp-telegram:/root/.mcp-telegram \
--entrypoint node mcp-telegram dist/qr-login-cli.js
MCP サーバーを実行します。
docker run -i --rm \
-e TELEGRAM_API_ID=YOUR_ID \
-e TELEGRAM_API_HASH=YOUR_HASH \
-v ~/.mcp-telegram:/root/.mcp-telegram \
mcp-telegram
注:ターミナル経由でのログインは一度だけ必要です。その後、セッションは
~/.mcp-telegramに保存され、自動的に再利用されます。
MCP クライアントでの使用方法
Claude Code(CLI)
claude mcp add telegram -s user \
-e TELEGRAM_API_ID=YOUR_ID \
-e TELEGRAM_API_HASH=YOUR_HASH \
-- npx @overpod/mcp-telegram
Claude Desktop
-
設定ファイルを開きます:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Telegram サーバーを追加します:
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["@overpod/mcp-telegram"],
"env": {
"TELEGRAM_API_ID": "YOUR_ID",
"TELEGRAM_API_HASH": "YOUR_HASH"
}
}
}
}
-
Claude Desktop を再起動します。
-
Claude に 「Run telegram-login」 と尋ねます。QR コードが表示されます。画像が表示されない場合は、
~/.mcp-telegram/qr-login.pngにも保存されています。Telegram でスキャンします(Settings > Devices > Link Desktop Device)。 -
Claude に 「Run telegram-status」 と尋ねて、接続を確認します。
注記:ターミナルは不要です!ログインはすべて Claude Desktop 上で完了します。
Claude Desktop(バイナリ)
同じ設定ですが、npx の代わりにビルド済みバイナリを使用します:
{
"mcpServers": {
"telegram": {
"command": "/path/to/mcp-telegram",
"env": {
"TELEGRAM_API_ID": "YOUR_ID",
"TELEGRAM_API_HASH": "YOUR_HASH"
}
}
}
}
Claude Desktop(Docker)
-
まずターミナルからログインします(上記のDockerセクションを参照)。
-
設定ファイルに追加します:
{
"mcpServers": {
"telegram": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "TELEGRAM_API_ID=YOUR_ID",
"-e", "TELEGRAM_API_HASH=YOUR_HASH",
"-v", "~/.mcp-telegram:/root/.mcp-telegram",
"mcp-telegram"
]
}
}
}
- Claude Desktop を再起動します。Claude に 「Run telegram-status」 と尋ねて確認します。
Cursor / VS Code
上記と同じ JSON 設定を MCP 設定に追加します(Cursor の Settings > MCP、または VS Code の MCP 設定)。
Mastra
import { MCPClient } from "@mastra/mcp";
const telegramMcp = new MCPClient({
id: "telegram-mcp",
servers: {
telegram: {
command: "npx",
args: ["@overpod/mcp-telegram"],
env: {
TELEGRAM_API_ID: process.env.TELEGRAM_API_ID!,
TELEGRAM_API_HASH: process.env.TELEGRAM_API_HASH!,
},
},
},
});
ツール
すべてのツールは MCP 経由で自動検出されます。接続すると、AI クライアントにパラメーターと説明を含む一覧が表示されます。
| カテゴリ | ツール |
|---|---|
| 認証 | telegram-status、telegram-login、telegram-logout |
| メッセージング | telegram-send-message(逐語的な返信引用用の quoteText と、Premium メッセージの effect を含む)、telegram-edit-message、telegram-delete-message、telegram-forward-message、telegram-send-scheduled、telegram-send-typing、telegram-translate-message、telegram-get-message-link |
| スケジュール済み | telegram-get-scheduled、telegram-delete-scheduled |
| 読み取り | telegram-list-chats、telegram-read-messages、telegram-search-messages、telegram-search-global、telegram-search-chats、telegram-get-unread、telegram-mark-as-read、telegram-get-replies、telegram-get-unread-mentions、telegram-get-unread-reactions、telegram-get-saved-dialogs |
| 下書き | telegram-save-draft、telegram-get-drafts、telegram-clear-drafts |
| フォーラムトピック | telegram-list-topics、telegram-read-topic-messages、telegram-create-topic、telegram-edit-topic、telegram-delete-topic |
| 投票 | telegram-create-poll |
| 投票への操作(v1.31.0) | telegram-vote-poll、telegram-get-poll-results、telegram-get-poll-voters、telegram-close-poll |
| リアクション | telegram-send-reaction、telegram-get-reactions、telegram-set-default-reaction、telegram-get-top-reactions、telegram-get-recent-reactions |
| 有料リアクション(v1.31.0) | telegram-send-paid-reaction(★ Stars)、telegram-toggle-paid-reaction-privacy、telegram-get-paid-reaction-privacy |
| 音声文字起こし(v1.31.0) | telegram-transcribe-audio(Premium)、telegram-get-transcription、telegram-rate-transcription |
| ファクトチェック(v1.31.0) | telegram-get-fact-check、telegram-edit-fact-check、telegram-delete-fact-check |
| ステッカー | telegram-send-sticker、telegram-get-installed-stickers、telegram-get-recent-stickers、telegram-get-sticker-set、telegram-search-sticker-sets |
| メディア | telegram-send-file、telegram-download-media、telegram-get-profile-photo、telegram-get-web-preview |
| リッチメディアの送信 | telegram-send-voice、telegram-send-video-note(円形動画)、telegram-send-location(静的またはライブ)、telegram-send-venue、telegram-send-contact、telegram-send-dice(🎲🎯🎰🏀⚽🎳)、telegram-send-album(写真/動画を2~10件まとめて送信) |
| グループ | telegram-create-group、telegram-edit-group、telegram-invite-to-group、telegram-join-chat、telegram-leave-group、telegram-kick-user、telegram-ban-user、telegram-unban-user、telegram-set-admin、telegram-remove-admin、telegram-get-my-role、telegram-set-chat-permissions、telegram-set-slow-mode、telegram-get-admin-log |
| チャット情報 | telegram-get-chat-info、telegram-get-chat-members、telegram-get-chat-folders |
| フォルダー(v1.33.0) | telegram-create-folder、telegram-edit-folder、telegram-delete-folder、telegram-reorder-folders、telegram-get-suggested-folders、telegram-toggle-folder-tags |
| グローバルプライバシー(v1.33.0) | telegram-get-global-privacy-settings、telegram-set-global-privacy-settings |
| 招待リンク | telegram-create-invite-link、telegram-get-invite-links、telegram-revoke-invite-link |
| 連絡先 | telegram-get-contacts、telegram-add-contact、telegram-get-contact-requests |
| モデレーション | telegram-block-user、telegram-unblock-user、telegram-report-spam |
| プロフィール(読み取り) | telegram-get-profile、telegram-update-profile |
| プロフィール(書き込み、v1.32.0) | telegram-set-emoji-status(Premium)、telegram-list-emoji-statuses、telegram-clear-recent-emoji-statuses、telegram-set-profile-color(Premium)、telegram-set-birthday、telegram-set-personal-channel、telegram-set-profile-photo、telegram-delete-profile-photo |
| アカウント | telegram-get-sessions、telegram-terminate-session、telegram-set-privacy、telegram-set-auto-delete |
| ピン留め | telegram-pin-message、telegram-unpin-message |
| チャット設定 | telegram-mute-chat、telegram-archive-chat、telegram-pin-chat、telegram-mark-dialog-unread |
| 管理者向け切り替え | telegram-toggle-channel-signatures、telegram-toggle-anti-spam、telegram-toggle-forum-mode、telegram-toggle-prehistory-hidden、telegram-set-chat-reactions、telegram-approve-join-request |
| 統計 | telegram-get-broadcast-stats、telegram-get-megagroup-stats |
| インラインボットとボタン | telegram-inline-query、telegram-inline-query-send、telegram-press-button、telegram-get-message-buttons |
| リアルタイムポーリング | telegram-get-state、telegram-get-updates、telegram-get-channel-updates |
| ストーリー(読み取り) | telegram-get-all-stories、telegram-get-peer-stories、telegram-get-stories-by-id、telegram-get-story-views |
| ストーリー(書き込み、v1.30.0) | telegram-send-story、telegram-edit-story、telegram-delete-stories、telegram-react-to-story、telegram-export-story-link、telegram-read-stories、telegram-toggle-story-pinned、telegram-toggle-story-pinned-to-top、telegram-activate-stealth-mode(Premium)、telegram-get-stories-archive、telegram-report-story |
| ディスカッション(v1.30.0) | telegram-get-discussion-message、telegram-get-groups-for-discussion |
| 既読通知(v1.30.0) | telegram-get-message-read-participants、telegram-get-outbox-read-date |
| ブースト | telegram-get-my-boosts、telegram-get-boosts-status、telegram-get-boosts-list |
| ビジネス(v1.32.0) | telegram-get-business-chat-links、telegram-create-business-chat-link、telegram-edit-business-chat-link、telegram-delete-business-chat-link、telegram-resolve-business-chat-link、telegram-set-business-hours、telegram-set-business-location、telegram-set-business-greeting、telegram-set-business-away、telegram-set-business-intro |
| オプトイン(環境変数による制御) | telegram-get-group-call、telegram-get-group-call-participants(MCP_TELEGRAM_ENABLE_GROUP_CALLS=1 が必要);Stars とギフト:telegram-get-stars-status、telegram-get-stars-transactions、telegram-get-stars-topup-options、telegram-get-stars-subscriptions、telegram-change-stars-subscription、telegram-get-available-star-gifts、telegram-get-saved-star-gifts、telegram-save-star-gift、telegram-convert-star-gift(MCP_TELEGRAM_ENABLE_STARS=1 が必要);telegram-get-quick-replies、telegram-get-quick-reply-messages(MCP_TELEGRAM_ENABLE_QUICK_REPLIES=1 が必要) |
ヒント:AI アシスタントに 「どのような Telegram ツールが利用できますか?」 と尋ねると、パラメーターと説明を含む一覧をすべて確認できます。
オプション機能
一部のツールはデフォルトで無効になっており、環境変数で有効にする必要があります。
| 変数 | 値 | 有効になるツール |
|---|---|---|
MCP_TELEGRAM_ENABLE_GROUP_CALLS | 1 | telegram-get-group-call、telegram-get-group-call-participants |
MCP_TELEGRAM_ENABLE_STARS | 1 | Stars の残高と取引、チャージ方法、サブスクリプション、Star Gifts(閲覧/保存/変換) |
MCP_TELEGRAM_ENABLE_QUICK_REPLIES | 1 | telegram-get-quick-replies、telegram-get-quick-reply-messages |
有効にするには、これらを .env ファイルまたは MCP クライアントの設定に追加してください。
開発
npm run dev # Start with file watching (tsx)
npm start # Start the MCP server
npm run login # QR code login in terminal
npm run build # Compile TypeScript
npm run lint # Check code with Biome
npm run lint:fix # Auto-fix lint issues
npm run format # Format code with Biome
プロジェクト構成
src/
index.ts -- MCP server entry point
telegram-client.ts -- TelegramService class (GramJS wrapper)
qr-login-cli.ts -- CLI utility for QR code login
tools/ -- Modular tool definitions
auth.ts -- Connection & login
messages.ts -- Send, read, search, edit, delete, forward; inline bots; real-time polling
chats.ts -- Chat listing, group management, admin toggles, stats
contacts.ts -- Contacts, profiles, moderation
media.ts -- Files, photos, downloads
reactions.ts -- Reactions, set-chat-reactions
extras.ts -- Pin, schedule, polls, topics
stickers.ts -- Sticker sets, send, search, browse
account.ts -- Sessions, privacy, auto-delete, profile, emoji status, birthday, chat mute/folders, invite links
business.ts -- Telegram Business: chat links CRUD, work hours, location, greeting/away/intro
boosts.ts -- Boost status, my boosts, boosters list
stories.ts -- Stories: list all, peer, by-id, view stats
group-calls.ts -- Group call info and participants (opt-in: MCP_TELEGRAM_ENABLE_GROUP_CALLS)
stars.ts -- Stars wallet status and transactions (opt-in: MCP_TELEGRAM_ENABLE_STARS)
quick-replies.ts -- Quick replies and messages (opt-in: MCP_TELEGRAM_ENABLE_QUICK_REPLIES)
shared.ts -- Shared utilities
技術スタック
- TypeScript -- ES2022、ESM モジュール
- GramJS (
telegram) -- Telegram MTProto クライアント - @modelcontextprotocol/sdk -- MCP サーバーのフレームワーク
- Zod -- ツールパラメーターの実行時スキーマ検証
- Biome -- リンターおよびフォーマッター
- tsx -- ビルド手順なしで TypeScript を実行
- dotenv -- 環境変数の管理
トラブルシューティング
AUTH_KEY_DUPLICATED
Telegram セッションは、一度に 1 つのプロセスでのみ使用できます。AUTH_KEY_DUPLICATED が表示された場合、同じセッションファイルを別のプロセスがすでに使用しています。
解決方法:環境ごとに個別のセッションを作成してください。
# Local development
TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-local npx @overpod/mcp-telegram login
# Production server
TELEGRAM_SESSION_PATH=~/.mcp-telegram/session-prod npx @overpod/mcp-telegram login
次に、各環境の MCP 設定で TELEGRAM_SESSION_PATH を適切に設定してください。
セキュリティ
- API 認証情報は
.env(Git の追跡対象外)に保存されます - セッションは
0600権限(所有者のみアクセス可能)で~/.mcp-telegram/sessionに保存されます - セッションディレクトリは
0700権限で作成されます - 電話番号は不要です -- QR コードのみで認証できます
- サードパーティのサービスにデータは送信されません -- すべての通信は MTProto を介して Telegram サーバーに直接送信されます
- QR ログインコードはローカルで生成され、マシンの外部に送信されることはありません
- 1 プロセスにつき 1 セッション -- 同じセッションを複数のプロセスで同時に使用すると、
AUTH_KEY_DUPLICATEDエラーが発生します(トラブルシューティングを参照) - これはボットではなく、個人アカウントを使用するユーザーボットです。Telegram の利用規約を遵守してください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。