MCP/HTTP Telegram Gateway — Multi-tenant, MTProto User API, 8 tools, multi-user Bearer auth, global search, session ACL, Docker
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Mature repo (>1y old)
claude mcp add fast-mcp-telegram -- uvx fast-mcp-telegram-setup{
"mcpServers": {
"fast-mcp-telegram": {
"command": "uvx",
"args": ["fast-mcp-telegram-setup"]
}
}
}MCP Servers overview
mcp-name: io.github.leshchenko1979/fast-mcp-telegram
<img alt="Hero image" src="https://github.com/user-attachments/assets/635236f6-b776-41c7-b6e5-0dd14638ecc1" />
**Telegram MCP Server** — Model Context Protocol (MCP) gateway for Telegram. 8 context-efficient tools, multi-tenant, MTProto bridge.
## Try the Demo
1. Open https://tg-mcp.l1979.ru/setup
2. **Scan the QR code** from Telegram mobile (Settings → Devices → Scan QR) — no phone typing, no OTP, no 2FA. Or enter your phone number as fallback.
3. Copy your Bearer token from the success page
Then choose your path:
**MCP Client (AI assistants)**
- From the [setup page](/setup), download the `mcp.json` file
- 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):
```bash
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!"}}'
```
[](https://python.org)
[](https://opensource.org/licenses/MIT)
[](https://github.com/leshchenko1979/fast-mcp-telegram)
[](https://gatus.l1979.ru/endpoints/apps_fast-mcp-telegram)
[](https://glama.ai/mcp/servers/leshchenko1979/fast-mcp-telegram)
## How It Works
This server sits between your AI agent and Telegram's API:
```
Your agent → MCP/HTTP → this server → MTProto → Telegram
```
**What it does:** Authenticates you with Telegram (QR or phone/bot token), exposes 8 AI-friendly tools instead of 80+ micro-APIs, and bridges raw MTProto for power users. Multi-tenant — one server, many users, isolated sessions.
## Features
| Feature | Description |
| --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| :building_construction: **[Dual Transport](docs/Installation.md#overview)** | Stdio for local MCP clients, HTTP for remote deploys (`http-auth` production, optional `http-no-auth` for dev) |
| :closed_lock_with_key: **[Multi-User Authentication](docs/Installation.md#remote-setup-http-auth)** | Shared `http-auth` server: one Bearer token per user, one Telegram account per MCP connection. **QR login** for instant auth — no phone/OTP/2FA. |
| :dart: **[AI-Optimized](docs/Tools-Reference.md#overview)** | 8 consolidated tools vs 80+ micro-tools — context-efficient design, LLM-friendly API, MCP ToolAnnotations |
| :globe_with_meridians: **[HTTP-MTProto Bridge](docs/MTProto-Bridge.md#key-benefits)** | Direct curl access to any Telegram API method with entity resolution and safety guardrails |
| :shield: **[Session ACL](docs/Installation.md#session-acl-http-auth)** | Opt-in per-principal limits on `http-auth` (`ACL_ENABLED`) — chat lanes, `read_only`, `blocked_peers`, `allow_mtproto`, `ACL_DENY_UNLISTED_PRINCIPALS`; see [SECURITY.md](SECURITY.md#opt-in-session-acl-http-auth) |
| :tv: **[QR & Web Setup](docs/Installation.md#web-setup-interface)** | Scan QR from Telegram mobile for instant auth (no phone/OTP/2FA) or use phone/code/2FA fallback — live at `/setup` |
| :label: **[One Agent, Multiple Accounts](docs/Installation.md#multi-account-mcp-tool-prefix)** | 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 |
| :rocket: **[MTProto Proxy Support](docs/Installation.md#mtproto-proxy)** | Connect via MTProto proxy with automatic Fake TLS (EE prefix) and standard proxy detection |
| :card_file_box: **[Unified Session Management](docs/Installation.md#configuration-reference)** | Single configuration system for setup and server; per-token session files on shared multi-user hosts |
| :cloud: **[S3 Session Storage](docs/Installation.md#s3-session-storage-optional)** | Store sessions in S3-compatible object storage for ephemeral hosted deployments (Smithery, Fly.io, Railway) |
| :mag_right: **[Intelligent Search](docs/Search-Guidelines.md#what-works)** | Global & per-chat message search with multi-query support and intelligent deduplication |
| :mag: **[Unified Message API](docs/Tools-Reference.md#2-read)** | Single `get_messages` tool for search, browse, read by IDs, and replies - 5 modes in one |
| :speech_balloon: **[Universal Replies](docs/Tools-Reference.md#2-read)** | Get replies from channel posts, forum topics, or any message with one parameter |
| :busts_in_silhouette: **[Smart Contact Discovery](docs/Tools-Reference.md#1-discovery)** | Search users, groups, channels with uniform entity schemas, forum detection, profile enrichment |
| :file_folder: **[Folder Filtering](docs/Tools-Reference.md#1-discovery)** | Filter chats by dialog folder (archived, custom folders) with integer ID or name matching |
| :envelope: **[Advanced Messaging](docs/Tools-Reference.md#3-write)** | Send, edit, reply, post to forum topics, formatting, file attachments, and phone number messaging |
| :paperclip: **[Secure File Handling](docs/Tools-Reference.md#3-write)** | Rich media sharing with SSRF protection, size limits, album support, optional HTTP attachment streaming |
| :outbox_tray: **[Inline File Uploads](docs/Tools-Reference.md#3-write)** | Data: URI (base64) file uploads in `files` param — work in all transport modes, filenames preserved, images sent as photos |
| :microphone: **[Voice Transcription](docs/Tools-Reference.md#get_messages)** | 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 |
> **Prerequisite:** Install `uv` — see [docs](https://docs.astral.sh/uv/#installation) if you don't have it. Or use Docker (see [Installation Guide](docs/Installation.md)).
## Quick Start
### 1. Install and authenticate
**Quickest path (remote server):** Open `/setup` → scan QR → copy token (see [Try the Demo](#try-the-demo)).
**CLI path (local stdio):** Run `fast-mcp-telegram-setup` once to create a Telegram session — then `fast-mcp-telegram` serves it:
```bash
uvx --from fast-mcp-telegram fast-mcp-telegram-setup \
--api-id="your_api_id" \
--api-hash="your_api_hash" \
--phone-number="+123456789"
```
**Bot token alternative (no phone, no OTP):**
Set `BOT_API_TOKEN` instead of `--phone-number`. See [Installation Guide](docs/Installation.md).
### 2. Configure MCP Client
**stdio mode (local):** Add to your MCP client config (e.g. `claude_desktop_config.json`) — stdio (standard input/output) is the default transport for local MCP clients:
```json
{
"mcpServers": {
"telegram": {
"command": "uvx",
"args": ["fast-mcp-telegram"],
"env": {
"API_ID": "your_api_id",
"API_HASH": "your_api_hash"
}
}
}
}
```
**http-auth mode (remote):** Add to your MCP client config (e.g. `claude_desktop_config.json`):
```json
{
"mcpServers": {
"telegram": {
"url": "https://tg-mcp.l1979.ru/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
```
Get your token by scanning the QR code on the [setup page](/setup) or see [Installation Guide](docs/Installation.md) for deploying your own server.
### 3. Start Using
```json
{"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](docs/Installation.md) 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), date filtering in all modes |
| `send_message` | Send new message | File attachments (URLs/local/data URIs), 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 |
| What people ask about fast-mcp-telegram
What is leshchenko1979/fast-mcp-telegram?
+
leshchenko1979/fast-mcp-telegram is mcp servers for the Claude AI ecosystem. MCP/HTTP Telegram Gateway — Multi-tenant, MTProto User API, 8 tools, multi-user Bearer auth, global search, session ACL, Docker It has 47 GitHub stars and was last updated today.
How do I install fast-mcp-telegram?
+
You can install fast-mcp-telegram by cloning the repository (https://github.com/leshchenko1979/fast-mcp-telegram) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is leshchenko1979/fast-mcp-telegram safe to use?
+
Our security agent has analyzed leshchenko1979/fast-mcp-telegram and assigned a Trust Score of 92/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains leshchenko1979/fast-mcp-telegram?
+
leshchenko1979/fast-mcp-telegram is maintained by leshchenko1979. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to fast-mcp-telegram?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy fast-mcp-telegram to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/leshchenko1979-fast-mcp-telegram)<a href="https://claudewave.com/repo/leshchenko1979-fast-mcp-telegram"><img src="https://claudewave.com/api/badge/leshchenko1979-fast-mcp-telegram" alt="Featured on ClaudeWave: leshchenko1979/fast-mcp-telegram" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。