Skip to content

Show MCP and Skills catalog tables with metadata and status - #1232

Merged
sunishsheth2009 merged 1 commit into
mainfrom
sunish/aigtwy-4848-browser-main
Oct 22, 2026
Merged

sunishsheth2009 merged 1 commit into
mainfrom
sunish/aigtwy-4848-browser-main

Conversation

@sunishsheth2009

Copy link
Copy Markdown
Collaborator

Consumers cannot compare MCP services in ug mcp add because discovery drops their descriptions and audit metadata. ug skills add only previews a short description. Both pickers now show a compact Select / Name / UC location / Status table and a shared, scrollable detail pane.

Fixes https://databricks.atlassian.net/browse/AIGTWY-4848

This replaces #1211, which GitHub marked merged into the temporary #1222 branch rather than main. #1222 is now merged; this PR applies the exact reviewed browser change directly to current main.

Reviewed the ticket description, all three Jira comments, and all 47 replies in the linked Slack thread before implementation. One PR covers MCPs and Skills because they share the picker and metadata presentation.

The independent smart-routing CI repairs requested during review landed in #1222. This PR contains only the MCP/Skills browser files.

  • Existing paginated MCP BASIC responses supply metadata for initial and streamed choices; there are no per-service requests.
  • [ ] / [x] represent selection. ✓ / ✗ represent current status: Configured, Not configured, Managed, Installed, or Not installed.
  • Skills show ✓ Installed only when the exact UC FQN, bundle, metastore/workspace attribution, every target root, and SKILL.md all match.
  • Details use Full name rather than the command-line location term, and dates render as compact UTC calendar dates.
  • Wide terminals keep the columns left-aligned in a compact 96-column table; narrow terminals retain the status glyph and full details.
  • Page Up/Down changes the visible detail content on the first key press.
  • A streamed rich MCP row replaces a matching plain configured row in place, preserving its value-based selection while adding its full name and details.
  • MCP filtering uses the full dotted name without a common MCP: prefix, so typing mcp no longer matches every row.
  • No dependencies or lockfiles changed.

Before and after

These are rendered component captures using identical synthetic metadata; they are not live-workspace results. Selection returns the same values before and after.

MCPs — before

 MCP: (space to toggle, ctrl-a all, enter to save, type to filter)
 › ○ MCP: system.ai.docs

MCPs — after

 MCP: (space toggle, ^A all, enter save, type filter, pgup/pgdn details)
  Select Name                       UC location                 Status
› [ ]    docs                       system.ai                   ✗ Not configured
  [-]    tickets                    system.ai                   ✓ Configured
  [-]    managed                    system.ai                   ✓ Managed

  Full name: system.ai.docs
  Description: Search internal documentation and return relevant pages.
  Created by: team@example.com
  Created: 2026-09-01
  Updated: 2026-10-15
  Status: ✗ Not configured

Skills — before

 Skills: (space to toggle, ctrl-a all, enter to save, type to filter)
 › ○ demo.team.triage (on disk)
   ○ demo.team.review

  triage: Summarize a ticket, identify the owner, and recommend next steps.

Skills — after

 Skills: (space toggle, ^A all, enter save, type filter, pgup/pgdn details)
  Select Name                       UC location                 Status
› [ ]    triage                     demo.team                   ✓ Installed
  [ ]    review                     demo.team                   ✗ Not installed

  Full name: demo.team.triage
  Bundle: triage
  Description: Summarize a ticket, identify the owner, and recommend next steps.
  Created by: team@example.com
  Created: 2026-09-01
  Updated: 2026-10-15
  Status: ✓ Installed

Validation

All local commands used a disposable HOME.

  • Review follow-up: 135 passed across the shared picker, catalog browser, Skills download, and managed-row behavior.
  • ruff check src/ tests/: pass.
  • ruff format --check src/ tests/: 253 files formatted.
  • ty check src/: pass.
  • Before the split, the cumulative browser + routing revision passed all 52 GitHub checks, including Linux/Windows unit tests and full Claude/Codex journeys: run 39510850961.
  • Earlier broad local comparison (excluding a baseline-stalling auth test): main 4,907 passed / 21 failed / 9 errors / 40 skipped; browser revision 4,927 passed / 21 failed / 9 errors / 40 skipped. Failure/error identifiers were identical, with zero new failures.

No skips or xfails were added.

