Telegram通知服务

一个基于Model Context Protocol (MCP)的服务,允许AI代理通过Telegram机器人发送消息,适用于通知、警报和实时通信场景。

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

使用说明

电报通知器MCP服务器

一个模型上下文协议(MCP)服务器,使AI代理能够通过Telegram机器人发送消息。非常适合来自AI应用程序的通知、警报和实时通信。

特性

  • 📱 通过机器人向Telegram频道/聊天室发送消息
  • 🎨 支持多种格式化模式(Markdown、MarkdownV2、HTML)
  • 📷 发送照片/图像(本地文件、HTTP URL)
  • 📁 发送具有自定义文件名的文档/文件
  • 🎬 发送支持字幕的视频
  • 🏷️ 支持所有媒体的完整格式字幕
  • 🛡️ 具有详细Telegram API响应的稳健错误处理
  • 🏗️ 可维护代码的干净服务架构

快速开始

1.创建Telegram Bot

  1. 消息 @植物学家 在Telegram上
  2. 使用 /newbot 命令并遵循指示
  3. 保存机器人令牌(看起来像 123456789:ABCdefGHIjklMNOpqrsTUVwxyz)

2.获取聊天ID

对于个人消息:

  1. 先给你的机器人发消息
  2. 访问: https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
  3. 查找 chat.id 价值

对于频道:

  1. 以管理员身份将您的机器人添加到频道
  2. 向频道发送消息
  3. 访问相同的URL并找到 chat.id (频道为负数)

3.安装和配置

# Install the package
npm install -g @harnyk/telegram-notifier-mcp

# Or clone and build locally
git clone <repository-url>
cd mcp-telegram-notifier
pnpm install
pnpm build
pnpm link

4.添加到您的MCP客户端

添加到您的MCP客户端配置中(例如,Claude Desktop):

{
  "mcpServers": {
    "telegram-notifier": {
      "command": "telegram-notifier",
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_bot_token_here",
        "TELEGRAM_CHAT_ID": "your_chat_id_here"
      }
    }
  }
}

或者使用npx:

{
  "mcpServers": {
    "telegram-notifier": {
      "command": "npx",
      "args": ["-y", "@harnyk/telegram-notifier-mcp"],
      "env": {
        "TELEGRAM_BOT_TOKEN": "your_bot_token_here", 
        "TELEGRAM_CHAT_ID": "your_chat_id_here"
      }
    }
  }
}

可用工具

配置后,您的AI代理将可以访问这些MCP工具:

📝 send_markdown_message_as_telegram_bot

向Telegram发送格式化的短信

  • 消息文本:具有Markdown/HTML格式的文本内容
  • parseMode: Markdown, MarkdownV2,或 HTML (默认值:MarkdownV2)

📷 send_telegram_photo

将照片/图像发送到Telegram

  • 照片:图像的本地文件路径或HTTP URL
  • 字幕:带格式的可选图像标题
  • parseMode:标题格式化模式

📁 send_telegram_document

将文档/文件发送到Telegram

  • 文档:文档的本地文件路径或HTTP URL
  • 字幕:带格式的可选文档标题
  • 文件名:自定义文件名覆盖
  • parseMode:标题格式化模式

🎬 send_telegram_video

将视频发送到Telegram

  • 视频:视频的本地文件路径或HTTP URL
  • 字幕:带格式的可选视频字幕
  • 文件名:自定义文件名覆盖
  • parseMode:标题格式化模式

用例

  • 📊 监控:当系统指标超过阈值时获取警报
  • 🚀 部署:CI/CD管道完成时的通知
  • 📈 分析:带有图表和数据文件的日报/周报
  • 🔍 错误跟踪:带有错误截图的即时通知
  • 📅 调度:附有文件的提醒
  • 💬 客户支持:向媒体转发重要信息

发展

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Build for production
pnpm build

# Run linting
pnpm lint

# Run type checking  
pnpm typecheck

配置示例

克劳德桌面

{
  "mcpServers": {
    "telegram-notifier": {
      "command": "telegram-notifier",
      "env": {
        "TELEGRAM_BOT_TOKEN": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz",
        "TELEGRAM_CHAT_ID": "-1001234567890"
      }
    }
  }
}

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果需要,添加测试
  5. 跑 pnpm lint 和 pnpm typecheck
  6. 提交拉取请求

许可证

WTFPL-做他妈的你想做的事公共许可证