使用说明
项目简介
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 镜像:
-
确保已安装 Docker Desktop 并正在运行。
-
拉取 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' 可以根据需要更改,客户端连接时需保持一致。
基本使用方法
-
启动 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 -
配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端 (例如 Cursor, Claude Desktop 等) 中,配置服务器连接信息,包括服务器名称、命令和参数 (如上述 JSON 示例)。
-
客户端与服务器交互: 客户端通过 JSON-RPC 协议与 MCP 服务器通信,请求资源、调用工具或执行 Prompt,服务器返回响应或发送通知。
详细使用方法请参考项目仓库的 README 文档和 Docs 链接。
信息
分类
开发者工具