Telegram MCP 集成服务

一个提供 Telegram MCP(Model Context Protocol)集成的 Cloudflare Worker,使 AI 助手能够通过 Telegram 机器人发送消息、媒体和语音笔记。

  • by amarisaster
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 amarisaster/Telegram-MCP

使用说明

Telegram云MCP

Cloudflare Worker为Telegram提供MCP(模型上下文协议)集成,使AI助手能够通过Telegram机器人发送消息、媒体和语音笔记。

v3.0--媒体支持

发送照片、视频、音频、GIF和文档以及文本和语音。每个媒体工具都支持基于URL的发送、字幕和回复线程。

v2.0 引入了多伙伴路由——一个工人,无限的机器人。每个工具都需要一个 companion 映射到每个伴随机器人令牌的参数。

单机器人设置仍然有效——只需配置一个伴侣。

特性

  • 向Telegram聊天发送短信
  • 发送带有内联预览的照片
  • 使用内置播放器发送视频
  • 使用音乐播放器小部件发送音频(标题+艺术家)
  • 发送GIF/动画
  • 将文档/文件作为附件发送
  • 通过文本转语音发送语音备忘(ElevenLabs或OpenAI)
  • 获取机器人信息、检索更新、检查聊天记录
  • 多同伴路由 --一个工人,无限机器人

工具

所有工具都接受 companion 参数,用于选择哪个机器人执行操作。

工具 说明
telegram_send 向聊天室发送短信
telegram_voice 向聊天室发送语音备忘(TTS)
telegram_send_photo 发送带有可选标题的照片(URL或file_id)
telegram_send_video 使用内置播放器发送视频
telegram_send_audio 使用音乐播放器发送音频(标题+艺术家)
telegram_send_animation 发送GIF/动画
telegram_send_document 将任何文件作为附件发送
telegram_get_me 获取机器人信息
telegram_get_updates 获取最新消息和更新
telegram_get_chat 获取聊天信息

设置

1.创建电报机器人

  1. 消息 @植物学家 在Telegram上
  2. 发送 /newbot 并按照提示进行操作
  3. 保存您收到的机器人令牌
  4. 对每个你想要的同伴重复上述步骤

2.配置机密

将每个伴随的机器人令牌设置为Cloudflare机密:

# Per-companion tokens (add as many as you need)
wrangler secret put TELEGRAM_TOKEN_KAI
wrangler secret put TELEGRAM_TOKEN_LUCIAN
wrangler secret put TELEGRAM_TOKEN_AUREN
# ... etc

# Legacy single-bot fallback (maps to first companion)
wrangler secret put TELEGRAM_BOT_TOKEN

# Optional voice
wrangler secret put ELEVENLABS_API_KEY
wrangler secret put ELEVENLABS_VOICE_ID
wrangler secret put OPENAI_API_KEY

自定义配套名称: 编辑 COMPANIONS 阵列和 getTokenForCompanion() 在 src/index.ts 以匹配您的同伴名称和令牌env变量。

为了地方发展,创建一个 .dev.vars 文件:

TELEGRAM_TOKEN_KAI=your_token_here
TELEGRAM_TOKEN_LUCIAN=your_token_here

3.部署

npm install
npm run deploy

端点

端点 方法 描述
/ GET 服务信息、配置的伙伴、可用工具
/health GET 健康检查
/mcp POST MCP JSON-RPC端点
/sse GET MCP SSE端点用于客户端发现

MCP客户端配置

添加到MCP客户端配置中:

{
  "mcpServers": {
    "telegram": {
      "type": "http",
      "url": "https://your-worker.workers.dev/mcp"
    }
  }
}

媒体发送

所有媒体工具都接受URL或Telegram file_id 作为媒体来源。这意味着您可以发送:

  • 来自任何公共URL的图像(例如,来自图像生成API)
  • 任何地方托管的视频、音频或文档
  • 以前通过重复使用其发送的Telegram媒体 file_id

字幕支持Markdown格式。


语音备忘

语音笔记使用ElevenLabs作为主要的TTS提供商,如果未配置ElevenLabs,则退回OpenAI。如果两者都没有配置,语音命令将返回一个包含详细信息的错误。

注: 由于共享IP检测,当从Cloudflare Workers调用ElevenLabs免费层时,可能会被阻止。自托管TTS或付费ElevenLabs计划解决了这个问题。


许可证

麻省理工学院


支持

如果这对你有帮助,请考虑支持我的工作:)


由三合会(Mai、Kai Stryder和Lucian Vale)为社区建造。