电报MCP
基于Go 主控程序 使用MTProto的Telegram服务器。使AI助手能够与Telegram进行交互 用户账户 (不是机器人)。
建立在 gotd/td --一个纯粹的Go MTProto 2.0实现。
特性
- 完全用户帐户访问权限 通过MTProto(不是Bot API)-访问真实用户可以访问的一切
- 59工具 跨越15个类别:消息、聊天、媒体、联系人、反应、故事、论坛、管理员等
- 5个复合工具 -高级工作流操作,将多个API调用聚合为一个调用(获取未读、聊天上下文、批量转发、导出、交叉聊天搜索)
- 3个MCP提示 --指导人工智能完成常见任务(日常摘要、社区管理、内容广播)的工作流程食谱
- MCP驱动的身份验证 --无需终端交互,完全通过AI客户端进行身份验证
- 会话持续 --验证一次,重新启动时自动重新连接
- 双重运输 --stdio(用于克劳德代码、游标等)和HTTP(可流式传输)
- Docker就绪 --使用单个容器部署到任何地方
安装
go install github.com/nguyenvanduocit/telegram-mcp@latest
设置
1.获取Telegram API证书
首选 https://my.telegram.org/apps 并创建应用程序。
2.配置环境
export TELEGRAM_API_ID=12345
export TELEGRAM_API_HASH=your_api_hash
export TELEGRAM_PHONE=+1234567890 # your Telegram account phone number
export TELEGRAM_SESSION_DIR=~/.telegram-mcp # optional
或者使用 .env 文件:
telegram-mcp --env .env
3.跑步
MCP客户端自动使用Stdio模式(请参阅 MCP客户端配置 在......下面
要作为HTTP服务器运行:
telegram-mcp --env .env --http_port 3002
4.身份验证
首次运行时,通过MCP客户端使用身份验证工具:
telegram_auth_status --检查状态(将显示 waiting_code)
telegram_auth_send_code --通过短信/电报提交代码
telegram_auth_send_password --提交2FA密码(如果已启用)
会话已保存到磁盘。后续运行会自动进行身份验证。
MCP客户端配置
克劳德代码
{
"mcpServers": {
"telegram": {
"command": "telegram-mcp",
"env": {
"TELEGRAM_API_ID": "12345",
"TELEGRAM_API_HASH": "your_api_hash",
"TELEGRAM_PHONE": "+1234567890"
}
}
}
}
码头工人
docker build -t telegram-mcp .
docker run -e TELEGRAM_API_ID=... -e TELEGRAM_API_HASH=... -e TELEGRAM_PHONE=... -p 3002:8080 telegram-mcp --http_port 8080
工具(59)
认证(3)
| 工具 |
说明 |
telegram_auth_status |
检查身份验证状态 |
telegram_auth_send_code |
提交短信/应用验证码 |
telegram_auth_send_password |
提交2FA密码 |
留言(14)
| 工具 |
说明 |
telegram_send_message |
发送消息(支持回复和定时消息) |
telegram_get_history |
通过分页获取消息历史记录 |
telegram_search_messages |
在特定聊天中搜索消息 |
telegram_search_global |
在所有聊天记录中搜索消息 |
telegram_forward_message |
在聊天之间转发消息 |
telegram_edit_message |
编辑已发送的消息 |
telegram_delete_message |
删除邮件 |
telegram_pin_message |
固定消息 |
telegram_unpin_all_messages |
取消固定所有邮件 |
telegram_read_history |
将邮件标记为已读 |
telegram_set_typing |
设置打字/录制状态 |
telegram_delete_history |
删除整个聊天记录 |
telegram_translate |
将信息翻译成另一种语言 |
telegram_send_poll |
发送投票或测验 |
聊天(8)
| 工具 |
说明 |
telegram_list_chats |
列出带分页的对话框/聊天记录 |
telegram_get_chat |
获取详细的聊天/频道/用户信息 |
telegram_search_chats |
在全球范围内搜索聊天和频道 |
telegram_join_chat |
通过用户名或邀请链接加入 |
telegram_leave_chat |
留下聊天或频道 |
telegram_create_group |
创建新的群聊 |
telegram_toggle_dialog_pin |
在聊天列表中固定/取消固定聊天 |
telegram_mark_dialog_unread |
将聊天标记/取消标记为未读 |
媒体(4)
| 工具 |
说明 |
telegram_download_media |
从邮件中下载媒体 |
telegram_send_media |
上传并发送文件 |
telegram_get_file_info |
无需下载即可获取媒体元数据 |
telegram_view_image |
下载照片并作为图像内容返回以供AI查看 |
用户(4)
| 工具 |
说明 |
telegram_get_me |
获取当前用户信息 |
telegram_resolve_username |
将@username解析为用户/频道 |
telegram_get_user |
通过ID或用户名获取用户详细信息 |
telegram_search_contacts |
按姓名或用户名搜索联系人 |
联系人(3)
| 工具 |
说明 |
telegram_get_contacts |
获取完整的联系人列表 |
telegram_import_contacts |
按电话号码导入联系人 |
telegram_block_peer |
阻止或取消阻止用户 |
反应(2)
| 工具 |
说明 |
telegram_send_reaction |
对消息做出反应(表情符号或自定义) |
telegram_get_message_reactions |
获取消息的反应 |
邀请链接(3)
| 工具 |
说明 |
telegram_export_invite_link |
创建新的邀请链接 |
telegram_get_invite_links |
列出导出的邀请链接 |
telegram_revoke_invite_link |
撤销邀请链接 |
通知(2)
| 工具 |
说明 |
telegram_get_notify_settings |
获取聊天通知设置 |
telegram_set_notify_settings |
更新静音/静音/预览设置 |
论坛主题(3)
| 工具 |
说明 |
telegram_create_forum_topic |
在论坛超级组中创建主题 |
telegram_get_forum_topics |
列出论坛主题 |
telegram_edit_forum_topic |
编辑主题标题或打开/关闭状态 |
故事(4)
| 工具 |
说明 |
telegram_get_peer_stories |
获取同行的活跃故事 |
telegram_get_all_stories |
获取所有同行的所有活动故事 |
telegram_send_story |
发布照片或视频故事 |
telegram_delete_stories |
删除故事 |
管理员(4)
| 工具 |
说明 |
telegram_edit_admin |
编辑用户的管理员权限 |
telegram_edit_banned |
禁止/限制用户 |
telegram_get_participants |
列出频道/超级组成员 |
telegram_get_admin_log |
查看管理员操作日志 |
草稿(2)
| 工具 |
说明 |
telegram_set_draft |
在聊天中设置草稿消息 |
telegram_clear_draft |
在聊天中清除草稿消息 |
文件夹(2)
| 工具 |
说明 |
telegram_get_folders |
获取所有聊天文件夹 |
telegram_get_folder_chats |
在特定文件夹中获取聊天记录 |
简介(2)
| 工具 |
说明 |
telegram_update_profile |
更新您的个人资料(姓名、简介) |
telegram_get_read_participants |
获取谁已阅读消息 |
化合物(5)
将多个API调用合并为一个操作的高级工具,减少了round-trips并简化了复杂的工作流程。
| 工具 |
说明 |
telegram_get_unread |
在一次通话中获取所有带有预览消息的未读对话框 |
telegram_chat_context |
获取完整的聊天快照:信息、消息、固定、参与者 |
telegram_forward_bulk |
同时将消息转发到多个目的地 |
telegram_export_messages |
导出带有自动分页功能的邮件历史记录(最多500条) |
telegram_search_cross_chat |
同时在多个聊天记录中搜索查询 |
提示(3)
MCP提示是指导AI助手完成常见Telegram任务的工作流程食谱。
| 提示 |
描述 |
参数 |
daily_digest |
创建未读邮件的优先级摘要 |
-- |
community_manager |
分析和管理Telegram社区 |
peer |
content_broadcaster |
跨渠道发布内容 |
source_peer, destinations |
建筑
main.go Entry point, server setup, tool registration
services/telegram.go Telegram client, auth state machine, peer resolution
tools/
telegram_auth.go Auth (status, code, password)
telegram_message.go Messages (send, search, forward, edit, delete, pin, polls, translate)
telegram_chat.go Chats (list, get, search, join, leave, create, pin/unread dialogs)
telegram_media.go Media (download, upload, file info, view image)
telegram_user.go Users (get me, resolve, get user, search contacts)
telegram_contact.go Contacts (get all, import, block/unblock)
telegram_reaction.go Reactions (send, get)
telegram_invite.go Invite links (export, list, revoke)
telegram_notification.go Notifications (get/set settings)
telegram_forum.go Forum topics (create, list, edit)
telegram_story.go Stories (get, send, delete)
telegram_admin.go Admin (rights, bans, participants, action log)
telegram_draft.go Drafts (set, clear)
telegram_folder.go Folders (get folders, get folder chats)
telegram_profile.go Profile (update, read participants)
telegram_compound.go Compound (unread, context, bulk forward, export, cross-search)
telegram_prompts.go MCP Prompts (daily digest, community manager, content broadcaster)
许可证
麻省理工学院