项目简介
这是一个基于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)的要求。
安装步骤
- 获取代码: 克隆此GitHub仓库到本地。
- 安装依赖: 进入项目目录,运行包管理器命令安装所需库(通常是 'pnpm install' 或 'npm install')。
- 配置凭证:
- 创建Telegram Bot并获取Bot Token (@BotFather)。
- 获取您希望接收通知的Telegram聊天ID。
- 将Bot Token和聊天ID配置到项目环境中。对于Cloudflare Workers,建议使用Cloudflare Secrets进行生产配置,或者使用 '.dev.vars' 文件进行本地开发。
- 部署到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与计算