mcpman 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/README.md +83 -0
- package/dist/{chunk-DZ3D5RZQ.js → chunk-6GGMDJQE.js} +1 -1
- package/dist/{chunk-XPYCEHZZ.js → chunk-CC7ICP7U.js} +1 -1
- package/dist/{chunk-AOCGFOA6.js → chunk-DSCBWQ3W.js} +16 -0
- package/dist/{client-detector-NHXBDNMY.js → client-detector-O2HN4MUB.js} +2 -2
- package/dist/index.cjs +1649 -664
- package/dist/index.js +1591 -633
- package/dist/{lockfile-5XXA26FM.js → lockfile-ITEBE7HU.js} +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -439,6 +439,83 @@ mcpman rollback 2 # restore specific snapshot
|
|
|
439
439
|
|
|
440
440
|
Snapshots are created automatically before every lockfile write. Keeps the last 5 snapshots in `~/.mcpman/rollback/`. After rollback, run `mcpman sync` to apply to all clients.
|
|
441
441
|
|
|
442
|
+
### `validate [--client <name>]`
|
|
443
|
+
|
|
444
|
+
Validate lockfile schema and client config JSON for correctness.
|
|
445
|
+
|
|
446
|
+
```sh
|
|
447
|
+
mcpman validate # validate lockfile + all clients
|
|
448
|
+
mcpman validate --client cursor # validate specific client only
|
|
449
|
+
mcpman validate --json # machine-readable output
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
Checks: required fields (name, version, source, command, args), valid JSON structure, mcpServers entries have command+args. Exits 1 if any errors found. Distinct from `doctor` (which checks runtime health).
|
|
453
|
+
|
|
454
|
+
### `status [--server <name>]`
|
|
455
|
+
|
|
456
|
+
Show live process status of all installed MCP servers.
|
|
457
|
+
|
|
458
|
+
```sh
|
|
459
|
+
mcpman status # check all servers
|
|
460
|
+
mcpman status --server my-server # check specific server
|
|
461
|
+
mcpman status --json # JSON output
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Probes each server with a JSON-RPC `initialize` call (3s timeout). Reports: alive/dead status, response time, and error details.
|
|
465
|
+
|
|
466
|
+
### `replay [index]`
|
|
467
|
+
|
|
468
|
+
Re-run previous CLI commands from history.
|
|
469
|
+
|
|
470
|
+
```sh
|
|
471
|
+
mcpman replay --list # show last 20 commands
|
|
472
|
+
mcpman replay 0 # re-run most recent command
|
|
473
|
+
mcpman replay 5 # re-run 5th command
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Maintains a ring buffer of the last 50 commands at `~/.mcpman/history.json`. Each entry includes the command, arguments, and timestamp.
|
|
477
|
+
|
|
478
|
+
### `alias <add|remove|list>`
|
|
479
|
+
|
|
480
|
+
Create short aliases for frequently used commands.
|
|
481
|
+
|
|
482
|
+
```sh
|
|
483
|
+
mcpman alias add dev "group run dev-servers"
|
|
484
|
+
mcpman alias add fs "install @modelcontextprotocol/server-filesystem"
|
|
485
|
+
mcpman alias remove dev
|
|
486
|
+
mcpman alias list
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Aliases stored in `~/.mcpman/aliases.json`. Unlike groups (server batches), aliases are command-line shorthands.
|
|
490
|
+
|
|
491
|
+
### `template <save|apply|list|delete>`
|
|
492
|
+
|
|
493
|
+
Save and share install templates for team onboarding.
|
|
494
|
+
|
|
495
|
+
```sh
|
|
496
|
+
mcpman template save myteam # snapshot current servers
|
|
497
|
+
mcpman template save myteam -d "Team setup"
|
|
498
|
+
mcpman template apply myteam # print install commands
|
|
499
|
+
mcpman template list # show all templates
|
|
500
|
+
mcpman template delete myteam # remove template
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
Templates stored in `~/.mcpman/templates/`. Unlike `export` (full migration bundle with vault+plugins), templates are lightweight server presets for sharing.
|
|
504
|
+
|
|
505
|
+
### `notify <add|remove|list|test>`
|
|
506
|
+
|
|
507
|
+
Configure webhook and shell hooks for server lifecycle events.
|
|
508
|
+
|
|
509
|
+
```sh
|
|
510
|
+
mcpman notify add --event install --webhook https://hooks.example.com/mcp
|
|
511
|
+
mcpman notify add --event health-fail --shell "echo alert | mail admin"
|
|
512
|
+
mcpman notify list # show all hooks
|
|
513
|
+
mcpman notify remove 0 # remove hook by index
|
|
514
|
+
mcpman notify test install # fire test event
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
Events: `install`, `remove`, `update`, `health-fail`. Webhooks use native `fetch()`, shell hooks use `execSync`. Hooks stored in `~/.mcpman/notify.json`.
|
|
518
|
+
|
|
442
519
|
---
|
|
443
520
|
|
|
444
521
|
## Comparison
|
|
@@ -474,6 +551,12 @@ Snapshots are created automatically before every lockfile write. Keeps the last
|
|
|
474
551
|
| Server groups | Batch install/run tags | None | None |
|
|
475
552
|
| Version pinning | `pin`/`unpin` CLI | None | None |
|
|
476
553
|
| Rollback | Auto-snapshot + restore | None | None |
|
|
554
|
+
| Config validation | Schema + JSON checks | None | None |
|
|
555
|
+
| Live status | Process probe + response time | None | None |
|
|
556
|
+
| Command replay | History ring buffer | None | None |
|
|
557
|
+
| Command aliases | Shorthand definitions | None | None |
|
|
558
|
+
| Install templates | Sharable server presets | None | None |
|
|
559
|
+
| Event notifications | Webhook + shell hooks | None | None |
|
|
477
560
|
|
|
478
561
|
---
|
|
479
562
|
|
|
@@ -30,6 +30,18 @@ function getPinsFile() {
|
|
|
30
30
|
function getRollbackDir() {
|
|
31
31
|
return path.join(getMcpmanDir(), "rollback");
|
|
32
32
|
}
|
|
33
|
+
function getHistoryFile() {
|
|
34
|
+
return path.join(getMcpmanDir(), "history.json");
|
|
35
|
+
}
|
|
36
|
+
function getAliasesFile() {
|
|
37
|
+
return path.join(getMcpmanDir(), "aliases.json");
|
|
38
|
+
}
|
|
39
|
+
function getTemplatesDir() {
|
|
40
|
+
return path.join(getMcpmanDir(), "templates");
|
|
41
|
+
}
|
|
42
|
+
function getNotifyFile() {
|
|
43
|
+
return path.join(getMcpmanDir(), "notify.json");
|
|
44
|
+
}
|
|
33
45
|
function getAppDataDir() {
|
|
34
46
|
const home = getHomedir();
|
|
35
47
|
if (process.platform === "darwin") {
|
|
@@ -76,5 +88,9 @@ export {
|
|
|
76
88
|
getGroupsFile,
|
|
77
89
|
getPinsFile,
|
|
78
90
|
getRollbackDir,
|
|
91
|
+
getHistoryFile,
|
|
92
|
+
getAliasesFile,
|
|
93
|
+
getTemplatesDir,
|
|
94
|
+
getNotifyFile,
|
|
79
95
|
resolveConfigPath
|
|
80
96
|
};
|