Fast Mcp Telegram

io.github.leshchenko1979由 GitHub 账号 leshchenko1979 发布v0.46.1更新于 Oct 24, 2026

Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API

发布方自己的服务:Fastio

已验证Streamable HTTP可网页运行效率与工作流沟通与协作

概览

Fast Mcp Telegram 的托管 MCP 服务(tg-mcp.l1979.ru);无需登录;Streamable HTTP;8 个工具。

暂无 AI 概览:以下信息来自注册中心条目和服务本身。

端点
tg-mcp.l1979.ru
最近检查

安装

在 SourceWeft 中

  1. 打开 控制台中的 Fast Mcp Telegram,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.leshchenko1979%2Ffast-mcp-telegram/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "fast-telegram": {
      "type": "http",
      "url": "https://tg-mcp.l1979.ru/v1/mcp"
    }
  }
}

README

[Hero image]

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, 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!"}}'

[Python Version] [License: MIT] [Docker Ready] [Health Status] [Glama Score] [MCP Queen operational grade]

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

FeatureDescription
:building_construction: Dual TransportStdio for local MCP clients, HTTP for remote deploys (http-auth production, optional http-no-auth for dev)
:closed_lock_with_key: Multi-User AuthenticationShared 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-Optimized8 consolidated tools vs 80+ micro-tools — context-efficient design, LLM-friendly API, MCP ToolAnnotations
:globe_with_meridians: HTTP-MTProto BridgeDirect curl access to any Telegram API method with entity resolution and safety guardrails
:shield: Session ACLOpt-in per-principal limits on http-auth (ACL_ENABLED) — chat lanes, read_only, blocked_peers, allow_mtproto, ACL_DENY_UNLISTED_PRINCIPALS; see SECURITY.md
:tv: QR & Web SetupScan QR from Telegram mobile for instant auth (no phone/OTP/2FA) or use phone/code/2FA fallback — live at /setup
:label: One Agent, Multiple AccountsOptional 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 SupportConnect via MTProto proxy with automatic Fake TLS (EE prefix) and standard proxy detection
:card_file_box: Unified Session ManagementSingle configuration system for setup and server; per-token session files on shared multi-user hosts
:cloud: S3 Session StorageStore sessions in S3-compatible object storage for ephemeral hosted deployments (Smithery, Fly.io, Railway)
:mag_right: Intelligent SearchGlobal & per-chat message search with multi-query support and intelligent deduplication
:mag: Unified Message APISingle get_messages tool for search, browse, read by IDs, and replies - 5 modes in one
:speech_balloon: Universal RepliesGet replies from channel posts, forum topics, or any message with one parameter
:busts_in_silhouette: Smart Contact DiscoverySearch users, groups, channels with uniform entity schemas, forum detection, profile enrichment
:file_folder: Folder FilteringFilter chats by dialog folder (archived, custom folders) with integer ID or name matching
:envelope: Advanced MessagingSend, edit, reply, post to forum topics, formatting, file attachments, and phone number messaging
:paperclip: Secure File HandlingRich media sharing with SSRF protection, size limits, album support, optional HTTP attachment streaming
:outbox_tray: Inline File UploadsData: URI (base64) file uploads in files param — work in all transport modes, filenames preserved, images sent as photos
:microphone: Voice TranscriptionAutomatic speech-to-text for Premium accounts with parallel processing and polling
:zap: High PerformanceAsync operations, parallel queries, and memory-conscious batching
:shield: Production ReliabilityAuto-reconnect, configurable logging, comprehensive error handling

Quick Start

1. Install and authenticate

