@mcpdesc/validator 0.8.0 → 0.9.0
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 +19 -1
- package/README.md +9 -2
- package/index.d.ts +23 -2
- package/package.json +1 -1
- package/src/index.js +11 -2
- package/src/snapshots/0.8.0-rc.2/base.js +1417 -0
- package/src/snapshots/0.8.0-rc.2/index.js +17 -0
- package/src/snapshots/0.8.0-rc.2/schema.json +2820 -0
- package/src/snapshots/0.8.0-rc.2/semantic.js +971 -0
- package/standalone.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,23 @@ Dates for published releases are the UTC publication dates recorded by npm.
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.9.0] - 2026-09-04
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added the immutable `0.8.0-rc.2` selector from specification tag
|
|
16
|
+
`v0.8.0-rc.2`, including its manifest-verified runtime, schema, and frozen
|
|
17
|
+
fixture corpus.
|
|
18
|
+
- Exported the RC.2 MCP extension catalogue metadata and maturity classifier.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- RC.2 preserves structurally valid pre-standard server extension maps and
|
|
23
|
+
reports `extensions-not-supported-by-version` as a warning while retaining
|
|
24
|
+
strict client extension requirements and independent reserved-identifier
|
|
25
|
+
diagnostics. This is a compatible validator relaxation; RC.1 and earlier
|
|
26
|
+
selectors are unchanged.
|
|
27
|
+
|
|
11
28
|
## [0.8.0] - 2026-09-03
|
|
12
29
|
|
|
13
30
|
### Added
|
|
@@ -94,7 +111,8 @@ Dates for published releases are the UTC publication dates recorded by npm.
|
|
|
94
111
|
- Added synchronous structural and semantic validation for parsed JavaScript values with deterministic diagnostics and exact selector dispatch.
|
|
95
112
|
- Added ESM browser support, TypeScript declarations, embedded schema provenance, frozen fixtures, and package-content checks.
|
|
96
113
|
|
|
97
|
-
[Unreleased]: https://github.com/mcpdesc/core/compare/validator-v0.
|
|
114
|
+
[Unreleased]: https://github.com/mcpdesc/core/compare/validator-v0.9.0...HEAD
|
|
115
|
+
[0.9.0]: https://github.com/mcpdesc/core/compare/validator-v0.8.0...validator-v0.9.0
|
|
98
116
|
[0.8.0]: https://github.com/mcpdesc/core/compare/validator-v0.7.1...validator-v0.8.0
|
|
99
117
|
[0.7.1]: https://github.com/mcpdesc/core/compare/validator-v0.7.0...validator-v0.7.1
|
|
100
118
|
[0.7.0]: https://github.com/mcpdesc/core/releases/tag/validator-v0.7.0
|
package/README.md
CHANGED
|
@@ -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-rc.
|
|
28
|
+
specification: '0.8.0-rc.2',
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
for (const diagnostic of result.diagnostics) {
|
|
@@ -48,6 +48,7 @@ Version `0.8.0` supports these immutable snapshots, newest first:
|
|
|
48
48
|
|
|
49
49
|
| Selector | Tag | Embedded schema SHA-256 |
|
|
50
50
|
|---|---|---|
|
|
51
|
+
| `0.8.0-rc.2` | `v0.8.0-rc.2` | `40f6775dde052224114e91d6aa484d826eecf56b77f7ac87b4cf707ffbcb6ce8` |
|
|
51
52
|
| `0.8.0-rc.1` | `v0.8.0-rc.1` | `936a0f24ade501fcabf3d6498c0440c445daa672a575573a35954cee49430ac4` |
|
|
52
53
|
| `0.8.0-draft.4` | `v0.8.0-draft.4` | `93ed03f74059b5b3ce7509a96b59161bdab2c3cf7734397a9bec5a7588d0b03b` |
|
|
53
54
|
| `0.8.0-draft.3` | `v0.8.0-draft.3` | `8823c1f1946360b2a44d00920e2092e5e4acd139a1964befad4eb0bf3ce96002` |
|
|
@@ -131,7 +132,13 @@ Structural paths start with AJV's instance path. A `required` error appends its
|
|
|
131
132
|
|
|
132
133
|
## Support metadata
|
|
133
134
|
|
|
134
|
-
The package exports frozen `supportedSpecifications`, `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 current repository selector set is `0.8.0-draft.1`, `0.8.0-draft.2`, `0.8.0-draft.3`, `0.8.0-draft.4`, and `0.8.0-rc.
|
|
135
|
+
The package exports frozen `supportedSpecifications`, `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 current repository selector set is `0.8.0-draft.1`, `0.8.0-draft.2`, `0.8.0-draft.3`, `0.8.0-draft.4`, `0.8.0-rc.1`, and `0.8.0-rc.2`; the protocol-version export is the deduplicated union supported by those snapshots.
|
|
136
|
+
|
|
137
|
+
RC.2 also exports the frozen `mcpExtensionCatalogue` and
|
|
138
|
+
`mcpExtensionMaturity` classifier. The catalogue pins its authoritative source,
|
|
139
|
+
effective date, and official or experimental identifier assignments. Catalogue
|
|
140
|
+
recognition establishes authority and maturity only; it does not validate
|
|
141
|
+
extension-specific settings.
|
|
135
142
|
|
|
136
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.
|
|
137
144
|
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type McpDescriptionSpecification = '0.8.0-draft.1' | '0.8.0-draft.2' | '0.8.0-draft.3' | '0.8.0-draft.4' | '0.8.0-rc.1';
|
|
1
|
+
export type McpDescriptionSpecification = '0.8.0-draft.1' | '0.8.0-draft.2' | '0.8.0-draft.3' | '0.8.0-draft.4' | '0.8.0-rc.1' | '0.8.0-rc.2';
|
|
2
2
|
|
|
3
3
|
export type SupportedProtocolVersion =
|
|
4
4
|
| '2024-11-05'
|
|
@@ -41,6 +41,20 @@ export interface ResolveMcpDescriptionComponentReferencesOptions {
|
|
|
41
41
|
readonly specification: '0.8.0-rc.1';
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
export type McpExtensionMaturity = 'official' | 'experimental' | 'uncatalogued';
|
|
45
|
+
|
|
46
|
+
export interface McpExtensionCatalogue {
|
|
47
|
+
readonly effectiveDate: '2026-09-04';
|
|
48
|
+
readonly source: 'https://modelcontextprotocol.io/extensions/overview';
|
|
49
|
+
readonly officialIdentifiers: readonly [
|
|
50
|
+
'io.modelcontextprotocol/enterprise-managed-authorization',
|
|
51
|
+
'io.modelcontextprotocol/oauth-client-credentials',
|
|
52
|
+
'io.modelcontextprotocol/tasks',
|
|
53
|
+
'io.modelcontextprotocol/ui'
|
|
54
|
+
];
|
|
55
|
+
readonly experimentalIdentifiers: readonly [];
|
|
56
|
+
}
|
|
57
|
+
|
|
44
58
|
export interface SpecificationProvenance {
|
|
45
59
|
readonly '0.8.0-draft.1': {
|
|
46
60
|
readonly snapshotTag: 'v0.8.0-draft.1';
|
|
@@ -67,6 +81,11 @@ export interface SpecificationProvenance {
|
|
|
67
81
|
readonly schemaUri: 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.1.json';
|
|
68
82
|
readonly schemaSha256: '936a0f24ade501fcabf3d6498c0440c445daa672a575573a35954cee49430ac4';
|
|
69
83
|
};
|
|
84
|
+
readonly '0.8.0-rc.2': {
|
|
85
|
+
readonly snapshotTag: 'v0.8.0-rc.2';
|
|
86
|
+
readonly schemaUri: 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.2.json';
|
|
87
|
+
readonly schemaSha256: '40f6775dde052224114e91d6aa484d826eecf56b77f7ac87b4cf707ffbcb6ce8';
|
|
88
|
+
};
|
|
70
89
|
}
|
|
71
90
|
|
|
72
91
|
export interface ResolveMcpDescriptionSpecificationOptions {
|
|
@@ -90,7 +109,7 @@ export type McpDescriptionSpecificationResolution =
|
|
|
90
109
|
| ResolvedMcpDescriptionSpecification
|
|
91
110
|
| UnresolvedMcpDescriptionSpecification;
|
|
92
111
|
|
|
93
|
-
export declare const supportedSpecifications: readonly ['0.8.0-draft.1', '0.8.0-draft.2', '0.8.0-draft.3', '0.8.0-draft.4', '0.8.0-rc.1'];
|
|
112
|
+
export declare const supportedSpecifications: readonly ['0.8.0-draft.1', '0.8.0-draft.2', '0.8.0-draft.3', '0.8.0-draft.4', '0.8.0-rc.1', '0.8.0-rc.2'];
|
|
94
113
|
|
|
95
114
|
export declare const supportedProtocolVersions: readonly [
|
|
96
115
|
'2024-11-05',
|
|
@@ -101,6 +120,8 @@ export declare const supportedProtocolVersions: readonly [
|
|
|
101
120
|
];
|
|
102
121
|
|
|
103
122
|
export declare const specificationProvenance: Readonly<SpecificationProvenance>;
|
|
123
|
+
export declare const mcpExtensionCatalogue: Readonly<McpExtensionCatalogue>;
|
|
124
|
+
export declare function mcpExtensionMaturity(identifier: string): McpExtensionMaturity;
|
|
104
125
|
|
|
105
126
|
export declare function resolveMcpDescriptionSpecification(
|
|
106
127
|
document: unknown,
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -3,14 +3,22 @@ import * as draft2 from './snapshots/0.8.0-draft.2/index.js';
|
|
|
3
3
|
import * as draft3 from './snapshots/0.8.0-draft.3/index.js';
|
|
4
4
|
import * as draft4 from './snapshots/0.8.0-draft.4/index.js';
|
|
5
5
|
import * as rc1 from './snapshots/0.8.0-rc.1/index.js';
|
|
6
|
+
import * as rc2 from './snapshots/0.8.0-rc.2/index.js';
|
|
6
7
|
import { resolveComponentReferences as resolveRc1ComponentReferences } from './snapshots/0.8.0-rc.1/semantic.js';
|
|
8
|
+
import {
|
|
9
|
+
mcpExtensionCatalogue,
|
|
10
|
+
mcpExtensionMaturity
|
|
11
|
+
} from './snapshots/0.8.0-rc.2/semantic.js';
|
|
12
|
+
|
|
13
|
+
export { mcpExtensionCatalogue, mcpExtensionMaturity };
|
|
7
14
|
|
|
8
15
|
const snapshots = Object.freeze({
|
|
9
16
|
[draft1.specification]: draft1,
|
|
10
17
|
[draft2.specification]: draft2,
|
|
11
18
|
[draft3.specification]: draft3,
|
|
12
19
|
[draft4.specification]: draft4,
|
|
13
|
-
[rc1.specification]: rc1
|
|
20
|
+
[rc1.specification]: rc1,
|
|
21
|
+
[rc2.specification]: rc2
|
|
14
22
|
});
|
|
15
23
|
|
|
16
24
|
const schemaUris = Object.freeze({
|
|
@@ -18,7 +26,8 @@ const schemaUris = Object.freeze({
|
|
|
18
26
|
'0.8.0-draft.2': 'https://mcpdesc.org/schema/0.8.0.json',
|
|
19
27
|
'0.8.0-draft.3': 'https://mcpdesc.org/schema/0.8.0.json',
|
|
20
28
|
'0.8.0-draft.4': 'https://mcpdesc.org/schema/mcp-description/0.8.0-draft.4.json',
|
|
21
|
-
'0.8.0-rc.1': 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.1.json'
|
|
29
|
+
'0.8.0-rc.1': 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.1.json',
|
|
30
|
+
'0.8.0-rc.2': 'https://mcpdesc.org/schema/mcp-description/0.8.0-rc.2.json'
|
|
22
31
|
});
|
|
23
32
|
|
|
24
33
|
export const supportedSpecifications = Object.freeze(Object.keys(snapshots));
|