Skip to content

[SYMPP-MCP] Keep tool catalogs stable across assignment claims - #622

Closed
Pimpmuckl wants to merge 2 commits into
mainfrom
4xigul373g7acnzr
Closed

[SYMPP-MCP] Keep tool catalogs stable across assignment claims#622
Pimpmuckl wants to merge 2 commits into
mainfrom
4xigul373g7acnzr

Conversation

@Pimpmuckl

@Pimpmuckl Pimpmuckl commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Context

MCP clients may list tools only once after initialize. The current server changes its catalog after assignment claims, so clients cannot call newly exposed role tools without a non-standard re-list.

TL;DR

Keep each configured MCP role catalog stable while claims change only authorization and scope.

Summary

  • Advertise one stable catalog for each configured surface profile.
  • Keep worker and architect claim authorization role-scoped on the server.
  • Remove post-claim and post-release tool re-list guidance.
  • Cover initialize, one tool list, claim, and architect slicing without another tool list.
  • Preserve compact branch attachment and fingerprint the startup catalogs.
  • Update worker guidance to use the startup catalog after claims and releases.

Alternatives

  • Keep dynamic catalogs and require re-listing. Rejected because MCP clients may cache the startup tool catalog.
  • Advertise fewer startup tools. Rejected because those tools would remain undiscoverable after a claim.

Test Plan

  • make -C elixir all
  • make -C elixir ci-full when release/full validation is required
  • Focused HTTP behavior tests: 58 passed
  • Focused compatibility and contract tests: 16 passed
  • Review Suite fast against origin/main: clean and conforming

Summary:
- advertise a configured role catalog for the full MCP session lifetime
- keep claim authorization role-scoped without changing tool discovery
- remove claim and release re-list guidance and add HTTP regressions

Rationale:
- MCP clients discover tools once and cannot rely on post-claim re-listing
- stable catalogs separate discovery from live authorization and scope

Tests:
- mix test test/symphony_elixir/symphony_plus_plus/mcp/claim_session_transport_07_test.exs test/symphony_elixir/symphony_plus_plus/mcp_http_transport_minimal_test.exs test/symphony_elixir/symphony_plus_plus/mcp_http_endpoint_test.exs

Co-authored-by: Codex <codex@openai.com>
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


Comment @coderabbitai help to get the list of available commands.

Summary:
- keep branch optional in the stable attach_branch tool schema
- fingerprint configured startup catalogs in the published MCP contract

Rationale:
- schema-driven clients must keep using assignment branch inference
- artifact selection must reject backends with incompatible startup catalogs

Tests:
- mix test test/symphony_elixir/symphony_plus_plus/mcp/claim_session_transport_07_test.exs test/symphony_elixir/symphony_plus_plus/mcp/connection_bootstrap_02_test.exs test/symphony_elixir/symphony_plus_plus/mcp/worker_tools_01_test.exs

Co-authored-by: Codex <codex@openai.com>
@Pimpmuckl

Copy link
Copy Markdown
Owner Author

[codex] GitHub's merge API returned repeated 503 errors. The reviewed PR was applied as the authorized equivalent squash commit on main: 472da01.

@Pimpmuckl Pimpmuckl closed this Aug 17, 2026
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.

1 participant