Skip to main content

MCP server with Telegram search and messaging capabilities

Project description

Hero image

Python Version License: MIT Docker Ready Health Status

Fast MCP Telegram Server - Production-ready Telegram integration for AI assistants with comprehensive search, messaging, and direct API access capabilities.

Demo

  1. Open https://tg-mcp.l1979.ru/setup to begin the authentication flow.
  2. After finishing, you'll receive a ready-to-use mcp.json with your Bearer token.
  3. Use the config with your MCP client to check out this MCP server capabilities.
  4. Or try the HTTP-MTProto Bridge right away with curl (replace TOKEN):
curl -X POST "https://tg-mcp.l1979.ru/mtproto-api/messages.SendMessage" \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"params": {"peer": "me", "message": "Hello from Demo!"}}'

Features

Feature Description
:closed_lock_with_key: Multi-User Authentication Production-ready Bearer token auth with session isolation and LRU cache management
:globe_with_meridians: HTTP-MTProto Bridge Direct curl access to any Telegram API method with entity resolution and safety guardrails
:mag: Unified Message API Single get_messages tool for search, browse, read by IDs, and replies - 5 modes in one
:speech_balloon: Universal Replies Get replies from channel posts, forum topics, or any message with one parameter
:mag_right: Intelligent Search Global & per-chat message search with multi-query support and intelligent deduplication
:building_construction: Dual Transport Seamless development (stdio) and production (HTTP) deployment support
:file_folder: Secure File Handling Rich media sharing with SSRF protection, size limits, album support, optional HTTP attachment streaming
:envelope: Advanced Messaging Send, edit, reply, post to forum topics, formatting, file attachments, and phone number messaging
:microphone: Voice Transcription Automatic speech-to-text for Premium accounts with parallel processing and polling
:card_file_box: Unified Session Management Single configuration system for setup and server, with multi-account support
:busts_in_silhouette: Smart Contact Discovery Search users, groups, channels with uniform entity schemas, forum detection, profile enrichment
:file_folder: Folder Filtering Filter chats by dialog folder (archived, custom folders) with integer ID or name matching
:robot: Bot Chat Detection Bots identified with type: "bot" and filterable via chat_type="bot"
:zap: High Performance Async operations, parallel queries, connection pooling, and memory optimization
:shield: Production Reliability Auto-reconnect, structured logging, comprehensive error handling with clear actionable messages
:dart: AI-Optimized Literal parameter constraints, LLM-friendly API design, and MCP ToolAnnotations
:globe_with_meridians: Web Setup Interface Browser-based authentication flow with immediate config generation
:rocket: MTProto Proxy Support Connect via MTProto proxy with automatic Fake TLS (EE prefix) and standard proxy detection

Quick Start (pip)

1. Install

pip install fast-mcp-telegram

2. Authenticate

fast-mcp-telegram-setup --api-id="your_api_id" --api-hash="your_api_hash" --phone-number="+123456789"

Or use the web interface: run fast-mcp-telegram and open /setup

Quick Start (uvx)

1. First-time setup

uvx --from fast-mcp-telegram fast-mcp-telegram-setup --api-id="your_api_id" --api-hash="your_api_hash" --phone-number="+123456789"

Sessions are stored in ~/.config/fast-mcp-telegram/ and persist between uvx invocations.

2. Configure MCP Client

STDIO:

{
  "mcpServers": {
    "telegram": {
      "command": "uvx",
      "args": ["fast-mcp-telegram"],
      "env": {
        "API_ID": "your_api_id",
        "API_HASH": "your_api_hash"
      }
    }
  }
}

HTTP_AUTH:

{
  "mcpServers": {
    "telegram": {
      "url": "https://your-server.com",
      "headers": {
        "Authorization": "Bearer AbCdEfGh123456789..."
      }
    }
  }
}

4. Start Using

{"tool": "search_messages_globally", "params": {"query": "hello", "limit": 5}}
{"tool": "get_messages", "params": {"chat_id": "me", "limit": 10}}
{"tool": "send_message", "params": {"chat_id": "me", "message": "Hello!"}}

Deploy to Production

This project uses GitHub Actions for automatic builds and deployments.

  1. Fork this repository
  2. Add secrets in GitHub Settings: SSH_HOST, SSH_USER, SSH_PRIVATE_KEY
  3. Edit .env in your fork
  4. Push to main — deployment happens automatically

Manual deployment: Use scripts/sync-remote-config.sh

See Deployment Guide for details.

Available Tools

Tool Purpose Key Features
search_messages_globally Search across all chats Multi-term queries, date filtering, chat type filtering
get_messages Unified message retrieval Search/browse, read by IDs, get replies (posts/topics/messages), 5 modes
send_message Send new message File attachments (URLs/local), formatting (markdown/html), reply to forum topics
edit_message Edit existing message Text formatting, preserves message structure
find_chats Find users/groups/channels Multi-term search, contact discovery, folder filtering, username/phone lookup
get_chat_info Get detailed profile info Member counts, bio/about, online status, forum topics, enriched data
send_message_to_phone Message phone numbers Auto-contact management, optional cleanup, file support
invoke_mtproto Direct Telegram API access Raw MTProto methods, entity resolution, safety guardrails

See Tools Reference for detailed documentation with examples.

Security

  • Bearer token authentication with session isolation
  • SSRF protection for file downloads
  • Dangerous method blocking with opt-in override

See SECURITY.md for details.

Documentation

License

MIT License - see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fast_mcp_telegram-0.16.4.tar.gz (123.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_mcp_telegram-0.16.4-py3-none-any.whl (100.3 kB view details)

Uploaded Python 3

File details

Details for the file fast_mcp_telegram-0.16.4.tar.gz.

File metadata

  • Download URL: fast_mcp_telegram-0.16.4.tar.gz
  • Upload date:
  • Size: 123.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fast_mcp_telegram-0.16.4.tar.gz
Algorithm Hash digest
SHA256 98b83fdcbf9275573419fbfc98347d7daf5b059e4088ceca950f5370c3690180
MD5 cc61bae455a78b4dd5afe97bda4886a8
BLAKE2b-256 ccf5f302e46803fdd95270dbc5ab6afb71ed2b8c80dec469683ce9da37575b2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_mcp_telegram-0.16.4.tar.gz:

Publisher: publish.yml on leshchenko1979/fast-mcp-telegram

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fast_mcp_telegram-0.16.4-py3-none-any.whl.

File metadata

File hashes

Hashes for fast_mcp_telegram-0.16.4-py3-none-any.whl
Algorithm Hash digest
SHA256 242d1c34ebd88456cc2fa948d7d1abcbaa700f2d6f7d83ddf2d6c3d8807c3993
MD5 d2315d10f1640d2b1fbc687343fa44bc
BLAKE2b-256 4b131628c70c83a95fd1ed37f7ae0673685cbf3d01213c27e294a8b91e456da9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_mcp_telegram-0.16.4-py3-none-any.whl:

Publisher: publish.yml on leshchenko1979/fast-mcp-telegram

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page