Skip to main content
Glama
Telegram Notify MCP Server

Telegram Notify MCP Server

telegram-copilot-bridge

GitHub Copilot CLI を Telegram からリモートで制御します。プロンプトの送信、セッションの管理、ツール呼び出しの承認をすべてスマートフォンから行えます。

アーキテクチャ

📱 Telegram
    ↕ (Bot API long-polling)
🐍 telegram-copilot-bridge
    ↕ (stdin/stdout NDJSON — ACP)
🤖 copilot --acp --stdio

Related MCP server: mcp-telegram-claudecode

機能

  • リモートプロンプト — Telegram から Copilot にプロンプトを送信し、結果をスマートフォンで受け取ります

  • マルチセッション — 複数の Copilot セッションを並行して実行し、切り替えることができます

  • ツール承認 — インラインボタンを使用して Copilot のツール呼び出しを承認または拒否します

  • オートパイロットモード — すべてのツール呼び出しを自動承認し、ハンズフリーで操作します

  • セッション履歴 — ワンタップで過去の Copilot セッションを再開します

  • フォルダピッカー — /new でプロジェクトディレクトリのインラインボタンを表示します

インストール

git clone https://github.com/NobufumiMurata/telegram-copilot-bridge.git
cd telegram-copilot-bridge
pip install -e .

前提条件: Copilot CLI をインストールし、認証を行ってください:

winget install GitHub.Copilot   # or: npm install -g @github/copilot
copilot                         # then /login to authenticate

セットアップ

1. Telegram ボットの作成

  1. Telegram を開き、@BotFather にメッセージを送ります

  2. /newbot を送信し、指示に従います

  3. ボットトークンをコピーします

2. チャット ID とユーザー ID の取得

ボットに任意のメッセージを送信した後、以下を実行します:

curl "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates"

レスポンスから以下を確認します:

  • "chat": {"id": ...} → チャット ID

  • "from": {"id": ...} → ユーザー ID (許可リスト用)

3. 設定

サンプルファイルをコピーし、値を入力します:

cp .env.example .env
# .env
TELEGRAM_BOT_TOKEN=1234567890:AAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TELEGRAM_CHAT_ID=-100000000000
TELEGRAM_ALLOWED_USERS=123456789

# Default AI model
COPILOT_MODEL=claude-opus-4.6

# Root folder for /dirs and /new folder picker
COPILOT_DIRS_ROOT=/home/user/projects

.env ファイルは起動時に(現在のディレクトリから)自動的に読み込まれます。 別の場所を指定するには TELEGRAM_ENV_FILE=/path/to/.env を使用してください。 シェルで設定された環境変数は、常に .env よりも優先されます。

使用方法

# Start (reads .env automatically)
python -m telegram_copilot_bridge

# With options
python -m telegram_copilot_bridge \
  --cwd /path/to/project \
  --model claude-opus-4.6 \
  --timeout 120 \
  -v

CLI オプション:

フラグ

説明

デフォルト

--cwd <dir>

セッションのデフォルト作業ディレクトリ

現在のディレクトリ

--model <name>

AI モデル (例: claude-opus-4.6)

claude-opus-4.6

--timeout <min>

自動シャットダウンまでの時間(分、0は無効)

0

--autopilot

すべてのツール呼び出しを自動承認

オフ (Telegram 経由で手動承認)

-v, --verbose

デバッグログを有効にする

オフ

Telegram コマンド

コマンド

アクション

/new [dir]

新しい Copilot セッションを開始 (COPILOT_DIRS_ROOT が設定されている場合はフォルダピッカーを表示)

/history [n]

過去の CLI セッションを一覧表示 (デフォルト: 3)

/resume <id>

過去のセッションを再開

/dirs [dir]

ディレクトリをブラウズ

/model [name]

AI モデルを表示/設定

/mode

オートパイロット/手動承認を切り替え

/list

アクティブなセッションを一覧表示

/switch <id>

アクティブなセッションを切り替え

/status

セッションのステータス

/stop [id]

セッションを停止

/done

すべてのセッションを停止して終了

/help

コマンドを表示

(任意のテキスト)

アクティブなセッションにプロンプトとして送信

環境変数

すべての変数は .env またはシェルで設定可能です。シェルの値が優先されます。

Telegram:

変数

説明

デフォルト

TELEGRAM_BOT_TOKEN

ボット API トークン

(必須)

TELEGRAM_CHAT_ID

対象のチャット ID

(必須)

TELEGRAM_ALLOWED_USERS

許可するユーザー ID (カンマ区切り)

(すべて許可)

TELEGRAM_ENV_FILE

.env ファイルへのパス

CWD の .env

TELEGRAM_CONFIG_PATH

JSON 認証情報ファイル (フォールバック)

—

Copilot:

変数

説明

デフォルト

COPILOT_CLI_PATH

copilot 実行ファイルへのパス

copilot (PATH から)

COPILOT_MODEL

デフォルトの AI モデル

claude-opus-4.6

COPILOT_AUTOPILOT

ツール呼び出しの自動承認 (true/false)

false

COPILOT_DIRS_ROOT

/dirs および /new フォルダピッカーのルートディレクトリ

(--cwd を使用)

COPILOT_ALLOWED_DIRS

許可する作業ディレクトリ (カンマ区切り)

(すべて)

COPILOT_ALLOWED_TOOLS

許可するツール (カンマ区切り)

shell(git),read,write

COPILOT_PERMISSION_TIMEOUT_SECONDS

権限承認のタイムアウト (秒)

300 (5分)

HUB_LOCK_PORT

シングルトンロック用 TCP ポート

47732

セキュリティ

  • ユーザー許可リスト: TELEGRAM_ALLOWED_USERS からのメッセージのみが受け付けられます。他のユーザーはすべて無視されます。

  • タイムアウト: 設定可能な自動シャットダウンタイムアウト(デフォルト:なし)。権限リクエストは5分後にタイムアウトします(COPILOT_PERMISSION_TIMEOUT_SECONDS で設定可能)。

  • リポジトリに秘密情報を含めない: すべての認証情報は .env ファイルまたは環境変数経由で管理されます。

  • ツール許可リスト: --allow-tool を使用し(--allow-all-tools ではない)、Copilot CLI が実行できる操作を制限します。

  • ディレクトリ制限: COPILOT_ALLOWED_DIRS を介して、Copilot セッションが操作できるディレクトリを制限します。

  • シングルトンロック: マシンごとに1つのインスタンスのみ実行可能です(TCP ポートロック)。

制限事項

  • VS Code でのローカル実行は監視不可 — VS Code 内で Copilot が何をしているかを取得する方法はありません。MCP ツールは VS Code から Bridge への一方通行の呼び出しです。

  • Bridge 外で開始された CLI セッションのステータスは利用不可 — サーバー上で直接 copilot を起動した場合、リアルタイムの実行ステータスを追跡できません。/status での活動表示(events.jsonl の更新時間から推定)が唯一の代替手段です。

  • Bridge 外で開始された CLI セッションからのツール承認リクエストは中継不可 — Hub 経由で起動されたセッションのみが、Telegram インラインボタンを介してツール承認リクエストを中継できます。

  • 単一インスタンスの制限 — マシンごとに1つの Hub プロセスのみ(TCP ポートロック)。

  • Telegram メッセージの長さ制限 — 4000文字を超えるレスポンスは自動的に分割されます。

ライセンス

MIT

Related MCP Connectors

Related MCP Servers