Skip to content

fix(mcp-registry): Ignore empty values the registry drops when verifying a listing - #971

Open
sentry-junior[bot] wants to merge 1 commit into
masterfrom
fix/mcp-registry-omitted-empty-values
Open

sentry-junior[bot] wants to merge 1 commit into
masterfrom
fix/mcp-registry-omitted-empty-values

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

The mcp-registry target compares the registry listing with server.json by strict deep equality. The MCP Registry serializes servers with Go omitempty (model), so values such as isRequired: false and isSecret: false are missing from the listing. The publish succeeds, then verification throws "does not match the published manifest".

A retry fails the same way, because the version is now listed and the existing-listing check uses the same comparison.

This broke getsentry/publish#10288 (getsentry/toolkit CLI 0.49.0, run). The toolkit server.json sets isRequired: false and isSecret: false. The live io.github.getsentry/sentry-mcp@0.49.0 listing is active and omits exactly those fields.

The fix drops false, "", null, [] and {} from both sides before comparing (recursively in objects), next to the existing $schema removal. Real differences still fail.

Tests: added a case where the manifest has isRequired: false, value: "" and packageArguments: [] and the listing omits them. It fails without the change. I also checked the normalized comparison against the real 0.49.0 listing and the release branch server.json: they match now, and the strict comparison fails.

via automation evt_7eb3514757568b8678df9b5c7d9caa7b · Run ID dispatch_7466a9540a78c06dd3a2a9817de28c82.

--

View Session [Sentry]

…ing a listing

The MCP Registry stores server.json with Go omitempty, so fields such as
isRequired: false or isSecret: false are missing from the listing. The strict
comparison then reported a mismatch right after a successful publish, and a
retry failed the same way because the version is now listed.

This branch has not been deployed

No deployments
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.

0 participants