mcp-telegram
mcp-telegram
一个通过用户 API (MTProto) 将 Claude 等 AI 助手连接到您的真实 Telegram 账号的 MCP 服务器。它不是机器人——Claude 会以您的身份读取和发送消息。
基于 gotd/td 和官方 MCP Go SDK 构建。
Telegram API 服务条款:本项目使用 Telegram 用户 API。您必须从 my.telegram.org 获取您自己的
api_id和api_hash,并遵守 Telegram API 服务条款。滥用用户 API(垃圾邮件、群发消息、抓取)可能导致您的账号被封禁。您需自行承担使用此工具的后果。
内容
Related MCP server: Telegram MCP Server
功能
工具 | 功能描述 | 所需权限 |
| 返回当前账号信息 | — |
| 列出 ACL 白名单可见的对话 | — |
| 获取带有分页、日期过滤和媒体下载功能的消息历史记录 |
|
| 按文本查询搜索聊天中的消息,支持可选的发送者过滤 |
|
| 发送文本消息或文件,支持可选的回复目标 |
|
| 将消息从一个聊天转发到另一个聊天 |
|
| 保存草稿消息(不发送) |
|
| 将聊天标记为已读 |
|
附加功能:
发送文件和照片
在聊天之间转发消息
回复特定消息
从消息历史记录中下载照片和文档
按日期范围过滤历史记录 (
since/until)类型化的对等引用 (
user:ID,chat:ID,channel:ID) 以防止 ID 冲突延迟对等解析 — 避免启动时的
FLOOD_WAIT错误RPC 级别的全局速率限制
您可以做什么
连接后,您可以询问 AI 助手如下内容:
跟进消息
“检查我未读的 Telegram 消息并给我一个摘要”
“@alice 在过去 24 小时内写了什么?”
“显示周一以来开发团队聊天中的消息”
回复与沟通
“起草一条回复给 @bob 的最后一条消息——先不要发送”
“发送‘听起来不错,我们下午 3 点见面’给 @alice”
“回复项目聊天中 ID 为 1234 的消息,内容是我的反馈”
管理收件箱
“将新闻频道中的所有消息标记为已读”
“我白名单中的哪些聊天有未读消息?”
“下载设计聊天中今天消息里的照片”
研究与分析
“查找过去一周内提到部署的所有消息”
“总结昨天团队聊天中的讨论”
“本月项目频道中分享了哪些文件?”
与 chaindead/telegram-mcp 的对比
mcp-telegram | chaindead/telegram-mcp | |
访问控制 | 默认拒绝的 ACL 白名单,具有细粒度的按聊天权限 | 完全访问所有聊天 |
对等寻址 | 类型化引用 ( | 仅数字 ID(易冲突) |
配置 | 支持环境变量扩展的 YAML 配置 | CLI 参数 |
启动安全性 | 延迟对等解析(无批量 API 调用) | 立即解析(有 |
速率限制 | 内置令牌桶中间件 | 无 |
文件支持 | 发送文件、照片;从历史记录下载媒体 | 仅文本 |
回复支持 | 是 | 否 |
日期过滤 | 是 | 否 |
快速入门
前置条件
Go 1.26+
一个 Telegram 账号
来自 my.telegram.org 的 API 凭据 (
api_id和api_hash)
安装
Homebrew (macOS / Linux):
brew install Prgebish/tap/mcp-telegramNPX (无需安装):
npx @prgebish/mcp-telegram serve --config config.yaml预编译二进制文件 (macOS / Linux / Windows):
从 GitHub Releases 下载。
Go install:
go install github.com/Prgebish/mcp-telegram/cmd/mcp-telegram@latest从源码构建:
git clone https://github.com/Prgebish/mcp-telegram.git
cd mcp-telegram
go build ./cmd/mcp-telegram这将在当前目录生成 mcp-telegram(Windows 上为 mcp-telegram.exe)。
认证
运行一次认证命令以创建会话文件。系统将提示您输入手机号、登录验证码以及(如果已启用)您的 2FA 密码。
macOS / Linux:
export TG_APP_ID=12345
export TG_API_HASH="your_api_hash"
mcp-telegram auth --config config.yamlWindows (PowerShell):
$env:TG_APP_ID = "12345"
$env:TG_API_HASH = "your_api_hash"
mcp-telegram.exe auth --config config.yamlWindows (cmd):
set TG_APP_ID=12345
set TG_API_HASH=your_api_hash
mcp-telegram.exe auth --config config.yaml配置
创建一个 config.yaml:
telegram:
app_id: ${TG_APP_ID}
api_hash: ${TG_API_HASH}
session_path: ~/.config/mcp-telegram/session.json
acl:
chats:
- match: "@username"
permissions: [read, draft, mark_read]
- match: "user:123456789"
permissions: [read, send]
- match: "channel:2225853048"
permissions: [read, mark_read]
limits:
max_messages_per_request: 50
max_dialogs_per_request: 100
rate:
requests_per_second: 2.0
burst: 3
logging:
level: info${...} 语法的环境变量会在加载时展开。
客户端配置
服务器通过 stdio 进行通信——您的 MCP 客户端负责启动和管理该进程。
Claude Code (CLI — 通过命令添加):
claude mcp add telegram -- /path/to/mcp-telegram serve --config /path/to/config.yamlClaude Desktop / Claude Code (~/.claude.json 或 claude_desktop_config.json):
{
"mcpServers": {
"telegram": {
"command": "/path/to/mcp-telegram",
"args": ["serve", "--config", "/path/to/config.yaml"],
"env": {
"TG_APP_ID": "12345",
"TG_API_HASH": "your_api_hash"
}
}
}
}Cursor (设置 > MCP 服务器 > 添加):
{
"telegram": {
"command": "/path/to/mcp-telegram",
"args": ["serve", "--config", "/path/to/config.yaml"],
"env": {
"TG_APP_ID": "12345",
"TG_API_HASH": "your_api_hash"
}
}
}配置
ACL
ACL 采用默认拒绝策略。只有明确列在 acl.chats 中的聊天才是可访问的,并且仅限于您指定的权限。
支持的匹配模式:
模式 | 示例 | 描述 |
|
| 按 Telegram 用户名匹配(不区分大小写) |
|
| 按手机号匹配 |
|
| 按数字 ID 匹配用户 |
|
| 按数字 ID 匹配群聊 |
|
| 按数字 ID 匹配频道或超级群组 |
权限类型:read, send, draft, mark_read。
如果同一个对等方匹配多个规则(例如通过 @username 和 user:ID),权限会合并——它们永远不会相互覆盖。
速率限制
limits.rate 部分配置了一个全局令牌桶,用于包装所有 Telegram RPC 调用:
requests_per_second— 持续速率(默认:2.0)burst— 最大突发大小(默认:3)
媒体下载
media:
download: [photo, document, video, voice, audio]
directory: ~/telegram-media
allowed_upload_dirs:
- ~/Documents
- ~/Downloads配置后,tg_history 将自动下载媒体文件到指定目录。download_to 参数可以覆盖路径,但仅限于 media.directory 或其子目录。
allowed_upload_dirs 限制了 tg_send 可以读取文件的目录。除非配置此项,否则文件发送功能将被禁用。
安全性
默认拒绝 ACL — 除非明确加入白名单,否则无法访问任何聊天
文件系统边界 —
tg_send只能读取allowed_upload_dirs中的文件;download_to仅限于media.directory的子目录会话文件权限 — 强制设置为
0600(仅所有者可读写)无秘密日志记录 — API 哈希、会话令牌和认证密钥绝不会写入日志
无访问哈希暴露 — 内部 Telegram 访问哈希会从所有工具输出中剥离
速率限制 — 防止意外的 API 滥用
本地时区 — 日期过滤器使用您的系统时区,而非 UTC
许可证
如果您觉得本项目有用,请给它一个 star — 这有助于其他人发现它。
This server cannot be deployed
Maintenance
Related MCP Connectors
Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.
Multi-tenant Telegram gateway for AI agents — HTTP+stdio, 8 tools, MTProto User API
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA safe-by-default MCP server for real Telegram accounts powered by TDLib, enabling AI agents to read and act on your account with read-only mode and human approval for destructive actions.7Apache 2.0
- AlicenseAqualityAmaintenanceMCP server that acts as a gateway to Telegram, providing AI-optimized tools for messaging, search, and chat management via MTProto. Supports multi-user authentication with QR login and HTTP/stdio transports.82MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that automates a single Telegram user account via the Telegram user API, enabling chat listing, reading/sending messages, searching, and additional actions through natural language.12 npmMIT
- AlicenseAqualityBmaintenanceAn MCP server that gives AI agents full access to a personal Telegram account via MTProto, enabling chat reading, history search, messaging, media handling, and automations.79MIT