项目简介

"BambiSleep™ 教堂 MCP 控制塔" 是一个强大的应用后端,旨在通过模型上下文协议 (MCP) 为大型语言模型 (LLM) 提供丰富而标准化的上下文信息和功能。它不仅能编排和管理多种预设的 MCP 服务器(如文件系统、Git、GitHub、MongoDB 等),还特别集成了一个自定义的“教堂”MCP 服务器。这个独特的服务器允许 LLM 客户端通过 JSON-RPC 协议直接控制和交互一个实时渲染的 Unity 3D 赛博哥特风格虚拟教堂,实现动态视觉风格调整、对象生成、物理效果模拟、时间光照变化等功能。

主要功能点

  • MCP 服务器编排: 统一管理8个或更多 MCP 服务器的生命周期(启动、停止、重启),进行健康监控并支持故障自重启。
  • Unity 3D 虚拟教堂控制: 提供一套独特的 MCP 工具集,允许 LLM 客户端实时操纵一个由 Unity 渲染的霓虹赛博哥特风格虚拟教堂。
  • 实时风格调整: 通过 MCP 工具动态修改教堂的霓虹强度、赛博哥特等级、灯光模式等视觉参数。
  • 互动对象生成与物理模拟: LLM 可以指令在教堂场景中生成球体、方块、十字架、天使等对象,并对其施加爆炸、吸引、排斥、漂浮等物理效果。
  • 时间与环境控制: 改变教堂场景的昼夜循环,调整环境光照和视觉特效(如霓虹闪烁、核能脉冲)。
  • 高性能与测试保障: 采用 Node.js 实现,拥有 100% 的单元测试覆盖率和健壮的错误处理机制。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/HarleyVader/js-bambisleep-church.git
    cd js-bambisleep-church
  2. 安装 Node.js 依赖:
    npm install
  3. 配置环境变量: 复制 '.env.example' 为 '.env' 文件:'cp .env.example .env'。 根据需要编辑 '.env' 文件,填入必要的 API 密钥(如 GitHub Token、MongoDB 连接字符串等),以启用对应的 MCP 服务器。 若要启用 Unity 虚拟教堂功能,请确保 '.env' 文件中没有设置 'UNITY_ENABLED=false',并根据你的 Unity 编辑器安装路径配置 'UNITY_PATH' 变量。
  4. 运行测试 (可选):
    npm test
  5. 启动开发服务器:
    npm run dev  # 开发模式,带自动重载
    # 或者
    npm start    # 生产模式
  6. 检查 MCP 服务器状态:
    npm run mcp:status

MCP 客户端配置

该控制塔作为一个 MCP 服务器的编排平台,其自身并不是一个提供资源、工具、Prompt 模板的 MCP 服务器。它管理着多个 独立的 MCP 服务器,例如 'bambisleep-cathedral'。

因此,LLM 客户端需要连接到 'bambisleep-cathedral' 这个 MCP 服务器。该服务器通过 STDIO 协议进行通信,通常由 'bambisleep-church' 控制塔在后台启动和管理。

以下是 MCP 客户端 连接到 bambisleep-cathedral MCP 服务器的示例配置信息及参数注释。请注意,MCP 客户端不需要直接运行命令,它只需要这些配置来知道如何与 'bambisleep-cathedral' MCP 服务器通信。

{
  "mcp.servers": {
    "bambisleep-cathedral": {
      // 用于识别此 MCP 服务器的唯一名称。
      "name": "bambisleep-cathedral",
      // 指示该 MCP 服务器使用标准输入/输出 (STDIO) 协议进行通信。
      // MCP 客户端会通过父进程与子进程的 STDIO 流进行通信。
      "transport": "stdio",
      // 启动 bambisleep-cathedral MCP 服务器所需的命令。
      // 这个命令由 MCP 客户端或控制塔在后台执行,以启动与 Unity 交互的服务。
      "command": "node",
      // 启动命令的参数。
      // 这里指向了 bambiSleep-church 仓库内部的 cathedral-server.js 脚本。
      "args": [
        "./src/mcp/cathedral-server.js"
      ],
      // (可选)对该 MCP 服务器功能的简要描述。
      "description": "通过 Unity 实时渲染和控制的霓虹赛博哥特虚拟教堂,提供风格调整、对象生成和物理模拟等工具。",
      // (可选)环境变量,例如指定 Unity 编辑器的路径,如果默认路径不正确,可能需要在 .env 中配置 UNITY_PATH。
      // MCP 客户端通常不需要此项,因为这是底层 UnityBridge 的配置。
      "env": {
        "UNITY_PATH": "/opt/unity/Editor/Unity" // 示例,请替换为实际路径
      }
    }
    // 您可以根据需要在此处添加其他由 BambiSleep™ Control Tower 编排的 MCP 服务器配置,例如:
    // "filesystem": {
    //   "name": "filesystem",
    //   "transport": "stdio",
    //   "command": "npx",
    //   "args": [
    //     "-y",
    //     "@modelcontextprotocol/server-filesystem",
    //     "/your/workspace/path"
    //   ],
    //   "description": "提供文件系统访问和管理工具。"
    // }
  }
}

重要提示: 上述 'mcp.servers' 配置通常由 MCP 客户端或集成环境(如 VS Code MCP 扩展)直接管理。用户不需要手动编辑 'src/mcp/cathedral-server.js' 或直接运行它。'js-bambisleep-church' 控制塔在启动时会根据 '.env' 中的配置自动启动和管理 'cathedral-server.js' 进程。

基本使用方法

一旦“BambiSleep™ 教堂 MCP 控制塔”启动并成功初始化了 'bambisleep-cathedral' MCP 服务器,连接到它的 LLM 客户端就可以开始调用工具了。例如:

  1. 改变教堂风格: LLM 客户端可以调用 'setCathedralStyle' 工具来调整教堂的视觉效果: 'tools.setCathedralStyle({ pinkIntensity: 0.9, eldritchLevel: 800, lightingMode: 'nuclear' })'
  2. 在教堂中生成对象: LLM 客户端可以调用 'spawnObject' 工具来在特定位置生成一个天使: 'tools.spawnObject({ objectType: 'angel', x: 0, y: 15, z: 0, scale: 2.5, color: '#FFD700' })'
  3. 对对象施加物理效果: LLM 客户端可以调用 'applyPhysics' 工具,让教堂内所有对象浮动起来: 'tools.applyPhysics({ action: 'float', x: 0, y: 0, z: 0, force: 50 })'
  4. 查询教堂状态: LLM 客户端可以调用 'getCathedralStatus' 工具来获取当前教堂的风格、对象数量和性能信息: 'tools.getCathedralStatus()'
  5. 更改时间: LLM 客户端可以调用 'setTimeOfDay' 工具来将教堂场景切换到夜晚: 'tools.setTimeOfDay({ hour: 22 })'

这些交互都通过 LLM 客户端与 MCP 服务器之间的 JSON-RPC 协议实现,从而使 LLM 能够以编程方式控制复杂的3D场景。

信息

分类

AI与计算