@mcpdesc/validator 0.11.1 → 0.12.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -7
- package/README.md +13 -11
- package/index.d.ts +9 -9
- package/package.json +2 -2
- package/src/index.js +10 -10
- package/src/snapshots/{0.8.0-rc.3 → 0.8.0}/base.js +0 -5
- package/src/snapshots/{0.8.0-rc.3 → 0.8.0}/index.js +3 -3
- package/src/snapshots/{0.8.0-rc.3 → 0.8.0}/schema.json +3 -3
- package/src/snapshots/{0.8.0-rc.3 → 0.8.0}/semantic.js +1 -1
- package/standalone.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,19 @@ Dates for published releases are the UTC publication dates recorded by npm.
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.12.0-rc.1] - 2026-09-09
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added the immutable stable `0.8.0` selector, its frozen conformance fixtures,
|
|
16
|
+
and component reference resolution with terminal-target provenance.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Advanced active runtime support to RC.4 and stable `0.8.0`, deprecated RC.4,
|
|
21
|
+
and retired RC.3 from current registries, declarations, bundles, and package
|
|
22
|
+
contents while retaining its immutable source and fixtures in Git.
|
|
23
|
+
|
|
11
24
|
## [0.11.1] - 2026-09-08
|
|
12
25
|
|
|
13
26
|
### Fixed
|
|
@@ -40,8 +53,6 @@ Dates for published releases are the UTC publication dates recorded by npm.
|
|
|
40
53
|
- Narrowed active runtime support to RC.2 and RC.3 and marked RC.2 deprecated.
|
|
41
54
|
- Excluded retired runtime snapshots from generated bundles and package
|
|
42
55
|
contents while retaining their source and frozen fixtures in Git.
|
|
43
|
-
- Removed the retained snapshot-intake manifest; intake bundles are disposable
|
|
44
|
-
inputs and imported bytes remain protected by the snapshot integrity manifest.
|
|
45
56
|
|
|
46
57
|
## [0.10.0] - 2026-09-07
|
|
47
58
|
|
|
@@ -105,10 +116,9 @@ Dates for published releases are the UTC publication dates recorded by npm.
|
|
|
105
116
|
|
|
106
117
|
### Changed
|
|
107
118
|
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
behavior.
|
|
119
|
+
- Updated shipped repository metadata and provenance files to identify the MCP
|
|
120
|
+
Description tooling repository as the package maintenance location. Public
|
|
121
|
+
APIs, immutable snapshots, diagnostics, and validation behavior are unchanged.
|
|
112
122
|
|
|
113
123
|
## [0.6.0] - 2026-09-02
|
|
114
124
|
|
|
@@ -164,7 +174,8 @@ Dates for published releases are the UTC publication dates recorded by npm.
|
|
|
164
174
|
- Added synchronous structural and semantic validation for parsed JavaScript values with deterministic diagnostics and exact selector dispatch.
|
|
165
175
|
- Added ESM browser support, TypeScript declarations, embedded schema provenance, frozen fixtures, and package-content checks.
|
|
166
176
|
|
|
167
|
-
[Unreleased]: https://github.com/mcpdesc/core/compare/validator-v0.
|
|
177
|
+
[Unreleased]: https://github.com/mcpdesc/core/compare/validator-v0.12.0-rc.1...HEAD
|
|
178
|
+
[0.12.0-rc.1]: https://github.com/mcpdesc/core/compare/validator-v0.11.1...validator-v0.12.0-rc.1
|
|
168
179
|
[0.11.1]: https://github.com/mcpdesc/core/compare/validator-v0.11.0...validator-v0.11.1
|
|
169
180
|
[0.11.0]: https://github.com/mcpdesc/core/compare/validator-v0.10.1...validator-v0.11.0
|
|
170
181
|
[0.10.1]: https://github.com/mcpdesc/core/compare/validator-v0.10.0...validator-v0.10.1
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ snapshots. The package:
|
|
|
10
10
|
|
|
11
11
|
Use it when accepting, generating, migrating, or transforming MCP Description
|
|
12
12
|
documents and you need to know whether the result conforms to a specific
|
|
13
|
-
published draft or
|
|
13
|
+
published draft, release candidate, or stable version. It validates MCP Description documents,
|
|
14
14
|
not live MCP servers or MCP protocol messages.
|
|
15
15
|
|
|
16
16
|
## Install
|
|
@@ -25,7 +25,7 @@ npm install @mcpdesc/validator
|
|
|
25
25
|
import { validateMcpDescription } from '@mcpdesc/validator';
|
|
26
26
|
|
|
27
27
|
const result = validateMcpDescription(parsedDocument, {
|
|
28
|
-
specification: '0.8.0
|
|
28
|
+
specification: '0.8.0',
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
for (const diagnostic of result.diagnostics) {
|
|
@@ -48,21 +48,23 @@ The package supports these immutable selectors, newest first:
|
|
|
48
48
|
|
|
49
49
|
| Selector | First validator release | Embedded schema SHA-256 |
|
|
50
50
|
|---|---|---|
|
|
51
|
-
| `0.8.0
|
|
52
|
-
| `0.8.0-rc.
|
|
51
|
+
| `0.8.0` | `0.12.0-rc.1` | `36686f92ba0cc98bde2c34eaad31c0304d6e5cebdd2c4d2be1be06aecef41119` |
|
|
52
|
+
| `0.8.0-rc.4` (deprecated) | `0.11.0` | `d38e54db859813b63be2a5c91dde91250035f18bcb5910208cf71fa6875d6eef` |
|
|
53
53
|
|
|
54
54
|
The validator package embeds the schema and executable behavior for each
|
|
55
|
-
selector. RC.
|
|
56
|
-
should select
|
|
55
|
+
selector. RC.4 remains available for migration compatibility; new integrations
|
|
56
|
+
should select stable `0.8.0`. Earlier selectors remain available by pinning an older
|
|
57
57
|
immutable validator release. npm integrity and trusted-publishing provenance identify released
|
|
58
58
|
package bytes; specification repository tags and commits are informational.
|
|
59
59
|
|
|
60
|
-
Component reference resolution is available for RC.
|
|
60
|
+
Component reference resolution is available for RC.4 and stable `0.8.0` with
|
|
61
61
|
terminal-target provenance for each authored reference.
|
|
62
62
|
|
|
63
63
|
## Usage
|
|
64
64
|
|
|
65
|
-
The `options` argument and exact `specification` selector are required.
|
|
65
|
+
The `options` argument and exact `specification` selector are required. Stable,
|
|
66
|
+
draft, and release-candidate selectors remain distinct immutable compatibility
|
|
67
|
+
contracts.
|
|
66
68
|
|
|
67
69
|
### Entry points
|
|
68
70
|
|
|
@@ -130,17 +132,17 @@ Structural paths start with AJV's instance path. A `required` error appends its
|
|
|
130
132
|
|
|
131
133
|
## Support metadata
|
|
132
134
|
|
|
133
|
-
The package exports frozen `supportedSpecifications`, `deprecatedSpecifications`, `supportedProtocolVersions`, and `specificationProvenance` values. Provenance records include the snapshot tag, recorded schema URI, and embedded schema SHA-256 digest. Public validation dispatches through a registry keyed by exact specification selectors. The active selector set is `0.8.0-rc.
|
|
135
|
+
The package exports frozen `supportedSpecifications`, `deprecatedSpecifications`, `supportedProtocolVersions`, and `specificationProvenance` values. Provenance records include the snapshot tag, recorded schema URI, and embedded schema SHA-256 digest. Public validation dispatches through a registry keyed by exact specification selectors. The active selector set is `0.8.0-rc.4` and `0.8.0`; `deprecatedSpecifications` contains RC.4. The protocol-version export is the deduplicated union supported by active snapshots.
|
|
134
136
|
|
|
135
137
|
The package also exports the frozen `mcpExtensionCatalogue` and
|
|
136
|
-
`mcpExtensionMaturity` classifier pinned by the
|
|
138
|
+
`mcpExtensionMaturity` classifier pinned by the stable snapshot. The catalogue
|
|
137
139
|
records its authoritative source, effective date, and official or experimental
|
|
138
140
|
identifier assignments. Catalogue recognition establishes authority and
|
|
139
141
|
maturity only; it does not validate extension-specific settings.
|
|
140
142
|
|
|
141
143
|
npm package SemVer tracks implementation releases independently from specification snapshot identity. Adding a later snapshot is additive: it must use a sibling implementation and selector rather than changing an existing snapshot's schema, semantics, metadata, fixtures, or results.
|
|
142
144
|
|
|
143
|
-
The RC.
|
|
145
|
+
The RC.4 and stable component resolvers report authored and terminal target paths
|
|
144
146
|
for successful substitutions. Additive tooling corrections that provide this
|
|
145
147
|
metadata are recorded explicitly in the integrity manifest.
|
|
146
148
|
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type McpDescriptionSpecification = '0.8.0-rc.
|
|
1
|
+
export type McpDescriptionSpecification = '0.8.0-rc.4' | '0.8.0';
|
|
2
2
|
|
|
3
3
|
export type SupportedProtocolVersion =
|
|
4
4
|
| '2024-11-05'
|
|
@@ -38,7 +38,7 @@ export interface McpDescriptionComponentResolutionResult {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
export interface ResolveMcpDescriptionComponentReferencesOptions {
|
|
41
|
-
readonly specification: '0.8.0-rc.
|
|
41
|
+
readonly specification: '0.8.0-rc.4' | '0.8.0';
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export type McpExtensionMaturity = 'official' | 'experimental' | 'uncatalogued';
|
|
@@ -56,16 +56,16 @@ export interface McpExtensionCatalogue {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
export interface SpecificationProvenance {
|
|
59
|
-
readonly '0.8.0-rc.3': {
|
|
60
|
-
readonly snapshotTag: 'v0.8.0-rc.3';
|
|
61
|
-
readonly schemaUri: 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.3.json';
|
|
62
|
-
readonly schemaSha256: 'a9c3ff77ba37c72362909f538f6e957d055e6fdb372f8b3d529e3651af3fecf4';
|
|
63
|
-
};
|
|
64
59
|
readonly '0.8.0-rc.4': {
|
|
65
60
|
readonly snapshotTag: 'v0.8.0-rc.4';
|
|
66
61
|
readonly schemaUri: 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.4.json';
|
|
67
62
|
readonly schemaSha256: 'd38e54db859813b63be2a5c91dde91250035f18bcb5910208cf71fa6875d6eef';
|
|
68
63
|
};
|
|
64
|
+
readonly '0.8.0': {
|
|
65
|
+
readonly snapshotTag: 'v0.8.0';
|
|
66
|
+
readonly schemaUri: 'https://mcpdesc.org/schema/mcp-description/0.8.0.json';
|
|
67
|
+
readonly schemaSha256: '36686f92ba0cc98bde2c34eaad31c0304d6e5cebdd2c4d2be1be06aecef41119';
|
|
68
|
+
};
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
export interface ResolveMcpDescriptionSpecificationOptions {
|
|
@@ -89,8 +89,8 @@ export type McpDescriptionSpecificationResolution =
|
|
|
89
89
|
| ResolvedMcpDescriptionSpecification
|
|
90
90
|
| UnresolvedMcpDescriptionSpecification;
|
|
91
91
|
|
|
92
|
-
export declare const supportedSpecifications: readonly ['0.8.0-rc.
|
|
93
|
-
export declare const deprecatedSpecifications: readonly ['0.8.0-rc.
|
|
92
|
+
export declare const supportedSpecifications: readonly ['0.8.0-rc.4', '0.8.0'];
|
|
93
|
+
export declare const deprecatedSpecifications: readonly ['0.8.0-rc.4'];
|
|
94
94
|
|
|
95
95
|
export declare const supportedProtocolVersions: readonly [
|
|
96
96
|
'2024-11-05',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcpdesc/validator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0-rc.1",
|
|
4
4
|
"description": "Structural and semantic validation for MCP Description snapshots",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
33
33
|
"src/index.js",
|
|
34
|
-
"src/snapshots/0.8.0-rc.3",
|
|
35
34
|
"src/snapshots/0.8.0-rc.4",
|
|
35
|
+
"src/snapshots/0.8.0",
|
|
36
36
|
"standalone.js",
|
|
37
37
|
"index.d.ts",
|
|
38
38
|
"CHANGELOG.md",
|
package/src/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import * as rc3 from './snapshots/0.8.0-rc.3/index.js';
|
|
2
1
|
import * as rc4 from './snapshots/0.8.0-rc.4/index.js';
|
|
3
|
-
import
|
|
2
|
+
import * as stable from './snapshots/0.8.0/index.js';
|
|
4
3
|
import { resolveComponentReferences as resolveRc4ComponentReferences } from './snapshots/0.8.0-rc.4/semantic.js';
|
|
4
|
+
import { resolveComponentReferences as resolveStableComponentReferences } from './snapshots/0.8.0/semantic.js';
|
|
5
5
|
import {
|
|
6
6
|
mcpExtensionCatalogue,
|
|
7
7
|
mcpExtensionMaturity
|
|
8
|
-
} from './snapshots/0.8.0
|
|
8
|
+
} from './snapshots/0.8.0/semantic.js';
|
|
9
9
|
|
|
10
10
|
export { mcpExtensionCatalogue, mcpExtensionMaturity };
|
|
11
11
|
|
|
12
12
|
const snapshots = Object.freeze({
|
|
13
|
-
[
|
|
14
|
-
[
|
|
13
|
+
[rc4.specification]: rc4,
|
|
14
|
+
[stable.specification]: stable
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
const componentResolvers = Object.freeze({
|
|
18
|
-
'0.8.0-rc.
|
|
19
|
-
'0.8.0
|
|
18
|
+
'0.8.0-rc.4': resolveRc4ComponentReferences,
|
|
19
|
+
'0.8.0': resolveStableComponentReferences
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
const schemaUris = Object.freeze({
|
|
23
|
-
'0.8.0-rc.
|
|
24
|
-
'0.8.0
|
|
23
|
+
'0.8.0-rc.4': 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.4.json',
|
|
24
|
+
'0.8.0': 'https://mcpdesc.org/schema/mcp-description/0.8.0.json'
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
export const supportedSpecifications = Object.freeze(Object.keys(snapshots));
|
|
28
|
-
export const deprecatedSpecifications = Object.freeze(['0.8.0-rc.
|
|
28
|
+
export const deprecatedSpecifications = Object.freeze(['0.8.0-rc.4']);
|
|
29
29
|
export const supportedProtocolVersions = Object.freeze([
|
|
30
30
|
...new Set(Object.values(snapshots).flatMap((snapshot) => snapshot.supportedProtocolVersions))
|
|
31
31
|
]);
|
|
@@ -691,11 +691,6 @@ function validateVersionSpecificSemantics(document, rel, diagnostics) {
|
|
|
691
691
|
}
|
|
692
692
|
}
|
|
693
693
|
|
|
694
|
-
checkMinimumVersion('info', ['info'], document.info ?? {}, 'title', '2025-06-18', rootScope);
|
|
695
|
-
checkMinimumVersion('info', ['info'], document.info ?? {}, 'description', '2025-11-25', rootScope);
|
|
696
|
-
checkMinimumVersion('info', ['info'], document.info ?? {}, 'icons', '2025-11-25', rootScope);
|
|
697
|
-
checkMinimumVersion('info', ['info'], document.info ?? {}, 'websiteUrl', '2025-11-25', rootScope);
|
|
698
|
-
|
|
699
694
|
(document.transports ?? []).forEach((transport, index) => {
|
|
700
695
|
const scope = effectiveScope(document, transport, rootScope);
|
|
701
696
|
if (transport.type === 'streamable-http') {
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
validateMcpdesc08Document
|
|
4
4
|
} from './semantic.js';
|
|
5
5
|
|
|
6
|
-
export const specification = '0.8.0
|
|
7
|
-
export const snapshotTag = 'v0.8.0
|
|
8
|
-
export const schemaSha256 = '
|
|
6
|
+
export const specification = '0.8.0';
|
|
7
|
+
export const snapshotTag = 'v0.8.0';
|
|
8
|
+
export const schemaSha256 = '36686f92ba0cc98bde2c34eaad31c0304d6e5cebdd2c4d2be1be06aecef41119';
|
|
9
9
|
export { supportedProtocolVersions };
|
|
10
10
|
|
|
11
11
|
export function validate(document) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://mcpdesc.org/schema/mcp-description/0.8.0
|
|
4
|
-
"title": "MCP Description",
|
|
5
|
-
"description": "MCP
|
|
3
|
+
"$id": "https://mcpdesc.org/schema/mcp-description/0.8.0.json",
|
|
4
|
+
"title": "MCP Description (mcpdesc)",
|
|
5
|
+
"description": "A static, curated format to describe what an MCP server offers. Uses MCP-native terminology, an OpenAPI-aligned info and security structure, and support for multiple transports, protocol revisions, and specification extensions. Supports MCP protocol revisions 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25, and 2026-07-28.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": [
|
|
8
8
|
"mcpdesc",
|