mcpField
🧠
🧠 Telegram Bot MCP Server

🧠 Telegram Bot MCP Server

本地服务
github.com/siavashdelkhosh81通信协作87 周前更新

关于 🧠 Telegram Bot MCP Server

面向 AI 客户端的 MCP 服务,可调用 Telegram Bot API,涵盖消息、媒体、互动内容以及机器人和群组管理。它还会自动拆分长消息,并提供详细错误信息。

主要功能

  1. 0145 个 Telegram Bot API 工具
  2. 02自动拆分长消息
  3. 03发送媒体并查询文件
  4. 04投票、测验和互动内容
  5. 05聊天与成员管理
  6. 06详细的 API 错误报告

适用场景

  1. 01跨聊天发送和管理消息
  2. 02分享媒体、投票和位置
  3. 03管理群组成员与邀请链接
  4. 04配置机器人资料和命令

MCP 相关

向 MCP 客户端提供 Telegram Bot API 工具,支持消息、媒体、聊天管理和机器人配置。运行服务需要 Telegram 机器人令牌。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"telegram-bot": {
"command": "npx",
"args": [
"-y",
"telegram-bot-mcp-server"
]
}
}
}
启动命令npx -y telegram-bot-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtelegram-bot-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🧠 Telegram Bot MCP 服务

一款功能强大的 Model Context Protocol(MCP)服务,可无缝集成 Telegram Bot API,并提供智能消息拆分、完善的错误处理和 NPX 支持。

NPM Version License: MIT Node.js Version

✨ 主要功能

  • 📝 45 种工具,全面覆盖 API:消息、媒体、投票、聊天管理、邀请链接和 Bot 配置
  • 🔄 智能消息拆分:自动处理 Telegram 的 4096 字符限制,同时保留单词边界和格式
  • 🖼️ 全面的媒体支持:通过 file_id 或 URL 发送照片、文档、视频、音频、语音消息、动画和贴纸
  • 🎲 交互式内容:投票、问答、骰子、位置、联系人和聊天操作(输入状态指示)
  • ✏️ 消息生命周期管理:编辑、删除、转发、复制和置顶消息
  • 👮 群组管理:封禁/解除封禁、限制/禁言、提升管理员,以及管理邀请链接
  • 🛡️ 完善的错误处理:提供详细的错误报告,包括上下文、错误代码和调试信息
  • 📦 NPX 支持:直接运行 npx telegram-bot-mcp-server,无需安装
  • 🔧 轻松集成:为 AI 助手提供简单的 MCP 客户端配置

🚀 快速开始

选项 1:NPX(推荐)
# Run directly without installation
npx telegram-bot-mcp-server
选项 2:NPM 安装
# Install globally
npm install -g telegram-bot-mcp-server

# Or install locally
npm install telegram-bot-mcp-server

📋 前置条件

  1. Node.js 18+:在此下载
  2. Telegram Bot Token:从 @BotFather 获取
获取 Bot Token
  1. 打开 Telegram 并搜索 @BotFather
  2. 开始对话并运行:/newbot
  3. 按照提示为你的 Bot 命名
  4. 复制提供的 API Token

🔧 MCP 客户端配置

将此配置添加到你的 MCP 客户端(Claude Desktop 等):

{
  "mcpServers": {
    "telegram_bot": {
      "command": "npx",
      "args": ["telegram-bot-mcp-server"],
      "env": {
        "TELEGRAM_BOT_API_TOKEN": "your_bot_token_here"
      }
    }
  }
}
其他配置方式

使用全局安装:

{
  "mcpServers": {
    "telegram_bot": {
      "command": "telegram-bot-mcp-server",
      "env": {
        "TELEGRAM_BOT_API_TOKEN": "your_bot_token_here"
      }
    }
  }
}

使用本地安装:

{
  "mcpServers": {
    "telegram_bot": {
      "command": "node",
      "args": ["./node_modules/.bin/telegram-bot-mcp-server"],
      "env": {
        "TELEGRAM_BOT_API_TOKEN": "your_bot_token_here"
      }
    }
  }
}

