Token导航 LogoToken导航TokenDH.com
Cf Worker Telegram MCP logo
AI代理未说明官方级别未说明来源级核验

Cf Worker Telegram MCP

MCP Server

一个基于Cloudflare Workers的Telegram MCP服务器,为AI代理提供完整的Telegram消息功能访问,包括消息发送、聊天管理、媒体处理等100多种工具。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mtourne

提供方

mtourne

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Cloudflare员工的Telegram MCP服务器

⚠️ 安全警告:此服务器当前未为MCP客户端实现OAuth或身份验证。部署后,任何有权访问您的工作URL的人都可以通过MCP工具访问您的Telegram帐户。 在部署到生产环境之前,必须添加OAuth身份验证 以防止未经授权访问您的私人Telegram内容。使用 AUTH_SECRET_PATH 作为临时安全措施,但要为生产使用实现适当的OAuth。

一种模型上下文协议(MCP)服务器,为AI代理提供对Telegram消息传递功能的完全访问。使用gramjs构建,旨在使用持久对象在Cloudflare Workers上运行,以实现状态持久性。

特性

  • 完整电报API访问:发送消息、阅读对话、管理聊天、下载媒体
  • 100+MCP工具:7个类别的全面Telegram集成
  • 认证:支持2FA的基于Web的电话代码验证流程
  • Cloudflare员工:使用耐用对象在边缘运行,用于会话存储
  • 淋ORM:使用SQLite进行类型安全的数据库操作
  • 媒体缓存:通过URL提供的下载媒体(无base64上下文重载)
  • 无文件系统:基于内存缓冲区的媒体处理,以实现Workers兼容性

MCP工具

服务器提供 100+工具 分为7类:

聊天和群管理(17个工具)

  • get_dialogs -使用过滤器获取分页聊天列表
  • get_chat_info -获取详细聊天信息
  • create_group -创建新的群聊
  • create_channel -创建频道或超群
  • leave_chat -离开群组或频道
  • add_chat_members -将成员添加到聊天室
  • remove_chat_member -从聊天中删除成员
  • archive_chat / unarchive_chat -档案管理
  • 还有更多。..

消息传递(15个工具)

  • send_message -发送带有可选回复/文件的短信
  • get_messages -使用高级过滤功能获取邮件
  • edit_message -编辑已发送的消息
  • delete_message -删除一条或多条消息
  • forward_messages -在聊天之间转发消息
  • search_messages -使用筛选器搜索邮件
  • pin_message / unpin_message -消息固定
  • mark_as_read -将邮件标记为已读
  • 还有更多。..

媒体处理(7个工具)

  • download_media -将媒体下载为缓存的URL(不是base64!)
  • send_file -将文件发送到聊天室
  • send_voice -发送语音信息
  • send_sticker -发送贴纸
  • send_gif -发送GIF动画
  • get_media_info -获取媒体元数据
  • get_gif_search -搜索GIF

联系人管理(14个工具)

  • list_contacts -列出所有联系人
  • search_contacts -搜索联系人
  • add_contact / delete_contact -联系人管理
  • block_user / unblock_user -用户屏蔽
  • get_blocked_users -列出被阻止的用户
  • import_contacts / export_contacts -批量操作
  • get_me -获取当前用户信息
  • 还有更多。..

组管理(15个工具)

  • get_participants -使用筛选器获取聊天参与者
  • get_admins -获取管理员
  • invite_to_group -邀请用户
  • promote_admin / demote_admin -行政管理
  • ban_user / unban_user -用户审核
  • edit_chat_title / edit_chat_photo -聊天定制
  • get_invite_link -获取/创建邀请链接
  • 还有更多。..

个人资料和隐私(8个工具)

  • update_profile -更新用户配置文件
  • set_profile_photo / delete_profile_photo -个人资料照片
  • get_privacy_settings / set_privacy_settings -隐私控制
  • mute_chat / unmute_chat -通知控制
  • list_topics -论坛主题
  • 还有更多。..

搜索与发现(6个工具)

  • search_dialogs -搜索聊天记录和用户
  • search_global -全球电报搜索
  • message_from_link -解析电报链接
  • resolve_username -解析用户名
  • 还有更多。..

