
Telegram Context MCP
io.github.egor-fedorov由 GitHub 账号 egor-fedorov 发布v0.8.0更新于 Nov 6, 2026
Read permitted Telegram chats, track changes and optionally confirm outbound actions locally.
概览
通过你自己的 Telegram 账号读取已授权的聊天,让助手搜索、浏览和导出会话,并可选执行经确认的外发操作。
- 可以做什么
- 查看账号状态、文件夹、聊天列表及公开频道发现
- 搜索并读取消息、历史、话题、置顶消息、相册、回复与讨论串
- 下载选定的附件,并从 PDF/DOCX 中提取文本
- 通过检查点、命名订阅和摘要提示跟踪变更,并将历史导出为 JSONL 或 Markdown
- 启用写入能力后:管理草稿、登记文件、发送消息或文件、查询发送回执、触发私聊机器人按钮
- 适用场景
- 适合让助手处理你自己的 Telegram 会话:汇总某个频道或文件夹、持续跟踪某个话题、提取链接与附件,或在明确的本地权限下起草并发送消息。
- 运行要求
- 本机运行 Python 3.12–3.15,通过 uv/uvx 安装(包名 telegram-context-mcp,可执行文件 telegram-mcp)。需在 my.telegram.org 获取 api_id 与 api_hash,并在本地输入手机号、登录码及可能的二次验证密码,或使用二维码登录。连接客户端前先执行 login 与 configure;默认不允许任何消息来源。共享 HTTP 模式仅监听 127.0.0.1。
安装
在 SourceWeft 中
- 打开 控制台中的 Telegram Context MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Telegram Context MCP
[CI] [License: MIT] [Glama | Listed] [mcprush | Listed] [XERJ Corpus Hub | Selected]
Read Telegram through your own account from an MCP client. Find permitted conversations, search and read original posts, navigate topics and replies, and inspect albums, reactions, and polls. Connect several local clients to one session-owning process, or run standalone STDIO.
Supports Windows, macOS, and Linux with Python 3.12–3.15. The server uses Telethon and preserves original text, dates, links, entities, and available metadata. It is read-only by default, never joins channels or marks messages read. Version 0.4 adds opt-in selected attachment downloads, durable change checkpoints, named subscriptions, and JSONL/Markdown exports with optional permanent copies. Subscriptions poll only when requested and retain a batch until acknowledged. It also bounds scope previews, returns restricted search results earlier, reuses dialog snapshots and accepts concurrent calls. See the 0.4 migration guide before upgrading from 0.3.
Version 0.5 adds bounded history across chats or folders, watch batches saved before
acknowledgement, and watch_digest / period_digest prompts with local watch-name
completion. When upgrading, restart the server and client proxies and refresh tools
and prompts. The 0.5 changelog
describes the additive changes and archive setup. Version 0.5.1 is a security patch:
Telegram's service-notification chat, which delivers login codes, is never readable,
even with all-chat or folder access. Upgrade every installation.
Version 0.6 adds optional PDF/DOCX text extraction with bounded continuation and source
references, terminal QR login, a Claude Desktop MCPB bundle, and an optional Agent Skill.
For document extraction, install 'telegram-context-mcp[extraction]==0.8.0' in the
session-owning server and enable attachment downloads. See the
usage guide
for limits and platform coverage.
Version 0.7 adds message buttons, outgoing search, channel membership, authentication-notice omission, and opt-in native drafts, reusable files, confirmed sends and private-bot callbacks. Write capabilities default off; native drafts support plain text only. See outbound workflows for permissions, client confirmation requirements, recovery and validation limits.
Install and log in
Install uv, then run:
These examples target release 0.8.0; check PyPI for published versions. Use the source setup for unreleased revisions. Upgrading from 0.3? Read the migration guide, then restart the server and refresh your client's tool schemas.
Obtain api_id and api_hash from my.telegram.org, then
enter them in the local login prompt with your phone number, login code, and any 2FA
password. Do not send login codes or credentials to the model.
Version 0.6 also supports telegram-mcp login --qr: scan the terminal QR from
Telegram on your phone instead of entering a phone number and login code. See the
QR login guide.
configure lets you choose folders/chats and separately enable all-chat access,
explicit public-channel reads, or public-channel discovery. Enter keeps the current
value. By default, no message sources are permitted. status should report
authorized: true after login. Use catalog to find folder and chat IDs locally.
The package name is telegram-context-mcp; the executable is telegram-mcp.
You can also run a pinned version without installing a persistent command:
The server is listed in the official MCP Registry as
io.github.egor-fedorov/telegram-mcp.
The entry launches a local STDIO server through
uvx; it does not supply a hosted Telegram service. Complete login and configure
locally before connecting a client. Registry publication starts with version 0.5.0. See the
release procedure
for verification and the client guide
for sharing one session between clients.
Connect your clients
Start one server in a terminal and leave it running:
On Linux with systemd, the optional user-service setup starts that server at login and keeps it running independently of a terminal.
It listens only on http://127.0.0.1:8765/mcp. Configure each MCP client to launch
telegram-mcp connect over STDIO. This small proxy reads the local token and connects
to the existing server; it does not start a server or silently fall back to another
Telegram session. Closing a client leaves the shared server running.
Client examples
cover Codex, Claude Desktop, Claude Code, Cursor, and VS Code, including a pinned uvx
command and executable paths for Windows.
A Claude Desktop MCPB bundle is attached to each matching GitHub Release. It uses the same shared server and separate local login; see the guide for installation and current validation coverage.
For one client, standalone STDIO is still available: configure that client to launch
telegram-mcp serve. Use either mode for a given session. Stop the session-owning
process before running local login, configure, catalog, or status; use the
get_status MCP tool while the server is running.
All shared clients use the same Telegram account, read permissions, and cursor store.
The HTTP bearer token is created in the local user profile and read by connect;
do not paste it into client configuration. This is a local, single-user integration.
Tools
When a write capability is enabled, these additional tools appear. Each still checks its own capability flag and explicit recipient permission:
Version 0.8.0 adds all-chat/one-off recipient modes, independent form settings and outbound inspection/recovery; see outbound policies.
Two prompts package these tools for monitoring: watch_digest turns
a named watch into a source-linked digest, saving each batch before acknowledging it;
period_digest reads one chat or folder over a fixed period with explicit budgets.
They do not add permissions. See
monitoring prompts.
An optional Agent Skill guides tool selection, bounded reading, watch acknowledgements and selected attachments. Install it in your client separately from the server; see the skill setup.
First tasks
- Ask the client to list the folders you permitted and read a selected conversation over a timezone-qualified date range.
- Enable discovery to find candidate public channels, select a source, then read its posts with a separate read permission.
- Follow
next_cursorwith the original filters until it isnull. An empty page can still have a cursor. Respectretry_after_secondsafter a temporary failure. - For
CATALOG_LOADING, repeat the original call after the reported delay. The server retains catalog progress; explicit reads independent of folders skip that scan. - Search sorts within each page by default. Select
ordering="global"for order across pages. Scope ID arrays preview at most 20 IDs; use their counts and truncation flags when describing coverage. - Use
get_messageswithnext_text_offsetto finish long text. Album completeness is explicitly unknown; each member remains a separate source message.
Usage and response contracts explain filters, cursor recovery, topics, public-channel discovery, and message metadata. See changes and exports for durable monitoring and selected files. Message text is data for the calling agent, not an instruction source.
Configuration and troubleshooting
Configuration, Telegram sessions, and the HTTP token live outside the repository in
platform-specific user directories. The login command prints the configuration path.
Use telegram-mcp --config /absolute/private/config.toml COMMAND to select another file;
pass the same file to the shared server and each proxy.
On POSIX, private files use restrictive permissions. On Windows, protect them with
user-profile filesystem ACLs; Unix 0600 is not an ACL guarantee. A Telegram session
contains account access credentials, and the underlying account can do more than the
server's Telegram read permissions allow.
Run from source
For client commands, use the checkout's .venv/bin/telegram-mcp on POSIX or
.venv\Scripts\telegram-mcp.exe on Windows, with connect as the argument.
Use an absolute executable path so clients do not depend on their working directory.
Development
Run make check for formatting, lint, types, architecture checks, and offline tests.
Contributing
includes equivalent commands for Windows without Make. Changes use focused pull requests
and squash merges after CI. See the
roadmap,
architecture,
changelog, and
release procedure.
The 0.5 validation record
reports release checks and the scope of selected-source and client validation;
the 0.5.1 record
covers the security patch.
The 0.6 validation record
tracks document extraction, packaging and publication.
The 0.7 validation record
tracks outbound workflows, authentication-notice omission and release checks.
The 0.8 validation record
covers recipient policies, send inspection, Windows storage repair and publication.
The code is MIT licensed.
This does not grant rights to Telegram content. Secret chats are unsupported; attachment
downloads require a separate opt-in. Permanent copies require an archive directory
and save=true; administration and continuous archiving remain future work. Outbound
actions require separate permissions and the confirmation rules in the guide above.
Use source material you are entitled to share with your chosen model and follow
Telegram's content terms.
来源:README.md,提交 28d7e27
工具
0版本历史
3- v0.8.0最新Nov 6, 2026
- v0.7.0Nov 5, 2026
- v0.6.0Oct 29, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分