apex-freen/apex-mcp-bridge

GitHub: apex-freen/apex-mcp-bridge

Apex MCP Bridge 是一个纯本地部署的 AI 原生边缘 MCP 控制器,通过统一入口和安全授权机制将 AI Agent 与物联网设备和网络服务安全连接。

Stars: 0 | Forks: 0

[Screenshot: Admin Dashboard — to be added]

**Apex MCP Bridge** 是一个 AI 原生的边缘 hub,作为 AI agent 访问物理世界的**核心控制层**。它将所有兼容 MCP 的 agent 客户端(TRAE、WorkBuddy、Codex、Claude Code、Cursor 等)连接在一端,将所有物理设备和网络服务(灯光、音箱、机器狗、NAS、打印机、数据库、ERP 等)连接在另一端——充当**统一的 MCP 智能控制器**。 通过 Docker 部署,它可以在任何支持 Docker 的设备(NAS、服务器、树莓派、PC)上运行,实现零硬件依赖。 ## 💎 核心亮点 | 🔐 五层安全 | 🎯 1 个统一 MCP 入口 | 🚀 0 硬件依赖 | |:---:|:---:|:---:| | Token + 权限 + TTL + 防绕过 + 限流 | 所有设备与服务汇聚,agent 只能看到 **1 个工具** | 任何设备上的 Docker — NAS、树莓派、服务器、PC | | AI 看不到的东西,它永远无法触碰 | 恒定的 token 消耗,零幻觉膨胀 | 3 分钟部署,无需硬件 | ## 🧠 核心理念:大脑与手,零信任架构 **一句话概括:Agent 思考,Bridge 执行,人类授权。** | 角色 | 职责 | 拥有 | 不拥有 | |:---:|---|---|---| | 🤖 Agent | 生成意图 | 大脑(推理) | 任何密钥或权限 | | ✋ Bridge | 验证 + 执行 + 审计 | 设备与服务控制权 | 大脑(绝不自行决定) | | 👤 人类 | 定义授权边界 | 最终决策权 | — | ## ✨ 为什么选择 Apex MCP Bridge 2026 年初的“龙虾事件”导致 27 万个 AI agent 实例同时在线——删除电子邮件、泄露隐私,并在公共互联网上被扫描。如果这发生在企业场景中:任何 AI 都能开门、机械臂被未经授权的命令控制、营销 agent 访问研发数据——后果将不堪设想。 Apex MCP Bridge 提供: | 问题 | 解决方案 | |---------|----------| | AI agent 缺乏访问控制 | **五层安全** — token + 权限 + TTL + 防绕过 + 限流 | | N 台设备 + M 个服务 = N+M 个 MCP 工具淹没上下文 | **工具汇聚** — 所有服务汇聚到 **1 个 MCP 入口**,基于 token 的权限过滤 | | 连接设备与服务的门槛高 | **双开源框架** — 硬件 (ESP32-S3/C3) + 插件引擎,通过 AI agent 生成代码 | | 数据隐私与合规担忧 | **纯本地架构** — 数据从不离开局域网,满足 GDPR 要求 | ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ AI Agent Clients │ │ (TRAE · WorkBuddy · Claude Code · Cursor · Codex · ...) │ └─────────────────────────────┬───────────────────────────────────┘ │ MCP Protocol ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Apex MCP Bridge (Rust) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ 5-Layer │ │ Tool │ │ MCP ↔ MQTT / Plugin │ │ │ │ Security │ │ Convergence│ │ Protocol Translation │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │ Token │ │ Audit │ │ Plugin Engine │ │ │ │ Management │ │ Center │ │ (auto-discovery) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ └───────────┬───────────────────────────────┬─────────────────────┘ │ MQTT │ Plugin (stdin/stdout) ▼ ▼ ┌──────────────────────┐ ┌──────────────────────────────────┐ │ IoT Devices │ │ Network Services │ │ (ESP32-S3/C3 · │ │ (NAS · DB · Printer · ERP · │ │ Lights · Speakers · │ │ CRM · WebDAV · FTP · ...) │ │ Robot Dogs · ...) │ │ │ └──────────────────────┘ └──────────────────────────────────┘ ``` ## 🚀 快速开始 本项目基于纯 Docker 部署——所有环境和依赖均打包在镜像中。 ### 端口 | 端口 | 用途 | |---|---| | `8018` | Web 管理面板 + MCP Server endpoint | | `1883` | MQTT 设备接入端口 | ### 前置条件 - 任何支持 Docker 的设备(NAS、服务器、树莓派、PC) - 已安装 Docker & Docker Compose - 确保上述端口可用 - 防火墙允许 `8018/tcp` 和 `1883/tcp` 通信 ### 部署步骤 **第 1 步:准备 docker-compose.yml** 创建一个项目目录,并从仓库根目录复制 `docker-compose.yml`: ``` mkdir -p apex-mcp-bridge && cd apex-mcp-bridge # 复制 docker-compose.yml 到当前目录 ``` **第 2 步:配置 HOST_HOSTNAME(必填)** 编辑 `docker-compose.yml`,找到 `HOST_HOSTNAME` 环境变量,并将其设置为您设备的**局域网 IP** 或**主机名**: ``` environment: - HOST_HOSTNAME=192.168.1.100 # Change to your device LAN IP or hostname ``` **第 3 步:启动** ``` docker compose up -d ``` 等待 1-3 分钟以拉取镜像并启动容器。 ### 访问 打开浏览器并访问:`http://:8018` **默认凭证:** - 用户名:`admin` - 密码:`admin123` 🖼️ **截图占位符**:登录页面及成功登录后的管理面板。 ### 系统设置流程 ``` 1. Create Users → User Management 2. Add Devices/Plugins → Plugin Management + Device Management 3. Issue Tokens → MCP Token Management + MCP Permission Management 4. Connect Agents → MCP Endpoint (http://:8018/mcp) 5. Audit Everything → Audit Center ``` ## 🔌 插件安装 插件可将任何网络服务转换为 MCP 工具。示例:SMB 文件插件。 1. 从插件仓库下载一个插件文件夹: 2. 将插件文件夹复制到 `./data/service-plugins/` 中 3. Bridge 会自动检测并动态加载它——**无需重启** ## 🔧 核心功能 ### 五层安全系统 | 层级 | 机制 | 防御对象 | |-------|-----------|-----------------| | ① Token 认证 | 每个请求都必须携带有效的 token | 未经授权的 agent 甚至无法看到设备列表 | | ② 权限检查 | 与 Token 绑定的细粒度权限(设备/功能级别) | 仅允许控制已授权的设备/功能 | | ③ TTL 过期 | Token 级别的 TTL,秒级撤销 | 被盗用的 token 可以立即失效 | | ④ 防绕过 | 对所有 MCP 请求进行统一的验证通道 | 阻止直接使用设备 ID 构造调用 | | ⑤ 限流 | Token/设备/功能三维节流 | 防止 AI 幻觉循环和暴力探测 | ### 工具汇聚(独特创新) | 维度 | 传统直接 MCP | Apex MCP Bridge | |-----------|------------------------|-----------------| | Agent 可见的工具 | N + M(全部暴露) | **1**(统一入口) | | 每次对话的 token 消耗 | 随设备数量线性增长 | **恒定**(与设备无关) | | 无权限的设备 | 暴露在工具列表中,依赖模型“自律” | **完全不可见** | | 幻觉风险 | 工具越多风险越高 | **大幅降低** | ### 系统模块 | 模块 | 功能 | |--------|-----------| | **审计中心** | 审计统计面板、操作审计日志、授权审计、token 审计 | | **用户管理** | 创建/禁用/删除系统用户 | | **设备管理** | 已注册的 IoT 设备、在线状态、能力列表 | | **插件管理** | 安装/卸载/启用/禁用插件,每个插件 = 一组 MCP 工具 | | **MCP 权限管理** | 将工具/设备绑定到 token,实现细粒度的“谁能做什么”控制 | | **MCP Token 管理** | 创建/续期/撤销具有 TTL 的 agent 访问 token | | **系统设置** | 端口、日志级别、HOST_HOSTNAME 等 | ## 🧩 相关项目 | 项目 | 描述 | 链接 | |---------|-------------|------| | **apex-mcp-bridge** | 核心项目(本仓库) | [GitHub](https://github.com/apex-freen/apex-mcp-bridge) | | **apex-mcp-service-plugins** | 插件生态 — 通过服务能力扩展 Bridge | [GitHub](https://github.com/apex-freen/apex-mcp-service-plugins) | | **apex-mcp-esp32-s3-v6** | 硬件框架 (ESP32-S3) — 开源芯片模板 | [GitHub](https://github.com/apex-freen/apex-mcp-esp32-s3-v6) | | **apex-mcp-esp32-c3-v6** | 硬件框架 (ESP32-C3) — 开源芯片模板 | [GitHub](https://github.com/apex-freen/apex-mcp-esp32-c3-v6) | ## ⚠️ 安全提示 - **初始密码安全**:数据库密码和管理员密码均设为简单的默认值,仅供快速评估使用。**请在首次部署后立即更改以下密码以提高密码复杂度**: - 数据库密码:修改 `docker-compose.yml` 中的 `MARIADB_ROOT_PASSWORD` 和 `MARIADB_PASSWORD`(修改后需重启容器) - 管理员密码:登录管理面板后,在用户管理中更改 `admin` 用户的密码(当前默认为:`admin123`) - **插件安全**:插件会在您的主机上执行任意 Python 代码。请仅安装来自官方仓库或您完全信任的来源的插件。如果您从非官方渠道获取了插件且不理解其代码,**请勿使用**——它可能包含恶意逻辑。 - **网络暴露**:Bridge 专为局域网部署而设计。如需远程访问,请使用 VPN 或安全隧道,而不是将端口直接暴露在互联网上。 ## ❓ 常见问题
问:支持哪些 MCP 客户端? 所有兼容 MCP 的客户端:TRAE、WorkBuddy、Codex、Claude Code、Cursor,以及任何实现了 Model Context Protocol 的客户端。
问:可以在没有 Docker 的情况下运行吗? Docker 是官方支持并推荐的部署方式。高级用户可以直接进行二进制部署,但这不在官方文档范围内。
问:如何将新服务添加为 MCP 工具? 有两种方式: 1. **插件**:如果已有现成的插件,只需将其复制到 `service_plugins/` 目录中 2. **自定义插件**:使用标准的插件框架,向 AI agent 描述您的服务,它会为您生成插件代码
问:支持哪些硬件设备? 官方支持:带有开源硬件框架模板的 ESP32-S3 和 ESP32-C3。任何支持 MQTT 的设备都可以通过自定义固件进行集成。
问:我的数据会离开局域网吗? 不会。Apex MCP Bridge 采用纯本地架构——所有数据都保留在您的网络中。Bridge 绝不会进行外部通信或上传任何数据。
问:开发插件我需要什么技能? **极低门槛:基础的 Python + 描述您需求的能力。** 插件框架处理了所有的样板代码——输入 schema、通信协议、错误处理和响应格式。您可以: - **零代码方式**:向 AI agent 描述服务(“我需要一个 WebDAV 插件”),它会为您生成代码 - **基础 Python**:如果 AI 生成的结果需要调整,可以微调现有插件或编写简单的处理程序 - **高级开发**:针对复杂服务进行全面的自定义插件开发 核心技能是知道您想暴露*什么*服务——而框架会处理*如何*去做。
问:插件需要什么版本的 Python? 插件处理器要求 **Python ≥ 3.10**。Docker 镜像自带兼容的 Python runtime,因此如果您通过 Docker 部署,则无需担心此问题。如果在本地开发,请确保您的 Python 版本满足此要求。
问:如何升级到新版本? ``` # 1. 拉取最新镜像 docker-compose pull # 2. 重启容器(保留 volumes 中的所有数据) docker-compose up -d ``` 您的配置、插件、设备、token 和审计日志都存储在 Docker volumes (`./data/`) 中,并且**在升级后会保留**。小版本更新无需迁移步骤。对于大版本升级,请查看发布说明以获取任何特定指示。
问:它能处理多少台设备?性能如何? 单个 Apex MCP Bridge 实例可以轻松处理: - 通过 MQTT 连接的 **100 多台 IoT 设备** - **50 多个活跃插件**(网络服务) - 多个 AI agent 同时发出的**并发 MCP 请求** 其 Rust 核心经过高度优化且轻量化——在正常负载下仅占用约 30-50 MB 的内存。在树莓派 4B 上,它每秒可以处理数百次 MCP 工具调用。对于更大规模的部署(数千台设备),您可以运行多个 Bridge 实例并共享配置。

由 Apex MCP Bridge 团队用 ❤️ 构建

标签:AI智能体, Docker, MCP协议, Rust, 可视化界面, 安全防御评估, 本地部署, 物联网控制, 网络流量审计, 请求拦截, 边缘计算, 逆向工具