设置

1.获取Telegram API证书

  1. 首选https://my.telegram.org/apps
  2. 使用您的电话号码登录
  3. 创建新应用程序
  4. 保存您的 API IDAPI Hash

2.配置环境变量

创建一个 .dev.vars 文件(复制自 .dev.vars.example):

cp .dev.vars.example .dev.vars

编辑 .dev.vars 使用您的凭据:

TELEGRAM_API_ID=your_api_id_here
TELEGRAM_API_HASH=your_api_hash_here
TELEGRAM_PHONE=+1234567890
AUTH_SECRET_PATH=telegram-auth-secret-change-me

重要:更改 AUTH_SECRET_PATH 为了安全起见,将其转换为随机字符串。

3.安装依赖项

npm install

4.启动开发服务器

npm run dev

服务器将在以下时间启动 http://localhost:8787

5.使用Telegram进行身份验证

  1. 访问 http://localhost:8787/your-secret-path (使用你的 AUTH_SECRET_PATH)
  2. 点击“开始身份验证”
  3. 检查您的Telegram应用程序的验证码
  4. 在web UI中输入代码
  5. 如果您启用了2FA,请同时输入密码

一旦通过身份验证,会话将保存在Durable Object的SQLite数据库中,并在重新启动时持续存在。

部署

⚠️ 部署前:实现OAuth身份验证以保护您的Telegram帐户。当前实现仅使用 AUTH_SECRET_PATH 这对于生产安全来说是不够的。

部署到Cloudflare Workers

  1. 在Cloudflare中设置机密:
wrangler secret put TELEGRAM_API_ID
wrangler secret put TELEGRAM_API_HASH
wrangler secret put TELEGRAM_PHONE
  1. 更新 AUTH_SECRET_PATHwrangler.jsonc 变成一个长而随机的字符串
  1. 部署:
npm run deploy
  1. 通过访问进行身份验证: https://your-worker.workers.dev/your-secret-path

用法

使用克劳德桌面

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8787/mcp"
      ]
    }
  }
}

对于生产环境,请使用您部署的worker URL:

{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://your-worker.workers.dev/mcp"
      ]
    }
  }
}
📝 备注:端点为 /mcp,不 /sse服务器通过以下方式使用标准MCP协议 createMcpHandler.

重新启动Claude Desktop,Telegram工具将可用。

与其他MCP客户端

配置您的MCP客户端以连接到:

  • 本地: http://localhost:8787/mcp
  • 生产: https://your-worker.workers.dev/mcp

API终点

  • / -根信息页面
  • /mcp -MCP协议端点(用于MCP客户端)
  • /{AUTH_SECRET_PATH} -身份验证web UI
  • /{AUTH_SECRET_PATH}/status -获取身份验证状态(JSON)
  • /{AUTH_SECRET_PATH}/start -启动身份验证流(POST)
  • /{AUTH_SECRET_PATH}/verify -提交验证码(POST)
  • /{AUTH_SECRET_PATH}/clear -清除会话(POST)
  • /media/{uuid} -提供缓存的媒体文件

发展

类型检查

npm run type-check

格式码

npm run format

棉绒和修复

npm run lint:fix

生成Cloudflare类型

npm run cf-typegen

建筑

