Docker AI Tools for Devs MCP Server
使用说明
项目简介
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 链接。