Token导航 LogoToken导航TokenDH.com
MCP Bridge Stack logo
运维云端未说明官方级别未说明来源级核验

MCP Bridge Stack

MCP Server

一个模块化的本地插件系统,使AnythingLLM能够与运行在隔离Docker容器中的多个MCP服务器通信,提供单一、安全的HTTP访问点。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
PythonClaudeDocker容器Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

danny0094

提供方

danny0094

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🧩 AnythingLLM本地MCP框架

一个模块化的本地插件系统,能够 任何事情LLM 与多人沟通 MCP服务器 在隔离的Docker容器中运行。\ 它提供了一个单一的、安全的HTTP接入点,同时保持每个MCP完全沙盒化和独立。

______________________________________________________________________

安装:

git clone https://github.com/danny0094/mcp-bridge-stack cd mcp-bridge-stack docker compose up -d docker ps

🚀 概述

该框架通过以下方式扩展了AnythingLLM 克劳德喜欢本地MCP环境,完全使用Docker容器构建。

✨ 特性

  • 安全清洁: Docker中没有主机或Docker访问。
  • 模块化: 每个MCP都在自己的轻量级FastAPI容器中运行。
  • 桥梁控制: LLM只与 mini-bridge,从不直接使用MCP。
  • 动态注册表: MCP服务器从以下位置自动加载 mcp_registry.json.
  • 自动重新加载: 配置更改是实时应用的,不需要重新启动容器。
  • MCP示例: 包含 Dummy-MCP (握手测试)和工作 MCP-Time 模块返回系统时间。

______________________________________________________________________

🧠 架构图

───────────────────────────────────────────────
Docker Network: danny-ai-net
───────────────────────────────────────────────
│
├─ anythingllm  (Port 3001)
│     ↳ Main app (UI + chat logic)
│     ↳ Sends all queries → mini-bridge
│
├─ mini-bridge  (Port 4100)
│     ↳ Central gateway between AnythingLLM and all MCPs
│     ↳ Routes requests via Decision Model
│     ↳ Auto-reloads mcp_registry.json dynamically
│
│     Workflow:
│        User → AnythingLLM → mini-bridge
│              ├─→ Decision-Agent (/route)
│              │      ↳ Decides which MCP to call
│              │      ↳ Returns JSON { "tool": "time" }
│              └─→ Forwards to chosen MCP via MCP-Hub
│
├─ decision-agent (prompt_injector)  (Port 4300)
│     ↳ Lightweight model (Gemma 270M)
│     ↳ Analyses prompt context
│     ↳ Decides when to trigger MCP calls
│     ↳ Responds with structured tool decision
│
├─ mcp-hub  (Port 4400)
│     ↳ Central registry + router for all MCP modules
│     ↳ Provides endpoints:
│          • /list – list all MCPs
│          • /status/ – health check
│          • /route – forward via hub
│
├─ dummy-mcp  (Port 4200)
│     ↳ Test MCP – returns handshake / status info
│
├─ mcp-time  (Port 4210)
│     ↳ Returns current UTC or local time via JSON-RPC
│
└─ (future) mcp-docs / mcp-weather / ...
      ↳ Extend system modularly – new MCPs auto-register in hub
───────────────────────────────────────────────
│
└─ Dual Model Flow:
       Decision Model  🧭 (Gemma 270M) → Tool choice
       Main Model      🧠 (Gemma 12B / DeepSeek 8B) → Reasoning + response
───────────────────────────────────────────────

______________________________________________________________________

⚙️ 文件概述

mini_bridge.py

核心网关组件将AnythingLLM请求转发到相应的MCP。

REGISTRY_PATH = "/app/config/mcp_registry.json"
CHECK_INTERVAL = 3  # seconds for auto reload

此文件从以下位置动态加载所有活动的MCP服务器 config/mcp_registry.json.

决策转发:

decision = await client.post("http://decision-agent:4300/route", json=payload)
route = decision.json().get("tool", "dummy")  # fallback

这定义了网桥如何与决策代理通信(例如端口4300)。

______________________________________________________________________

mini_prompt_injector.py

作为 决策模型代理它拦截消息并确定应触发哪个MCP。

环境变量:

OLLAMA_URL = os.getenv("OLLAMA_URL", "http://ollama:11434/api/chat")
MCP_HUB_URL = os.getenv("MCP_HUB_URL", "http://host.docker.internal:4000")
  • OLLAMA_URL → 您的Ollama服务器(必须以结尾 /api/chat)
  • MCP_HUB_URL → MCP集线器访问的内部URL(同一网络)

型号配置:

DECISION_MODEL = "gemma3:270m"
ANSWER_MODEL   = "gemma3:12b"
  • 决策模型 → 选择正确的MCP工具。
  • 答案模型 → 生成最终推理和响应。

系统提示:\ 可自定义的提示会自动传递给答案模型。\ 使用它来定义行为规则、语气或响应格式。

______________________________________________________________________

mcp_hub.py

连接所有MCP服务器的中央注册表和路由器。

添加新的MCP容器时,只需扩展 TOOLS 字典:

TOOLS = {
    "time": os.getenv("MCP_TIME_URL", "http://host.docker.internal:4210/"),
    "weather": os.getenv("MCP_WEATHER_URL", "http://host.docker.internal:4220/"),
    "docs": os.getenv("MCP_DOCS_URL", "http://host.docker.internal:4230/")
}

每个新条目都会添加一个可通过以下方式查看的实时MCP端点 /list/status.

______________________________________________________________________

🧩 双模系统

图层模型角色描述
🧭 决策层Gemma 3 270M路由/工具选择分析提示上下文并决定调用哪个MCP
🧠 主层Gemma 3 12B/DeepSeek R1 8B推理/响应生成面向用户的最终答案

______________________________________________________________________

💡 示例用例

“现在多晚了?”→ 任何事情LLM→ 迷你桥→ 决策代理人→ MCP时间→ 通过主模型返回的响应。

______________________________________________________________________

🧱 未来模块

您可以使用更多MCP轻松扩展系统:

  • mcp-weather → 获取本地天气数据
  • mcp-docs → 处理文档搜索
  • mcp-audio → 转录或处理语音输入

每个额外的MCP只需要:

  1. 它自己的小型FastAPI容器。
  2. 报关进口 mcp_registry.jsonmcp_hub.py.
  3. 网络标签在 docker-compose.yml.

______________________________________________________________________

🧰 信用证和票据

建造于 丹尼 (2025)作为模块化AI实验的AnythingLLM本地扩展。\ 灵感来自Claude的MCP设计,但完全为本地离线使用而打造。

______________________________________________________________________

📄 *有关文档或更新,请访问该项目的GitHub页面。*

目录标签

目录标签

PythonClaudeDocker容器模块化本地部署本地插件系统MCP服务器HTTP访问点

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP