Skip to main content
Glama
telegram-mcp-cli

telegram-mcp-cli

by Telegram-mcp

⚑ telegram-mcp-cli

Modern Command-Line Interface & Bot Automation Controller for Telegram

PyPI Python 3.10+ License: MIT Telethon Test Suite


πŸ“‘ Table of Contents


Related MCP server: telegram-mcp-server

✨ Key Features

  • πŸ”‘ Instant Session Switching (tg-cli auth <path.session>): Pass any existing Telethon .session file directly. Automatically validates SQLite integrity, detects the target server cluster, and aligns settings.

  • πŸ€– Bot Testing & Automation: Send text payloads, trigger slash commands (e.g. /start), inspect responses, and click inline keyboard buttons.

  • πŸ›‘οΈ Environment Mismatch Shield: Automatically detects whether your session belongs to the Test Server (Sandbox) or Production Server and protects against cross-environment auth revocation.

  • πŸ”’ Process-Level Session Guard: Prevents concurrent duplicate connections (/tmp/telegram-mcp.lock) to eliminate AuthKeyDuplicatedError.

  • πŸ“ Rich Terminal Display: Colorized output, message panels, button trees, and clean tabular diagnostics powered by rich.

  • πŸ’¬ Real-Time Interactive Chat (tg-cli chat <@bot>): Live terminal chat session with background streaming of incoming messages, inline button triggers (/click), and history scrolling.

  • ⚑ Arbitrary MTProto Execution (tg-cli exec): Direct command-line evaluation of Python MTProto snippets with live client injection.


πŸ—οΈ Architecture

flowchart TD
    subgraph Terminal ["User / Agent CLI"]
        CLI["tg-cli (argparse + rich)"]
    end

    subgraph Core ["telegram-mcp-cli Engine"]
        Config["Config Manager (.env)"]
        Shield["Environment Mismatch Shield"]
        Lock["Process Lock (/tmp/telegram-mcp.lock)"]
        Controller["TelegramCliClient (Telethon)"]
    end

    subgraph Telegram ["Telegram MTProto Network"]
        TestDC["Telegram Test DC (Sandbox)"]
        ProdDC["Telegram Production DC (Live)"]
    end

    CLI --> Config
    CLI --> Controller
    Controller --> Lock
    Controller --> Shield
    Shield -->|Test Session| TestDC
    Shield -->|Prod Session| ProdDC

πŸš€ Quick Start

1. Installation

From PyPI (Recommended):

pip install telegram-mcp-cli

From Source:

git clone https://github.com/Telegram-mcp/telegram-mcp-cli.git
cd telegram-mcp-cli
pip install -e .

2. Configure Authentication

TIP

If you already have atelegram-mcp installation, tg-cli automatically detects and shares credentials from its .env!

To set up or switch active sessions directly:

# Option A: Point to an existing Telethon .session file
tg-cli auth /path/to/my_account.session

# Option B: Run interactive phone / QR login
tg-cli auth login

3. Verify Connection

tg-cli status

πŸ’» Command Reference

Command

Description

Example

auth

Configure active session file or login

tg-cli auth my_bot.session

status

View connection, DC, and account status

tg-cli status

send

Send formatted text message to a bot/chat

tg-cli send @mybot "Hello from CLI"

command

Send /command and wait for bot reply

tg-cli command @mybot /start

click

Click inline button by text or index

tg-cli click @mybot --button "Option 1"

chat

Start interactive live chat session

tg-cli chat @mybot

history

Fetch recent conversation history

tg-cli history @mybot --limit 10

send-file

Upload photo, document, or audio

tg-cli send-file @mybot doc.pdf

exec

Execute MTProto Python snippet

tg-cli exec "await client.get_me()"

unlock

Release session lock & terminate conflicting process

tg-cli unlock


πŸ›‘οΈ Safety & Session Protection

WARNING

Telegram permanently revokes authorization keys if multiple processes connect with the same session key simultaneously (AuthKeyDuplicatedError).

  • File Locking: tg-cli uses /tmp/telegram-mcp.lock to ensure no two processes use the session concurrently.

  • Instant Lock Clearing (tg-cli unlock): If a background MCP server or orphaned process holds the lock, run tg-cli unlock to cleanly terminate it and free the lock.

  • Force Takeover (--force): Pass --force to any command (e.g. tg-cli chat @bot --force or tg-cli status --force) to automatically terminate conflicting background processes before connecting.

  • Environment Matching: Test Server sessions (DC 2 Sandbox) and Production sessions cannot be cross-connected. The CLI will abort with a clear warning before Telegram revokes the key.


πŸ§ͺ Testing

Run the automated unit test suite with pytest:

python3 -m pytest tests -v

πŸ“„ License

This project is licensed under the MIT License.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Drives a personal Telegram account from the terminal or via MCP, enabling AI assistants to list chats, send/edit messages, fetch history, manage groups, and more with tiered read/write/destructive permissions.
      1
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables interfacing with Telegram through user accounts or bots, offering tools for messaging, chat management, search, media sharing, and session control with flood-safe rate limiting.
      1
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to interact with, test, click buttons on, and verify Telegram bots end-to-end via MTProto, including messaging, inline queries, media exchange, and automated test suites.
      1
      MIT