使用说明
电报MCP服务器
MCP服务器实现,提供与 电报机器人API该服务允许AI助手以编程方式发送消息和检索机器人信息。
工具
Telegram MCP服务为与Telegram Bot API交互提供以下工具:
get_bot_info
检索有关机器人的基本信息。
- 无需参数
- 返回包含机器人信息的User对象
send_message
向指定聊天室发送消息。
chatId:目标聊天的唯一标识符(可以是字符串或数字)text:要发送的消息文本params(可选):消息的其他参数(例如parse_mode、reply_markup等)
获取更新
使用长轮询接收传入更新。
params(可选):包含可选参数的对象:offset(可选):要返回的第一个更新的标识符limit(可选):限制要检索的更新数量(1-100)timeout(可选):长轮询超时(秒)allowed_updates(可选):要接收的更新类型数组
- 返回一个包含各种类型更新的Update对象数组:
- 消息和编辑的消息
- 频道帖子
- 业务消息
- 内联查询
- 回调查询
- 发货查询
- 结账前查询
- 民意调查和民意调查答案
- 聊天成员更新
- 聊天加入请求
- 聊天增强
转发消息
转发任何类型的消息。无法转发服务消息和包含受保护内容的消息。
chatId:目标聊天或目标频道用户名的唯一标识符(格式为@channelusername)fromChatId:发送原始消息的聊天的唯一标识符(或@channelusername格式的频道用户名)messageId:在from_chat_id中指定的聊天中的消息标识符params(可选):包含可选参数的对象:message_thread_id(可选):论坛目标消息线程(主题)的唯一标识符;仅适用于论坛超级群video_start_timestamp(可选):消息中转发视频的新开始时间戳disable_notification(可选):以静默方式发送消息。用户将收到一个没有声音的通知。protect_content(可选):保护转发邮件的内容不被转发和保存
- 成功时返回已发送的Message对象
pin_chat_message
将消息添加到聊天中的固定消息列表中。在私聊和频道直接消息聊天中,所有非服务消息都可以被固定。相反,机器人程序必须是具有“can_pin_messages”权限或“can_edit_message”权限的管理员,才能分别将消息固定在组和通道中。
chatId:目标聊天或目标频道用户名的唯一标识符(格式为@channelusername)messageId:要固定的消息的标识符businessConnectionId(可选):消息所代表的业务连接的唯一标识符disableNotification(可选):如果不需要向所有聊天成员发送有关新固定消息的通知,则传递True。在频道和私人聊天中,通知始终处于禁用状态。- 成功时返回True
unpin-chat_消息
从聊天中的固定消息列表中删除消息。在私聊和频道直接消息聊天中,所有消息都可以取消固定。相反,机器人程序必须是具有“can_pin_messages”权限或“can_edit_message”权限的管理员,才能分别在组和通道中取消绑定消息。
chatId:目标聊天或目标频道用户名的唯一标识符(格式为@channelusername)messageId(可选):要取消固定的消息的标识符。如果未指定,则将取消固定最近固定的邮件(按发送日期)businessConnectionId(可选):代表其取消邮件固定的业务连接的唯一标识符- 成功时返回True
unpin_all_chat_消息
清除聊天中的固定消息列表。在私聊和频道直接消息聊天中,取消固定所有固定消息不需要额外的权限。相反,机器人程序必须是具有“can_pin_messages”权限或“can_edit_message”权限的管理员,才能分别取消固定组和通道中的所有固定消息。
chatId:目标聊天或目标频道用户名的唯一标识符(格式为@channelusername)- 成功时返回True
getChat
获取有关聊天的最新信息。返回详细的聊天信息,包括设置、权限和元数据。
chat_id:目标聊天或目标超级群或频道用户名的唯一标识符(格式为@channelusername)- 返回一个包含全面聊天详细信息的ChatFullInfo对象:
- 基本信息:id、类型、标题、用户名、描述
- 设置:权限、慢模式延迟、消息自动删除时间
- 特点:受保护的内容,隐藏的成员,积极的反垃圾邮件
- 可选信息:照片、位置、贴纸集、链接聊天
- 商业信息:介绍、地点、营业时间(适用于商业账户)
- 个人信息:生日,个人简历,表情符号状态(用于私人聊天)
sendPoll
将本地投票发送到聊天。返回包含成功轮询的已发送消息。请注意,投票不能发送到频道直接消息聊天。
chat_id:目标聊天或目标频道用户名的唯一标识符(格式为@channelusername)question:投票问题,1-300个字符options:数组 2到10个答案选项 (必填)。每个选项必须包含1-100个字符的文本,格式可选type(可选):投票类型,“测验”或“常规”(默认为“常规”)is_anonymous(可选):如果投票应该是匿名的,则为True(默认为True)allows_multiple_answers(可选):如果允许多个答案,则为True(默认为False,在测验民意调查中忽略)correct_option_id(可选):正确答案的基于0的标识符(测验民意调查所需)explanation(可选):显示错误测验答案的文本,0-200个字符open_period(可选):轮询持续时间(秒),5-600(不能与close_date一起使用)close_date(可选):轮询关闭时的Unix时间戳(不能与open_period一起使用)is_closed(可选):True可立即关闭投票(对预览有用)disable_notification(可选):静默发送protect_content(可选):防止邮件转发/保存reply_parameters(可选):回复另一条消息reply_markup(可选):其他接口选项(键盘等)- 其他选项:business_connection_id、message_thread_id、question_parse_mode、question_entities、explanation_parse_model、explanational_tities、allow-paid_broadcast、message_effect_id
配置
环境变量
您需要设置以下环境变量:
TELEGRAM_BOT_TOKEN=your_bot_token
MCP_MODE=stdio
PORT=3001
TELEGRAM_BOT_TOKEN:您的机器人令牌(必填)MCP_MODE:服务器模式-stdio对于MCP客户或web对于HTTP/SSE API(默认为stdio)PORT:web模式端口(默认为3001)
您可以通过以下方式获取您的机器人令牌 @植物学家 在Telegram上创建一个新的机器人。
创建新的机器人
使用 /newbot 创建新机器人的命令。 @BotFather 将询问您的姓名和用户名,然后为您的新机器人生成身份验证令牌。
您的机器人名称显示在联系方式和其他地方。
用户名是一个短名称,用于搜索、提及和.me链接。用户名长度为5-32个字符,不区分大小写,但只能包含拉丁字符、数字和下划线。您的机器人用户名必须以“bot”结尾,如“tetris_bot”或“TetrisBot”。
令牌是一个字符串,如123456:my-securt,用于授权机器人程序并向机器人程序API发送请求。确保您的令牌安全并安全存储,任何人都可以使用它来控制您的机器人。
与机器人的名称不同,用户名以后不能更改,因此请仔细选择。 向api.telegram.org发送请求时,请记住在令牌前加上“bot”一词。
发展
标准MCP模式(stdio)
npm install
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
打开http://127.0.0.1:6274设置环境并与工具交互。
Web模式(HTTP/SSE)
npm install
npm run build
MCP_MODE=web PORT=3001 node dist/index.js
服务器将在以下时间可用http://localhost:3001支持服务器发送事件。
许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。