内容
# MCP-Mealprep
在这里,你可以准备一堆容器,把小的 MCP 零食放进去,并保持它们的凉爽以备后用。
该项目从 GitHub 位置获取多个 MCP 服务器,运行它们,并通过 supergateway 和可选的 mcpo 提供服务,并通过 docker-compose 将它们组合在一起,作为 ML/AI 资源的堆栈运行。
## 新的 V2 版本
得益于 [supergateway](https://github.com/supercorp-ai/supergateway) 和 [mcpo](https://github.com/open-webui/mcpo) 项目,完全重建!现在可以安全地用于内部和外部的 MCP 服务,并应与 python、mcpo、pip、npx、uv 以及各个 MCP 服务器更新一起更新。
docker-compose 可以视为示例服务器;根据此语法从公共仓库添加所需的数量。每个自定义的 GHCR 容器同时运行本地 STDIO/STOUT 的 MCP 服务器,并安全地通过 SSE 协议暴露这些服务器,并可选地作为与 OpenWebUI 兼容的 HTTP 服务器。可以连接到本地资源或通过 nginx、Traefik、Caddy 等代理进行路由。一旦暴露,你可以连接到外部服务,如 OpenWebUI、n8n、Flowise、Claude、Cursor 等。
GHCR 容器基于 debian,应该可以与 uv、npx 和 pip 安装一起使用。如果需要,你也可以使用旧方法安装 docker mcp 服务器。有关更多信息,请参见下面的“过时的 Docker 过程”。
### mcpo 安装
如果你想安装可选的 mcpo 附加功能,请将 "USE_MCPO=true" 添加到环境变量中。这将指示 startup.sh 脚本收集 MCP 服务器命令和环境变量,并在运行时将它们传递给 mcpo 命令。请注意,这将是一个同时运行的重复服务器,并且与原始服务器不连接。但它将允许一个与 OpenWebUI 集成的 OpenAPI 兼容端点,你可以在 /docs 中找到有关每个服务器的更多信息。这不是必需的,但如果你想要,可以按服务器启用。
### startup.sh README
如果你想了解这个 bash 脚本在你的容器中被调用后具体做了什么,请参见“Startup README.md”,以获取逐行讨论的全面信息。请审核它,以确保你对运行它感到满意,因为它将在每个 MCP 服务器容器中运行。
### 安全扫描
## 使用 mcp-shield 扫描安全性
“startup.sh”脚本现在运行
```
"npx mcp-shield >> "mcp-shield.log" 2>&1
```
以运行该 mcp 安全扫描器 [mcp-shield](https://github.com/riseandignite/mcp-shield),并将结果附加到日志文件中。有关更多信息,请参见他们的文档。你也可以在容器中随时运行该命令,以查看是否存在问题,例如在更新后。
## 客户端连接
一旦你的服务器堆栈运行,你可以将你的 MCP 客户端连接到你的 IP 或域名和端口。或者,如果没有简单的方法,你可以再次使用 mcpo 命令进行连接。
### N8N
待定
### Flowise
待定
### Claude、Cursor 等
待定
## 概述
该项目是一个精心策划的模型上下文协议(Model Context Protocol,MCP)服务器集合,旨在提供一套全面的 AI 驱动工具和服务,可以通过 Docker 和/或 Portainer 轻松部署。基于 [官方 MCP 服务器仓库](https://github.com/modelcontextprotocol/servers)、[supergateway](https://github.com/supercorp-ai/supergateway) 和 [OpenWebUI 的 mcpo 仓库](https://github.com/open-webui/mcpo),该项目允许开发人员和 AI 爱好者快速启动各种 MCP 兼容服务。
## 什么是模型上下文协议?
模型上下文协议(MCP)是一种创新框架,使大型语言模型(LLMs)能够安全地访问和与各种工具、数据源和服务进行交互。它为 AI 代理提供了一种标准化的方法,以:
- 从不同来源检索信息
- 在各种平台上执行操作
- 扩展 AI 能力,超越传统语言模型
## 包含的 MCP 服务器
该 docker-compose 集合包括以下服务器:
- 网络搜索(SearXNG 和 Brave)
- 一切(MCP 测试)
- GitHub 交互
- 计算器
- Slack
- Everart
- Google Maps
- 网络爬虫(Fetch 和 Puppeteer)
- 顺序思维
- Postgres/向量检索(Supabase、Qwant、Pinecone 和 Memory)
- 以及更多...
## 先决条件
- Docker
- Portainer(不是必需的,但很有用)
- 特定服务的 API 令牌/密钥(可选,取决于服务器)
## 在 Portainer 中安装
### 第一步:准备 Portainer
1. 打开你的 Portainer 环境,通常是“local”
2. 导航到“Stacks”
3. 点击“Add stack”
### 第二步:部署堆栈
1. 为你的堆栈命名(例如,“mcp-server-stack”)
2. 在“Build method”下,选择“Upload a file”或“Web editor”
3. 上传此仓库中的 `docker-compose.yml` 或复制粘贴
4. 配置任何所需的环境变量
- Slack Bot Token
- GitLab Personal Access Token
- Google Maps API Key
- Brave Search API Key
- 等等
5. 点击“Deploy the stack”
### 第三步:配置各个服务器
- 一些服务器需要特定的配置或 API 令牌
- 请参阅 [MCP 服务器仓库](https://github.com/modelcontextprotocol/servers) 中的各个服务器文档
## 运行
### 警告
这是在容器化和更易于部署的过程中运行这些 MCP 服务的第一步。但你需要对某些环境变量和连接到其他服务进行一些测试和验证,特别是在添加其他服务器时。我个人在 VPS 堆栈上测试过大多数这些,因此它们应该是 beta 级别的功能。而且 V2 的运行效果优于 V1。并且这会通过 SSE 连接运行每个服务器,这应该是安全的。但你的底层系统、代理或加密设置可能存在一些安全漏洞。该项目不验证 MCP 服务器的功能或安全性,仅提供易于服务器部署和安全流量的打包。如果你需要 MCP 服务器的验证,请查看 [MCP Evaluator](https://github.com/JeredBlu/custom-instructions/blob/main/mcpevaluatorv3.md)
## 自定义
### 添加/移除服务器
- 只需注释掉或删除 `docker-compose.yml` 中的服务块
- 确保你拥有必要的 Dockerfile 和依赖项
### 环境变量
- 用必要的设置替换环境变量和命令变量中的占位符令牌,例如你的实际 API 密钥
- 如有需要,自定义端口映射,默认是顺序的
## 安全考虑
- 保持 API 令牌和敏感信息的机密性
- 尽可能使用只读卷
- 定期更新你的服务器和依赖项
## 贡献
任何新的 MCP 服务器需要通过 npx、uv 或 pip 进行干净的安装命令。如果你有一个想要添加的,请发送一个拉取请求或问题,附上测试和已知工作的 docker-compose 容器部分。
### 将新 MCP 服务器添加到此项目
1. 确保服务器遵循 MCP 协议
2. 遵循上述语法,包括所有已知的环境变量和“startup.sh”命令
3. 提供清晰的文档,包括 MCP 服务器的 GitHub 仓库
4. 提交一个拉取请求或问题,附上提议的添加内容
## 过时的 Docker 过程
V1 MCP Mealprep 使用来自各个仓库的 GitHub Dockerfiles,并通过 docker-compose 在容器中运行它们。这是可行的,但相对不安全,并且不允许与所有客户端连接。如果你想使用的 MCP 服务器无法通过 npx、uv、pip 等方式获得,并且你可以验证 Dockerfile 正在安全地运行你想要的内容,你可以继续使用此方法。服务器需要在其仓库中有一个 Dockerfile,并且任何使用“uv.lock”文件的内容似乎会阻止通过此方法安装。查看 docker-compose-old.yml 或此示例以了解它应该如何工作:
```
version: '3.8'
services:
mcp-server-everything:
build:
context: https://github.com/modelcontextprotocol/servers.git#main
dockerfile: src/everything/Dockerfile
image: mcp-server:latest
container_name: mcp-everything-server
ports:
- "0.0.0.0:8081:8081"
environment:
- NODE_ENV=production
restart: unless-stopped
networks:
- mcp-network
```
## 许可证
该项目是开源的。各个 MCP 服务器可能有自己的许可条款。
## 资源
- [官方 MCP 服务器仓库](https://github.com/modelcontextprotocol/servers)
- [模型上下文协议网站](https://modelcontextprotocol.io)
- [MCP Evaluator](https://github.com/JeredBlu/custom-instructions/blob/main/mcpevaluatorv3.md)
## 免责声明
该集合由社区维护,并未与模型上下文协议项目、OpenWebUI、mcpo 或任何其他项目正式关联,隐含或明示。