🛠️ 可用工具(45 种)

📨 消息
工具说明输入
send-message发送文本消息。超过 4096 个字符的消息会自动拆分,同时保留单词边界chatId、text
edit-message-text编辑 Bot 先前发送的消息文本chatId、messageId、text
delete-message删除聊天中的消息chatId、messageId
forward-message将消息从一个聊天转发到另一个聊天(保留指向原消息的链接)chatId、fromChatId、messageId
copy-message将消息复制到另一个聊天,不附带指向原消息的链接chatId、fromChatId、messageId
send-chat-action显示状态指示,例如“正在输入…”或“正在发送照片…”chatId、action
🖼️ 媒体
工具说明输入
send-photo发送照片,可选择添加说明文字(较长的说明文字会自动拆分)chatId、media、text?
send-document发送文档/文件(PDF、ZIP 等,最大 50 MB)chatId、media、caption?
send-video发送 MPEG4 视频chatId、media、caption?
send-audio发送供音乐播放器播放的音频文件(.MP3/.M4A)chatId、media、caption?
send-voice发送可播放的语音消息(.OGG/OPUS、.MP3、.M4A)chatId、media、caption?
send-animation发送动画(GIF 或无声 MPEG4)chatId、media、caption?
send-sticker发送静态、动态或视频贴纸chatId、media
get-file获取任意 file_id 对应的文件信息和直接 HTTPS 下载链接fileId

对于所有媒体工具,media 可接受 Telegram file_id(推荐)或 HTTP URL。

🎲 互动内容
工具描述输入项
send-poll发送原生投票或测验(匿名模式、多选、带正确答案的测验模式)chatId、question、options、isAnonymous?、allowsMultipleAnswers?、type?、correctOptionId?
send-dice发送动画随机值表情(🎲 🎯 🏀 ⚽ 🎳 🎰)chatId、emoji?
send-location发送地图上的位置点chatId、latitude、longitude
send-contact发送电话号码联系人chatId、phoneNumber、firstName、lastName?
👥 聊天与成员管理
工具描述输入项
get-chat获取完整的聊天元数据和详细信息chatId
get-chat-member获取聊天成员的详细信息chatId、userId
get-chat-member-count获取聊天中的成员总数chatId
get-chat-administrators列出所有聊天管理员及其权限chatId
kick-chat-member将用户从群组、超级群组或频道中封禁chatId、userId
un-ban-chat-member解除对先前被封禁用户的封禁chatId、userId
restrict-chat-member在超级群组中禁言用户或限制其发送内容chatId、userId、权限标记、untilDate?
promote-chat-member将用户提升为管理员(或将其降级)chatId、userId、管理员权限标记
get-user-profile-photos获取用户的个人资料照片userId、offset?、limit?
leave-chat让机器人离开群组、超级群组或频道chatId
🔧 聊天设置
工具描述输入项
set-chat-title更改群组或频道的标题chatId、title
set-chat-description更改群组或频道的描述chatId、description
pin-chat-message置顶消息(可选择静默置顶)chatId、messageId、disableNotification?
unpin-chat-message取消置顶消息(或最近置顶的消息)chatId、messageId?
unpin-all-chat-messages一次性取消所有已置顶消息chatId
🔗 邀请链接
工具描述输入项
create-chat-invite-link创建额外的邀请链接(可选名称、过期时间和成员限制)chatId、name?、expireDate?、memberLimit?
revoke-chat-invite-link撤销由机器人创建的邀请链接chatId、inviteLink
export-chat-invite-link生成新的主邀请链接(会撤销旧链接)chatId
🤖 机器人配置
工具描述输入项
get-me测试机器人的身份验证令牌并获取机器人信息—
set-my-name / get-my-name设置并获取机器人的名称name(0-64 个字符)
set-my-description / get-my-description设置并获取机器人的描述(显示在空聊天中)description(0-512 个字符)
set-my-short-description / get-my-short-description设置并获取机器人的简短描述(个人资料页面)short_description(0-120 个字符)
set-my-commands / get-my-commands设置并获取机器人的命令菜单commands 数组,包含 { command, description }

