车电报机器人mcp
Swift本地MCP服务器,用于Telegram Bot API。除了MCP SDK之外,没有任何外部依赖。
通过Claude,您可以发送/读取消息、管理组、固定消息、设置机器人命令等。
先决条件
1.创建Telegram Bot
- 打开Telegram,搜索 @植物学家
- 发送
/newbot并遵循指示 - 复制机器人令牌(格式:
123456789:ABCdefGhIjKlMnOpQrStUvWxYz)
2.(可选)启用组消息访问
默认情况下,机器人只能看到命令(/start, /help等等)分组。要阅读所有消息,请执行以下操作:
- 打开 @植物学家
- 发送
/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模式。
许可证
麻省理工学院
