mcp-bbs MCP 服务器实现

使用说明 这是一个将 MCP (Model Context Protocol) 服务端能力落地到 BBS 场景的实现。服务器通过 MCP 提供一组工具接口,LLM 客户端可通过 JSON-RPC 调用这些工具来建立 Telnet 连接、读取屏幕、发送按键、管理会话等,同时内置学习引擎用于自动发现提示/菜单并维护知识库。 以下内容帮助你快速了解、安装、配置与使用该 MCP 服务器。

  • 项目简介

    • 将 BBS 的 Telnet 会话抽象为 MCP 服务端,向 LLM 客户端暴露一组可远程调用的工具(如连接/断开、读取屏幕、发送按键、设置大小、日志记录等)。
    • 提供多会话管理、日志记录(JSONL)、自动学习(提示规则、菜单规则、自动发现菜单)、知识库目录结构等能力。
    • 支持通过多种传输方式与客户端交互(如 STDIO、WebSocket、SSE 等,实际实现基于 FastMCP 框架)。
    • 服务端负责会话管理、能力声明、以及对 BBS 的 Telnet 协议交互和屏幕渲染。
  • 主要功能点

    • MCP 工具暴露:bbs_connect、bbs_read、bbs_read_until_nonblank、bbs_read_until_pattern、bbs_send、bbs_disconnect 等,用于控制 BBS 会话、读取屏幕、等待提示、发送按键等。
    • Telnet/BBS 互动:内置 TelnetTransport 实现对 BBS 的 Telnet 连接、NAWS/TTYPE 等协商与 IAC 转义处理。
    • 会话管理:SessionManager 支持创建、复用、关闭多会话,含最大会话数限制。
    • 局部学习与知识库:LearningEngine 与 Learning 相关模块实现菜单/提示的自动发现、记录到知识库(Markdown 形式),支持自定义规则。
    • 日志与追踪:SessionLogger 将会话事件写入 JSONL 日志,包含原始屏幕快照与原始字节数据,便于回放与调试。
    • Keepalive 与稳定性:内置 Keepalive 逻辑,避免空闲导致的断开。
    • 场景复现与回放:提供 replay 和 raw_replay 等工具,方便对话记忆和回放分析。
  • 安装步骤

    1. 安装依赖与源码
      • 需要 Python 3.11 及以上环境。
      • 将仓库克隆到本地并安装开发模式:
        • 使用常规方法安装:pip install -e .
        • 或者按项目提供的开发安装步骤进行:uv pip install -e ".[dev]"(若你使用该工具进行环境搭建)。
    2. 启动 MCP 服务器
      • 直接以 MCP 服务器方式运行
        • 以命令行启动 mcp-bbs(前提是可执行入口在环境 PATH 中)。
        • 或按需求以其他方式启动,如通过 FastMCP 框架的配置启动。
    3. MCP 客户端连接配置
      • MCP 客户端需要知道该服务器的启动命令及其参数,以便通过 JSON-RPC 调用其工具。通常配置如下(无需在服务器端包含代码块,只作为配置描述):
        • server name: mcp-bbs
        • command: mcp-bbs
        • args: []
        • 说明:这是客户端需要调用的服务端的可执行命令和参数。实际连接类型由客户端决定(如 STDIO、WebSocket 等)。
  • 服务器配置(MCP 客户端使用的配置示例描述)

    • 服务器名称:mcp-bbs
    • 启动命令:mcp-bbs
    • 参数(如需):[](默认使用项目提供的默认行为)
    • 说明:MCP 客户端需要的最小配置信息是在其配置中注册一个名为 mcp-bbs 的服务器条目,指向该服务器的启动命令和参数。客户端会通过该信息建立 JSON-RPC 通道并调用暴露的工具。
  • 基本使用方法

    • 连接与操作
      • 启动后,MCP 客户端通过 JSON-RPC 调用内置工具,例如 bbs_connect,提供 host、port、cols、rows、term、send_newline、reuse 等参数,建立对某个 BBS 的 Telnet 会话。
      • 通过 bbs_read/bbs_read_until_pattern 等方法获取屏幕快照,LLM 根据屏幕内容进行下一步决策。
      • 使用 bbs_send 发送按键,继续浏览菜单、进入对话。
      • 通过 bbs_disconnect 断开会话。
    • 学习与知识库
      • 调用 bbs_auto_learn_enable/Prompts/Menus/Discover 来开启并配置自动学习规则,系统会将发现的菜单、提示记录到知识库(Markdown 文件)。
    • 日志与回放
      • 启用日志(bbs_log_start),收集会话数据后可停用(bbs_log_stop),日志以 JSONL 形式存放,便于回放与分析。
    • 运行与扩展
      • 服务器设计支持多会话、拓展到其他传输协议(如 SSE、WebSocket)及未来的 SSH 传输实现。
      • 客户端通过 MCP 标准 JSON-RPC 调用完成统一的后端交互。

服务器信息