项目简介

此GitHub仓库名为 'telegram-agent-mcp',它主要实现了一个集成了LLM代理的Telegram Bot。在项目内部,还包含了一个独立的、轻量级的MCP(Model Context Protocol)服务器,名为“Telegram Bot 回复服务”。这个MCP服务器的核心功能是充当一个API接口,允许任何兼容MCP协议的外部系统或LLM客户端,通过调用预定义的工具,来指示您的Telegram Bot向特定用户发送消息。这为需要自动化或集成Telegram消息发送功能的应用程序提供了标准化的接入方式。

主要功能点

  • 外部系统消息触发: 允许任何支持MCP协议的外部应用或LLM客户端,通过调用本服务提供的工具(例如,一个发送消息的工具),触发Telegram Bot向其用户发送消息。
  • 标准化通信接口: 采用JSON-RPC协议进行通信,确保与各种MCP客户端的兼容性和互操作性,简化集成过程。
  • 安全消息发送: 本服务负责处理Telegram Bot的认证和实际的消息发送逻辑,外部客户端无需直接处理Telegram Bot API密钥,增强了安全性。
  • 灵活的部署配置: 可以根据部署环境的需求,灵活配置服务器监听的主机地址和端口。

安装步骤

  1. Python 环境准备: 确保您的系统已安装 Python 3.12 或更高版本。
  2. 安装 'uv' 包管理器: 'uv' 是一个快速的 Python 包管理器。如果您尚未安装,请运行:
    pip install uv
  3. 创建配置文件: 在项目的根目录(即 'telegram-agent-mcp' 文件夹内)创建一个名为 '.env' 的文件。您可以参考仓库中提供的 'env.example' 文件。
  4. 填写环境变量: 在 '.env' 文件中填入以下必需的环境变量。其中 'TELEGRAM_BOT_TOKEN' 是您通过 BotFather 获取的 Telegram Bot 令牌。'REPLY_SERVICE_MCP_HOST' 和 'REPLY_SERVICE_MCP_PORT' 是此MCP服务器监听的地址和端口,可根据需要修改,默认值已提供。
    # Telegram Bot 令牌 (必需)
    TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
    
    # MCP 服务器监听地址 (可选,默认0.0.0.0表示监听所有网络接口)
    REPLY_SERVICE_MCP_HOST=0.0.0.0
    
    # MCP 服务器监听端口 (可选,默认8091)
    REPLY_SERVICE_MCP_PORT=8091
  5. 安装项目依赖: 在项目根目录,运行以下命令安装所有必需的 Python 依赖:
    uv sync

服务器配置(供MCP客户端使用)

如果您的MCP客户端支持通过启动命令来运行MCP服务器,则可以参考以下JSON格式的配置信息。请注意,以下配置中的路径和环境变量值可能需要根据您的实际部署环境和安全策略进行调整。

{
  "mcpServers": {
    "TelegramReplyService": {
      "command": "uv",
      "args": [
        "run",
        "--env-file",
        ".env",
        "python",
        "mcp_servers/reply_service/main.py"
      ],
      "environment": {
        "TELEGRAM_BOT_TOKEN": "your_telegram_bot_token_here",
        "REPLY_SERVICE_MCP_HOST": "0.0.0.0",
        "REPLY_SERVICE_MCP_PORT": "8091"
      }
    }
  }
}
  • 'TelegramReplyService': 这是MCP服务器在客户端配置中的一个逻辑名称,您可以根据实际需求自定义。
  • 'command': 启动服务器所使用的主要命令,此处为 'uv'。
  • 'args': 一个字符串数组,包含了传递给 'uv' 命令的参数。这些参数指示 'uv' 运行 Python 脚本 'mcp_servers/reply_service/main.py',并指定加载 '.env' 配置文件。
  • 'environment': 一个键值对字典,用于在启动MCP服务器进程时设置必需的环境变量。'TELEGRAM_BOT_TOKEN' 是必填项,请务必替换为您的实际 Bot Token。'REPLY_SERVICE_MCP_HOST' 和 'REPLY_SERVICE_MCP_PORT' 如果在 '.env' 中有设置,这里可以覆盖或作为默认值。

请注意: 如果您的MCP客户端只需要连接到一个已经运行的MCP服务器,那么通常只需配置服务器的 'transport' 和 'url'。例如,'"transport": "streamable_http"', '"url": "http://your-server-ip:8091/mcp/"'。上述 'command' 和 'args' 配置主要用于那些需要由客户端程序来启动和管理服务器生命周期的场景。

基本使用方法

  1. 启动 MCP 服务器: 在项目的根目录,打开命令行或终端,运行以下命令启动 Telegram Bot 回复服务MCP服务器:

    uv run --env-file .env python mcp_servers/reply_service/main.py

    服务器成功启动后,其 MCP endpoint 将在 'http://0.0.0.0:8091/mcp/' (或您在 '.env' 中配置的地址和端口)上监听来自 MCP 客户端的请求。

  2. 通过 MCP 客户端调用: 一旦服务器运行,您的 MCP 客户端(例如,一个LLM代理或其他外部应用)可以连接到上述 URL。通过 JSON-RPC 协议,客户端可以调用此服务注册的工具。例如,该服务可能会提供一个用于发送 Telegram 消息的工具(具体工具名称和所需参数,请参考 'mcp_servers/reply_service/main.py' 内部的实现)。您的客户端可以调用此工具,并传入目标用户ID和消息内容,以实现自动化的 Telegram 消息发送。

信息

分类

通信与社交