Skip to content

Prepare core 0.12.0 and validator 0.13.1: user-friendly READMEs and validator defaults in core - #28

Merged
ObjectIsAdvantag merged 4 commits into
mainfrom
release/core-0.12.0-validator-0.13.1
Oct 26, 2026
Merged

ObjectIsAdvantag merged 4 commits into
mainfrom
release/core-0.12.0-validator-0.13.1

Conversation

@ObjectIsAdvantag

@ObjectIsAdvantag ObjectIsAdvantag commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Summary

Prepares two latest releases for the MCP Description 0.8-compatible packages. Release validator first, then core:

  • @mcpdesc/validator@0.13.1: README rewrite only. No API, schema, or behavior changes.
  • @mcpdesc/core@0.12.0: README rewrite; selectors become optional and follow the validator defaults; a canonical selector option is added; the original 0.8.0 rules are deprecated. Core pins @mcpdesc/validator@0.13.1.

0.9.0-draft.1 support is not included and will follow on a dedicated branch as a next release.

Documentation

  • Root, core, and validator READMEs are restructured for library users. They cover choosing a package, quick starts, reading results, choosing a selector, browser and strict-CSP use, troubleshooting, compatibility, and upgrading.
  • "Experimental" is replaced with "Tested for MCP Description v0.8", and an mcpdesc: 0.8 badge is added, matching mcptoolkit-contract.
  • Package READMEs use absolute GitHub links so they work on npmjs.com.
  • Contributor and maintainer material moves out of the READMEs. Development checks go to CONTRIBUTING.md, and the snapshot lifecycle goes to docs/validator-maintainer-guide.md.

Core 0.12.0 changes

  • Optional selectors. The selector is now optional in projection, merge, declaration selection, component resolution, and 0.8.0 migration.
    • When omitted, core resolves the validator default for the document's mcpdesc, currently 0.8.0-rev.20261021. Merge resolves from its first document.
    • Explicit selectors still pin exact rules.
    • Unresolvable documents fail with a source diagnostic, such as unsupported-format-version, with no fallback to older rules.
  • selector option. selector is now the canonical option name, matching the validator. specification remains a deprecated alias, and conflicting values fail with conflicting-selector-options.
  • Deprecation. Selector 0.8.0 is deprecated, matching the validator. It still works when pinned and is listed in deprecatedCoreSpecifications.
  • New selector. 0.8.0-rev.20261021 is supported by every selector-sensitive operation, and the exhaustive support matrix is updated.
  • Upgrade note: callers that keep specification: '0.8.0' still get the original rules. Removing it adopts the issue Preserve unknown JSON Schema keywords and apply MCP-specific semantics only when defined #24 correction: x-mcp-header is checked only for MCP 2026-07-28. See "Upgrading from 0.11" in the core README.

Security

npm audit fix updates only the lockfile and resolves all reported advisories: vite, vitest, @vitest/mocker, source-map-js, and fast-uri (via ajv). npm audit now reports 0 vulnerabilities. Package dependency ranges are unchanged, and the generated standalone validator bundle is byte-identical.

Validation

  • npm run check passes: 63 core tests and 327 validator tests, plus declarations, browser and strict-CSP bundles, tarball contents, and an isolated consumer install of core 0.12.0 with validator 0.13.1.
  • New regressions use the revision fixture custom-tool-schema-keywords.json. It is valid under the default and invalid under the 0.8.0 pin, so the tests show that each operation follows the default when unpinned, honors explicit pins, accepts both selector and the specification alias, and rejects conflicting options.

AI assistance disclosure

Prepared with GitHub Copilot (agent mode) under maintainer direction, including documentation, code, tests, and dependency updates. The maintainer reviews and is accountable for the result.

Restructure the root, core, and validator READMEs around user tasks:
package choice, quick starts, result handling, selector choice, browser
use, troubleshooting, and compatibility. Replace experimental wording
with "tested for MCP Description v0.8" and add mcpdesc compatibility
badges. Use absolute links in package READMEs so they work on npmjs.com.
Move development checks to CONTRIBUTING and the snapshot lifecycle to
the validator maintainer guide. No API or behavior changes.

Assisted by GitHub Copilot (agent mode).
Make the specification selector optional in core projection, merge,
declaration selection, component resolution, and 0.8.0 migration. When
omitted, operations use the validator default for the document's mcpdesc
version (0.8.0-rev.20261021); explicit selectors still pin. Support the
revision selector in core, pin @mcpdesc/validator 0.13.1, and document
the upgrade from explicit '0.8.0' pins.

Assisted by GitHub Copilot (agent mode).
Custom Tool-schema keywords alone validate under both 0.8.0 and the
revision; the validity difference is x-mcp-header with protocol
revisions other than 2026-07-28.

Assisted by GitHub Copilot (agent mode).
Add selector as the canonical option across core operations, matching
@mcpdesc/validator, with specification kept as a deprecated alias and
conflicting values rejected with conflicting-selector-options.
Deprecate the original 0.8.0 rules in core, matching the validator.
Update locked dependencies to resolve npm audit advisories.

Assisted by GitHub Copilot (agent mode).

@ObjectIsAdvantag ObjectIsAdvantag left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

LGTM; latest release for mcpdesc v0.8, while work starts on v0.9

@ObjectIsAdvantag
ObjectIsAdvantag merged commit 433d774 into main Oct 26, 2026
4 checks passed
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