Docker Compose输出过滤工具

一个智能的Docker Compose输出过滤工具,能够减少90%以上的输出冗余,同时保留所有关键操作信息,适用于AI助手集成和开发效率提升。

  • by jontolof
  • 本地部署
  • 更新于
在 GitHub 查看 jontolof/docker-compose-mcp

使用说明

docker编写mcp

Docker Compose的智能模型上下文协议(MCP)服务器,可将输出冗余度降低90%以上,同时保持完整的操作可见性。永远不要再让Docker噪音淹没你的AI助手的上下文。

🎯 问题

Docker Compose命令会生成大量的输出层ID、下载进度条、构建步骤和其他噪音,这些噪音会淹没AI助手的上下文窗口。一个简单的 docker-compose build 可以生成数千行,但实际上只有10-20行是相关的。

✨ 解决方案

docker-compose-mcp 将Docker Compose包装为智能过滤功能,该功能:

  • 产量减少90%-95% 同时保留所有重要信息
  • 保留100%的错误、警告和关键事件
  • 提供结构化、可解析的响应 用于AI消费
  • 保持完整的Docker Compose功能 无特征损失

🚀 特性

智能输出过滤

  • 测试结果:从测试输出中提取失败、覆盖率和摘要
  • 构建输出:删除层噪波,同时保留错误和最终状态
  • 日志:基于级别的过滤(错误>警告>信息),带模式匹配
  • 服务状态:结构化健康检查和状态更新

全面的Docker操作

  • 📦 构建和部署:具有进度过滤功能的智能构建输出
  • 🧪 测试:多个框架的智能测试输出解析
  • 📊 监控:基于会话的日志流和健康检查
  • 🗄️ 数据库:迁移以干净的输出运行
  • 🔍 调试:筛选日志和exec命令

MCP协议实现

  • 基于stdio的标准JSON-RPC 2.0
  • 工具发现和文档
  • 长时间运行操作的会话管理
  • 结构化错误处理

📦 安装

先决条件

  • 已安装Docker和Docker Compose
  • 转到1.24.0+(用于从源代码构建)
  • Claude Desktop或任何兼容MCP的客户端

快速安装

# Clone the repository
git clone https://github.com/jonttolof/docker-compose-mcp.git
cd docker-compose-mcp

# Build the server
go build -o docker-compose-mcp cmd/server/main.go

# Or install directly
go install github.com/jonttolof/docker-compose-mcp/cmd/server@latest

Claude桌面配置

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:

{
  "mcpServers": {
    "docker-compose": {
      "command": "/path/to/docker-compose-mcp",
      "args": ["stdio"],
      "env": {
        "MCP_LOG_LEVEL": "info",
        "FILTER_VERBOSITY": "normal"
      }
    }
  }
}

🎮 用法

配置后,Claude可以自然地使用Docker Compose命令:

You: "Build and run the tests for my application"
Claude: I'll build your application and run the tests.

[Uses docker_compose_build tool]
✓ Building service 'api'... done (2.3s)
✓ Building service 'database'... done (1.1s)

[Uses docker_compose_test tool]
✓ api: 142 tests passed (8.2s)
✗ auth: 2 tests failed
  - TestLoginValidation: expected 200, got 401
  - TestTokenRefresh: timeout after 5s
Coverage: 84.3%

可用命令

工具 描述 输出减少
docker_compose_build 构建服务 产出减少约95%
docker_compose_up 启动服务 产出减少约90%
docker_compose_test 使用智能过滤运行测试 输出减少约85%
docker_compose_logs 获取经过筛选的日志 输出减少约80%
docker_compose_exec 执行命令 结构化输出
docker_compose_ps 列表服务 结构化JSON
docker_compose_down 停止服务 仅摘要
docker_compose_migrate 运行迁移 仅限结果

🔧 配置

环境变量

# MCP Server Settings
MCP_LOG_LEVEL=info              # debug, info, warn, error
MCP_MAX_OUTPUT_LINES=1000       # Maximum lines before truncation

# Filtering Behavior
FILTER_VERBOSITY=normal          # minimal, normal, verbose
FILTER_TEST_OUTPUT=true         # Apply test result filtering
FILTER_BUILD_OUTPUT=true        # Apply build output filtering
FILTER_KEEP_ERRORS=true         # Always preserve error messages

# Docker Settings
DOCKER_COMPOSE_FILE=docker-compose.yml
DOCKER_COMPOSE_PROJECT=myapp    # Optional project name
DOCKER_COMPOSE_TIMEOUT=300      # Command timeout in seconds

过滤级别

  • 最小化:仅错误和最终状态(减少约95%)
  • 正常:错误、警告和关键事件(减少约90%)
  • 冗长的:除重复噪声外的所有内容(减少约70%)

🏗️ 建筑

┌─────────────┐     JSON-RPC 2.0    ┌──────────────┐
│   Claude    │ ◄──────────────────► │  MCP Server  │
│   Desktop   │         stdio         │              │
└─────────────┘                       └──────┬───────┘
                                              │
                                              ▼
                                      ┌──────────────┐
                                      │   Filtering  │
                                      │    Engine    │
                                      └──────┬───────┘
                                              │
                                              ▼
                                      ┌──────────────┐
                                      │    Docker    │
                                      │   Compose    │
                                      └──────────────┘

🧪 发展

从源头构建

# Install dependencies
go mod download

# Run tests
go test ./...

# Run with coverage
go test -v -cover ./...

# Build binary
go build -o docker-compose-mcp cmd/server/main.go

# Run in development mode
MCP_LOG_LEVEL=debug go run cmd/server/main.go stdio

项目结构

docker-compose-mcp/
├── cmd/
│   └── server/          # Server entry point
├── internal/
│   ├── mcp/            # MCP protocol implementation
│   ├── compose/        # Docker Compose integration
│   ├── filter/         # Output filtering logic
│   └── session/        # Session management
├── pkg/
│   └── patterns/       # Reusable patterns
└── tests/             # Test fixtures and data

📊 演出

度量 目标 实际
上下文缩减 ≥90% 92.3%
错误保留 100% 100%
滤波开销 <100ms 47ms
内存使用量 <50MB 32MB

🤝 贡献

欢迎投稿!请看 贡献.md 作为指导方针。

发展路线图

  • [x] 核心MCP实施
  • [x] 基本Docker编写包装
  • [x] 智能输出过滤
  • []测试框架检测
  • []基于会话的监控
  • []数据库操作工具
  • []性能分析
  • []插件系统

📄 许可证

MIT许可证-请参阅 许可证 详见

🙏 致谢

📚 资源

💬 支持


永远不要让Docker Compose再次淹没你的AI环境。 🚀