这是一个早期的开发版本,还没有即插即用。你需要熟悉Docker网络和存储映射。
🧩 AnythingLLM MCP HTTP网桥
AnythingLLM的轻量级HTTP桥,通过Docker安全地连接多个本地MCP服务器。\ 一种干净、模块化和安全的方式来运行多个MCP服务器,而无需在Docker中使用Docker或直接生成进程。

______________________________________________________________________
🚀 概述
这座桥允许 任何事情LLM 与多人沟通 MCP服务器 在隔离的Docker容器中。\ 它提供了一个单一的、安全的HTTP入口点,同时保持每个MCP完全沙盒化。
✅ 主要特点
- 🔒 安全清洁: Docker中没有主机或Docker访问。
- 🧱 模块化: 每个MCP都在自己的容器中运行,并带有一个小型FastAPI服务器。
- 🌐 桥梁控制: LLM只与桥对话(
mini-bridge),永远不要直接联系MCP。 - ⚙️ 动态注册表: MCP服务器从以下位置自动加载
mcp_registry.json. - ♻️ 自动重新加载: 网桥实时重新加载配置更改,而无需重新启动容器。
- 🕒 MCP示例: 包括a
Dummy-MCP用于测试和工作MCP-Time模块返回系统时间。
______________________________________________________________________
🧠 建筑
───────────────────────────────
Docker Network: test-net
───────────────────────────────
│
├─ anythingllm (Port 3001)
│ ↳ Main app – talks only to mini-bridge
│
├─ mini-bridge (Port 4100)
│ ↳ Forwards JSON-RPC requests to registered MCPs
│ ↳ Reloads mcp_registry.json dynamically
│
├─ dummy-mcp (Port 4200)
│ ↳ JSON-RPC test MCP returning handshake info
│
└─ mcp-time (Port 4210)
↳ Returns current UTC time
───────────────────────────────______________________________________________________________________
⚙️ 快速设置
git clone https://github.com/yourname/anythingllm-mcp-http-bridge.git
cd anythingllm-mcp-http-bridge
docker compose up --build桥接日志输出:
[Bridge] Registry reloaded: ['dummy', 'time']
[Bridge] Default route → dummy (200)然后打开AnythingLLM→ MCP设置→\ 添加新服务器: http://mini-bridge:4100
______________________________________________________________________
📜 MCP注册表示例
mini_bridge/config/mcp_registry.json
{
"autoReload": true,
"servers": [
{
"id": "dummy",
"name": "Dummy MCP",
"url": "http://dummy-mcp:4200",
"type": "streamable",
"enabled": true
},
{
"id": "time",
"name": "Time MCP",
"url": "http://mcp-time:4210",
"type": "streamable",
"enabled": true
}
]
}______________________________________________________________________
🧩 可用的MCP模块
| MCP | 描述 | 示例调用 |
|---|---|---|
| 虚拟MCP | 最小测试服务器,响应 initialize, ping等等。 | POST /dummy |
| MCP时间 | 返回当前UTC时间 | tools/call → get_time |
手动测试:
curl -X POST http://localhost:4100/time -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_time"}}'答复:
{"jsonrpc":"2.0","id":1,"result":{"message":"The current time is 18:42:10 UTC"}}______________________________________________________________________
🧩 文件夹结构
├── docker-compose.yml
├── mini_bridge/
│ ├── mini_bridge_v2.py
│ ├── Dockerfile
│ └── config/
│ └── mcp_registry.json
├── dummy_MCP/
│ ├── dummy_mcp.py
│ └── Dockerfile
└── mcp_time/
├── mcp_time.py
└── Dockerfile______________________________________________________________________
🔒 安全
每个MCP服务器都在其 自有集装箱 在私有Docker网络上。\ 这座桥是 只有暴露的界面 并接受 基于HTTP的JSON-RPC --没有别的。
- AnythingLLM无法直接访问容器
- Docker中没有Docker
- 没有shell或文件系统命令
- 仅基于JSON的安全、无状态通信
______________________________________________________________________
🧾 许可证
MIT许可证\ 请随意使用、分叉和构建此项目。\ 查看完整 许可证 文件以获取详细信息。
______________________________________________________________________
💬 开发说明
我将继续改进这个项目,作为我自己的独立解决方案。\ 如果 任何事情LLM 团队认为这个想法很有用,可以自由地在此基础上构建或整合其中的部分内容。
到目前为止,工具输出仍然以原始格式返回,而不是完全格式化的聊天回复——一旦完善,公共版本将随之而来。
______________________________________________________________________
🌟 鸣谢
由...创建 丹尼\ 内置❤️ 使用FastAPI、Docker和好奇心。
