使用说明
mcp-telegram
Telegram MCP server for Claude, Codex, Cursor, Claude Code, VS Code, Cline, Windsurf, and other MCP clients. Real Telegram user account via MTProto, browser-based local sign-in, 100+ tools. Need lazy-loading + lower context cost? See telegram-agent, the skill-based companion.
A. 模型上下文协议 连接的(MCP)服务器 克劳德桌面版, Codex CLI, 光标, 克劳德代码、VS Code、Cline、Windsurf、Goose和任何其他MCP兼容客户端通过以下方式连接到真实的Telegram用户帐户 MTProto--因此,您的客服可以通过聊天或自动工具调用读取、搜索、发送、审核和管理Telegram聊天,而无需通过Telegram UI点击。
使用它来: 在全球范围内阅读对话框和搜索消息·发送/编辑/转发/反应/投票·下载媒体和转录语音笔记·适度频道(禁止/限制/推广、邀请链接、慢速模式、管理员日志、论坛主题)·管理故事、联系人、草稿、通知、文件夹、隐私·或通过原始MTProto桥进行其他任何操作。所有这些都只针对一个登录的用户帐户——不需要机器人。
[!警告] 此服务器以真实的Telegram用户(而非机器人)身份登录。会议直播
~/.telegram-agent/。将该目录视为密码。
先决条件
- Node.js
>=20 - 电报API凭证来自 my.telegram.org/apps —
api_id和api_hash
想要更轻便的交通工具吗?
这个包裹是 MCP服务器 --每个工具模式(约12700个令牌)在每个回合都位于代理的上下文中。适用于任何MCP客户端和无法卸载的托管运行时。
如果你的代理人是 克劳德代码/Codex命令行界面/光标/双子座命令行界面/Cline/Windsurf,有一个 配套套餐-- telegram-agent --它运送的Telegram表面与 通用代理技能。只有当您的提示提到Telegram时,代理才会加载技能说明-- 约50倍的上下文成本降低 闲置。独立(环路中没有MCP服务器),但使用相同的 ~/.telegram-agent/ 会话存储为这个包——登录一次,使用其中一个或两个。
npm i -g telegram-agent
telegram-agent login
npx skills add beautyfree/telegram-agent -a claude-code -g
继续下面的MCP安装路径。
安装
选项A——自动,所有客户端:
npx add-mcp mcp-telegram \
--env TELEGRAM_API_ID=123456 \
--env TELEGRAM_API_HASH=abc...
add-mcp (来自Neon)为Claude Desktop、Claude Code、Cursor、VS Code、Codex、Gemini CLI、Cline、Zed、Goose、OpenCode等编写正确的配置。在交互式提示中选择客户端。
[!重要] 这两个env变量都是必需的。从以下位置获取它们 my.telegram.org/apps.
选项B——手动配置:
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["-y", "mcp-telegram"],
"env": {
"TELEGRAM_API_ID": "123456",
"TELEGRAM_API_HASH": "abc..."
}
}
}
}
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"telegram": {
"command": "npx",
"args": ["-y", "mcp-telegram"],
"env": {
"TELEGRAM_API_ID": "123456",
"TELEGRAM_API_HASH": "abc..."
}
}
}
}
VS Code (.vscode/mcp.json)
{
"servers": {
"telegram": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-telegram"],
"env": {
"TELEGRAM_API_ID": "123456",
"TELEGRAM_API_HASH": "abc..."
}
}
}
}
Claude Code
claude mcp add telegram \
-e TELEGRAM_API_ID=123456 \
-e TELEGRAM_API_HASH=abc... \
-- npx -y mcp-telegram
Codex CLI (~/.codex/config.toml) — install
[mcp_servers.telegram]
command = "npx"
args = ["-y", "mcp-telegram"]
env = { TELEGRAM_API_ID = "123456", TELEGRAM_API_HASH = "abc..." }
首次登录
问你的经纪人:
登录我的Telegram。
代理人打电话给 login 工具。浏览器选项卡打开。输入您的电话号码、短信代码和2FA密码(如果有的话)。该选项卡显示一个绿色的复选标记——您可以关闭它。会话现在存储在本地,代理可以读取您的电报。
要添加另一个帐户,请代理人致电 login 再一次。
工具
102个工具覆盖了整个Telegram用户账户界面。下面是常见的;其余的则归为可坍塌类。每个工具都接受一个可选 accountId (当只有一个帐户登录时省略)。 peer 接受数字聊天id @username,或字面意思 "me" (已保存的消息)。
菜单顶部:
| 工具 | 它做什么 |
|---|---|
login |
打开基于浏览器的登录流程。添加帐户。 |
list_accounts |
列出已登录的帐户。 |
list_dialogs |
列出对话/聊天/频道。过滤器: unread, archived, ignorePinned, folder, limit. |
list_messages |
在对话框中列出消息。最新的先到。 |
search_messages |
在一个对话框中搜索: query, filter (照片/视频/url/语音/…), fromUser,日期范围。 |
search_global |
搜索您所有的聊天记录。 |
search_dialogs |
按名称/标题/用户名子字符串查找对话框 |
send_message |
发送文本。支持 replyTo, topMsgId, parseMode, schedule, silent. |
send_file |
发送文件(本地路径或 https:// URL)。传递相册的数组。 |
download_media |
将邮件中的媒体保存到磁盘。 |
transcribe_message |
转录语音/视频备忘(高级)。 |
invoke_mtproto |
按名称调用任何原始MTProto方法。自动解析 peer/channel/user 串。 |
Sessions (local) (4)
这些仅是本地的:它们管理哪些Telegram会话处于活动状态 ~/.telegram-agent/ 以及设置UI。除了登录流本身之外,没有Telegram API调用。
| 工具 | 它做什么 |
|---|---|
list_accounts |
列出已登录的帐户。 |
login |
基于浏览器的登录。添加帐户。 |
logout |
删除本地会话并在Telegram上撤销。 |
open_settings |
打开本地设置页面(工具界面+只读)。 |
Profile (5)
| 工具 | 它做什么 |
|---|---|
get_me |
返回经过身份验证的用户的配置文件。 |
update_profile |
更改自己的名字/姓氏和个人简介 |
update_my_username |
设置或清除自己的 @username. |
set_birthday |
设置帐户生日。 |
set_profile_photo |
上传一个新的头像(本地路径或URL)。 |
Dialog discovery (5)
| 工具 | 它做什么 |
|---|---|
list_dialogs |
列出对话框。过滤器: unread, archived, ignorePinned, folder, limit. |
search_dialogs |
按名称/标题/用户名子字符串查找对话框 |
resolve_username |
解决 @username 发送到用户/频道/聊天实体。 |
list_folders |
列出自定义对话框文件夹(聊天过滤器)。 |
list_contacts |
列出联系人。 |
Messages — read & search (6)
| 工具 | 它做什么 |
|---|---|
list_messages |
在对话框中列出消息。 |
search_messages |
在一个对话框中搜索(文本、类型过滤器、发件人、日期范围)。 |
search_global |
在每个聊天中搜索。 |
get_message |
按id获取一条或多条消息 |
get_message_reactions |
获取消息的反应。 |
mark_as_read |
将邮件标记为已读到id |
Messages — write (8)
| 工具 | 它做什么 |
|---|---|
send_message |
发送文本。 |
edit_message |
编辑以前发送的消息。 |
delete_messages |
按id删除(可选择全部撤销)。 |
forward_messages |
在对话框之间转发消息。 |
pin_message / unpin_message |
在对话框中固定/取消固定。 |
send_reaction |
对消息设置反应。 |
send_message_to_phone |
发送到电话号码,自动创建临时联系人。 |
Media (4)
| 工具 | 它做什么 |
|---|---|
send_file |
发送文件(路径或URL)。通过阵列播放专辑。 |
download_media |
将邮件的媒体保存到磁盘。 |
download_profile_photo |
将对等体的头像保存到磁盘。 |
transcribe_message |
转录语音/视频(高级)。 |
Polls (4)
| 工具 | 它做什么 |
|---|---|
send_poll |
发送投票。支持测验、多项选择、匿名、封闭时段。 |
vote_poll |
投票。 |
close_poll |
完成投票。 |
get_poll_results |
获取计数。 |
Reactions (3)
| 工具 | 它做什么 |
|---|---|
send_reaction |
在消息上设置表情符号反应。 |
get_message_reactions |
阅读反应。 |
set_default_reaction |
设置全帐户默认值。 |
Stories (6)
| 工具 | 它做什么 |
|---|---|
list_stories |
联系人故事提要。 |
get_peer_stories |
一位同行的故事。 |
send_story |
发布一个故事(照片或视频)。 |
delete_story |
删除自己的故事。 |
view_story |
标记已查看的故事。 |
get_story_viewers |
列出谁看过你的故事。 |
Channel / group moderation (11)
| 工具 | 它做什么 |
|---|---|
ban_user |
完全禁止(可选 untilDate). |
unban_user 解除限制 |
|
restrict_user |
应用自定义权限掩码。 |
promote_admin |
授予管理员权限(带级别)。 |
demote_admin |
剥夺管理员权限。 |
invite_user |
将用户添加到频道/超级组。 |
kick_participant |
从聊天/频道踢。 |
get_participant |
单一参与者信息。 |
list_participants |
具有过滤器(admins/banned/bots/…)和子字符串搜索的成员。 |
delete_user_history |
删除用户的每条消息。 |
get_admin_log |
最近使用事件类型筛选器的管理事件。 |
Channel / group settings (12)
| 工具 | 它做什么 |
|---|---|
edit_title |
更改标题(适用于频道、超级组和基本组)。 |
edit_about |
更改描述。 |
edit_photo |
更改头像(路径或URL)。 |
update_username |
设置/清除公共 @username. |
check_username |
检查可用性。 |
set_slow_mode |
设置慢速模式秒数。 |
toggle_signatures |
频道帖子上的作者签名。 |
toggle_pre_history_hidden |
对新成员隐藏历史记录。 |
toggle_join_request |
需要管理员批准才能加入。 |
leave_channel |
留下一个频道/超群。 |
get_channel_info |
扩展信息(关于、计数、链接聊天、慢速模式)。 |
get_user_info |
扩展用户信息(个人简介、常见聊天)。 |
Channel / group lifecycle (4)
| 工具 | 它做什么 |
|---|---|
create_channel |
新的广播频道或超级群组(可选论坛模式)。 |
delete_channel |
永久删除。 |
migrate_chat |
基本组→ 超群。 |
transfer_ownership |
移交创建者权限(需要2FA密码)。 |
Invite links (4)
| 工具 | 它做什么 |
|---|---|
create_invite_link |
新链接具有可选的到期、使用上限、加入请求门。 |
list_invite_links |
列出活动或已撤销的链接。 |
revoke_invite_link |
撤销特定链接。 |
list_invite_joiners |
列出通过链接加入的用户。 |
Forum topics (3)
| 工具 | 它做什么 |
|---|---|
list_topics |
列出论坛主题。 |
create_topic |
创建一个新主题。 |
edit_topic |
重命名、重新图标、关闭、隐藏。 |
Drafts (3)
| 工具 | 它做什么 |
|---|---|
save_draft |
保存对话框的草稿。 |
clear_draft |
放下对话草稿。 |
list_drafts |
列出所有对话草稿。 |
Notifications (4)
| 工具 | 它做什么 |
|---|---|
mute_peer |
将聊天静音(可选 untilDate). |
unmute_peer |
取消静音。 |
get_notify_settings |
读取设置。 |
set_notify_settings |
更新静音、预览、声音、故事静音。 |
Folders (chat filters) (4)
| 工具 | 它做什么 |
|---|---|
create_folder |
包含/排除规则的新文件夹。 |
edit_folder |
替换文件夹规则。 |
delete_folder |
删除文件夹。 |
reorder_folders |
设置显示顺序。 |
Contacts (4)
| 工具 | 它做什么 |
|---|---|
list_contacts |
所有联系人。 |
add_contact |
将用户添加到联系人中。 |
delete_contact |
从联系人中删除用户。 |
search_contacts |
搜索联系人+全球目录。 |
Privacy & blocking (5)
| 工具 | 它做什么 |
|---|---|
block_user / unblock_user |
阻止/取消阻止。 |
list_blocked |
阻止列表。 |
get_privacy |
读取私钥。 |
set_privacy |
更新私钥(模式+允许/不允许列表)。 |
Stickers (3)
| 工具 | 它做什么 |
|---|---|
get_my_stickers |
已安装贴纸套装。 |
install_sticker_set |
按短名称安装。 |
add_recent_sticker |
把贴纸贴到最近的。 |
Premium boosts (2)
| 工具 | 它做什么 |
|---|---|
get_my_boosts |
列出您的增强时段。 |
apply_boost |
将插槽应用于通道。 |
Bots & raw MTProto (2)
| 工具 | 它做什么 |
|---|---|
get_inline_bot_results |
运行内联机器人查询。 |
invoke_mtproto |
通过限定名调用任何MTProto方法(例如。 messages.SendMessage, stories.GetAllStories).的字符串值 peer/channel/user/fromPeer/toPeer/bot/chat 自动解析为InputPeer/InputUser。 |
对暴露的工具进行门控
三个env变量,按顺序应用:
| 变量 | 效果 |
|---|---|
MCP_TELEGRAM_READONLY=1 |
隐藏所有破坏性/变异性工具。 |
MCP_TELEGRAM_TOOLS=name1,name2,prefix* |
严格的allowlist——只有这些工具注册。 |
MCP_TELEGRAM_DISABLE=name1,prefix* |
在分配列表之后应用了阻止列表。 |
示例:
MCP_TELEGRAM_READONLY=1 # read-only agent
MCP_TELEGRAM_TOOLS='login,list*,search*,get*' # discovery-only
MCP_TELEGRAM_DISABLE='delete*,ban*,kick*,create_channel,delete_channel,transfer_ownership,invokeMtproto' # safer write set
环境
| 变量 | 必填 | 默认 | 备注 |
|---|---|---|---|
TELEGRAM_API_ID |
是的 | -- | 来自my.telegram.org/apps。如果未设置,auth页面会提示输入并保存到 state.json. |
TELEGRAM_API_HASH |
是的 | -- | 和上面一样。 |
TELEGRAM_AGENT_HOME |
没有 | ~/.telegram-agent |
状态+每个帐户会话存储。遗产 MCP_TELEGRAM_HOME 仍然接受。要是…就好了 ~/.mcp-telegram 从以前的安装中存在,它会自动使用。 |
TELEGRAM_AGENT_DOWNLOADS |
没有 | $TELEGRAM_AGENT_HOME/downloads |
在哪里 download_media / download_profile_photo 保存文件。遗产 MCP_TELEGRAM_DOWNLOADS 仍然接受。 |
MCP_TELEGRAM_READONLY |
否 | -- | 设置为 1/true/yes 隐藏所有破坏性工具。 |
MCP_TELEGRAM_TOOLS |
不 | -- | 严格的排外主义。逗号分隔的工具名称;支持 prefix* 通配符。如果设置,则隐藏任何不匹配的内容。 |
MCP_TELEGRAM_DISABLE |
否 | -- | 在分配列表后应用阻止列表。语法相同。 |
LOG_LEVEL |
没有 | info |
debug 对于详细的stderr。 |
选择代理看到的工具
三个门控变量堆叠-- MCP_TELEGRAM_READONLY → MCP_TELEGRAM_TOOLS → MCP_TELEGRAM_DISABLE.
# Read-only agent — every mutating tool is hidden
MCP_TELEGRAM_READONLY=1
# Discovery-only — only login + the list/search/get tools
MCP_TELEGRAM_TOOLS='login,list*,search*,get*,resolveUsername'
# Allow writes but keep destructive ones away from the agent
MCP_TELEGRAM_DISABLE='delete*,ban*,kick*,create_channel,delete_channel,transfer_ownership,invokeMtproto'
# Specific surface: read + send/edit only
MCP_TELEGRAM_TOOLS='login,list_accounts,list_dialogs,list_messages,search_messages,search_global,send_message,editMessage'
在MCP客户端配置中,将这些放入相同的 env 块作为 TELEGRAM_API_ID/TELEGRAM_API_HASH。要验证,请重新打开客户端——服务器播发的工具正是gates运行后注册的工具。
数据布局
~/.telegram-agent/
├── state.json known accounts (no secrets in here)
└── sessions/
└── <account_id>/ per-account MTProto session
如果Telegram会话在服务器端无效(从另一个设备注销、密码轮换等),下一次工具调用将返回错误,告诉代理调用 login 重新授权。
发展
git clone https://github.com/beautyfree/mcp-telegram
cd mcp-telegram
npm install
echo "TELEGRAM_API_ID=...\nTELEGRAM_API_HASH=..." > .env
npm run dev
布局:
src/
├── index.ts bin entry — stdio MCP server, tool registrations
├── telegram.ts MTProto client + login state machine
├── auth-browser.ts ephemeral HTTP server that drives the browser flow
├── auth-page.ts inline HTML for the auth page
├── state.ts persistent state in ~/.telegram-agent/
└── logger.ts
许可证
麻省理工学院——见 许可证.
Also known as
电报MCP·MCP电报·电报MCP服务器·克劳德电报·光标电报·克劳德代码电报·VS代码电报·Codex电报·克莱恩电报·风帆电报·人工智能代理电报·电报MTProto MCP·电报用户帐户MCP·电报自动化MCP·模型上下文协议电报·MCP服务器电报·gramjs MCP