使用说明
统一MCP堆栈(OrbStack优化)
该项目提供了一个完全容器化、安全和统一的模型上下文协议(MCP)栈,使用 Nginx作为高性能代理。它经过专门优化,可以在其上运行 macOS 苹果芯片 使用 OrbStack,避免了Docker套接字依赖的常见问题。
建筑
该堆栈由在隔离的Docker容器中运行的三个主要服务组成:
- 统一Nginx代理:充当中央网关。它根据URL路径路由流量。
- Context7 MCP服务器:提供文档和代码上下文。
- SearXNG MCP服务器:提供网络搜索功能。
主要特点
- 零端口暴露:所有端口号都被抽象到
.env文件,以获得最大的安全性和灵活性。 - 动态配置:用途
nginx.conf.template在启动时自动注入环境变量。 - 零Docker套接字依赖:代理不需要
/var/run/docker.sock,大大提高了安全性。 - 统一访问:两个MCP服务器都聚合在一个入口点后面。
- 强化安全:
- 容器运行
read_only: true文件系统。 - 功能被丢弃(
cap_drop: ALL). - 不允许特权升级(
no-new-privileges: true). - 内部服务器不暴露于主机/互联网;只有代理是可访问的。
- 容器运行
入门指南
先决条件
- OrbStack (或Docker桌面)
- SearXNG的Olares实例(配置于
.env)
安装
-
启动堆栈:
docker-compose up -d -
验证服务:
docker-compose ps
连接到客户
泽德
Zed已配置为使用以下终结点:
- 背景7:
http://localhost:${GATEWAY_PORT}/context7/mcp - SearXNG:
http://localhost:${GATEWAY_PORT}/searxng/mcp
您可以在Zed中验证这些设置 settings.json 文件(cmd+,).
配置文件
docker-compose.yml:主编排文件。对所有网络设置使用环境变量。nginx.conf.template:动态配置代理的路由模板。.env: 唯一的地方 其中存储了机密、URL和端口号。
故障排除
- 港口繁忙:如果
${GATEWAY_PORT}已在使用中,只需在.env文件并重新启动。 - 配置同步:如果在中更改端口
.env,跑docker-compose up -d以重新生成代理配置。
