Skip to content

mcp: metastore-scope discovery, short service names, and bulk --all - #674

Open
nachill-databricks wants to merge 1 commit into
databricks:mainfrom
nachill-databricks:achille/mcp-metastore-discovery
Open

nachill-databricks wants to merge 1 commit into
databricks:mainfrom
nachill-databricks:achille/mcp-metastore-discovery

Conversation

@nachill-databricks

Copy link
Copy Markdown
Contributor

Three related MCP fixes for ucode:

  1. Metastore-scope discovery — replace the catalog→schema→service walk (which
    timed out on large workspaces and surfaced only system.ai.*) with a single
    metastore-scoped /api/2.1/unity-catalog/mcp-services call (empty parent).
    Returns every service the caller can access, permission-filtered server-side.
  2. Short service names — register UC MCP services under their bare leaf name
    (github, not system-ai-github), with collision fallback to the full dashed
    path. Full UC name is preserved in the URL.
  3. Bulk --all — install every MCP the user has permission to in one step;
    onboarding offers this, ug configure mcp stays the granular picker.

This pull request and its description were written by Isaac.

Three MCP-configuration improvements:

- Discovery: list_all_mcp_services now uses the mcp-services metastore scope
  (parent omitted) -- one paginated call returning every service the caller can
  access -- instead of walking catalogs -> schemas -> services. The walk couldn't
  enumerate a large metastore (thousands of catalogs) within its budget, so the
  picker surfaced nothing but the system.ai list. Removes the now-unused walk
  helpers.

- Naming: UC MCP services register under their bare service id (github) rather
  than the full dashed path (system-ai-github), so the agent tool prefix is
  mcp__github__. The full UC name stays in the entry URL, so loading is
  unaffected. Leaf names are collision-safe: services sharing an id across
  schemas, or clashing with a non-service entry, keep the full dashed path, and
  the picker matches either form for back-compat with existing configs.

- Bulk: `configure mcp --all` (and `mcp add --all`) registers every accessible
  MCP service with no picker; the onboarding "Configure MCP servers..." prompt
  now uses it and points to `configure mcp` for manual selection. --all targets
  the agents configured with ucode (not every installed MCP CLI) and reports the
  registered count, surfacing the listing-failure reason when empty.

Co-authored-by: Isaac <no-reply@databricks.com>
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