使用模型上下文协议、Docker 和 Continue Hub 简化 AI 开发
Continue 和 Docker 联合发布的文章,探讨如何利用容器化的 MCP 块来增强您的 AI 原生开发体验
引言
随着开发者将 AI 集成到他们的工作流程中,他们面临着几个实际挑战:有限的模型上下文窗口、不足的工具访问以及难以将模型连接到外部数据源。由 Anthropic 开发的开放协议 模型上下文协议 (MCP) 通过提供一种标准化的方法来连接大型语言模型 (LLM) 与外部数据源和工具,解决了这些限制。
Continue 和 Docker 已合作,通过 Continue Hub 使 MCP 块易于访问,允许开发者安全地使用这些强大的组件,同时保持容器提供的隔离性、可重现性和供应链安全性。
什么是模型上下文协议?
MCP 解决了 AI 开发中的一个基本问题:如何在不重建整个应用程序的情况下,让 LLMs 访问特定的工具和数据。这是一个客户端-服务器协议,其中:
- 客户端(如 Continue)发送请求以获取特定信息或执行操作
- MCP 服务器响应该请求的数据或执行指定的操作
- 模型随后可以使用这些信息来提供更准确、更具上下文的响应
正如 Docker 所解释的:
"MCP(模型上下文协议)是由 Anthropic 开源的一种新协议,它为 LLM 应用程序提供了标准化的接口,以便与外部数据源和工具集成。借助 MCP,您的 AI 驱动应用程序可以从外部源检索数据,使用第三方服务执行操作,甚至与本地文件系统交互。"
在实践中,这意味着您的 AI 编码助手现在可以直接与您的 PostgreSQL 数据库交互、执行 git 命令或检索文档——而无需您将这些信息复制/粘贴到提示中。
为什么使用 Docker 用于 MCP 块?
直接运行 MCP 服务器可能会带来几个挑战:
- 环境冲突:安装 MCP 服务器通常需要特定版本的 Node.js、Python 和其他依赖项,这些可能与现有安装冲突
- 缺乏隔离:直接执行 MCP 服务器会获得对宿主文件和资源的广泛访问权限
- 设置复杂:传统设置需要下载、配置和管理代码及环境
- 跨平台问题:确保在不同架构和操作系统之间的一致性
- 依赖管理:安全地封装和分发特定于服务器的运行时依赖项
Docker 通过容器化 MCP 服务器来解决这些挑战,提供了:
- 隔离性:在受控环境中运行 MCP 服务器,而不影响您的宿主系统
- 可重现性:确保在开发、测试和生产环境中的一致行为
- 供应链安全性:通过您组织的注册表(JFrog Artifactory、AWS ECR、Azure Container Registry、Google Container Registry)扫描和镜像经过验证的容器镜像
- 干净的开发环境:避免使用随意安装的
uv
或npx
污染您的系统 - 跨平台兼容性:无论操作系统或架构如何,都可以运行相同的容器
正如 Anthropic 的 David Soria Parra 所指出的:
"如果缺少 Docker,为 ffmpeg 构建一个 MCP 服务器将是一项极其困难的任务。Docker 是开发者最广泛使用的打包解决方案之一。正如它解决了云环境中的打包问题一样,现在它也有潜力解决富 AI 代理的打包问题。"
在 Continue Hub 中开始使用 Docker 化的 MCP 块
Continue Hub 现在支持基于 Docker 的 MCP 块,让您可以在您的 AI 原生开发工作流程中充分利用容器化 MCP 服务器的强大功能。让我们探讨两个强大的示例:mcp/postgres
和 mcp/memory
。
示例 1:在 Continue 中使用 mcp/postgres
mcp/postgres
MCP 块允许您的 AI 助手直接与 PostgreSQL 数据库交互,从而实现数据库感知的对话、查询甚至模式修改。我们与 Docker 合作,在 Continue 的 Hub 上发布了 mcp/postgres
。
您可以将此块添加到任何助手。
然后为连接字符串添加一个密钥。格式如下:
postgresql://username:password@hostname:port/database
务必保存助手。
Continue 中的配置
name: Docker MCP Postgres
version: 1.0.0
schema: v1
mcpServers:
- name: Docker MCP Postgres
command: docker
args:
- run
- -i
- --rm
- mcp/postgres
- postgresql://username:password@hostname:port/database
您可以做什么
配置好 Postgres MCP 块后,您可以向 Continue 提出以下问题:
- “显示我们 users 数据库中的所有表”
- “创建一个查询来查找过去 30 天内下订单的所有客户”
- “帮我优化这个导致性能问题的慢查询”
- “生成创建新表以存储用户活动日志的 SQL”
AI 将使用 Postgres MCP 服务器连接到您的数据库,检查模式,运行探索性查询,并根据您的实际数据结构提供上下文化相关的代码和解释。
示例 2:在 Continue 中使用 mcp/memory
mcp/memory
MCP 块为您的 AI 助手提供持久化内存功能,使其能够在不同会话之间存储和检索重要信息。我们还与 Docker 合作,在 Continue 的 Hub 上发布了 mcp/memory
。
将其添加到任何助手都只需点击一个按钮即可轻松完成。
务必保存助手。
Continue 中的配置
name: Docker MCP Memory
version: 1.0.0
schema: v1
mcpServers:
- name: Docker MCP Memory
command: docker
args:
- run
- --rm
- -i
- mcp/memory
您可以做什么
配置好 Memory MCP 块后,您可以:
- “记住我们的 API 认证方案使用有效期为 24 小时的 JWT token”
- “我上周告诉你关于我们数据库模式什么了?”
- “将此代码片段保存为我们的标准错误处理模板”
- “回想一下我们团队的代码审查标准”
内存块创建了一个跨会话持续存在的知识存储,随着 AI 助手保留有关您的项目、偏好和开发模式的重要上下文,其价值会逐步增加。
对企业开发团队的益处
对于企业开发团队,容器化的 MCP 块提供了显著的优势:
- 增强的安全性:容器提供隔离,并可以扫描漏洞
- 一致的环境:所有开发者使用相同的 MCP 服务器配置
- 治理和合规性:集中式容器注册表支持跟踪和审计
- 版本控制:锁定特定 MCP 服务器版本以确保可靠性
- 供应链完整性:签署和验证容器镜像以防止篡改
企业团队可以将经过验证的 Docker 镜像镜像到内部注册表,应用安全扫描并确保符合组织策略。
迈向 AI 原生开发工作流程
许多开发团队已将 AI 工具集成到他们的工作流程中,但在当前实现中遇到了限制。Continue Hub、MCP 和 Docker 容器的结合有助于克服这些障碍,通过:
- 允许使用特定工具模块化扩展 AI 能力
- 标准化这些扩展的打包和分发方式
- 通过容器边界维护安全性和隔离性
- 实现 AI 扩展的版本控制和治理
这与 amplified.dev 宣言中概述的原则一致:
“我们相信开发者是被增强,而非被自动化的未来... 为了创建这些系统,我们每个人都有自己的需求,因此我们需要创建和调整我们自己的可复用组件。”
通过容器化 MCP 块,开发者可以精确地构建他们特定项目和环境所需的 AI 增强工作流程,而不是受限于单一供应商提供的功能。
入门指南
准备好在 Continue 中尝试容器化 MCP 块了吗?
- 确保您的系统上安装了 Docker Desktop
- 通过 VS Code 或 JetBrains 设置 Continue
- 使用上面所示的模式配置您想要的 MCP 块
- 开始利用您的 AI 驱动开发环境的增强能力进行构建
欲了解更多信息,请查阅:
结论
采用 AI 工具的开发者正在寻找安全、灵活、能融入现有工作流程且不会带来新问题的解决方案。通过将 Continue Hub 与 Docker 化的 MCP 块相结合,团队可以:
- 利用他们所需的特定功能扩展 AI 助手
- 维护组件之间的安全边界
- 避免依赖冲突和环境污染
- 标准化适用于整个组织的工具
- 构建一个价值逐步增加的 AI 增强开发环境
如果您希望改善您的 AI 原生开发体验,同时保持团队所需的安全性及可重现性,容器化的 MCP 块提供了一条可行的路径。