Skip to content

Switch to upstream MCP registry format and add skills provider methods#4171

Merged
rdimitrov merged 8 commits intomainfrom
wire-registry-skills-discovery
Mar 17, 2026
Merged

Switch to upstream MCP registry format and add skills provider methods#4171
rdimitrov merged 8 commits intomainfrom
wire-registry-skills-discovery

Conversation

@rdimitrov
Copy link
Member

@rdimitrov rdimitrov commented Mar 17, 2026

Summary

The registry system used a legacy format as its internal representation. The upstream MCP format already exists in toolhive-core and toolhive-catalog but was only used by the API provider path. This switches to upstream as the primary format and adds skills methods to the Provider interface.

  • Remove GetImageServer/SearchImageServers/ListImageServers from Provider interface; single caller migrated to type assertion
  • Switch embedded catalog from catalog.Legacy() to catalog.Upstream()
  • Add dual-format auto-detection for custom registry files and URLs; legacy format emits a deprecation warning
  • Add short-name resolution for backward compatibility (osv resolves to io.github.stacklok/osv; errors on ambiguity)
  • Add ListAvailableSkills(), GetSkill(), and SearchSkills() to Provider interface with implementations on all providers
  • Wire SkillsClient into APIRegistryProvider/CachedAPIRegistryProvider with caching for API-backed skills

Fixes #

Type of change

  • Bug fix
  • New feature
  • Refactoring (no behavior change)
  • Dependency update
  • Documentation
  • Other (describe):

Test plan

  • Unit tests (task test)
  • E2E tests (task test-e2e)
  • Linting (task lint-fix)
  • Manual testing (describe below)

Changes

File Change

Does this introduce a user-facing change?

Special notes for reviewers

Large PR Justification

[Explain why this PR must be large, such as:]

@github-actions github-actions bot added the size/L Large PR: 600-999 lines changed label Mar 17, 2026
@rdimitrov rdimitrov force-pushed the wire-registry-skills-discovery branch from 5ee15ca to 2d2650e Compare March 17, 2026 00:43
@github-actions github-actions bot added size/L Large PR: 600-999 lines changed and removed size/L Large PR: 600-999 lines changed labels Mar 17, 2026
@codecov
Copy link

codecov bot commented Mar 17, 2026

Codecov Report

❌ Patch coverage is 34.46970% with 173 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.12%. Comparing base (b65f94f) to head (c0634b7).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
pkg/registry/provider_remote.go 16.00% 37 Missing and 5 partials ⚠️
pkg/registry/provider_cached.go 0.00% 39 Missing ⚠️
pkg/registry/provider_local.go 29.09% 34 Missing and 5 partials ⚠️
pkg/registry/provider_api.go 0.00% 20 Missing ⚠️
pkg/registry/provider_base.go 61.29% 8 Missing and 4 partials ⚠️
pkg/config/registry.go 54.16% 3 Missing and 8 partials ⚠️
pkg/registry/upstream_parser.go 79.48% 4 Missing and 4 partials ⚠️
pkg/runner/retriever/retriever.go 66.66% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4171      +/-   ##
==========================================
- Coverage   69.29%   69.12%   -0.17%     
==========================================
  Files         466      467       +1     
  Lines       46774    46963     +189     
==========================================
+ Hits        32412    32464      +52     
- Misses      11874    11924      +50     
- Partials     2488     2575      +87     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions github-actions bot added size/L Large PR: 600-999 lines changed and removed size/L Large PR: 600-999 lines changed labels Mar 17, 2026
@rdimitrov rdimitrov self-assigned this Mar 17, 2026
@rdimitrov rdimitrov force-pushed the wire-registry-skills-discovery branch from 7b8c53c to 0996df7 Compare March 17, 2026 09:53
@github-actions github-actions bot added size/L Large PR: 600-999 lines changed and removed size/L Large PR: 600-999 lines changed labels Mar 17, 2026
@rdimitrov rdimitrov force-pushed the wire-registry-skills-discovery branch from 0ce46b5 to 21c6e30 Compare March 17, 2026 10:41
@github-actions github-actions bot added size/L Large PR: 600-999 lines changed size/XL Extra large PR: 1000+ lines changed and removed size/L Large PR: 600-999 lines changed labels Mar 17, 2026
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Large PR Detected

This PR exceeds 1000 lines of changes and requires justification before it can be reviewed.

How to unblock this PR:

Add a section to your PR description with the following format:

## Large PR Justification

[Explain why this PR must be large, such as:]
- Generated code that cannot be split
- Large refactoring that must be atomic
- Multiple related changes that would break if separated
- Migration or data transformation

Alternative:

Consider splitting this PR into smaller, focused changes (< 1000 lines each) for easier review and reduced risk.

See our Contributing Guidelines for more details.


This review will be automatically dismissed once you add the justification section.

Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
@rdimitrov rdimitrov force-pushed the wire-registry-skills-discovery branch from e9abe07 to c0634b7 Compare March 17, 2026 12:17
@github-actions github-actions bot added size/XL Extra large PR: 1000+ lines changed and removed size/XL Extra large PR: 1000+ lines changed labels Mar 17, 2026
@github-actions github-actions bot added size/XL Extra large PR: 1000+ lines changed and removed size/XL Extra large PR: 1000+ lines changed labels Mar 17, 2026
@rdimitrov rdimitrov marked this pull request as ready for review March 17, 2026 12:21
@rdimitrov rdimitrov changed the title Draft: Switch to upstream MCP registry format and wire skills discovery Switch to upstream MCP registry format and wire skills discovery Mar 17, 2026
@rdimitrov rdimitrov changed the title Switch to upstream MCP registry format and wire skills discovery Switch to upstream MCP registry format and add skills provider methods Mar 17, 2026
@rdimitrov rdimitrov dismissed github-actions[bot]’s stale review March 17, 2026 12:57

Already provided explanation

@rdimitrov rdimitrov merged commit 6bb814d into main Mar 17, 2026
80 of 83 checks passed
@rdimitrov rdimitrov deleted the wire-registry-skills-discovery branch March 17, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XL Extra large PR: 1000+ lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants