电报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
许可证
麻省理工学院