One agent file served over ACP and over MCP
Top band: an editor spawns docker-agent serve acp pong.yaml and writes JSON-RPC lines to its stdin. initialize returns agentCapabilities and agentInfo docker agent v1.149.0 at protocolVersion 1. session/new first sends a session/update notification with the slash commands compact and usage, then the result with configOptions and the mode default. Bottom band: curl posts to serve mcp --http at 127.0.0.1:8081/mcp. initialize asks for 2026-07-28 and gets 2025-11-25, notifications/initialized gets 202 Accepted, tools/list returns one tool named pong with one message argument, and tools/call returns structuredContent.response pong. Both servers run the agent root of pong.yaml on dmr/ai/qwen3:4b.
ACP OVER STDIO
editor
ACP client
serve acp
stdin and stdout
stdio
>> initialize, protocolVersion 1
<< agentCapabilities, agentInfo docker agent
>> session/new, cwd, mcpServers []
<< session/update: commands compact, usage
<< result: configOptions, currentModeId default
MCP OVER STREAMING HTTP
curl
MCP client
serve mcp --http
127.0.0.1:8081/mcp
HTTP POST
>> initialize, asks 2026-07-28
<< protocolVersion 2025-11-25
>> notifications/initialized, 202 Accepted
>> tools/list << one tool pong(message)
>> tools/call << structuredContent.response
pong.yaml
agent root
dmr/ai/qwen3:4b
temperature 0