Quickest path (remote server): Open /setup → scan QR → copy token (see 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.

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 or see Installation Guide 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 for step-by-step instructions.

Available Tools

ToolPurposeKey Features
search_messages_globallySearch across all chatsMulti-term queries, date filtering, chat type filtering
get_messagesUnified message retrievalSearch/browse, read by IDs, get replies (posts/topics/messages), date filtering in all modes
send_messageSend new messageFile attachments (URLs/local/data URIs), classic formatting (markdown/html), parse_mode=rich Rich Messages, reply to forum topics
edit_messageEdit existing messageClassic or parse_mode=rich formatting
find_chatsFind users/groups/channelsMulti-term search, contact discovery, folder filtering, username/phone lookup
get_chat_infoGet detailed profile infoMember counts, bio/about, online status, forum topics, common groups, enriched data
send_message_to_phoneMessage phone numbersAuto-contact management, optional cleanup, file support (URLs/data URIs), parse_mode=rich
invoke_mtprotoDirect Telegram API (power user)Raw MTProto methods, entity resolution, PII/credential fields dropped by default (include_sensitive=true for raw) — see MTProto Bridge

See Tools Reference for detailed documentation with examples.

Documentation

Telemetry

Anonymous tool telemetry since v0.30.1 — heartbeat every 6h, no credentials or message content collected. Opt out with DO_NOT_TRACK=1. See ADR 0005.

Auth flow telemetry since v0.38.0 — atomic events during setup (phone, QR, bot token, reauthorize). Buffered flush on flow completion. See ADR 0008.

License

MIT License - see LICENSE

mcp-name: io.github.leshchenko1979/fast-mcp-telegram

来源:README.md,提交 12d02fb

工具

8

search_messages_globally

Search messages globally

Search all Telegram chats at once (not scoped to one chat). Comma-separated query terms; optional filters by date, chat kind, and public username. Results are ordered by ascending date-time (oldest first); limit selects the newest N. Success: message list and metadata dict. Global search ignores include_total_count. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数limitquery必填publicmax_datemin_datechat_typeauto_expand_batchesinclude_total_count

get_messages

Get messages in chat

Read or search messages in one chat: browse latest, search text, fetch by ids, or load replies to a message (comments, forum topics, threads). Use from_user to filter by sender (server-side, per-chat only). Use context to include neighboring messages and reply chains around each result. Use include_replies to fetch up to 5 direct replies per result. Do not combine message_ids with query or reply_to_id. Results are ordered by ascending date-time (oldest first) in every mode, including message_ids and nested context lists; limit selects the newest N. Success: messages, has_more, optional total_count and discussion fields. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数limitquerychat_id必填contextmax_datemin_datefrom_usermessage_idsreply_to_idthread_scopeinclude_repliesauto_expand_batches另有 1 个

send_message

Send message

Send text and optional file attachments to a Telegram chat. Supports reply-to (including forum topics and channel discussion groups), parse_mode: classic markdown/html/auto (entities) or rich (Rich Message document; dialect auto-detected). parse_mode=rich cannot be combined with files. File attachments as http(s) URLs, local paths, or data: URIs. When files are provided, the message text becomes a caption. For channel posts with reply_to_id, automatically posts in the linked discussion group. schedule_date (ISO 8601, must be in the future) queues the message instead of delivering it now, so the result carries status='scheduled' plus scheduled and schedule_date. save_as_draft=true saves the text as the chat's draft instead of sending it (empty message clears the draft; user sessions only, bots cannot; text-only, so no files, no parse_mode='rich', no schedule_date). Success: dict with message_id, date, chat, text, status='sent', and sender info (rich messages also set rich=true and rich_format). Error: dict with ok=false and error string. Use send_message to create new messages; use edit_message to modify existing ones. Use send_message_to_phone when targeting a phone number instead of a chat_id. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数fileschat_id必填message必填parse_modereply_to_idsave_as_draftschedule_date

edit_message

Edit message

Replace the text of an existing message in a Telegram chat. Only works on messages sent by the authenticated account. Cannot edit media or other message attributes — text only. parse_mode: classic markdown/html/auto or rich (Rich Message; dialect auto-detected). schedule_date (ISO 8601) reschedules an already-queued message; it does not turn a delivered message into a scheduled one, and the result then carries status='scheduled'. Success: dict with message_id, date, chat, text, status='edited', and edit_date (rich messages also set rich=true and rich_format). Error: dict with ok=false and error string (e.g. message not found or not editable). Use edit_message to update a previously sent message; use send_message to create new ones. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数chat_id必填message必填message_id必填parse_modeschedule_date

find_chats

Find chats

Find users/groups/channels by name, username, or phone. Comma-separated usernames are searched in parallel and results are merged round-robin. Global search (query required) searches all Telegram; with min_date, max_date, or filter, search uses dialog list or a named filter; include_peers filters use last-activity from GetPeerDialogs; flag-based filters use dialog list dates. Success: dict with key chats (list of chat objects). Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数limitqueryfolderpublicmax_datemin_datechat_type

get_chat_info

Get chat info

Load profile and metadata for one user, bot, group, or channel. Success: info dict; forum chats may include topics up to topics_limit; user targets may include common_chats up to common_chats_limit. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数chat_id必填topics_limitcommon_chats_limit

send_message_to_phone

Send message to phone

Send to a phone number: may create a temporary contact, then send text or files. Supports parse_mode: classic markdown/html/auto or rich (Rich Message; dialect auto-detected). parse_mode=rich cannot be combined with files. schedule_date (ISO 8601, future) queues the message instead of delivering now; save_as_draft=true saves the text as the draft in that chat instead of sending. Success: send result plus contact_was_new / contact_removed when applicable. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数filesmessage必填last_namefirst_nameparse_modephone_number必填remove_if_newsave_as_draftschedule_datereply_to_msg_id

invoke_mtproto

Invoke MTProto

Low-level Telegram API (MTProto) invoke for methods not wrapped by other tools. Dangerous methods require allow_dangerous=true. Success: API result dict or normalized error. PII and credential-shaped fields (phone, access_hash) are dropped from a successful result by default; pass include_sensitive=true for the raw payload. A bare message id needs a chat binding: requests with no peer field (messages.GetMessages, messages.DeleteMessages) are refused, because a bare id resolves against an arbitrary dialog. Use channels.GetMessages or messages.GetHistory, which carry the binding. messages.GetHistory cannot address a forum topic (no thread_id/top_msg_id in the schema, and channels.GetHistory does not exist) -- use messages.Search with top_msg_id, or the high-level get_messages with reply_to_id. Full documentation: https://github.com/leshchenko1979/fast-mcp-telegram/blob/main/docs/Tools-Reference.md

输入参数resolveparams_json必填allow_dangerousmethod_full_name必填include_sensitive

版本历史

3
  1. v0.46.1最新Oct 20, 2026
  2. v0.46.0Oct 19, 2026
  3. v0.36.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Fast 集成