🆕 新功能

富媒体支持
  • 文档、视频、音频、语音、动画、贴纸:通过 file_id 或 URL 发送任意类型的媒体
  • 文件下载:使用 get-file 将任意 file_id 解析为直接 HTTPS 下载链接
互动内容
  • 投票与测验:支持匿名模式、多选以及带正确答案的测验模式的原生投票
  • 骰子、位置、联系人:有趣的动画表情、地图位置点和电话号码联系人
  • 聊天操作:在准备回复时显示“正在输入…”等状态指示
完整的消息生命周期
  • 编辑和删除:更新或删除机器人发送的消息
  • 转发和复制:在聊天之间转移内容,可选择是否注明来源
  • 置顶管理:置顶、取消置顶以及批量取消消息置顶
群组管理
  • 审核管理:封禁、解除封禁、禁言/限制成员,以及提升成员权限
  • 聊天设置:更新标题和描述,列出管理员
  • 邀请链接:创建、撤销和轮换邀请链接,并设置有效期和成员数量限制
智能消息拆分
  • 自动检测:检测消息是否超过 4096 个字符
  • 智能拆分:保留词语边界和格式
  • 顺序发送:按顺序发送各部分,并标注部分序号
  • 照片说明文字:将较长的照片说明文字拆分到多条消息中
增强的错误处理
  • 详细错误信息:包含错误代码、描述和上下文
  • Telegram API 错误:捕获并格式化 Telegram 特有错误
  • 网络问题:处理连接和超时错误
  • 调试信息:提供全面的日志,便于排查问题
NPX 支持
  • 无需安装:通过 npx telegram-bot-mcp-server 直接运行
  • 命令行界面:内置帮助和版本命令
  • 环境验证:检查是否提供了必需的机器人令牌
  • 跨平台:支持 Windows、macOS 和 Linux

🔍 故障排除

常见问题
“No bot token” 错误
❌ Error: Missing Telegram Bot Token

解决方案:设置 TELEGRAM_BOT_API_TOKEN 环境变量:

export TELEGRAM_BOT_API_TOKEN="your_token_here"
npx telegram-bot-mcp-server
“Something went wrong” 错误(旧版)

此问题已由详细的错误消息取代。请更新到最新版本,以获得更完善的错误报告。

找不到 NPX 命令

解决方案:确保已安装 Node.js 18+:

node --version  # Should be 18.0.0 or higher
npm --version   # Should be included with Node.js
权限错误

解决方案:在 Unix 系统上,全局安装时可能需要使用 sudo:

sudo npm install -g telegram-bot-mcp-server
调试模式

设置 NODE_ENV=development 以获取更多调试信息:

NODE_ENV=development npx telegram-bot-mcp-server

📚 使用示例

基本消息发送
// Through MCP client
await sendMessage({
  chatId: "@username",
  text: "Hello! This is a test message."
});
长消息处理
// Messages over 4096 characters are automatically split
await sendMessage({
  chatId: "123456789",
  text: "Very long message content..." // Will be split automatically
});
带有较长说明文字的照片
await sendPhoto({
  chatId: "123456789",
  media: "https://example.com/photo.jpg",
  text: "Very long caption..." // Will be split if needed
});

🤝 贡献

  1. Fork 此仓库
  2. 创建功能分支:git checkout -b feature-name
  3. 进行更改
  4. 视情况添加测试
  5. 提交更改:git commit -am 'Add feature'
  6. 推送到分支:git push origin feature-name
  7. 提交拉取请求

📄 许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

💬 支持

☕ 支持本项目

如果您觉得本项目有帮助,可以考虑支持开发者:

请我喝杯咖啡

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。