Skip to main content
Glama
tdlib-mcp-server

tdlib-mcp-server

tdlib-mcp-server

Open-source MCP server that connects AI agents to Telegram via the official TDLib (Telegram Database Library).

Unlike other Telegram MCP servers (GramJS, Telethon), this uses the official C++ library via Python ctypes. Your account is treated as an official client (like Telegram Desktop) — no unofficial client flags.

Features

Tool

Description

get_me

Get current authorized user profile

list_dialogs

List chats with basic info

resolve_username

Convert @username to chat info

get_chat_info

Get detailed chat/channel/group info

list_messages

Get messages from a chat (newest first)

get_message

Get a single message by ID

search_in_chat

Search messages in a specific chat

search_global

Search messages across all chats

Related MCP server: agent-telegram-mcp

Quick Start

# 1. Clone
git clone https://github.com/Crocodile-beep/tdlib_mcp_server.git
cd tdlib_mcp_server

# 2. Create venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 3. Configure API credentials
cp .env.example .env
# Edit .env with your api_id, api_hash from https://my.telegram.org/apps

# 4. First-time auth
python test_auth.py
# Enter the code sent to Telegram

# 5. Run MCP server
python main.py

MCP Client Configuration

Add to your opencode.jsonc:

{
  "mcp": {
    "tdlib": {
      "type": "local",
      "command": ["./venv/bin/python", "-u", "./main.py"],
      "enabled": true
    }
  }
}

For other MCP clients (Claude Desktop, etc.), point them to python /path/to/tdlib-mcp-server/main.py.

Architecture

┌──────────────┐    queue.Queue     ┌──────────────────┐
│  asyncio     │ ──────────────────>│  TDLib Thread    │
│  MCP Server  │                    │  libtdjson.so    │
│  (main.py)   │ <──────────────────│  (tdlib_client)  │
│              │   asyncio.Future   │                  │
└──────────────┘                    └──────────────────┘
  • Python 3.14 — MCP stdio transport via mcp SDK

  • TDLib 1.8.57 — compiled libtdjson.so in lib/

  • ctypes — direct C function calls, no bindings

  • SQLite — session data stored in data/tdlib/ (managed by TDLib)

Roadmap

  • list_messages_date_range — filter messages by date

  • Error handling — FLOOD_WAIT retry, reconnection

  • More tools as needed

License

MIT — fully open source, use it freely.

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
      Enables AI agents to interact with a user's Telegram account: list chats, read history, search, and send messages through Telegram's MTProto API.
      2
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to operate a Telegram account through the same commands as the terminal client: messaging, chat management, voice transcription, calls, stickers, and privacy settings.
      1
      MIT