MCP Mealprep
你拿着一堆容器,在里面放一些MCP小吃,并保持凉爽以备后用。
该项目从GitHub位置获取多个MCP服务器,运行它们,并使用supergateway和可选的mcpo为它们提供服务,然后将它们与docker compose结合在一起,作为ML/AI资源的堆栈运行。
新V2版本
docker compose可以看作是示例服务器;按照以下语法从公共存储库中添加所需数量的内容。每个自定义GHCR容器都运行本地STDIO/STUT的MCP服务器,并在SSE协议上安全地公开这些服务器,也可以选择作为OpenWebUI的OpenAPI兼容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自述文件
如果你想了解更多关于这个bash脚本在容器中被调用后到底做了什么的信息,请参阅“Startup README.md”,以逐行全面讨论正在发生的事情。检查它以确保您对运行它感到满意,因为它将在每个MCP服务器容器中运行。
安全扫描
使用mcp屏蔽扫描安全
“startup.sh”脚本现在运行
"npx mcp-shield >> "mcp-shield.log" 2>&1运行mcp安全扫描程序, mcp屏蔽 并附加到日志文件中。有关更多信息,请参阅他们的文档。您还可以随时在容器中运行该命令,以查看是否存在问题,例如在更新后。
客户端连接
服务器堆栈运行后,您可以将MCP客户端连接到您的IP或域和端口。或者,如果没有简单的方法,您可以再次使用mcpo命令进行连接
N8N
待定
流动
待定
克劳德、Cursor等
待定
概述
什么是模型上下文协议?
模型上下文协议(MCP)是一个创新的框架,它使大型语言模型(LLM)能够安全地访问各种工具、数据源和服务并与之交互。它为AI代理提供了一种标准化的方式:
- 从不同来源检索信息
- 在各种平台上执行操作
- 将AI功能扩展到传统语言模型之外
包含MCP服务器
这个docker compose集合包括以下服务器:
- 网络搜索(SearXNG和Brave)
- 一切(MCP测试)
- GitHub交互
- 计算器
- Slack
- 埃弗拉特
- 谷歌地图
- 网络爬行(抓取和木偶)
- 顺序思维
- Postgres/向量检索(Supabase、Qwant、Pinecone和Memory)
- 还有更多。..
先决条件
- 码头工人
- Portainer(不是必需的,但很有用)
- 特定服务的API令牌/密钥(可选,取决于服务器)
在Portainer中安装
第一步:准备Portainer
- 打开您的Portainer环境,通常是“本地”环境
- 导航到“堆栈”
- 点击“添加堆栈”
步骤2:部署堆栈
- 命名您的堆栈(例如,“mcp服务器堆栈”)
- 在“构建方法”下,选择“上传文件”或“Web编辑器”
- 上传
docker-compose.yml从该存储库或复制粘贴 - 配置任何所需的环境变量
- Slack机器人令牌 - GitLab个人访问令牌 - 谷歌地图API密钥 - 勇敢搜索API密钥 - 等等
- 点击“部署堆栈”
步骤3:配置单个服务器
- 某些服务器需要特定的配置或API令牌
- 请参阅 MCP服务器存储库
跑步
警告
这是在容器化且易于部署的流程中运行这些MCP服务的第一步。但您需要对环境变量的soem进行一些测试和验证,并连接到其他服务,特别是添加其他服务器。我亲自测试了其中的大部分,至少在VPS堆栈上运行,所以它们应该是测试级的功能。V2比V1运行得更好。这会通过SSE连接运行每台服务器,这应该是安全的。但是,您的底层系统、代理或加密设置可能存在一些安全漏洞。该项目不审查MCP服务器的功能或安全性,而只是用于轻松部署服务器和安全流量的软件包。如果您需要MCP服务器审查,请查看 MCP评估员
定制
添加/删除服务器
- 只需在中注释掉或删除服务块
docker-compose.yml - 确保您拥有必要的Dockerfile和依赖项
环境变量
- 使用必要的设置(如实际API键)替换环境变量和命令变量上的占位符标记
- 如果需要,自定义端口映射,默认为顺序
安全考虑
- 对API令牌和敏感信息保密
- 尽可能使用只读卷
- 定期更新您的服务器和依赖关系
贡献
任何新的MCP服务器都需要通过npx、uv或pip执行干净安装命令。如果你想添加一个,请发送一个pull请求或发出一个测试和已知工作的docker compose容器部分
向此项目添加新的MCP服务器
- 确保服务器遵循MCP协议
- 遵循上述语法,包括所有已知的环境变量和“startup.sh”命令
- 提供清晰的文档,包括MCP服务器的GitHub仓库
- 提交拉取请求或问题,并提出添加建议
折旧的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服务器可能有自己的许可条款。
资源
免责声明
此集合由社区维护,与模型上下文协议项目、OpenWebUI、mcpo或任何其他隐含或暗示的项目没有正式关联。
______________________________________________________________________
