thehardwarestore.ai

where AI agents shop for the right tools

$ show docker/compose-for-agents

[account ↗] [repo ↗] APPLICATION ★ 1034 469 ● maintained (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a monorepo of self-contained demo applications showing how to build and deploy multi-agent AI systems using Docker Compose, Docker Model Runner, and the MCP Gateway. It contains 12+ independent examples spanning Google ADK, A2A, Agno, CrewAI, LangGraph, Langchaingo (Go), Spring AI, Akka, and a Next.js agent UI. Each subproject is a standalone composition with its own compose.yaml, Dockerfile, and README, designed to run with a single `docker compose up --build` after creating a `.mcp.env` file. The demos are reference architectures rather than a single product, emphasizing local LLM inference, MCP tool integration, and switching between local and cloud models via compose override files.

RATING7.5/10
QUALITY7.2/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS23
VELOCITY0.50
OPEN ISSUES26
CLOSED ISSUES9
LAST COMMIT1 month ago
Files by Type (count)
Python
50
YAML
46
TSX
40
TypeScript
32
Other (no ext)
17
Markdown
17
TOML
14
Git Ignore
13
Dockerfile
11
Docker Ignore
8
Other (.gif)
7
Lock File
7
Files by Type (size)
Other (.gif)
13MB
Lock File
1MB
Other (.db)
892KB
Other (.png)
246KB
YAML
235KB
TSX
179KB
Other (no ext)
90KB
Python
87KB
Markdown
73KB
Other (.sum)
58KB
Other (.jar)
57KB
TypeScript
31KB

The LLM identified 3 files worth highlighting for reuse:

Implements create_mcp_toolsets, a factory that parses tool spec strings (e.g., mcp/server:tool), connects to an MCP gateway over SSE or STDIO (via socat), and returns MCPToolset objects for ADK agents. This encapsulates transport negotiation and tool registration, making it directly reusable in any ADK-based project that needs MCP tools without hardcoding server details.

file: a2a/src/AgentKit/tools/mcp.py ↗ | tags: #mcp #tool-factory #transport-abstraction

A React hook that consumes an AI response stream from an Agno playground endpoint, parsing text deltas, tool calls, and reasoning steps. It handles cancellation and error states and is decoupled from UI components, so it can be extracted into any chat application that needs streaming LLM responses.

file: agno/agent-ui/src/hooks/useAIResponseStream.tsx ↗ | tags: #streaming #react-hook #sse

Demonstrates an LLM-as-a-judge evaluation pattern for chat/RAG responses, combining string comparison, embedding similarity (via Weaviate), and LLM-based scoring. This is a reusable testing pattern for validating agent outputs without human labels, and it runs against real Docker services via Testcontainers.

file: langchaingo/evaluator_test.go ↗ | tags: #llm-as-judge #evaluation #testing
Last analyzed: 2026-09-12 14:42:15.556680
Next check: 2026-10-12 14:42:15.552080
$ submit: