Problem
buzz-acp supports one MCP command through BUZZ_ACP_MCP_COMMAND. That path does not represent multiple servers with stable names, arguments, and separate environments.
The existing builder also treats configured servers as the privileged Buzz companion and copies BUZZ_PRIVATE_KEY and BUZZ_AUTH_TAG into each entry. Third-party MCP servers should not receive those credentials.
MCP environment values can also appear in ACP wire logs and observer events.
Proposed change
- add
--mcp-config <path> and BUZZ_ACP_MCP_CONFIG for a strict, versioned JSON config
- preserve server order, names, commands, arguments, and environment values without shell parsing
- keep
BUZZ_ACP_MCP_COMMAND unchanged for the privileged Buzz companion
- reject invalid configuration before the harness starts listening
- redact MCP environment values from Buzz-managed diagnostics
The adapter will continue to inherit the harness environment. This scopes credentials in the ACP request but does not provide process isolation.
Acceptance criteria
- multiple structured servers reach
session/new in declaration order with their exact configuration
- the legacy companion remains unchanged and is first when both inputs are present
- structured servers do not receive the companion's Buzz credentials
- invalid, duplicate, oversized, or over-limit configuration fails before startup
- paths and arguments containing spaces, commas, quotes, Unicode, and shell metacharacters remain literal
- MCP environment values do not appear in wire logs or observer events
- restart and repeated-session behavior is covered by tests
Related: #2883, #2899, #2900, #3196, #3417
Problem
buzz-acpsupports one MCP command throughBUZZ_ACP_MCP_COMMAND. That path does not represent multiple servers with stable names, arguments, and separate environments.The existing builder also treats configured servers as the privileged Buzz companion and copies
BUZZ_PRIVATE_KEYandBUZZ_AUTH_TAGinto each entry. Third-party MCP servers should not receive those credentials.MCP environment values can also appear in ACP wire logs and observer events.
Proposed change
--mcp-config <path>andBUZZ_ACP_MCP_CONFIGfor a strict, versioned JSON configBUZZ_ACP_MCP_COMMANDunchanged for the privileged Buzz companionThe adapter will continue to inherit the harness environment. This scopes credentials in the ACP request but does not provide process isolation.
Acceptance criteria
session/newin declaration order with their exact configurationRelated: #2883, #2899, #2900, #3196, #3417