Skip to main content
Glama
NobufumiMurata

Telegram Notify MCP Server

telegram-copilot-bridge

Control GitHub Copilot CLI remotely from Telegram. Send prompts, manage sessions, and approve tool calls β€” all from your smartphone.

Architecture

πŸ“± Telegram
    ↕ (Bot API long-polling)
🐍 telegram-copilot-bridge
    ↕ (stdin/stdout NDJSON β€” ACP)
πŸ€– copilot --acp --stdio

Features

  • Remote Prompting β€” Send Copilot prompts from Telegram, receive results on your phone

  • Multi-Session β€” Run multiple Copilot sessions in parallel, switch between them

  • Tool Approval β€” Approve or deny Copilot's tool calls via inline buttons

  • Autopilot Mode β€” Auto-approve all tool calls for hands-free operation

  • Session History β€” Resume past Copilot sessions with one tap

  • Folder Picker β€” /new shows inline buttons for project directories

Installation

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

Prerequisites: Install Copilot CLI and authenticate:

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

Setup

1. Create a Telegram Bot

  1. Open Telegram and message @BotFather

  2. Send /newbot and follow the prompts

  3. Copy the bot token

2. Get Your Chat ID and User ID

Send any message to your bot, then:

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

From the response, note:

  • "chat": {"id": ...} β†’ your Chat ID

  • "from": {"id": ...} β†’ your User ID (for the allowlist)

3. Configure

Copy the example file and fill in your values:

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

The .env file is loaded automatically on startup (from the current directory). Use TELEGRAM_ENV_FILE=/path/to/.env to point to a different location. Environment variables set in the shell always take priority over .env.

Usage

# 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 options:

Flag

Description

Default

--cwd <dir>

Default working directory for sessions

current dir

--model <name>

AI model (e.g. claude-opus-4.6)

claude-opus-4.6

--timeout <min>

Auto-shutdown in minutes (0 = no timeout)

0

--autopilot

Auto-approve all tool calls

off (manual approval via Telegram)

-v, --verbose

Enable debug logging

off

Telegram Commands

Command

Action

/new [dir]

Start a new Copilot session (shows folder picker if COPILOT_DIRS_ROOT is set)

/history [n]

List past CLI sessions (default: 3)

/resume <id>

Resume a past session

/dirs [dir]

Browse directories

/model [name]

Show/set AI model

/mode

Toggle autopilot/manual approval

/list

List active sessions

/switch <id>

Switch active session

/status

Session status

/stop [id]

Stop a session

/done

Stop all sessions & exit

/help

Show commands

(any text)

Send as prompt to active session

Environment Variables

All variables can be set in .env or in the shell. Shell values take priority.

Telegram:

Variable

Description

Default

TELEGRAM_BOT_TOKEN

Bot API token

(required)

TELEGRAM_CHAT_ID

Target chat ID

(required)

TELEGRAM_ALLOWED_USERS

Comma-separated allowed user IDs

(allow all)

TELEGRAM_ENV_FILE

Path to the .env file

.env in CWD

TELEGRAM_CONFIG_PATH

JSON credential file (fallback)

β€”

Copilot:

Variable

Description

Default

COPILOT_CLI_PATH

Path to copilot executable

copilot (from PATH)

COPILOT_MODEL

Default AI model

claude-opus-4.6

COPILOT_AUTOPILOT

Auto-approve tool calls (true/false)

false

COPILOT_DIRS_ROOT

Root directory for /dirs and /new folder picker

(uses --cwd)

COPILOT_ALLOWED_DIRS

Comma-separated allowed working dirs

(any)

COPILOT_ALLOWED_TOOLS

Comma-separated tools to allow

shell(git),read,write

COPILOT_PERMISSION_TIMEOUT_SECONDS

Permission approval timeout (seconds)

300 (5 min)

HUB_LOCK_PORT

TCP port for singleton lock

47732

Security

  • User allowlist: Only messages from TELEGRAM_ALLOWED_USERS are accepted. All other users are silently ignored.

  • Timeouts: Configurable auto-shutdown timeout (default: no timeout). Permission requests timeout after 5 minutes (configurable via COPILOT_PERMISSION_TIMEOUT_SECONDS).

  • No secrets in repo: All credentials via .env file or environment variables.

  • Tool allowlist: Uses --allow-tool (not --allow-all-tools) to restrict what Copilot CLI can do.

  • Directory restrictions: Restrict which directories Copilot sessions can operate in via COPILOT_ALLOWED_DIRS.

  • Singleton lock: Only one instance can run per machine (TCP port lock).

Limitations

  • VS Code local runs are not observable β€” There is no way to retrieve what Copilot is doing inside VS Code. MCP tools are one-way calls from VS Code β†’ Bridge only.

  • Status of CLI sessions started outside the Bridge is unavailable β€” If you launch copilot directly on the server, real-time execution status cannot be tracked. The Activity display in /status (estimated from events.jsonl modification time) is the only alternative.

  • Tool approval requests from CLI sessions started outside the Bridge cannot be relayed β€” Only sessions launched via the Hub can relay tool approval requests through Telegram inline buttons.

  • Single-instance restriction β€” Only one Hub process per machine (TCP port lock).

  • Telegram message length limit β€” Responses exceeding 4000 characters are split automatically.

License

MIT

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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

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