Telegram Communicator MCP服务器使用说明
项目简介
Telegram Communicator MCP服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,它充当 LLM 客户端和 Telegram 之间的桥梁。通过此服务器,LLM 可以利用预定义的工具,经由 Telegram Bot 与用户进行通信,实现诸如提问、发送通知、文件传输和项目打包等功能。
主要功能点
- 用户交互工具: 提供 'ask_user' 工具,允许 LLM 向 Telegram 用户提问并获取回复。
- 通知功能: 提供 'notify_user' 工具,允许 LLM 向 Telegram 用户发送单向通知消息。
- 文件传输: 提供 'send_file' 工具,允许 LLM 通过 Telegram 向用户发送文件。
- 项目打包与发送: 提供 'zip_project' 工具,允许 LLM 将项目目录(支持 '.gitignore' 规则)打包成 zip 文件并通过 Telegram 发送给用户。
- 异步响应: 对于提问等需要用户响应的工具,服务器支持异步等待用户回复。
- 安全验证: 服务器只处理来自预配置的 Telegram Chat ID 的消息,保障通信安全。
- 易于集成: 符合 MCP 协议标准,可以方便地与支持 MCP 协议的 LLM 客户端集成。
安装步骤
- 安装 Node.js: 确保你的系统已安装 Node.js (v14 或更高版本)。
- 全局安装: 打开终端,运行命令 'npm install -g mcp-communicator-telegram' 全局安装 Telegram Communicator MCP服务器。
- 获取 Telegram Bot Token:
- 在 Telegram 中搜索 @BotFather,按照指示创建一个新的 Bot。
- 复制 BotFather 提供的 API Token。
- 获取 Telegram Chat ID:
- 运行命令 'npx mcptelegram-chatid'。
- 按照提示,向你的 Bot 发送一条消息。
- 在终端中复制显示的 Chat ID。
- 配置环境变量: 你的 MCP 客户端需要配置 'TELEGRAM_TOKEN' 和 'CHAT_ID' 两个环境变量,分别设置为你获取的 Bot Token 和 Chat ID。具体配置方式请参考 MCP 客户端的文档。
服务器配置
要将 Telegram Communicator MCP服务器添加到你的 MCP 客户端配置中,你需要提供服务器名称、启动命令和参数。以下是一个典型的 JSON 配置示例,适用于 'cline_mcp_settings.json' 文件:
{ "mcpServers": { "telegram-communicator": { // 服务器名称,可以自定义 "command": "npx", // 启动命令,这里使用 npx 运行 "args": ["mcptelegram"], // 命令参数,运行 mcptelegram 命令 "env": { // 环境变量 "TELEGRAM_TOKEN": "YOUR_TELEGRAM_BOT_TOKEN", // 替换为你的 Telegram Bot Token "CHAT_ID": "YOUR_TELEGRAM_CHAT_ID" // 替换为你的 Telegram Chat ID } } } }
注意:
- '"server name"' 可以自定义,用于在 MCP 客户端中唯一标识此服务器。
- '"command"' 和 '"args"' 指定了启动 Telegram Communicator MCP服务器的命令。全局安装时可以使用 'npx mcptelegram' 简化命令。
- '"env"' 部分配置了服务器运行所需的环境变量,请务必替换 'YOUR_TELEGRAM_BOT_TOKEN' 和 'YOUR_TELEGRAM_CHAT_ID' 为你实际的值。
基本使用方法
配置完成后,在你的 MCP 客户端中,你可以通过服务器名称 '"telegram-communicator"' 和工具名称来调用 Telegram Communicator MCP服务器提供的工具。例如,要使用 'ask_user' 工具向 Telegram 用户提问,你可以在 MCP 客户端中使用类似以下的调用:
const response = await use_mcp_tool({ server_name: "telegram-communicator", // 配置的服务器名称 tool_name: "ask_user", arguments: { question: "你想了解什么信息?" // 要向用户提出的问题 } }); console.log("用户回复:", response.content[0].text);
更多工具的使用方法和参数说明,请参考仓库的 README 文档或工具的 Input Schema 定义。
信息
分类
通信与社交