@seed-ship/mcp-ui-cli 1.0.13 → 1.1.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 +81 -49
- package/README.md +191 -23
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,82 @@
|
|
|
1
|
-
# @mcp-ui
|
|
1
|
+
# @seed-ship/mcp-ui-cli Changelog
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.1.0] - 2025-11-25
|
|
9
|
+
|
|
10
|
+
### Documentation
|
|
11
|
+
- **Comprehensive README Rewrite**: Complete documentation overhaul
|
|
12
|
+
- Fixed npm scope from `@mcp-ui/cli` to `@seed-ship/mcp-ui-cli`
|
|
13
|
+
- Removed non-existent `create-component` command (was documented but never implemented)
|
|
14
|
+
- Documented all 4 commands with full options and examples
|
|
15
|
+
- Added Programmatic API section with TypeScript examples
|
|
16
|
+
- Added CI/CD Integration section with GitHub Actions example
|
|
17
|
+
- Documented exit codes for automation
|
|
18
|
+
|
|
19
|
+
### Notes
|
|
20
|
+
- This minor version bump marks a documentation milestone
|
|
21
|
+
- No CLI changes - all commands identical to v1.0.14
|
|
22
|
+
|
|
23
|
+
## [1.0.14] - 2025-11-24
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- Version bump (synchronized with mcp-ui-solid v1.0.26, mcp-ui-spec v1.0.15)
|
|
27
|
+
|
|
28
|
+
## [1.0.13] - 2025-11-23
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
- Version bump (synchronized with mcp-ui-solid v1.0.25, mcp-ui-spec v1.0.14)
|
|
32
|
+
|
|
33
|
+
## [1.0.11] - 2025-11-23
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- Version bump for npm publication with updated token
|
|
37
|
+
- Synchronized with mcp-ui-solid v1.0.23, mcp-ui-spec v1.0.12
|
|
38
|
+
|
|
39
|
+
## [1.0.10] - 2025-11-23
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- Version bump (synchronized with mcp-ui-solid v1.0.22, mcp-ui-spec v1.0.11)
|
|
43
|
+
|
|
44
|
+
## [1.0.9] - 2025-11-23
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
- Version bump (synchronized with mcp-ui-solid v1.0.21, mcp-ui-spec v1.0.10)
|
|
48
|
+
|
|
49
|
+
## [1.0.8] - 2025-11-22
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- Version bump (synchronized with mcp-ui-solid v1.0.18, mcp-ui-spec v1.0.8)
|
|
53
|
+
|
|
54
|
+
## [1.0.6] - 2025-11-22
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
- Version bump for npm publication
|
|
58
|
+
|
|
59
|
+
## [1.0.5] - 2025-11-22
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
- Version bump
|
|
63
|
+
|
|
64
|
+
## [1.0.2] - 2025-11-17
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
- Migrate to `@seed-ship` npm scope
|
|
68
|
+
- Updated package name from `@mcp-ui/cli` to `@seed-ship/mcp-ui-cli`
|
|
69
|
+
|
|
70
|
+
## [1.0.1] - 2025-11-16
|
|
71
|
+
|
|
72
|
+
### Fixed
|
|
73
|
+
- Add type definitions generation for all packages
|
|
74
|
+
- Correct schema validation tests
|
|
75
|
+
|
|
5
76
|
## [1.0.0] - 2025-01-14
|
|
6
77
|
|
|
7
78
|
### Added
|
|
8
|
-
- Initial release of `@mcp-ui
|
|
79
|
+
- Initial release of `@seed-ship/mcp-ui-cli` package
|
|
9
80
|
- Command-line interface for component registry operations
|
|
10
81
|
- `validate` command: Validates registries against JSON Schema and Zod
|
|
11
82
|
- `generate-types` command: Generates TypeScript types from component schemas
|
|
@@ -14,63 +85,24 @@ All notable changes to this project will be documented in this file.
|
|
|
14
85
|
|
|
15
86
|
### Features
|
|
16
87
|
- **Dual Validation**: Both JSON Schema (Ajv) and Zod validation
|
|
17
|
-
- **Type Generation**: Automatic TypeScript type generation
|
|
88
|
+
- **Type Generation**: Automatic TypeScript type generation
|
|
18
89
|
- **Example Testing**: Validates all component examples against schemas
|
|
19
|
-
- **Breaking Change Detection**: Semantic diff with
|
|
90
|
+
- **Breaking Change Detection**: Semantic diff with classification
|
|
20
91
|
- **Beautiful Output**: Colorful terminal output with chalk and ora spinners
|
|
21
|
-
- **
|
|
22
|
-
- **Verbose Mode**: Detailed output for debugging
|
|
92
|
+
- **CI/CD Ready**: Proper exit codes for automation
|
|
23
93
|
|
|
24
94
|
### Commands
|
|
25
95
|
|
|
26
|
-
#### validate
|
|
27
|
-
```bash
|
|
28
|
-
mcp-ui validate <file> [--strict] [--verbose]
|
|
29
|
-
```
|
|
30
|
-
Validates a component registry against both JSON Schema and Zod schemas.
|
|
31
|
-
|
|
32
|
-
#### generate-types
|
|
33
|
-
```bash
|
|
34
|
-
mcp-ui generate-types <input> [output] [--namespace <name>] [--export-all]
|
|
35
|
-
```
|
|
36
|
-
Generates TypeScript types from component schemas.
|
|
37
|
-
|
|
38
|
-
#### test-examples
|
|
39
|
-
```bash
|
|
40
|
-
mcp-ui test-examples <file> [--component <id>] [--verbose]
|
|
41
|
-
```
|
|
42
|
-
Tests all examples in a component registry.
|
|
43
|
-
|
|
44
|
-
#### diff
|
|
45
|
-
```bash
|
|
46
|
-
mcp-ui diff <old> <new> [--json] [--fail-on-breaking]
|
|
47
|
-
```
|
|
48
|
-
Compares two registry versions for breaking changes.
|
|
49
|
-
|
|
50
|
-
### Dependencies
|
|
51
|
-
- commander: CLI framework
|
|
52
|
-
- ajv: JSON Schema validation
|
|
53
|
-
- zod: Runtime TypeScript validation
|
|
54
|
-
- json-schema-to-typescript: Type generation
|
|
55
|
-
- chalk: Terminal colors
|
|
56
|
-
- ora: Spinners
|
|
57
|
-
|
|
58
|
-
### Installation
|
|
59
|
-
```bash
|
|
60
|
-
pnpm add -D @mcp-ui/cli
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Usage
|
|
64
96
|
```bash
|
|
65
97
|
# Validate a registry
|
|
66
|
-
mcp-ui validate
|
|
98
|
+
mcp-ui validate <file> [--strict] [--verbose]
|
|
67
99
|
|
|
68
|
-
# Generate types
|
|
69
|
-
mcp-ui generate-types
|
|
100
|
+
# Generate TypeScript types
|
|
101
|
+
mcp-ui generate-types <input> [output] [--namespace <name>]
|
|
70
102
|
|
|
71
103
|
# Test examples
|
|
72
|
-
mcp-ui test-examples
|
|
104
|
+
mcp-ui test-examples <file> [--component <id>] [--verbose]
|
|
73
105
|
|
|
74
106
|
# Check for breaking changes
|
|
75
|
-
mcp-ui diff
|
|
107
|
+
mcp-ui diff <old> <new> [--json] [--fail-on-breaking]
|
|
76
108
|
```
|
package/README.md
CHANGED
|
@@ -1,66 +1,234 @@
|
|
|
1
|
-
# @mcp-ui
|
|
1
|
+
# @seed-ship/mcp-ui-cli
|
|
2
2
|
|
|
3
|
-
CLI tools for validating and
|
|
3
|
+
CLI tools for validating and managing MCP UI component registries. Part of the MCP UI ecosystem.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@seed-ship/mcp-ui-cli)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
7
|
|
|
5
8
|
## Installation
|
|
6
9
|
|
|
7
10
|
```bash
|
|
8
|
-
|
|
11
|
+
# Global installation (recommended for CLI usage)
|
|
12
|
+
pnpm add -g @seed-ship/mcp-ui-cli
|
|
13
|
+
|
|
14
|
+
# Local installation (for programmatic use)
|
|
15
|
+
pnpm add -D @seed-ship/mcp-ui-cli
|
|
9
16
|
```
|
|
10
17
|
|
|
11
18
|
## Commands
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
The CLI provides 4 commands for registry management:
|
|
21
|
+
|
|
22
|
+
### validate
|
|
23
|
+
|
|
24
|
+
Validates a component registry against both Zod and JSON Schema specifications.
|
|
14
25
|
|
|
15
26
|
```bash
|
|
16
|
-
mcp-ui validate
|
|
27
|
+
mcp-ui validate <file> [options]
|
|
17
28
|
```
|
|
18
29
|
|
|
19
|
-
|
|
30
|
+
**Arguments:**
|
|
31
|
+
- `<file>` - Path to registry JSON file
|
|
20
32
|
|
|
21
|
-
|
|
33
|
+
**Options:**
|
|
34
|
+
- `--strict` - Enable strict validation mode (all errors reported)
|
|
35
|
+
- `--verbose` - Show detailed validation output with registry summary
|
|
22
36
|
|
|
37
|
+
**Features:**
|
|
38
|
+
- **Dual validation**: Validates against both Zod schemas and JSON Schema (Ajv)
|
|
39
|
+
- **Verbose mode**: Displays registry version, component count, and component list
|
|
40
|
+
- **Detailed errors**: Shows path-based error locations (e.g., `components[0].schema.required`)
|
|
41
|
+
|
|
42
|
+
**Example:**
|
|
23
43
|
```bash
|
|
24
|
-
|
|
44
|
+
# Basic validation
|
|
45
|
+
mcp-ui validate ./my-registry.json
|
|
46
|
+
|
|
47
|
+
# Strict mode with verbose output
|
|
48
|
+
mcp-ui validate ./my-registry.json --strict --verbose
|
|
25
49
|
```
|
|
26
50
|
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### generate-types
|
|
54
|
+
|
|
27
55
|
Generates TypeScript type definitions from a component registry.
|
|
28
56
|
|
|
29
|
-
|
|
57
|
+
```bash
|
|
58
|
+
mcp-ui generate-types <input> [output] [options]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Arguments:**
|
|
62
|
+
- `<input>` - Path to registry JSON file
|
|
63
|
+
- `[output]` - Output file path (optional, defaults to stdout)
|
|
64
|
+
|
|
65
|
+
**Options:**
|
|
66
|
+
- `--namespace <name>` - Wrap generated types in a namespace
|
|
67
|
+
- `--export-all` - Export all generated types
|
|
68
|
+
|
|
69
|
+
**Features:**
|
|
70
|
+
- Converts component IDs to TypeScript type names (kebab-case to PascalCase)
|
|
71
|
+
- Uses `json-schema-to-typescript` for accurate type generation
|
|
72
|
+
- Adds auto-generation header comment
|
|
73
|
+
|
|
74
|
+
**Example:**
|
|
75
|
+
```bash
|
|
76
|
+
# Generate types to stdout
|
|
77
|
+
mcp-ui generate-types ./registry.json
|
|
78
|
+
|
|
79
|
+
# Generate to file with namespace
|
|
80
|
+
mcp-ui generate-types ./registry.json ./types/components.d.ts --namespace MCPComponents --export-all
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### test-examples
|
|
86
|
+
|
|
87
|
+
Tests all component examples in a registry for validity.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mcp-ui test-examples <file> [options]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Arguments:**
|
|
94
|
+
- `<file>` - Path to registry JSON file
|
|
95
|
+
|
|
96
|
+
**Options:**
|
|
97
|
+
- `--component <id>` - Test only a specific component (by ID)
|
|
98
|
+
- `--verbose` - Show detailed test output
|
|
99
|
+
|
|
100
|
+
**Features:**
|
|
101
|
+
- Validates each example against its component schema
|
|
102
|
+
- Color-coded results (✓ pass, ✗ fail)
|
|
103
|
+
- Returns exit code 1 if any examples fail (CI-friendly)
|
|
30
104
|
|
|
105
|
+
**Example:**
|
|
31
106
|
```bash
|
|
32
|
-
|
|
107
|
+
# Test all examples
|
|
108
|
+
mcp-ui test-examples ./registry.json
|
|
109
|
+
|
|
110
|
+
# Test specific component only
|
|
111
|
+
mcp-ui test-examples ./registry.json --component quickchart-bar --verbose
|
|
33
112
|
```
|
|
34
113
|
|
|
35
|
-
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### diff
|
|
36
117
|
|
|
37
|
-
|
|
118
|
+
Compares two registry versions and detects breaking changes.
|
|
38
119
|
|
|
39
120
|
```bash
|
|
40
|
-
mcp-ui
|
|
121
|
+
mcp-ui diff <old> <new> [options]
|
|
41
122
|
```
|
|
42
123
|
|
|
43
|
-
|
|
124
|
+
**Arguments:**
|
|
125
|
+
- `<old>` - Path to old registry JSON file
|
|
126
|
+
- `<new>` - Path to new registry JSON file
|
|
127
|
+
|
|
128
|
+
**Options:**
|
|
129
|
+
- `--json` - Output diff as JSON (for programmatic parsing)
|
|
130
|
+
- `--fail-on-breaking` - Exit with error code 1 if breaking changes found
|
|
131
|
+
|
|
132
|
+
**Breaking Changes Detected:**
|
|
133
|
+
- Component removal
|
|
134
|
+
- Component type changes
|
|
135
|
+
- New required fields added
|
|
136
|
+
- Major version changes
|
|
44
137
|
|
|
45
|
-
|
|
138
|
+
**Non-Breaking Changes Detected:**
|
|
139
|
+
- Component addition
|
|
140
|
+
- Component deprecation
|
|
141
|
+
- Removed required fields
|
|
142
|
+
- Minor/patch version changes
|
|
46
143
|
|
|
144
|
+
**Example:**
|
|
47
145
|
```bash
|
|
48
|
-
|
|
146
|
+
# Basic diff
|
|
147
|
+
mcp-ui diff ./registry-v1.json ./registry-v2.json
|
|
148
|
+
|
|
149
|
+
# CI/CD usage with fail-on-breaking
|
|
150
|
+
mcp-ui diff ./old.json ./new.json --fail-on-breaking --json
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Programmatic API
|
|
156
|
+
|
|
157
|
+
All commands are available as functions for programmatic use:
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
import {
|
|
161
|
+
validateCommand,
|
|
162
|
+
generateTypesCommand,
|
|
163
|
+
testExamplesCommand,
|
|
164
|
+
diffCommand
|
|
165
|
+
} from '@seed-ship/mcp-ui-cli'
|
|
166
|
+
|
|
167
|
+
// Validate a registry
|
|
168
|
+
const isValid = await validateCommand('./registry.json', { strict: true })
|
|
169
|
+
|
|
170
|
+
// Generate types
|
|
171
|
+
const types = await generateTypesCommand('./registry.json', undefined, { exportAll: true })
|
|
172
|
+
|
|
173
|
+
// Test examples
|
|
174
|
+
const results = await testExamplesCommand('./registry.json', { component: 'chart' })
|
|
175
|
+
|
|
176
|
+
// Compare registries
|
|
177
|
+
const diff = await diffCommand('./old.json', './new.json', { json: true })
|
|
49
178
|
```
|
|
50
179
|
|
|
51
|
-
|
|
180
|
+
## CI/CD Integration
|
|
52
181
|
|
|
53
|
-
|
|
182
|
+
### GitHub Actions
|
|
54
183
|
|
|
55
184
|
```yaml
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
185
|
+
name: Validate Registry
|
|
186
|
+
|
|
187
|
+
on: [push, pull_request]
|
|
188
|
+
|
|
189
|
+
jobs:
|
|
190
|
+
validate:
|
|
191
|
+
runs-on: ubuntu-latest
|
|
192
|
+
steps:
|
|
193
|
+
- uses: actions/checkout@v4
|
|
194
|
+
|
|
195
|
+
- name: Setup Node.js
|
|
196
|
+
uses: actions/setup-node@v4
|
|
197
|
+
with:
|
|
198
|
+
node-version: '20'
|
|
199
|
+
|
|
200
|
+
- name: Install CLI
|
|
201
|
+
run: npm install -g @seed-ship/mcp-ui-cli
|
|
202
|
+
|
|
203
|
+
- name: Validate Registry
|
|
204
|
+
run: mcp-ui validate ./registry.json --strict
|
|
205
|
+
|
|
206
|
+
- name: Test Examples
|
|
207
|
+
run: mcp-ui test-examples ./registry.json
|
|
208
|
+
|
|
209
|
+
- name: Check Breaking Changes
|
|
210
|
+
run: mcp-ui diff ./registry-main.json ./registry.json --fail-on-breaking
|
|
59
211
|
```
|
|
60
212
|
|
|
61
|
-
|
|
213
|
+
### Exit Codes
|
|
214
|
+
|
|
215
|
+
| Code | Meaning |
|
|
216
|
+
|------|---------|
|
|
217
|
+
| 0 | Success |
|
|
218
|
+
| 1 | Validation failed / Breaking changes detected / Examples failed |
|
|
219
|
+
|
|
220
|
+
## Related Packages
|
|
221
|
+
|
|
222
|
+
| Package | Description |
|
|
223
|
+
|---------|-------------|
|
|
224
|
+
| [`@seed-ship/mcp-ui-solid`](../mcp-ui-solid) | SolidJS UI components |
|
|
225
|
+
| [`@seed-ship/mcp-ui-spec`](../mcp-ui-spec) | JSON schemas and Zod validators |
|
|
226
|
+
|
|
227
|
+
## Versioning
|
|
228
|
+
|
|
229
|
+
This package follows [Semantic Versioning](https://semver.org/). See [CHANGELOG.md](./CHANGELOG.md) for release notes.
|
|
62
230
|
|
|
63
|
-
|
|
231
|
+
**Current Version:** 1.1.0
|
|
64
232
|
|
|
65
233
|
## License
|
|
66
234
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seed-ship/mcp-ui-cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "CLI tools for validating and generating MCP UI component registries",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"zod": "^3.22.4",
|
|
29
29
|
"chalk": "^5.3.0",
|
|
30
30
|
"ora": "^7.0.1",
|
|
31
|
-
"@seed-ship/mcp-ui-spec": "1.0
|
|
31
|
+
"@seed-ship/mcp-ui-spec": "1.1.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^20.10.0",
|