Repository navigation
AIGTWY-4878 [3/3] Test MCP registration and tool use in Claude and Codex - #990
Merged
Merged
Conversation
tt-le
requested review from
AarushiShah-db,
lilly-luo and
rohita5l
as code owners
October 5, 2026 19:16
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 5, 2026 20:08
eb5054c to
669c938
Compare
tt-le
added this pull request to stack #969
October 6, 2026 13:21
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 6, 2026 13:44
36f6544 to
abe9ac4
Compare
This was referenced Oct 6, 2026
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 6, 2026 14:05
abe9ac4 to
d732fc0
Compare
UG reviewThis test-only change exercises managed MCP inventories, tool receipts, and cleanup in Claude and Codex. The Codex approval handler can stall valid repeated tool calls. Major
Automated advisory review of |
This was referenced Oct 6, 2026
david-siqi-liu
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed against main's tests/e2e_cuj/AGENTS.md (#1000) and the CUJ 3 plan in the UG Configure E2E doc. Coverage gaps for the whole CUJ 3 stack are in my comment on #965.
P0
- On the current head (ee92991) both MCP tests error at setup with
Existing machine-wide agent settings; use a clean disposable runner(https://github.com/databricks/unity-gateway/actions/runs/37477191394/job/112315997247). The files come from #965's terminal launches earlier in the same run (see my comment on #965), so this clears once #965 cleans up after itself.
P1
- The Codex journey depends on #1006: at this head
managed_mcp_entryemits onlycommandandargs, and #1006 adds theDATABRICKS_BEARER/DATABRICKS_BEARER_COMMANDenv_vars. The PR body already says so. Flagging it because #1006 targets main and isn't in this stack, so it has to merge first, then this stack rebased. - The test never checks that the published config uses
unity_catalog_location == "ug_e2e.tools"or that the decoy MCP exists. If the decoy is missing or the config names the two fixtures explicitly, the"ug_e2e-other_tools" not in inventoryand"decoy_status" not in inventoryassertions pass without testing schema discovery. A read-only SDK GET for the decoy plus a check onworkspace.config()would close it.
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 7, 2026 02:57
ee92991 to
209f748
Compare
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
2 times, most recently
from
October 7, 2026 04:01
6989ec9 to
6bb0c60
Compare
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 7, 2026 05:13
9e68088 to
ee77684
Compare
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 7, 2026 05:28
ee77684 to
0f847a1
Compare
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 7, 2026 05:31
0f847a1 to
57deeec
Compare
david-siqi-liu
approved these changes
Oct 7, 2026
david-siqi-liu
left a comment
Collaborator
There was a problem hiding this comment.
Rechecked at 57deeec: per-test revert and the mcp list case are in, and E2E CUJs passes with all CUJ 3 tests (10 catalog, 3 MCP registration).
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 7, 2026 12:46
57deeec to
aa02815
Compare
tt-le
force-pushed
the
tt-le/aigtwy-4878-mcp-registration
branch
from
October 7, 2026 13:27
aa02815 to
1df7a6e
Compare
xsh310
pushed a commit
to xsh310/ucode
that referenced
this pull request
Oct 7, 2026
…cks#968) ## Summary Behavior-preserving extraction only: move existing Claude/Codex answer parsing, session paths, and child-session detection into per-agent modules. Shared evidence callers and existing journeys retain their behavior and names. Removed `tests/test_integration_agent_helpers.py`: the existing public evidence tests already cover these paths. No new model attribution, catalog requests, HTTP helpers, picker behavior, managed-config readers, or CUJ CI changes belong to this PR. ## Stack Targets main; rebased onto current main. Catalog discovery databricks#965 targets this branch, and MCP registration databricks#990 targets databricks#965. Provisioning databricks#964 remains parked separately. ## Validation - 50 existing evidence/contract tests passed on this parent after removal. - `git diff --check` passed; commit/push secret scans passed. - No live inference run.
xsh310
pushed a commit
to xsh310/ucode
that referenced
this pull request
Oct 7, 2026
…abricks#965) ## Summary Catalog discovery consumer, stacked on the behavior-preserving helper extraction databricks#968. Uses the preconfigured CUJ3 workspace; provisioning databricks#964 remains separate. - Require Claude's Sonnet/Haiku/Kimi set and Codex's GPT Luna/Kimi set under `ug_e2e.models`; exclude Gemini and `ug_e2e.other_models` decoys from scoped discovery and native pickers. - Inspect gateway catalogs and native pickers, then complete separate default and explicit-model tasks through real TUI and headless agent commands. - Use the shared dedicated-workspace `cuj` fixture, authenticated SDK client, and isolated local sessions. Catalog reads use SDK GET calls; workspace configuration remains read-only. - Run through the existing `dedicated-cuj` CI job. Remove the custom catalog lane and bespoke integration-runner mode; shared workflow and conftest match current main. ## Stack Rebased onto current main through databricks#968. MCP registration databricks#990 is the child consumer stack; its changes are not included here. ## Validation - 133 focused runner/evidence/model-discovery/provider-catalog tests passed. - All 10 catalog cases collect; consumer Ruff lint/format and `git diff --check` pass. - No new live inference pass. Fresh SP credentials and a clean disposable runner are still required. - Previously observed Claude default-banner/picker failures remain unresolved; migration does not weaken those assertions. - Claude model evidence is response-reported; Codex evidence joins its client-selected model to the completed turn. Neither proves the gateway's backing destination. Skills discovery remains deferred.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked on #965. Adds real MCP registration, connection, schema-exclusion, listing, and read-only tool-use journeys for Claude and Codex in the CUJ3 workspace.
cujfixture and inspect Claude's MCP menu and Codex's/mcp verboseinventory.ug_e2e.tools.fixture_readerandfixture_metadatato be connected and expose their expected tools.ug_e2e.other_toolsanddecoy_status.ug mcp listreports both managed fixtures forclaude, codexwith aggregateconnectedstatus and no out-of-scope servers. Actual Codex connectivity is established by its TUI/tool journey, not the aggregate label.dedicated-cujCI job. No MCP-specific workflow or CI-gate contract-test changes remain.Known issue: ug status
ug statuscan show globalsystem.aimodels for Codex instead of the managedug_e2e.modelscatalog, and Claude's inventory can collapse to its configured default. This affects the status model inventory; it is separate from these native MCP inventory and tool-use checks.The standalone production fix is #1019, targeting main outside this test stack.
ug statusCUJ coverage remains deferred; this PR does not change status implementation or claim to test it.Validation
git diff --check, and stack ancestry checks passed after restacking.Scope
Test-only consumer: MCP CUJ, inventory helper, marker, and documentation. Shared workflow/conftest and parent agent helpers are unchanged in this PR. Fixtures are provisioned externally. Skills remain deferred. No fixture scripts or credentials are committed. The unrelated scrollable-picker README note remains uncommitted.