Straight Connect MCP 服务端(Telegram 集成)

使用说明(Markdown格式)

  • 项目简介

    • 这是一个基于 MCP 的服务器实现,核心职责是为 LLM 客户端提供上下文信息、工具调用和跨账户的交互能力。当前实现聚焦 Telegram 服务,支持按账户配置不同的工具级别、允许的聊天与用户白名单等,具有按账户分离的接口端点和动态工具注册能力。
  • 主要功能点

    • MCP 服务端实现:通过 FastMCP 提供 JSON-RPC 风格的接口和可扩展的工具注册机制。
    • 动态服务注册:基于环境变量配置 Telegram 账户,按账户加载并注册相应的工具集。
    • 账户级路由与会话上下文:通过 ASGI 中间件将 /mcp/<service>/<account> 路径映射到内部处理,并使用上下文变量传递账户信息。
    • 工具分级访问控制:按账户最大工具等级决定注册的工具集合,调用时再做账户级别检查。
    • 安全与限制:对聊天和用户进行可选的白名单限制,未配置则默认允许。
    • 外部服务接入:通过 Telegram Bot API 封装实现大量 Telegram 功能的工具。
  • 安装步骤

      1. 将代码部署到可运行的环境中(支持 Docker Compose)。
      1. 配置 Telegram 账号及令牌等环境变量(参见 .env.example)。
      1. 启动服务:
      • 使用 Docker Compose: docker compose up --build -d
      1. 验证服务是否正在运行:
      • 查看日志:docker compose logs mcp
      1. 访问接口(示例账户):
      • http://localhost:9831/mcp/telegram/nietzsche
      • http://localhost:9831/mcp/telegram/aurelia
  • 服务器配置(供 MCP 客户端参考,不包含代码) 说明:MCP 客户端需要知道服务器的启动命令与参数,以便在本地或云端启动并连接到 MCP 服务器。下列信息基于仓库提供的运行方式与配置约定。

    • 服务器部署与连接信息(基于仓库的配置与示例)

      • 若要为 Nietsche 账户启用 Telegram 服务,服务器名称为 nietzsche,端点地址为 http://localhost:9831/mcp/telegram/nietzsche
      • 若要为 Aurelia 账户启用 Telegram 服务,服务器名称为 aurelia,端点地址为 http://localhost:9831/mcp/telegram/aurelia
    • 启动命令与参数(不以代码块形式呈现,便于直接复制到配置管理工具)

      • Nietsche 账户
        • server 名称:nietzsche
        • 启动命令(command):docker
        • 启动参数(args):compose up --build -d
        • 注释:使用 Docker Compose 构建并在后台启动服务,服务中已通过 .env 变量配置 Telegram 账户及相关权限。
      • Aurelia 账户
        • server 名称:aurelia
        • 启动命令(command):docker
        • 启动参数(args):compose up --build -d
        • 注释:同上,为另一账户开启单独的服务实例,确保账户间工具命名空间分离。
  • 基本使用方法

    • 客户端通过 JSON-RPC 调用与管理工具,示例工作流:
      • 连接 MCP 服务器,获取账户可用工具清单。
      • 选择账户后在 LangChain/ReAct 等流程中调用具体工具(如 telegram_send_message、telegram_get_updates 等)。
      • 调用时会经过账户级别的权限检查与可选的聊天/用户白名单过滤。
    • 多账户场景下,工具名称通常带有账户前缀以便区分,例如 nietzsche_telegram_send_message、aurelia_telegram_get_updates。
    • 服务器端会将来自不同账户的请求路由到对应的 Telegram 令牌与权限配置,保障账户之间的隔离与访问控制。
  • 运行与调试要点

    • 确保 .env(或 .env.example)中的 TELEGRAM_ACCOUNTS、包括各账户的 BOT_TOKEN、LEVEL、ALLOWED_CHATS、ALLOWED_USER_IDS 等正确配置。
    • 确保 MCP_PORT 默认为 9831,且本地端口未被占用。
    • 通过 /_mcp 路径进行内部路由,URL 路径示例:
      • /_mcp/telegram/nietzsche
      • /_mcp/telegram/aurelia
    • 若要查看可用工具,请启动并运行 list_tools 脚本(仓库中实现了工具枚举逻辑,便于调试与验证)。

服务器信息