使用模型上下文协议、Docker 和 Continue Hub 简化 AI 开发

Simplifying AI Development with Model Context Protocol, Docker, and Continue Hub
图片来源:Todd Cravens / Unsplash

Continue 和 Docker 联合发布的文章,探讨如何利用容器化的 MCP 块来增强您的 AI 原生开发体验

引言

随着开发者将 AI 集成到他们的工作流程中,他们面临着几个实际挑战:有限的模型上下文窗口、不足的工具访问以及难以将模型连接到外部数据源。由 Anthropic 开发的开放协议 模型上下文协议 (MCP) 通过提供一种标准化的方法来连接大型语言模型 (LLM) 与外部数据源和工具,解决了这些限制。

Continue 和 Docker 已合作,通过 Continue Hub 使 MCP 块易于访问,允许开发者安全地使用这些强大的组件,同时保持容器提供的隔离性、可重现性和供应链安全性。

什么是模型上下文协议?

MCP 解决了 AI 开发中的一个基本问题:如何在不重建整个应用程序的情况下,让 LLMs 访问特定的工具和数据。这是一个客户端-服务器协议,其中:

  1. 客户端(如 Continue)发送请求以获取特定信息或执行操作
  2. MCP 服务器响应该请求的数据或执行指定的操作
  3. 模型随后可以使用这些信息来提供更准确、更具上下文的响应

正如 Docker 所解释的

"MCP(模型上下文协议)是由 Anthropic 开源的一种新协议,它为 LLM 应用程序提供了标准化的接口,以便与外部数据源和工具集成。借助 MCP,您的 AI 驱动应用程序可以从外部源检索数据,使用第三方服务执行操作,甚至与本地文件系统交互。"

在实践中,这意味着您的 AI 编码助手现在可以直接与您的 PostgreSQL 数据库交互、执行 git 命令或检索文档——而无需您将这些信息复制/粘贴到提示中。

为什么使用 Docker 用于 MCP 块?

直接运行 MCP 服务器可能会带来几个挑战:

  1. 环境冲突:安装 MCP 服务器通常需要特定版本的 Node.js、Python 和其他依赖项,这些可能与现有安装冲突
  2. 缺乏隔离:直接执行 MCP 服务器会获得对宿主文件和资源的广泛访问权限
  3. 设置复杂:传统设置需要下载、配置和管理代码及环境
  4. 跨平台问题:确保在不同架构和操作系统之间的一致性
  5. 依赖管理:安全地封装和分发特定于服务器的运行时依赖项

Docker 通过容器化 MCP 服务器来解决这些挑战,提供了:

  • 隔离性:在受控环境中运行 MCP 服务器,而不影响您的宿主系统
  • 可重现性:确保在开发、测试和生产环境中的一致行为
  • 供应链安全性:通过您组织的注册表(JFrog Artifactory、AWS ECR、Azure Container Registry、Google Container Registry)扫描和镜像经过验证的容器镜像
  • 干净的开发环境:避免使用随意安装的 uvnpx 污染您的系统
  • 跨平台兼容性:无论操作系统或架构如何,都可以运行相同的容器

正如 Anthropic 的 David Soria Parra 所指出的

"如果缺少 Docker,为 ffmpeg 构建一个 MCP 服务器将是一项极其困难的任务。Docker 是开发者最广泛使用的打包解决方案之一。正如它解决了云环境中的打包问题一样,现在它也有潜力解决富 AI 代理的打包问题。"

在 Continue Hub 中开始使用 Docker 化的 MCP 块

Continue Hub 现在支持基于 Docker 的 MCP 块,让您可以在您的 AI 原生开发工作流程中充分利用容器化 MCP 服务器的强大功能。让我们探讨两个强大的示例:mcp/postgresmcp/memory

示例 1:在 Continue 中使用 mcp/postgres

mcp/postgres MCP 块允许您的 AI 助手直接与 PostgreSQL 数据库交互,从而实现数据库感知的对话、查询甚至模式修改。我们与 Docker 合作,在 Continue 的 Hub 上发布了 mcp/postgres

您可以将此块添加到任何助手。

AddPostgresBlock.png

然后为连接字符串添加一个密钥。格式如下:

postgresql://username:password@hostname:port/database

PostgresSecret.png

务必保存助手。

SaveAssistant.png

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

将其添加到任何助手都只需点击一个按钮即可轻松完成。

AddMemoryBlock.png

务必保存助手。

SaveAssistant.png

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 块提供了显著的优势:

  1. 增强的安全性:容器提供隔离,并可以扫描漏洞
  2. 一致的环境:所有开发者使用相同的 MCP 服务器配置
  3. 治理和合规性:集中式容器注册表支持跟踪和审计
  4. 版本控制:锁定特定 MCP 服务器版本以确保可靠性
  5. 供应链完整性:签署和验证容器镜像以防止篡改

企业团队可以将经过验证的 Docker 镜像镜像到内部注册表,应用安全扫描并确保符合组织策略。

迈向 AI 原生开发工作流程

许多开发团队已将 AI 工具集成到他们的工作流程中,但在当前实现中遇到了限制。Continue Hub、MCP 和 Docker 容器的结合有助于克服这些障碍,通过:

  1. 允许使用特定工具模块化扩展 AI 能力
  2. 标准化这些扩展的打包和分发方式
  3. 通过容器边界维护安全性和隔离性
  4. 实现 AI 扩展的版本控制和治理

这与 amplified.dev 宣言中概述的原则一致:

“我们相信开发者是被增强,而非被自动化的未来... 为了创建这些系统,我们每个人都有自己的需求,因此我们需要创建和调整我们自己的可复用组件。”

通过容器化 MCP 块,开发者可以精确地构建他们特定项目和环境所需的 AI 增强工作流程,而不是受限于单一供应商提供的功能。

入门指南

准备好在 Continue 中尝试容器化 MCP 块了吗?

  1. 确保您的系统上安装了 Docker Desktop
  2. 通过 VS CodeJetBrains 设置 Continue
  3. 使用上面所示的模式配置您想要的 MCP 块
  4. 开始利用您的 AI 驱动开发环境的增强能力进行构建

欲了解更多信息,请查阅:

结论

采用 AI 工具的开发者正在寻找安全、灵活、能融入现有工作流程且不会带来新问题的解决方案。通过将 Continue Hub 与 Docker 化的 MCP 块相结合,团队可以:

  1. 利用他们所需的特定功能扩展 AI 助手
  2. 维护组件之间的安全边界
  3. 避免依赖冲突和环境污染
  4. 标准化适用于整个组织的工具
  5. 构建一个价值逐步增加的 AI 增强开发环境

如果您希望改善您的 AI 原生开发体验,同时保持团队所需的安全性及可重现性,容器化的 MCP 块提供了一条可行的路径。