电报通知器MCP服务器
一 主控程序 该服务器允许LLM通过Telegram机器人向用户发送消息和文件,并读取传入消息。没有外部HTTP或Telegram库,只有本地库 fetch API和官方MCP SDK。
快速开始
无需克隆或构建,只需将配置添加到MCP客户端即可。
1.创建Telegram Bot
- 打开电报和消息 @植物学家
- 发送
/newbot并按照提示命名您的机器人 - 复制 bot令牌 您收到(例如。,
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
2.查找您的聊天ID
- 在Telegram上向您的新机器人发送任何消息
- 在浏览器中打开以下URL,替换
YOUR_BOT_TOKEN使用您的实际令牌:
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates- 在JSON响应中,找到
"chat":{"id": 123456789}--该号码是您的聊天ID
提示: 对于群聊,将机器人添加到群中,发送消息,并检查相同的URL。群聊ID为负数(例如。, -1001234567890).3.添加到您的MCP客户端
克劳德桌面
将此添加到您的Claude Desktop配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"telegram-notifier": {
"command": "npx",
"args": ["telegram-notifier-mcp"],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token-here",
"TELEGRAM_CHAT_ID": "your-chat-id-here"
}
}
}
}克劳德代码
添加到您的项目 .mcp.json 或 ~/.claude.json:
{
"mcpServers": {
"telegram-notifier": {
"command": "npx",
"args": ["telegram-notifier-mcp"],
"env": {
"TELEGRAM_BOT_TOKEN": "your-bot-token-here",
"TELEGRAM_CHAT_ID": "your-chat-id-here"
}
}
}
}Codex CLI
您可以通过以下任一方式配置Codex CLI:
选项A:手动添加 ~/.codex/config.toml
[mcp_servers.telegram-notifier]
command = "npx"
args = ["telegram-notifier-mcp"]
[mcp_servers.telegram-notifier.env]
TELEGRAM_BOT_TOKEN = "your-bot-token-here"
TELEGRAM_CHAT_ID = "your-chat-id-here"选项B:使用CLI命令添加它
codex mcp add telegram-notifier \
--env TELEGRAM_BOT_TOKEN=your-bot-token-here \
--env TELEGRAM_CHAT_ID=your-chat-id-here \
-- npx telegram-notifier-mcp就是这样——你的LLM现在可以向你发送Telegram通知了。
配置
服务器使用两个环境变量:
| 变量 | 必填 | 描述 |
|---|---|---|
TELEGRAM_BOT_TOKEN | 是 | 来自@BotFather的机器人令牌 |
TELEGRAM_CHAT_ID | 否 | 默认聊天ID。可以通过以下方式覆盖每次工具调用 chatId 参数。 |
如果发生以下情况,服务器将退出并出错 TELEGRAM_BOT_TOKEN 未设置。如果 TELEGRAM_CHAT_ID 未设置,您必须通过 chatId 每次工具调用。
工具
send_message
向Telegram聊天发送短信。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
text | string | 是 | 要发送的消息文本 |
chatId | string | 否 | 目标聊天ID(覆盖 TELEGRAM_CHAT_ID) |
parseMode | string | 否 | Markdown, MarkdownV2,或 HTML |
disableNotification | boolean | 否 | 无通知声音的静默发送 |
send_document
将文件/文档发送到Telegram聊天。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
filePath | string | 是 | 文件的绝对路径 |
chatId | string | 否 | 目标聊天ID(覆盖 TELEGRAM_CHAT_ID) |
caption | string | 否 | 文档的标题 |
parseMode | string | 否 | Markdown, MarkdownV2,或 HTML |
disableNotification | boolean | 否 | 无通知声音的静默发送 |
send_photo
将照片/图像发送到Telegram聊天。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
filePath | string | 是 | 图像文件的绝对路径 |
chatId | string | 否 | 目标聊天ID(覆盖 TELEGRAM_CHAT_ID) |
caption | string | 否 | 照片的标题 |
parseMode | string | 否 | Markdown, MarkdownV2,或 HTML |
disableNotification | boolean | 否 | 无通知声音的静默发送 |
send_video
将视频发送到Telegram聊天。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
filePath | string | 是 | 视频文件的绝对路径 |
chatId | string | 否 | 目标聊天ID(覆盖 TELEGRAM_CHAT_ID) |
caption | string | 否 | 视频的标题 |
parseMode | string | 否 | Markdown, MarkdownV2,或 HTML |
disableNotification | boolean | 否 | 无通知声音的静默发送 |
send_audio
将音频文件发送到Telegram聊天。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
filePath | string | 是 | 音频文件的绝对路径 |
chatId | string | 否 | 目标聊天ID(覆盖 TELEGRAM_CHAT_ID) |
caption | string | 否 | 音频的标题 |
parseMode | string | 否 | Markdown, MarkdownV2,或 HTML |
disableNotification | boolean | 否 | 无通知声音的静默发送 |
get_updates
检查发送到机器人的新消息。只返回自上次检查以来收到的消息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
limit | number | No | 要检索的最大邮件数(1-100,默认值10) |
timeout | number | 否 | 轮询超时时间过长(秒)(0-30,默认值0)。设置>0以等待新消息。 |
文件下载
当消息包含媒体(照片、文档、视频、音频、语音消息或贴纸)时,服务器会自动将文件下载到 ~/.telegram-notifier-mcp/downloads/ 并且在输出中包括本地路径。这允许LLM直接读取或处理文件。
- 文件另存为
-避免碰撞 - 照片以最高可用分辨率下载
- Telegram Bot API将下载限制为 20 MB
- 如果下载失败,输出将退回到仅标记媒体类型
与MCP检查员一起进行测试
您可以使用交互方式测试服务器 MCP检查员:
TELEGRAM_BOT_TOKEN="your-token" TELEGRAM_CHAT_ID="your-chat-id" \
npx @modelcontextprotocol/inspector npx telegram-notifier-mcp这将打开一个浏览器UI,您可以在其中调用每个工具并查看结果。
错误处理
服务器优雅地处理错误并返回描述性消息:
| 场景 | 行为 |
|---|---|
失踪 TELEGRAM_BOT_TOKEN | 服务器在启动时按指示退出 |
| 缺少聊天ID(无环境变量,无参数) | 返回 isError: true 带信息 |
| 找不到文件 | 返回 isError: true 使用文件路径 |
| 文件超过50 MB | 返回 isError: true 文件大小 |
| 电报API错误 | 返回 isError: true 带有Telegram的错误描述 |
所有服务器日志都转到 标准错误 因此,它们永远不会干扰stdout上的stdio MCP传输。
文件大小限制
Telegram强制执行 50 MB 通过Bot API上传文件的限制。服务器在上传之前验证文件大小,如果超过限制,则返回错误。
发展
git clone https://github.com/AdeshAtole/telegram-notifier-mcp
cd telegram-notifier-mcp
npm install
npm run build
# Watch mode — rebuilds on file changes
npm run dev出版
当您创建GitHub版本时,版本会通过GitHub Actions自动发布到npm。
设置:
- 将你的npm令牌添加为名为
NPM_TOKEN在GitHub设置>机密和变量>操作中 - 将版本插入
package.json - 创建一个新的GitHub版本——工作流将构建并发布到npm
许可证
麻省理工学院