Consumers cannot compare MCP services in `ug mcp add` because discovery
drops their descriptions and audit metadata. `ug skills add` only
previews a short description. Both pickers now show a compact Select /
Name / UC location / Status table and a shared, scrollable detail pane.

Fixes https://databricks.atlassian.net/browse/AIGTWY-4848

Reviewed the ticket description, all three Jira comments, and all 47
replies in the linked [Slack
thread](https://databricks.slack.com/archives/C09V48HFPDW/p1790619709443169?thread_ts=1789543972.420209&cid=C09V48HFPDW)
before implementation. One PR covers MCPs and Skills because they share
the picker and metadata presentation.

This browser-only PR is stacked on #1222, which contains the independent
smart-routing CI repairs requested during review. After #1222 lands,
this PR can be retargeted to `main` without changing its browser diff.

- Existing paginated MCP `BASIC` responses supply metadata for initial
and streamed choices; there are no per-service requests.
- `[ ]` / `[x]` represent selection. ✓ / ✗ represent current status:
Configured, Not configured, Managed, Installed, or Not installed.
- Skills show ✓ Installed only when the exact UC FQN, bundle,
metastore/workspace attribution, every target root, and `SKILL.md` all
match.
- Details use `Full name` rather than the command-line `location` term,
and dates render as compact UTC calendar dates.
- Wide terminals keep the columns left-aligned in a compact 96-column
table; narrow terminals retain the status glyph and full details.
- Page Up/Down changes the visible detail content on the first key
press.
- A streamed rich MCP row replaces a matching plain configured row in
place, preserving its value-based selection while adding its full name
and details.
- MCP filtering uses the full dotted name without a common `MCP:`
prefix, so typing `mcp` no longer matches every row.
- No dependencies or lockfiles changed.

### Before and after

These are rendered component captures using identical synthetic
metadata; they are not live-workspace results. Selection returns the
same values before and after.

**MCPs — before**

```text
 MCP: (space to toggle, ctrl-a all, enter to save, type to filter)
 › ○ MCP: system.ai.docs
```

**MCPs — after**

```text
 MCP: (space toggle, ^A all, enter save, type filter, pgup/pgdn details)
  Select Name                       UC location                 Status
› [ ]    docs                       system.ai                   ✗ Not configured
  [-]    tickets                    system.ai                   ✓ Configured
  [-]    managed                    system.ai                   ✓ Managed

  Full name: system.ai.docs
  Description: Search internal documentation and return relevant pages.
  Created by: team@example.com
  Created: 2026-09-01
  Updated: 2026-10-15
  Status: ✗ Not configured
```

**Skills — before**

```text
 Skills: (space to toggle, ctrl-a all, enter to save, type to filter)
 › ○ demo.team.triage (on disk)
   ○ demo.team.review

  triage: Summarize a ticket, identify the owner, and recommend next steps.
```

**Skills — after**

```text
 Skills: (space toggle, ^A all, enter save, type filter, pgup/pgdn details)
  Select Name                       UC location                 Status
› [ ]    triage                     demo.team                   ✓ Installed
  [ ]    review                     demo.team                   ✗ Not installed

  Full name: demo.team.triage
  Bundle: triage
  Description: Summarize a ticket, identify the owner, and recommend next steps.
  Created by: team@example.com
  Created: 2026-09-01
  Updated: 2026-10-15
  Status: ✓ Installed
```

### Validation

All local commands used a disposable HOME.

- Review follow-up: **135 passed** across the shared picker, catalog
browser, Skills download, and managed-row behavior.
- `ruff check src/ tests/`: pass.
- `ruff format --check src/ tests/`: 253 files formatted.
- `ty check src/`: pass.
- Before the split, the cumulative browser + routing revision passed all
**52** GitHub checks, including Linux/Windows unit tests and full
Claude/Codex journeys: [run
39510850961](https://github.com/databricks/unity-gateway/actions/runs/39510850961).
- Earlier broad local comparison (excluding a baseline-stalling auth
test): main 4,907 passed / 21 failed / 9 errors / 40 skipped; browser
revision 4,927 passed / 21 failed / 9 errors / 40 skipped. Failure/error
identifiers were identical, with zero new failures.

No skips or xfails were added.
@sunishsheth2009
sunishsheth2009 added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit ce9f822 Oct 22, 2026
55 checks passed
@sunishsheth2009
sunishsheth2009 deleted the sunish/aigtwy-4848-browser-main branch October 22, 2026 00:53
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.

2 participants