项目简介

这是一个基于Model Context Protocol (MCP) 构建的后端服务,部署在Cloudflare Workers上。它允许LLM客户端(例如Anthropic的Claude Code)通过标准的MCP协议调用特定功能,向指定的Telegram聊天发送通知消息。

主要功能点

  • 提供MCP工具: 注册并提供 'send_telegram_message' 工具,用于发送自定义的Telegram消息。
  • 消息格式化: 支持使用Markdown或HTML格式发送Telegram消息。
  • 灵活的目标: 可以发送到预配置的默认聊天ID,或在调用工具时动态指定聊天ID。
  • 无服务器部署: 运行在Cloudflare Workers上,具有全球分发和自动扩缩容能力。
  • 多种传输协议: 支持SSE (Server-Sent Events) 和 Streamable HTTP 两种MCP传输协议。
  • 状态管理: 利用Cloudflare Durable Objects维护会话状态,满足MCP客户端(如McpAgent)的要求。

安装步骤

  1. 获取代码: 克隆此GitHub仓库到本地。
  2. 安装依赖: 进入项目目录,运行包管理器命令安装所需库(通常是 'pnpm install' 或 'npm install')。
  3. 配置凭证:
    • 创建Telegram Bot并获取Bot Token (@BotFather)。
    • 获取您希望接收通知的Telegram聊天ID。
    • 将Bot Token和聊天ID配置到项目环境中。对于Cloudflare Workers,建议使用Cloudflare Secrets进行生产配置,或者使用 '.dev.vars' 文件进行本地开发。
  4. 部署到Cloudflare: 使用Cloudflare的命令行工具Wrangler ('npx wrangler deploy') 将服务部署到您的Cloudflare Workers账户。

服务器配置 (针对MCP客户端)

此项目实现了一个远程MCP服务器,而非在本地通过命令行启动。MCP客户端需要连接到部署在Cloudflare Workers上的服务URL。

您需要提供给MCP客户端的配置信息通常包括:

  • 服务名称: 一个标识此服务的友好名称(例如 'telegram-notify')。
  • 服务URL: 部署后Cloudflare Worker的访问地址。根据您选择的传输协议,URL路径会有所不同,例如:
    • 对于SSE协议:'https://您的worker名称.workers.dev/sse'
    • 对于Streamable HTTP协议:'https://您的worker名称.workers.dev/mcp'
    • (请将 '您的worker名称' 替换为您在Cloudflare中设置的Worker名称)
  • 传输协议: 指定客户端应使用的协议,应与您选择的服务URL路径对应(如 'sse' 或 'http')。

具体的客户端配置格式(如JSON)取决于您使用的MCP客户端工具,请参考您客户端工具的文档来添加此远程MCP服务。

基本使用方法

在您的MCP客户端(如Claude Code)中成功配置并连接到此Telegram通知MCP服务后,LLM就能够调用其提供的 'send_telegram_message' 工具。

您可以通过自然语言指示LLM发送通知(例如:"任务完成后,请发送一条消息到Telegram通知我"),或者在LLM的代码或工具调用逻辑中直接调用此工具。

'send_telegram_message' 工具的主要参数:

  • 'text' (必填): 要发送的消息内容(字符串)。
  • 'chat_id' (可选): 目标Telegram聊天ID(数字或字符串)。如果未提供,将使用服务器配置的默认聊天ID。
  • 'parse_mode' (可选): 消息解析模式,可为 "Markdown" 或 "HTML",用于格式化消息。
  • 'disable_notification' (可选): 布尔值,如果为 'true',则发送静默消息(无通知声音)。

通过调用此工具,LLM可以将处理结果、错误信息、任务进度等信息发送到指定的Telegram聊天,实现与用户的异步沟通和通知。

信息

分类

AI与计算