使用说明

项目简介

Docker AI Tools for Devs 是一个利用 Docker 容器实现的 AI 工具平台,它允许开发者使用 Markdown 文件定义和运行 AI 工作流。通过集成 Model Context Protocol (MCP),该项目可以作为 MCP 服务器运行,向 LLM 客户端提供资源、工具和 Prompt 模板,实现标准化的上下文服务。

主要功能点

  • MCP 服务器模式: 通过 '--mcp' 标志启动,提供符合 MCP 协议的服务接口。
  • 资源管理: 通过注册 Markdown 提示词文件作为资源,支持从 GitHub 仓库或本地路径注册。
  • 工具集成: 支持 Docker 化的工具,允许 LLM 调用外部功能,例如代码分析、向量数据库查询等。
  • Prompt 模板: Markdown 文件作为 Prompt 模板,支持定义用户和系统 Prompt,以及工具调用流程。
  • 会话管理: 支持通过 Docker 容器管理会话,提供隔离和可重复的环境。
  • 多种传输协议: 基于标准输入输出 (STDIO) 进行通信,可以通过 'socat' 等工具桥接到 TCP 或其他协议。
  • Docker 扩展集成: 提供 VSCode 扩展,方便用户在 IDE 中使用和管理 Prompt 工作流。

安装步骤

由于本项目以 Docker 镜像的形式发布,因此安装步骤主要为拉取和运行 Docker 镜像:

  1. 确保已安装 Docker Desktop 并正在运行。

  2. 拉取 Docker 镜像 'vonwig/prompts:latest'。

    docker pull vonwig/prompts:latest

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。配置信息通常为 JSON 格式,示例如下:

{
  "serverName": "Docker_AI_Tools_MCP",
  "command": "docker run -i --rm alpine/socat",
  "args": [
    "STDIO",
    "TCP:host.docker.internal:8811"
  ]
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端用于标识和管理连接。(例如: "Docker_AI_Tools_MCP")
  • 'command': 启动 MCP 服务器的命令。这里使用 'docker run -i --rm alpine/socat' 命令,'socat' 工具用于桥接 STDIO 到 TCP 连接。
  • 'args': 'command' 命令的参数。
    • '"STDIO"': 指定 'socat' 的第一个地址为标准输入输出。
    • '"TCP:host.docker.internal:8811"': 指定 'socat' 的第二个地址为 TCP 连接,监听 'host.docker.internal' 的 '8811' 端口。'host.docker.internal' 允许容器访问宿主机的网络服务。

注意: 实际端口 '8811' 可以根据需要更改,客户端连接时需保持一致。

基本使用方法

  1. 启动 MCP 服务器: 使用 'serve --mcp' 命令启动服务器,并通过 '--register' 参数注册 Prompt 资源。

    例如,注册 GitHub 仓库中的 Prompt 文件:

    docker run \
      --rm \
      --pull=always \
      -it \
      -v /var/run/docker.sock:/var/run/docker.sock \
      --mount type=volume,source=docker-prompts,target=/prompts \
      --mount type=bind,source=$HOME/.openai-api-key,target=/root/.openai-api-key \
      vonwig/prompts:latest \
        serve \
        --mcp \
        --register github:docker/labs-ai-tools-for-devs?path=prompts/examples/generate_dockerfile.md

    或者注册本地 Prompt 文件:

    docker run \
      --rm \
      --pull=always \
      -it \
      -v /var/run/docker.sock:/var/run/docker.sock \
      --mount type=volume,source=docker-prompts,target=/prompts \
      --mount type=bind,source=$HOME/.openai-api-key,target=/root/.openai-api-key \
      vonwig/prompts:latest \
        serve \
        --mcp \
        --register /Users/your-user/local/prompt.md
  2. 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端 (例如 Cursor, Claude Desktop 等) 中,配置服务器连接信息,包括服务器名称、命令和参数 (如上述 JSON 示例)。

  3. 客户端与服务器交互: 客户端通过 JSON-RPC 协议与 MCP 服务器通信,请求资源、调用工具或执行 Prompt,服务器返回响应或发送通知。

详细使用方法请参考项目仓库的 README 文档和 Docs 链接。

信息

分类

开发者工具