Skip to content

feat(macos): cross-registry server browse + multiselect registry filter (MCP-996)#583

Open
Dumbris wants to merge 1 commit into
mainfrom
feat/macos-registry-browse-multiselect
Open

feat(macos): cross-registry server browse + multiselect registry filter (MCP-996)#583
Dumbris wants to merge 1 commit into
mainfrom
feat/macos-registry-browse-multiselect

Conversation

@Dumbris
Copy link
Copy Markdown
Member

@Dumbris Dumbris commented Jun 3, 2026

macOS: cross-registry server browse + multiselect registry filter

Ports the Web UI R1 experience (#580) into the macOS tray's Registries tab — MCP-996 parity for macOS.

What's new

  • Multiselect registry filter: a Menu with checkable registry rows + Select all / Clear, summarised by a selection label (3 registries / All registries (N)).
  • Cross-registry search: fans out to every selected registry, merges + dedupes results; each result card is attributed to its registry. Registries that need an API key / are unreachable are surfaced in a non-fatal notice (a hard error only when every selected registry fails).
  • Neutral transport labels on cards (mirrors Web UI R2): remote / stdio:npm / stdio:python / stdio:docker / stdio.
  • Add to MCP per result (POST .../servers/{serverId}/add); reports missing_inputs when a server needs env values (full prompt flow is a follow-up).
  • APIClient: searchRegistryServers + addServerFromRegistry, with encodeURIComponent-equivalent path encoding for ids containing slashes.
  • MainWindow: hidden ⌘1–⌘5 shortcuts to jump between sidebar sections (keyboard nav + lets UI-test automation reach a section).

Verification

  • swiftc -O full-app compile: clean (0 errors).
  • 23 SwiftPM unit tests pass (RegistryModelsTests + new ServerBrowseModelsTests): transport classification, snake_case decode, unavailable marker, missing_inputs decode, URI-component encoding.
  • Data layer bash-checked against a live core: reference + docker return servers; pulse/smithery report unavailable (need keys).
  • ui-test MCP: confirmed the app runs this build (tray reads MCPProxy v0.36.0, accessibility granted) and the new ⌘3 navigation is accepted. Pixel screenshots came back blank/black — the ui-test helper is missing macOS Screen Recording permission (a system-settings grant), so visual capture of the rendered tab is blocked in this environment. Grant it and I can attach screenshots.

Refs MCP-996. Builds on #580 (web R1) / #578 (macOS registry surface).

Ports the Web UI R1 experience into the macOS tray's Registries tab (MCP-996
parity for macOS, tracked under the v0.36.0 feedback batch):

- APIClient: searchRegistryServers (GET /registries/{id}/servers) and
  addServerFromRegistry (POST .../servers/{serverId}/add), encodeURIComponent-
  equivalent path encoding for ids with slashes.
- RegistryModels: RepositoryServer (+ neutral transport classifier mirroring
  the Web UI: remote / stdio:npm / stdio:python / stdio:docker / stdio),
  SearchRegistryServersResponse (+ per-registry 'unavailable' marker),
  AddServerResult / error decode with missing_inputs.
- ServerBrowseView: multiselect registry filter (Menu w/ check toggles +
  All/Clear), cross-registry search (fan out + merge + dedupe), registry-
  attributed result cards with transport label + Add button, and a non-fatal
  notice for registries that need a key / are unreachable. Embedded atop the
  Registries tab; the configured-registries list stays below.
- MainWindow: hidden Cmd-1..5 shortcuts to jump between sidebar sections
  (keyboard nav + enables UI-test automation to reach a section).

Verified: swiftc -O clean; 23 SwiftPM unit tests pass (transport/decode/encode);
data layer bash-checked (reference+docker return, pulse/smithery report
unavailable); ui-test MCP confirmed the app runs this build and the Cmd-3
navigation works (pixel screenshots blocked by missing Screen Recording
permission on the ui-test helper).

Refs MCP-996
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 52a1f65
Status: ✅  Deploy successful!
Preview URL: https://5372bee7.mcpproxy-docs.pages.dev
Branch Preview URL: https://feat-macos-registry-browse-m.mcpproxy-docs.pages.dev

View logs

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

📦 Build Artifacts

Workflow Run: View Run
Branch: feat/macos-registry-browse-multiselect

Available Artifacts

  • archive-darwin-amd64 (28 MB)
  • archive-darwin-arm64 (25 MB)
  • archive-linux-amd64 (16 MB)
  • archive-linux-arm64 (14 MB)
  • archive-windows-amd64 (28 MB)
  • archive-windows-arm64 (24 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (21 MB)
  • installer-dmg-darwin-arm64 (19 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 26907273969 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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