Telegram Bot API服务

一个基于Swift的原生MCP服务器,用于Telegram Bot API,提供消息发送/读取、群组管理、消息置顶、机器人命令设置等功能。

  • by PsychQuant
  • Swift
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kiki830621/che-telegram-bot-mcp

使用说明

车电报机器人mcp

Swift本地MCP服务器,用于Telegram Bot API。除了MCP SDK之外,没有任何外部依赖。

通过Claude,您可以发送/读取消息、管理组、固定消息、设置机器人命令等。

先决条件

1.创建Telegram Bot

  1. 打开Telegram,搜索 @植物学家
  2. 发送 /newbot 并遵循指示
  3. 复制机器人令牌(格式: 123456789:ABCdefGhIjKlMnOpQrStUvWxYz)

2.(可选)启用组消息访问

默认情况下,机器人只能看到命令(/start, /help等等)分组。要阅读所有消息,请执行以下操作:

  1. 打开 @植物学家
  2. 发送 /mybots → 选择您的机器人→ 机器人设置 → 群体隐私 → 关闭

3.建造

需要Swift 5.9+和macOS 13+。

git clone https://github.com/kiki830621/che-telegram-bot-mcp.git
cd che-telegram-bot-mcp
swift build -c release

二进制位置: .build/release/CheTelegramBotMCP

安装

选项A:Claude代码命令行界面

claude mcp add che-telegram-bot-mcp \
  -s user \
  -e TELEGRAM_BOT_TOKEN=your_token_here \
  -- /path/to/che-telegram-bot-mcp/.build/release/CheTelegramBotMCP

备注: name 必须马上来 add. -e 和 -s 提交给 --.

验证:

claude mcp get che-telegram-bot-mcp
# Should show: Status: ✓ Connected

选项B:直接编辑配置

增添 ~/.claude.json:

{
  "mcpServers": {
    "che-telegram-bot-mcp": {
      "type": "stdio",
      "command": "/path/to/.build/release/CheTelegramBotMCP",
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token_here"
      }
    }
  }
}

选项C:克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "che-telegram-bot-mcp": {
      "command": "/path/to/.build/release/CheTelegramBotMCP",
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token_here"
      }
    }
  }
}

环境变量

变量 必填 描述
TELEGRAM_BOT_TOKEN 是 来自@BotFather的机器人令牌

工具(30)

机器人信息

工具 说明
get_me 获取机器人用户名、ID和功能

消息

工具 说明
send_message 发送短信(支持Markdown/HTML)
forward_message 将消息转发到另一个聊天室
copy_message 复制不带转发标头的邮件
edit_message_text 编辑以前发送的消息
delete_message 删除消息

更新

工具 说明
get_updates 通过长轮询获取传入消息和事件

聊天信息

工具 说明
get_chat 获取聊天标题、类型、描述等。
get_chat_member_count 获取成员数量
get_chat_member 获取特定成员的信息
get_chat_administrators 列出所有管理员

会员管理

工具 说明
ban_chat_member 禁止用户(可选过期)
unban_chat_member 取消阻止用户
restrict_chat_member 为用户设置精细权限
promote_chat_member 提升或降级管理员

固定/取消固定

工具 说明
pin_chat_message 固定消息(可选静音)
unpin_chat_message 取消发送特定消息
unpin_all_chat_messages 清除所有固定邮件

媒体

工具 说明
send_photo 通过URL或file_id发送照片
send_document 通过URL或file_id发送文档
send_video 通过URL或file_id发送视频
send_audio 通过URL或file_id发送音频
send_location 发送地图位置(lat/lng)
send_poll 创建投票(常规或测验)
send_sticker 发送贴纸

机器人命令

工具 说明
set_my_commands 设置机器人的命令菜单
get_my_commands 列出当前命令
delete_my_commands 删除所有命令

聊天设定

工具 说明
set_chat_title 更改组/频道标题
set_chat_description 更改组/频道描述
leave_chat 让机器人离开聊天

使用示例

连接后,您可以问Claude以下问题:

  • “向聊天室123456发送一条问候信息”
  • “从我的机器人获取最新更新”
  • “将ID为42的消息固定在聊天中-100123456”
  • “在聊天123456中创建投票:午餐吃什么?选项:披萨、寿司、塔可”
  • “设置机器人命令:start-启动机器人,help-显示帮助”

建筑

Sources/
├── CheTelegramBotMCP/
│   └── main.swift              # Entry point
└── CheTelegramBotMCPCore/
    ├── Server.swift            # MCP Server (tool definitions + dispatch)
    └── TelegramAPI.swift       # HTTP client for api.telegram.org
  • 无第三方依赖关系 超越MCP Swift SDK
  • 用途 URLSession 直接调用Telegram Bot API
  • 所有30个工具映射到官方 电报机器人API 方法

局限性

  • 仅限Bot API:只能作为机器人运行,不能作为个人帐户运行。有关完整帐户访问权限,请参阅 che-telegram-all-mcp (计划中)。
  • 无文件上传:媒体工具接受URL或 file_id,而不是本地文件路径。
  • 没有webhook:用途 getUpdates (轮询),而不是webhook模式。

许可证

麻省理工学院