┌─────────────────────────────────────────────────────────┐
│              Cloudflare Worker (Proxy)                   │
│                                                          │
│  Routes requests to Durable Object:                      │
│  - /mcp → DO                                             │
│  - /{AUTH_SECRET_PATH}/* → /auth/* (rewritten to DO)    │
│  - /media/* → DO                                         │
└────────────────────┬────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────┐
│        TelegramMCPSession Durable Object                 │
│  ┌───────────────────────────────────────────────────┐  │
│  │  TelegramClientWrapper (gramjs)                   │  │
│  │  - StringSession persistence                      │  │
│  │  - Authentication flow                            │  │
│  │  - Telegram API calls                             │  │
│  └───────────────────────────────────────────────────┘  │
│  ┌───────────────────────────────────────────────────┐  │
│  │  Drizzle ORM + SQLite (DO Storage)                │  │
│  │  - Session storage                                │  │
│  │  - Auth state tracking                            │  │
│  └───────────────────────────────────────────────────┘  │
│  ┌───────────────────────────────────────────────────┐  │
│  │  MCP Server (100+ tools)                          │  │
│  │  - createMcpHandler integration                   │  │
│  │  - All tools registered on initialization         │  │
│  └───────────────────────────────────────────────────┘  │
│  ┌───────────────────────────────────────────────────┐  │
│  │  Media Cache (Map)                  │  │
│  │  - In-memory media storage                        │  │
│  │  - 1-hour expiration                              │  │
│  │  - Served via /media/{uuid}                       │  │
│  └───────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘
           │                    │                 │
           ▼                    ▼                 ▼
    Claude Desktop       Custom MCP Client    Direct HTTP

技术细节

会话管理

  • 使用gramjs StringSession 用于会话持久性
  • 会话字符串通过Drizzle ORM存储在Durable Objects SQLite数据库中
  • 单个全局持久对象实例(telegram-mcp-global)
  • 在工人重新启动和重新部署后幸存下来

媒体下载

  • 无文件系统:媒体直接作为内存中的缓冲区下载
  • 存储在 mediaCache 带UUID键的映射
  • 通过以下方式提供服务 /media/{uuid} URL(不是base64!)
  • 1小时后自动过期
  • 防止LLM的上下文过载
  • 适用于所有Telegram媒体类型(照片、视频、文档、语音)

认证流程

  1. 服务器启动→ 检查数据库中的现有会话
  2. 如果没有会话→ 用户访问auth UI /{AUTH_SECRET_PATH}
  3. Auth UI触发手机代码发送
  4. 用户输入代码(和可选的2FA密码)
  5. 会话字符串已保存到数据库
  6. 客户端保持身份验证

耐用对象架构

所有国家都生活在 TelegramMCPSession 耐用物体:

  • 电报客户端:无法序列化,必须留在DO内
  • MCP服务器:在初始化过程中创建一次
  • 媒体缓存:下载媒体的内存映射
  • 数据库:在SQLite背衬下喷洒ORM

主worker只是一个简单的代理,它将请求路由到Durable Object。

Node.js兼容性

工人与 nodejs_compat 为Buffer支持和gramjs兼容性启用了标志。

故障排除

“客户端未初始化”错误

通过访问auth UI确保您已通过身份验证 /{AUTH_SECRET_PATH}

“缺少Telegram凭据”错误

检查你的 .dev.vars 该文件设置了所有必需的变量,或者在Cloudflare中配置了用于生产的机密。

认证失败

  • 从my.telegram.org中双击您的API ID和API哈希
  • 确保电话号码包括国家代码(例如。, +1234567890)
  • 如果您启用了2FA,请确保输入密码

会话到期

通过访问auth UI重新进行身份验证。新会话将自动保存。

媒体下载返回404

媒体URL将在1小时后过期。再次下载媒体以获取新的URL。

409/mcp上的冲突错误

这在早期版本中是一个问题。当前实施使用 createMcpHandler 其适当地管理传输状态。

安全考虑

🚨 关键的:部署到生产环境之前:

  1. 实现OAuth:添加适当的OAuth身份验证以保护 /mcp 端点
  2. 安全AUTH_SECRET_PATH:使用长随机字符串(不是默认值!)
  3. 速率限制:考虑增加费率限制以防止滥用
  4. IP白名单:考虑限制对已知IP的访问
  5. 审计日志:考虑记录所有MCP工具调用以进行安全审计

当前的实施通过以下方式提供基本安全 AUTH_SECRET_PATH 但这是 不足以生产 任何具有工作者URL的人都可以访问您的Telegram帐户。

许可证

麻省理工学院

______________________________________________________________________

免责声明:这是一个按原样提供的开源项目。用户有责任在部署到生产环境之前实施适当的安全措施。作者不对未经授权访问或滥用已部署实例负责。

目录标签

目录标签

TypeScriptClaudeAI代理Telegram集成本地部署消息服务云函数自动化工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP