Telegram机器人API服务器

一个完整的Telegram机器人API服务器,提供162种方法,支持Token优化的Meta模式,适用于生产环境。

  • by TONresistor
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 TONresistor/telegram-mcp

使用说明

电报MCP服务器

用于完整Telegram Bot API的生产就绪MCP服务器。 162种方法 采用令牌优化元模式(约157个令牌对约55000个令牌)。

亮点

  • API全面覆盖: 所有162 Telegram Bot API方法
  • 令牌效率: 元模式将上下文减少99.7%
  • 生产硬化: 断路器、速率限制、回退重试
  • 可观察: Prometheus指标、结构化日志记录、健康检查
  • 类型安全: 带有Zod验证的完整TypeScript

安装

npm install @tonresistor/telegram-mcp

或者克隆并从源代码构建:

git clone https://github.com/TONresistor/telegram-mcp.git
cd telegram-mcp && npm install && npm run build

快速开始

从获取您的机器人令牌 @植物学家,然后添加到MCP配置中:

{
  "mcpServers": {
    "telegram": {
      "command": "node",
      "args": ["/path/to/build/index-meta.js"],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_token_here"
      }
    }
  }
}

使用模式

模式 入口点 工具 最适合
元 (推荐) index-meta.js 2 生产:最低令牌使用量
标准 index.js 161 开发:直接工具访问

元模式 只公开了两个工具:

  • telegram_find:按名称或类别搜索方法
  • telegram_call:执行任何Telegram API方法

配置

变量 默认值 描述
TELEGRAM_BOT_TOKEN 必需的 来自BotFather的机器人令牌
LOG_LEVEL info debug/info/警告/错误/严重
REQUEST_TIMEOUT 30000 请求超时(毫秒)(5000-120000)
MAX_RETRIES 3 重试次数(0-10)
RATE_LIMIT_PER_MINUTE 30 全球利率限制(1-60)
HEALTH_PORT -- 启用健康端点(/health、/metrics)

特性

韧性

  • 断路器: 5次故障后打开,30秒后自动恢复
  • 速率限制: Global+每次聊天(遵守Telegram限制)
  • 检索: 具有抖动的指数回退

可观测性

  • 普罗米修斯指标: 请求计数、延迟、错误率
  • 健康检查: Kubernetes就绪就绪/活性探针
  • 结构化日志记录: JSON格式,具有自动加密功能

API 参考

所有161 Telegram Bot API方法按类别组织。

Messages (23 methods)
方法 说明
sendMessage 发送短信
sendPhoto 发送照片
sendVideo 发送视频
sendAudio 发送音频文件
sendDocument 发送文档/文件
sendAnimation 发送GIF动画
sendVoice 发送语音信息
sendVideoNote 发送视频备注(圆形视频)
sendLocation 发送位置
sendVenue 发送地点/地点
sendContact 发送电话联系人
sendPoll 发送投票/调查
sendDice 发送动画骰子
sendChatAction 发送打字指示器
sendMediaGroup 发送媒体相册
sendPaidMedia 发送付费媒体
sendMessageDraft 流式传输部分消息(AI)
forwardMessage 转发消息
forwardMessages 转发多条消息
copyMessage 复制邮件
copyMessages 复制多条消息
sendSticker 发送贴纸
sendChecklist 发送检查表(业务)
Chat Management (30 methods)
方法 说明
getChat 获取聊天信息
getChatMember 获取会员信息
getChatMemberCount 获取会员数量
getChatAdministrators 列出管理员
banChatMember 禁止用户
unbanChatMember 取消阻止用户
restrictChatMember 限制用户
promoteChatMember 晋升为管理员
setChatAdministratorCustomTitle 设置管理员标题
setChatPermissions 设置默认权限
setChatTitle 设置聊天标题
setChatDescription 设置聊天描述
setChatPhoto 设置聊天照片
deleteChatPhoto 删除聊天照片
pinChatMessage Pin消息
unpinChatMessage 不愉快的信息
unpinAllChatMessages 取消所有邮件的收件箱
leaveChat 离开聊天
exportChatInviteLink 生成邀请链接
createChatInviteLink 创建邀请链接
editChatInviteLink 编辑邀请链接
revokeChatInviteLink 撤销邀请链接
approveChatJoinRequest 批准加入请求
declineChatJoinRequest 拒绝加入请求
banChatSenderChat 禁止频道
unbanChatSenderChat Unban频道
setChatStickerSet 设置贴纸集
deleteChatStickerSet 删除贴纸集
createChatSubscriptionInviteLink 创建订阅链接
editChatSubscriptionInviteLink 编辑订阅链接
Editing (9 methods)
方法 说明
editMessageText 编辑文本
editMessageCaption 编辑标题
editMessageMedia 编辑媒体
editMessageReplyMarkup 编辑键盘
editMessageLiveLocation 编辑实时位置
stopMessageLiveLocation 停止实时位置
stopPoll 停止投票
deleteMessage 删除邮件
deleteMessages 删除多条消息
Settings (16 methods)
方法 说明
setMyCommands 设置命令
getMyCommands 获取命令
deleteMyCommands 删除命令
setMyName 设置机器人名称
getMyName 获取机器人名称
setMyDescription 设置描述
getMyDescription 获取描述
setMyShortDescription 设置简短描述
getMyShortDescription 获取简短描述
setChatMenuButton 设置菜单按钮
getChatMenuButton 获取菜单按钮
setMyDefaultAdministratorRights 设置默认管理员权限
getMyDefaultAdministratorRights 获取默认管理员权限
getUserProfilePhotos 获取用户照片
getFile 获取文件信息
setUserEmojiStatus 设置表情符号状态
Business (16 methods)
方法 说明
getBusinessConnection 获取连接信息
readBusinessMessage 标记为已读
deleteBusinessMessages 删除邮件
setBusinessAccountName 设置帐户名
setBusinessAccountUsername 设置用户名
setBusinessAccountBio 设置个人简介
setBusinessAccountProfilePhoto 设置个人资料照片
removeBusinessAccountProfilePhoto 删除照片
setBusinessAccountGiftSettings 设置礼品设置
getBusinessAccountStarBalance 获得星级平衡
transferBusinessAccountStars 转移星星
postStory 发布故事
editStory 编辑故事
deleteStory 删除故事
repostStory 转发故事
approveSuggestedPost 批准职位
declineSuggestedPost 拒绝职位
Stickers (16 methods)
方法 说明
getStickerSet 获取贴纸套装
getCustomEmojiStickers 获取自定义表情符号
uploadStickerFile 上传贴纸
createNewStickerSet 创建集合
addStickerToSet 添加到集合
setStickerPositionInSet 移动位置
deleteStickerFromSet 从集合中删除
replaceStickerInSet 更换贴纸
setStickerEmojiList 设置表情符号
setStickerKeywords 设置关键字
setStickerMaskPosition 设置遮罩位置
setStickerSetTitle 设置标题
setStickerSetThumbnail 设置缩略图
setCustomEmojiStickerSetThumbnail 设置表情符号缩略图
deleteStickerSet 删除集合
Forum Topics (13 methods)
方法 说明
getForumTopicIconStickers 获取图标贴纸
createForumTopic 创建主题
editForumTopic 编辑主题
closeForumTopic 关闭主题
reopenForumTopic 重新打开主题
deleteForumTopic 删除主题
unpinAllForumTopicMessages 全部取消
editGeneralForumTopic 编辑常规
closeGeneralForumTopic 关闭常规
reopenGeneralForumTopic 重新打开常规
hideGeneralForumTopic 隐藏常规
unhideGeneralForumTopic 取消隐藏常规
unpinAllGeneralForumTopicMessages Unpin概述
Inline & Callbacks (6 methods)
方法 说明
answerInlineQuery 回答内联查询
answerCallbackQuery 应答回拨
answerWebAppQuery 应答Web应用程序
savePreparedInlineMessage 保存准备好的消息
setMessageReaction 设置反应
getUserChatBoosts 获得用户提升
Payments (8 methods)
方法 说明
sendInvoice 发送发票
createInvoiceLink 创建发票链接
answerShippingQuery 应答发货
answerPreCheckoutQuery 回答预结账
getStarTransactions 获取交易记录
refundStarPayment 退款支付
editUserStarSubscription 编辑订阅
getMyStarBalance 获得平衡
Gifts (9 methods)
方法 说明
getAvailableGifts 获取可用礼品
sendGift 送礼物
giftPremiumSubscription 礼品赠品
getUserGifts 获得用户礼物
getChatGifts 获取聊天礼物
getBusinessAccountGifts 获得商务礼品
convertGiftToStars 转换为星星
upgradeGift 升级礼物
transferGift 转移礼物
Games (3 methods)
方法 说明
sendGame 发送游戏
setGameScore 设定分数
getGameHighScores 获得高分
Updates & Bot (7 methods)
方法 说明
getUpdates 获取更新(轮询)
setWebhook 设置webhook
deleteWebhook 删除webhook
getWebhookInfo 获取webhook信息
getMe 获取机器人信息
logOut 注销
close 关闭实例
Verification & Passport (5 methods)
方法 说明
verifyUser 验证用户
verifyChat 验证聊天
removeUserVerification 删除用户验证
removeChatVerification 删除聊天验证
setPassportDataErrors 设置Passport错误

发展

npm test          # Run tests
npm run build     # Compile TypeScript

许可证

麻省理工学院