Skip to content

buzz-acp: add structured MCP server configuration - #4164

Open
wolfyy970 wants to merge 9 commits into
block:mainfrom
wolfyy970:feat/acp-structured-mcp-servers
Open

buzz-acp: add structured MCP server configuration#4164
wolfyy970 wants to merge 9 commits into
block:mainfrom
wolfyy970:feat/acp-structured-mcp-servers

Conversation

@wolfyy970

@wolfyy970 wolfyy970 commented Aug 1, 2026

Copy link
Copy Markdown

Summary

This gives Buzz one versioned MCP launch document instead of separate formats for each adapter and transport. buzz-acp accepts multiple named stdio and Streamable HTTP servers, preserves their resolved configuration, checks the runtime's transport capability, and sends the same ordered list through every ACP session. The existing BUZZ_ACP_MCP_COMMAND path remains the first compatibility input.

Desktop and Project Connections can resolve approved tools into this boundary without teaching the runtime about personas, templates, or project state. Launchers can evolve while the ACP handoff stays stable.

Boundary

This document is resolved launch input. Personas, templates, and Projects remain authoring state and are not passed directly to a runtime.

The JSON contract is strict and bounded. Remote servers require HTTPS; literal loopback HTTP is allowed only without credentials. Server names are checked across structured and legacy inputs, protected Buzz credentials cannot be overridden, and MCP arguments, environment values, URLs, and headers are redacted from logs and observer output.

The adapter still inherits the harness environment, so this is explicit configuration rather than process isolation. Before unattended launch, the launcher must also establish the adapter's tool authorization policy. Transport support and permission to call a tool are separate gates.

Validation

  • just ci
  • cargo test -p buzz-core -p buzz-acp -p buzz-agent --no-fail-fast
  • cargo clippy -p buzz-core -p buzz-acp -p buzz-agent --all-targets -- -D warnings
  • cargo fmt --all -- --check
  • Real-process regression: two stdio MCP children initialize, list, and execute tools across two fresh ACP sessions
  • Mixed-transport regression: the legacy Buzz companion and HTTP server reach session/new together with capability, URL, header, collision, and redaction coverage

Fixes #4154.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f9e32d5848

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/buzz-acp/src/acp.rs Outdated

wolfyy970 commented Aug 2, 2026

Copy link
Copy Markdown
Author

#4301 now describes the broader portable-agent lifecycle using Buzz's existing agent, template, connection, version and snapshot concepts. This PR remains the first narrow slice: structured, named MCP configuration in buzz-acp.

Copy link
Copy Markdown
Author

@tlongwell-block @wpfleger96, @custard-pirate and I agree on the MCP split: #4164 owns the versioned document and stdio transport; #4271 adds HTTP to that schema. #4480 can then use the same document for live changes instead of adding a third config format.

That leaves Buzz with one MCP configuration surface and one compatibility input. Could one of you confirm this ownership split? If so, I will keep #4164 at that boundary and help adapt #4271 to it.

Copy link
Copy Markdown
Author

@tlongwell-block @wpfleger96, I have replaced the repair history with four reviewable commits on current main. #4271 is already adapting HTTP to this document, so review of the shared config boundary would unblock both transports.

Local tests, Clippy, formatting and the real two-server, two-session proof are green. CI is running.

@custard-pirate

Copy link
Copy Markdown

The HTTP v1 extension and wolfyy970 review fixes are ready to fold into this branch. This account cannot push to wolfyy970/feat/acp-structured-mcp-servers (GitHub returns 403), so the fast-forward handoff is the two signed commits 3204b925970a38265d96bfb5a54c11736832e814 and 749ef0c628e3e8923fe8e9bd12a74ee7f72e795c from custard-pirate/agent/acp-http-mcp-servers. Validation: buzz-core 257 tests, buzz-acp 737 tests, config_env, fmt, clippy -D warnings, and diff check all pass. Once these are applied here, #4271 can be closed as superseded.

wolfyy970 and others added 5 commits August 7, 2026 08:38
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>
Signed-off-by: custard-pirate <custard-pirate@users.noreply.github.com>
Signed-off-by: custard-pirate <custard-pirate@users.noreply.github.com>
@wolfyy970
wolfyy970 force-pushed the feat/acp-structured-mcp-servers branch from 0945861 to 2425672 Compare August 7, 2026 12:50

Copy link
Copy Markdown
Author

@custard-pirate, I folded your two signed HTTP commits into this branch and rebased the full six-commit series onto current main. Thanks for carrying the schema into HTTP and hardening it after review.

The PR now owns one v1 handoff for named stdio and Streamable HTTP servers, so #4271 can close as superseded. The focused suites and full just ci pass.

@tlongwell-block @wpfleger96, this is ready for review as the shared MCP configuration boundary.

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2425672b9c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/buzz-acp/src/acp.rs
Comment thread crates/buzz-persona/PERSONA_PACK_SPEC.md Outdated
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 31bcbb3213

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/buzz-acp/src/acp.rs Outdated
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>

Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6f1a8278bf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/buzz-core/src/mcp_config.rs Outdated
Signed-off-by: KC <79471844+wolfyy970@users.noreply.github.com>

Copy link
Copy Markdown
Author

Follow-up review caught four issues after the HTTP handoff: argument and short-value redaction, stale v1 documentation, and HTTP header syntax validation. I fixed all four and resolved the threads. The 259 core tests, 738 ACP tests, formatting, and strict Clippy pass at 9556cdc1a. This is back to reviewer-ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

buzz-acp: structured MCP server configuration with explicit credential scoping

2 participants