MCP server with Telegram search and messaging capabilities
Project description
Fast MCP Telegram Server - Telegram integration with direct API access, powerful search, and advanced messaging for AI assistants.
Try the Demo
- Open https://tg-mcp.l1979.ru/setup and complete authentication
- Copy your Bearer token from the setup page
Then choose your path:
MCP Client (AI assistants)
- Download the
mcp.jsonfile - Add the server to your AI client and ask: "send hello to my saved messages in telegram"
Direct API (curl)
- Run the command below (replace TOKEN with yours):
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!"}}'
Features
| Feature | Description |
|---|---|
| :globe_with_meridians: HTTP-MTProto Bridge | Direct curl access to any Telegram API method with entity resolution and safety guardrails |
| :dart: AI-Optimized | Conserves context with fewer general-purpose tools, LLM-friendly API design, and MCP ToolAnnotations |
| :closed_lock_with_key: Multi-User Authentication | Shared http-auth server: one Bearer token per user, one Telegram account per MCP connection; session isolation and LRU cache |
| :shield: Session ACL | Opt-in per-token limits on http-auth (ACL_ENABLED) — chat lanes, read_only, blocked_peers, allow_mtproto, ACL_DENY_UNLISTED_TOKENS; see SECURITY.md |
| :label: One Agent, Multiple Accounts | Optional PREFIX_MCP_TOOLS_WITH_ACCOUNT — when one agent uses several MCP connections (same server, different tokens), prefixes tool names so they do not collide; not needed for standard multi-user hosting |
| :tv: Web Setup Interface | Browser-based authentication flow with immediate config generation |
| :building_construction: Dual Transport | Stdio for local MCP clients, HTTP for remote deploys (http-auth production, optional http-no-auth for dev) |
| :rocket: MTProto Proxy Support | Connect via MTProto proxy with automatic Fake TLS (EE prefix) and standard proxy detection |
| :card_file_box: Unified Session Management | Single configuration system for setup and server; per-token session files on shared multi-user hosts |
| :mag_right: Intelligent Search | Global & per-chat message search with multi-query support and intelligent deduplication |
| :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 |
| :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 |
| :envelope: Advanced Messaging | Send, edit, reply, post to forum topics, formatting, file attachments, and phone number messaging |
| :paperclip: Secure File Handling | Rich media sharing with SSRF protection, size limits, album support, optional HTTP attachment streaming |
| :microphone: Voice Transcription | Automatic speech-to-text for Premium accounts with parallel processing and polling |
| :zap: High Performance | Async operations, parallel queries, and memory-conscious batching |
| :shield: Production Reliability | Auto-reconnect, configurable logging, comprehensive error handling |
Quick Start
1. Install and authenticate
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/.
Bot token alternative (no phone number): Create a bot via @BotFather and use --bot-api-token instead of --phone-number:
uvx --from fast-mcp-telegram fast-mcp-telegram-setup \
--api-id="your_api_id" \
--api-hash="your_api_hash" \
--bot-api-token="1234567890:ABCdef..."
No OTP, no verification code. Or skip the setup step entirely — just add BOT_API_TOKEN to your env and the server auto-authenticates on startup.
2. Configure MCP Client
stdio mode (local):
{
"mcpServers": {
"telegram": {
"command": "uvx",
"args": ["fast-mcp-telegram"],
"env": {
"API_ID": "your_api_id",
"API_HASH": "your_api_hash"
}
}
}
}
http-auth mode (remote): See Installation Guide for deploying your own server and authenticating via web interface.
3. 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 Remote Server
Deploy your own MCP server on a VDS — see Installation Guide for step-by-step instructions.
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.
HTTP-MTProto Bridge
Direct curl access to any Telegram API method — available for programmatic integration.
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 curl!"}}'
Supports any Telegram method, automatic entity resolution, and TL object construction.
Integration examples:
- CI/CD: send deploy notifications to Telegram channels
- Monitoring: push alerts and system metrics to admin groups
- Webhooks: receive external events and forward to Telegram
- Backup: export chat history to external storage systems
- Custom bots: extend functionality with external services
See MTProto Bridge for full documentation.
Documentation
- Installation Guide - Local setup and remote server deployment
- Tools Reference - Complete tools documentation
- MTProto Bridge - Direct API access via curl
- Contributing - Guidelines for contributors
- Security - Security features and best practices
License
MIT License - see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fast_mcp_telegram-0.22.0.tar.gz.
File metadata
- Download URL: fast_mcp_telegram-0.22.0.tar.gz
- Upload date:
- Size: 166.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d02f24152815debea6e8e855c72b96a2557b090edc375be2f513d7cbcc9bd757
|
|
| MD5 |
6a3a80b1252f324d8c58e0f201b4a15a
|
|
| BLAKE2b-256 |
7266605ea6b3d2df9d092af899b45b87e0492827109403e6cbc345769b5fbcb4
|
Provenance
The following attestation bundles were made for fast_mcp_telegram-0.22.0.tar.gz:
Publisher:
publish.yml on leshchenko1979/fast-mcp-telegram
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fast_mcp_telegram-0.22.0.tar.gz -
Subject digest:
d02f24152815debea6e8e855c72b96a2557b090edc375be2f513d7cbcc9bd757 - Sigstore transparency entry: 1660646320
- Sigstore integration time:
-
Permalink:
leshchenko1979/fast-mcp-telegram@b3d265548a331e87c340ef15e9db9636ac0e47d3 -
Branch / Tag:
refs/tags/0.22.0 - Owner: https://github.com/leshchenko1979
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b3d265548a331e87c340ef15e9db9636ac0e47d3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fast_mcp_telegram-0.22.0-py3-none-any.whl.
File metadata
- Download URL: fast_mcp_telegram-0.22.0-py3-none-any.whl
- Upload date:
- Size: 134.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
384322e763ee08c27e59c9e0679668f03744c84f087e72e4bdbca21adb364e9a
|
|
| MD5 |
1fb646985649a81e15b15296a7ce6852
|
|
| BLAKE2b-256 |
9c8390e4d019dcdf0ee3ca2dc25972e36421c4cf311df0ae25ec0149004e3858
|
Provenance
The following attestation bundles were made for fast_mcp_telegram-0.22.0-py3-none-any.whl:
Publisher:
publish.yml on leshchenko1979/fast-mcp-telegram
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fast_mcp_telegram-0.22.0-py3-none-any.whl -
Subject digest:
384322e763ee08c27e59c9e0679668f03744c84f087e72e4bdbca21adb364e9a - Sigstore transparency entry: 1660646425
- Sigstore integration time:
-
Permalink:
leshchenko1979/fast-mcp-telegram@b3d265548a331e87c340ef15e9db9636ac0e47d3 -
Branch / Tag:
refs/tags/0.22.0 - Owner: https://github.com/leshchenko1979
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b3d265548a331e87c340ef15e9db9636ac0e47d3 -
Trigger Event:
release
-
Statement type: