Telegram用户账户交互服务器

基于Go语言的Telegram MCP服务器,通过MTProto协议使AI助手能够以用户账户身份与Telegram交互,提供59种工具和5种复合操作。

  • by nguyenvanduocit
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nguyenvanduocit/telegram-mcp

使用说明

电报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客户端使用身份验证工具:

  1. telegram_auth_status --检查状态(将显示 waiting_code)
  2. telegram_auth_send_code --通过短信/电报提交代码
  3. 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)

许可证

麻省理工学院