mcpman 1.0.0 → 2.0.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 +248 -284
- package/dist/{chunk-6GGMDJQE.js → chunk-CYYW35D2.js} +1 -1
- package/dist/{chunk-DSCBWQ3W.js → chunk-HQO4AO6B.js} +23 -0
- package/dist/chunk-K3NQKI34.js +10 -0
- package/dist/chunk-NFQMBLT3.js +360 -0
- package/dist/{client-detector-O2HN4MUB.js → client-detector-TSWWOALP.js} +3 -2
- package/dist/index.cjs +4893 -2127
- package/dist/index.js +4435 -1974
- package/dist/{lockfile-ITEBE7HU.js → lockfile-MDGG6WI3.js} +3 -2
- package/dist/{trust-scorer-G74WK25Q.js → trust-scorer-PEAFSMFK.js} +1 -0
- package/dist/{vault-service-UTZAV6N6.js → vault-service-O2I2K3DX.js} +1 -0
- package/package.json +6 -2
- package/dist/chunk-CC7ICP7U.js +0 -181
package/README.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/mcpman)
|
|
4
4
|
[](https://www.npmjs.com/package/mcpman)
|
|
5
|
-
[](https://github.com/tranhoangtu-it/
|
|
5
|
+
[](https://github.com/tranhoangtu-it/openS-Plan-R)
|
|
6
|
+
[](https://github.com/tranhoangtu-it/openS-Plan-R/blob/main/LICENSE)
|
|
7
7
|

|
|
8
8
|
|
|
9
9
|
**The package manager for MCP servers.**
|
|
10
10
|
|
|
11
|
-
Install, manage, and inspect Model Context Protocol servers across
|
|
11
|
+
Install, manage, and inspect Model Context Protocol servers across 10 AI clients — Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Roo Code, Codex CLI, OpenCode, Continue, and Zed — from a single CLI.
|
|
12
12
|
|
|
13
13
|
<p align="center">
|
|
14
14
|
<img src="./demo.gif" alt="mcpman demo" width="700">
|
|
@@ -31,28 +31,61 @@ mcpman install @modelcontextprotocol/server-filesystem
|
|
|
31
31
|
|
|
32
32
|
## Features
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
### Universal Client Support
|
|
35
|
+
|
|
36
|
+
Manages servers for **10 AI clients** from one tool:
|
|
37
|
+
|
|
38
|
+
| Client | Config Format |
|
|
39
|
+
|--------|--------------|
|
|
40
|
+
| Claude Desktop | JSON (`claude_desktop_config.json`) |
|
|
41
|
+
| Claude Code CLI | JSON (`~/.claude.json`) |
|
|
42
|
+
| Cursor | JSON (`~/.cursor/mcp.json`) |
|
|
43
|
+
| VS Code | JSON (settings.json `mcp` section) |
|
|
44
|
+
| Windsurf | JSON (`~/.codeium/windsurf/mcp_config.json`) |
|
|
45
|
+
| Roo Code | JSON (`mcp_settings.json`) |
|
|
46
|
+
| Codex CLI | TOML (`~/.codex/config.toml`) |
|
|
47
|
+
| OpenCode | TOML (`~/.config/opencode/config.toml`) |
|
|
48
|
+
| Continue | JSON (`~/.continue/config.json`) |
|
|
49
|
+
| Zed | JSON (`~/.config/zed/settings.json`) |
|
|
50
|
+
|
|
51
|
+
### Core
|
|
52
|
+
|
|
53
|
+
- **Registry-aware** — resolves packages from npm, Smithery, GitHub URLs, or the mcpman community registry
|
|
36
54
|
- **Lockfile** — tracks installed servers in `mcpman.lock` for reproducible setups
|
|
37
55
|
- **Health checks** — verifies runtimes, env vars, and server connectivity with `doctor`
|
|
38
|
-
- **Encrypted secrets** — store API keys in an AES-256 encrypted vault
|
|
56
|
+
- **Encrypted secrets** — store API keys in an AES-256 encrypted vault; auto-loads during install
|
|
39
57
|
- **Config sync** — keep server configs consistent across all your AI clients; `--remove` cleans extras
|
|
40
58
|
- **Security audit** — scan servers for vulnerabilities with trust scoring; `--fix` auto-updates vulnerable packages
|
|
41
59
|
- **Auto-update** — get notified when server updates are available
|
|
42
|
-
- **
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
- **
|
|
60
|
+
- **No extra daemon** — pure CLI, works anywhere Node >= 20 runs
|
|
61
|
+
|
|
62
|
+
### v2.0 Platform Features
|
|
63
|
+
|
|
64
|
+
- **MCP Server Mode** — run mcpman itself as an MCP server with `mcpman serve`. AI agents can install, audit, and manage servers via 8 programmatic tools. Write protection via `--allow-write`
|
|
65
|
+
- **Remote Transport** — connect to remote MCP servers over HTTP and SSE. No local process needed
|
|
66
|
+
- **Registry & Publishing** — publish your own MCP servers with `mcpman publish`. Community registry powered by Cloudflare D1/R2
|
|
67
|
+
- **Embedded Dashboard** — launch a local HTTP dashboard with `mcpman dashboard`. REST API with server status, audit results, and health checks
|
|
68
|
+
- **Team Collaboration** — share server configs with `mcpman team`. RBAC roles (admin/maintainer/viewer), shared vault, and audit logging
|
|
69
|
+
- **Skills & Agent Sync** — universal `mcpman-skill.json` spec with format adapters for all 10 clients. Sync agent configs, tools, models, and rules across editors
|
|
70
|
+
|
|
71
|
+
### Developer Tools
|
|
72
|
+
|
|
73
|
+
- **Server scaffolding** — `mcpman create` with Node.js and Python templates
|
|
74
|
+
- **Local dev linking** — `mcpman link` registers a local directory (like `npm link`)
|
|
75
|
+
- **File watching** — `mcpman watch` auto-restarts on source changes
|
|
76
|
+
- **Plugin system** — extend mcpman with npm-based plugins for custom registries
|
|
77
|
+
- **Shell completions** — tab-complete commands and server names in bash, zsh, and fish
|
|
78
|
+
- **Export/Import** — portable JSON bundles for full config migration
|
|
79
|
+
- **Profiles** — save/restore named server configurations
|
|
80
|
+
- **Auto-rollback** — snapshots before every lockfile write, restore with `mcpman rollback`
|
|
50
81
|
|
|
51
82
|
---
|
|
52
83
|
|
|
53
84
|
## Commands
|
|
54
85
|
|
|
55
|
-
###
|
|
86
|
+
### Core
|
|
87
|
+
|
|
88
|
+
#### `install <server>`
|
|
56
89
|
|
|
57
90
|
Install an MCP server and register it with your AI clients.
|
|
58
91
|
|
|
@@ -60,24 +93,24 @@ Install an MCP server and register it with your AI clients.
|
|
|
60
93
|
mcpman install @modelcontextprotocol/server-filesystem
|
|
61
94
|
mcpman install my-smithery-server
|
|
62
95
|
mcpman install https://github.com/owner/repo
|
|
96
|
+
mcpman install mcpman:my-registry-server # from mcpman registry
|
|
63
97
|
```
|
|
64
98
|
|
|
65
99
|
**Options:**
|
|
66
|
-
- `--client <type>` — target a specific client (`claude-desktop`, `cursor`, `vscode`, `windsurf`)
|
|
100
|
+
- `--client <type>` — target a specific client (`claude-desktop`, `cursor`, `vscode`, `windsurf`, `claude-code`, `roo-code`, `codex-cli`, `opencode`, `continue`, `zed`)
|
|
67
101
|
- `--json` — output machine-readable JSON
|
|
68
102
|
|
|
69
|
-
|
|
103
|
+
#### `list`
|
|
70
104
|
|
|
71
105
|
List all installed MCP servers.
|
|
72
106
|
|
|
73
107
|
```sh
|
|
74
108
|
mcpman list
|
|
109
|
+
mcpman list --client cursor
|
|
75
110
|
mcpman list --json
|
|
76
111
|
```
|
|
77
112
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
### `remove <server>`
|
|
113
|
+
#### `remove <server>`
|
|
81
114
|
|
|
82
115
|
Uninstall a server and deregister it from all clients.
|
|
83
116
|
|
|
@@ -85,7 +118,28 @@ Uninstall a server and deregister it from all clients.
|
|
|
85
118
|
mcpman remove @modelcontextprotocol/server-filesystem
|
|
86
119
|
```
|
|
87
120
|
|
|
88
|
-
|
|
121
|
+
#### `update [server]`
|
|
122
|
+
|
|
123
|
+
Check for and apply updates to installed MCP servers.
|
|
124
|
+
|
|
125
|
+
```sh
|
|
126
|
+
mcpman update # update all servers
|
|
127
|
+
mcpman update my-server # update specific server
|
|
128
|
+
mcpman update --check # check only, don't apply
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
#### `upgrade`
|
|
132
|
+
|
|
133
|
+
Upgrade mcpman itself to the latest version.
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
mcpman upgrade
|
|
137
|
+
mcpman upgrade --check
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Health & Diagnostics
|
|
141
|
+
|
|
142
|
+
#### `doctor [server]`
|
|
89
143
|
|
|
90
144
|
Run health diagnostics on all installed servers or a specific one.
|
|
91
145
|
|
|
@@ -96,425 +150,349 @@ mcpman doctor my-server
|
|
|
96
150
|
|
|
97
151
|
Checks: runtime availability, required env vars, process spawn, and MCP handshake.
|
|
98
152
|
|
|
99
|
-
|
|
153
|
+
#### `test [server]`
|
|
100
154
|
|
|
101
|
-
|
|
155
|
+
Validate MCP server connectivity via JSON-RPC `initialize` + `tools/list`.
|
|
102
156
|
|
|
103
157
|
```sh
|
|
104
|
-
mcpman
|
|
158
|
+
mcpman test my-server
|
|
159
|
+
mcpman test --all
|
|
105
160
|
```
|
|
106
161
|
|
|
107
|
-
|
|
162
|
+
#### `validate [--client <name>]`
|
|
108
163
|
|
|
109
|
-
|
|
164
|
+
Validate lockfile schema and client config JSON for correctness.
|
|
110
165
|
|
|
111
166
|
```sh
|
|
112
|
-
mcpman
|
|
113
|
-
mcpman
|
|
114
|
-
mcpman secrets remove my-server OPENAI_API_KEY
|
|
167
|
+
mcpman validate
|
|
168
|
+
mcpman validate --client cursor
|
|
115
169
|
```
|
|
116
170
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
### `sync`
|
|
171
|
+
#### `status [--server <name>]`
|
|
120
172
|
|
|
121
|
-
|
|
173
|
+
Show live process status of all installed MCP servers.
|
|
122
174
|
|
|
123
175
|
```sh
|
|
124
|
-
mcpman
|
|
125
|
-
mcpman
|
|
126
|
-
mcpman sync --source cursor # use Cursor config as source of truth
|
|
127
|
-
mcpman sync --remove # remove servers not in lockfile from clients
|
|
176
|
+
mcpman status
|
|
177
|
+
mcpman status --server my-server --json
|
|
128
178
|
```
|
|
129
179
|
|
|
130
|
-
|
|
131
|
-
- `--dry-run` — preview changes without applying
|
|
132
|
-
- `--source <client>` — use a specific client config as source of truth
|
|
133
|
-
- `--remove` — remove extra servers from clients that aren't tracked in lockfile
|
|
134
|
-
- `--yes` — skip confirmation prompts
|
|
135
|
-
|
|
136
|
-
### `audit [server]`
|
|
180
|
+
#### `bench <server>`
|
|
137
181
|
|
|
138
|
-
|
|
182
|
+
Benchmark MCP server latency with JSON-RPC initialize calls.
|
|
139
183
|
|
|
140
184
|
```sh
|
|
141
|
-
mcpman
|
|
142
|
-
mcpman
|
|
143
|
-
mcpman audit --json # machine-readable output
|
|
144
|
-
mcpman audit --fix # auto-update vulnerable servers
|
|
145
|
-
mcpman audit --fix --yes # auto-update without confirmation
|
|
185
|
+
mcpman bench my-server --runs 10
|
|
186
|
+
mcpman bench my-server --timeout 5000
|
|
146
187
|
```
|
|
147
188
|
|
|
148
|
-
|
|
189
|
+
### Config & Sync
|
|
149
190
|
|
|
150
|
-
|
|
191
|
+
#### `init`
|
|
151
192
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
Check for and apply updates to installed MCP servers.
|
|
193
|
+
Scaffold an `mcpman.lock` file in the current directory.
|
|
155
194
|
|
|
156
195
|
```sh
|
|
157
|
-
mcpman
|
|
158
|
-
mcpman update my-server # update specific server
|
|
159
|
-
mcpman update --check # check only, don't apply
|
|
196
|
+
mcpman init
|
|
160
197
|
```
|
|
161
198
|
|
|
162
|
-
|
|
199
|
+
#### `config <set|get|list|reset>`
|
|
163
200
|
|
|
164
|
-
Manage persistent CLI configuration
|
|
201
|
+
Manage persistent CLI configuration.
|
|
165
202
|
|
|
166
203
|
```sh
|
|
167
204
|
mcpman config set defaultClient cursor
|
|
168
205
|
mcpman config get defaultClient
|
|
169
206
|
mcpman config list
|
|
170
|
-
mcpman config reset
|
|
171
207
|
```
|
|
172
208
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
### `search <query>`
|
|
209
|
+
#### `sync`
|
|
176
210
|
|
|
177
|
-
|
|
211
|
+
Sync MCP server configs across all detected AI clients.
|
|
178
212
|
|
|
179
213
|
```sh
|
|
180
|
-
mcpman
|
|
181
|
-
mcpman
|
|
182
|
-
mcpman
|
|
183
|
-
mcpman search tools --limit 10
|
|
214
|
+
mcpman sync
|
|
215
|
+
mcpman sync --dry-run
|
|
216
|
+
mcpman sync --source cursor --remove
|
|
184
217
|
```
|
|
185
218
|
|
|
186
|
-
|
|
187
|
-
- `--registry <npm|smithery>` — registry to search (default: npm)
|
|
188
|
-
- `--limit <n>` — max results (default: 20, max: 100)
|
|
189
|
-
- `--all` — include plugin registries in results
|
|
219
|
+
#### `diff <client-a> <client-b>`
|
|
190
220
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
Show detailed information about an MCP server package.
|
|
221
|
+
Show visual diff of MCP server configs between two clients.
|
|
194
222
|
|
|
195
223
|
```sh
|
|
196
|
-
mcpman
|
|
197
|
-
mcpman info my-server --json
|
|
224
|
+
mcpman diff claude-desktop cursor
|
|
198
225
|
```
|
|
199
226
|
|
|
200
|
-
|
|
227
|
+
#### `secrets`
|
|
201
228
|
|
|
202
|
-
|
|
229
|
+
Manage encrypted secrets (AES-256-CBC vault).
|
|
203
230
|
|
|
204
231
|
```sh
|
|
205
|
-
mcpman
|
|
206
|
-
mcpman
|
|
232
|
+
mcpman secrets set my-server OPENAI_API_KEY=sk-...
|
|
233
|
+
mcpman secrets list my-server
|
|
234
|
+
mcpman secrets remove my-server OPENAI_API_KEY
|
|
207
235
|
```
|
|
208
236
|
|
|
209
|
-
|
|
237
|
+
#### `env <set|get|list|del|clear>`
|
|
210
238
|
|
|
211
|
-
|
|
239
|
+
Manage per-server environment variables (non-sensitive defaults).
|
|
212
240
|
|
|
213
241
|
```sh
|
|
214
|
-
mcpman
|
|
215
|
-
mcpman
|
|
242
|
+
mcpman env set my-server API_URL=https://api.example.com
|
|
243
|
+
mcpman env list my-server
|
|
216
244
|
```
|
|
217
245
|
|
|
218
|
-
###
|
|
246
|
+
### Discovery & Registry
|
|
247
|
+
|
|
248
|
+
#### `search <query>`
|
|
219
249
|
|
|
220
|
-
|
|
250
|
+
Search for MCP servers on npm, Smithery, or mcpman registry.
|
|
221
251
|
|
|
222
252
|
```sh
|
|
223
|
-
mcpman
|
|
224
|
-
mcpman
|
|
253
|
+
mcpman search filesystem
|
|
254
|
+
mcpman search brave --registry smithery
|
|
255
|
+
mcpman search tools --all --limit 10
|
|
225
256
|
```
|
|
226
257
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
### `logs <server>`
|
|
258
|
+
#### `info <server>`
|
|
230
259
|
|
|
231
|
-
|
|
260
|
+
Show detailed information about an MCP server package.
|
|
232
261
|
|
|
233
262
|
```sh
|
|
234
|
-
mcpman
|
|
263
|
+
mcpman info @modelcontextprotocol/server-filesystem
|
|
235
264
|
```
|
|
236
265
|
|
|
237
|
-
|
|
266
|
+
#### `why <server>`
|
|
238
267
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
Manage named server configuration profiles for quick switching.
|
|
268
|
+
Show why a server is installed — source, clients, profiles, env vars.
|
|
242
269
|
|
|
243
270
|
```sh
|
|
244
|
-
mcpman
|
|
245
|
-
mcpman profiles create prod -d "Production config"
|
|
246
|
-
mcpman profiles list # show all profiles
|
|
247
|
-
mcpman profiles switch dev # apply "dev" profile to lockfile
|
|
248
|
-
mcpman profiles delete old # remove a profile
|
|
271
|
+
mcpman why my-server
|
|
249
272
|
```
|
|
250
273
|
|
|
251
|
-
|
|
274
|
+
#### `publish`
|
|
252
275
|
|
|
253
|
-
|
|
276
|
+
Publish an MCP server to the mcpman community registry.
|
|
277
|
+
|
|
278
|
+
```sh
|
|
279
|
+
mcpman publish
|
|
280
|
+
mcpman publish --registry https://registry.mcpman.dev
|
|
281
|
+
```
|
|
254
282
|
|
|
255
|
-
|
|
283
|
+
#### `registry <list|add|remove|set-default>`
|
|
284
|
+
|
|
285
|
+
Manage custom registry URLs.
|
|
256
286
|
|
|
257
287
|
```sh
|
|
258
|
-
mcpman
|
|
259
|
-
mcpman
|
|
260
|
-
mcpman
|
|
288
|
+
mcpman registry list
|
|
289
|
+
mcpman registry add corp https://mcp.corp.com/api
|
|
290
|
+
mcpman registry remove corp
|
|
261
291
|
```
|
|
262
292
|
|
|
263
|
-
|
|
293
|
+
### Server Authoring
|
|
264
294
|
|
|
265
|
-
|
|
295
|
+
#### `create [name]`
|
|
266
296
|
|
|
267
|
-
|
|
297
|
+
Scaffold a new MCP server project.
|
|
268
298
|
|
|
269
299
|
```sh
|
|
270
|
-
mcpman
|
|
271
|
-
mcpman
|
|
272
|
-
mcpman export --no-vault # exclude encrypted vault
|
|
273
|
-
mcpman export --no-plugins # exclude plugin list
|
|
300
|
+
mcpman create my-server
|
|
301
|
+
mcpman create my-server --runtime python
|
|
274
302
|
```
|
|
275
303
|
|
|
276
|
-
|
|
304
|
+
#### `link [dir]`
|
|
277
305
|
|
|
278
|
-
|
|
306
|
+
Register a local MCP server directory with AI clients.
|
|
279
307
|
|
|
280
308
|
```sh
|
|
281
|
-
mcpman
|
|
282
|
-
mcpman
|
|
283
|
-
mcpman import backup.json --dry-run # preview without applying
|
|
309
|
+
mcpman link .
|
|
310
|
+
mcpman link ./path/to/server --client cursor
|
|
284
311
|
```
|
|
285
312
|
|
|
286
|
-
|
|
313
|
+
#### `watch <server>`
|
|
287
314
|
|
|
288
|
-
|
|
315
|
+
Watch source files and auto-restart on changes.
|
|
289
316
|
|
|
290
317
|
```sh
|
|
291
|
-
mcpman
|
|
292
|
-
mcpman
|
|
293
|
-
mcpman create my-server --runtime python # Python template
|
|
318
|
+
mcpman watch my-server
|
|
319
|
+
mcpman watch my-server --ext ts,js --delay 500
|
|
294
320
|
```
|
|
295
321
|
|
|
296
|
-
|
|
322
|
+
### Organization
|
|
297
323
|
|
|
298
|
-
|
|
324
|
+
#### `profiles <create|switch|list|delete>`
|
|
299
325
|
|
|
300
|
-
|
|
326
|
+
Manage named server configuration profiles.
|
|
301
327
|
|
|
302
328
|
```sh
|
|
303
|
-
mcpman
|
|
304
|
-
mcpman
|
|
305
|
-
mcpman
|
|
306
|
-
mcpman link . --name my-override # override detected server name
|
|
329
|
+
mcpman profiles create dev
|
|
330
|
+
mcpman profiles switch dev
|
|
331
|
+
mcpman profiles list
|
|
307
332
|
```
|
|
308
333
|
|
|
309
|
-
|
|
334
|
+
#### `group <add|rm|list|delete|install|run>`
|
|
310
335
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
Watch a local MCP server's source files and auto-restart on changes — like nodemon, built into mcpman.
|
|
336
|
+
Organize servers into named groups for batch operations.
|
|
314
337
|
|
|
315
338
|
```sh
|
|
316
|
-
mcpman
|
|
317
|
-
mcpman
|
|
318
|
-
mcpman
|
|
319
|
-
mcpman watch my-server --delay 500 # set debounce delay (ms)
|
|
320
|
-
mcpman watch my-server --clear # clear terminal on restart
|
|
339
|
+
mcpman group add work server-a server-b
|
|
340
|
+
mcpman group install work
|
|
341
|
+
mcpman group run work
|
|
321
342
|
```
|
|
322
343
|
|
|
323
|
-
|
|
344
|
+
#### `pin <server> [version]`
|
|
324
345
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
Manage custom registry URLs for MCP server resolution.
|
|
346
|
+
Pin a server to a specific version.
|
|
328
347
|
|
|
329
348
|
```sh
|
|
330
|
-
mcpman
|
|
331
|
-
mcpman
|
|
332
|
-
mcpman registry remove corp # remove custom registry
|
|
333
|
-
mcpman registry set-default smithery # change default registry
|
|
349
|
+
mcpman pin my-server 1.2.3
|
|
350
|
+
mcpman pin --unpin my-server
|
|
334
351
|
```
|
|
335
352
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
### `completions <bash|zsh|fish|install>`
|
|
353
|
+
#### `rollback [index]`
|
|
339
354
|
|
|
340
|
-
|
|
355
|
+
Restore a previous lockfile state from automatic snapshots.
|
|
341
356
|
|
|
342
357
|
```sh
|
|
343
|
-
mcpman
|
|
344
|
-
mcpman
|
|
345
|
-
mcpman completions fish # output fish completion script
|
|
346
|
-
mcpman completions install # auto-detect shell and install
|
|
347
|
-
source <(mcpman completions bash) # enable completions in current session
|
|
358
|
+
mcpman rollback --list
|
|
359
|
+
mcpman rollback 0
|
|
348
360
|
```
|
|
349
361
|
|
|
350
|
-
|
|
362
|
+
#### `template <save|apply|list|delete>`
|
|
351
363
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
Show why a server is installed — source, clients, profiles, env vars.
|
|
364
|
+
Save and share install templates.
|
|
355
365
|
|
|
356
366
|
```sh
|
|
357
|
-
mcpman
|
|
358
|
-
mcpman
|
|
367
|
+
mcpman template save myteam
|
|
368
|
+
mcpman template apply myteam
|
|
359
369
|
```
|
|
360
370
|
|
|
361
|
-
|
|
371
|
+
### Platform (v2.0)
|
|
362
372
|
|
|
363
|
-
|
|
373
|
+
#### `serve`
|
|
364
374
|
|
|
365
|
-
|
|
375
|
+
Run mcpman as an MCP server over stdio transport. AI agents can call 8 tools: `mcpman_install`, `mcpman_remove`, `mcpman_list`, `mcpman_search`, `mcpman_audit`, `mcpman_doctor`, `mcpman_info`, `mcpman_status`.
|
|
366
376
|
|
|
367
377
|
```sh
|
|
368
|
-
mcpman
|
|
369
|
-
mcpman
|
|
370
|
-
mcpman env list my-server
|
|
371
|
-
mcpman env del my-server API_URL
|
|
372
|
-
mcpman env clear my-server
|
|
378
|
+
mcpman serve # read-only mode (default)
|
|
379
|
+
mcpman serve --allow-write # enable destructive operations (remove)
|
|
373
380
|
```
|
|
374
381
|
|
|
375
|
-
|
|
382
|
+
#### `dashboard`
|
|
376
383
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
Benchmark MCP server latency with JSON-RPC initialize calls.
|
|
384
|
+
Launch an embedded HTTP dashboard with REST API endpoints.
|
|
380
385
|
|
|
381
386
|
```sh
|
|
382
|
-
mcpman
|
|
383
|
-
mcpman
|
|
384
|
-
mcpman bench my-server --json # machine-readable output
|
|
385
|
-
mcpman bench my-server --timeout 5000 # exit 1 if p95 > 5s
|
|
387
|
+
mcpman dashboard
|
|
388
|
+
mcpman dashboard --port 8080
|
|
386
389
|
```
|
|
387
390
|
|
|
388
|
-
|
|
391
|
+
Endpoints: `/api/servers`, `/api/clients`, `/api/health`, `/api/audit`, `/api/status`.
|
|
389
392
|
|
|
390
|
-
|
|
393
|
+
#### `team <init|add|remove|list|sync|share|audit>`
|
|
391
394
|
|
|
392
|
-
|
|
395
|
+
Team collaboration with RBAC and shared vault.
|
|
393
396
|
|
|
394
397
|
```sh
|
|
395
|
-
mcpman
|
|
396
|
-
mcpman
|
|
398
|
+
mcpman team init my-team # initialize team config
|
|
399
|
+
mcpman team add alice --role maintainer # add team member
|
|
400
|
+
mcpman team sync # sync team servers to local
|
|
401
|
+
mcpman team share # share local servers to team
|
|
402
|
+
mcpman team audit # view audit log
|
|
397
403
|
```
|
|
398
404
|
|
|
399
|
-
|
|
405
|
+
Roles: `admin` (full access), `maintainer` (add/remove servers), `viewer` (read-only).
|
|
400
406
|
|
|
401
|
-
|
|
407
|
+
#### `skill <install|list|remove|sync|export>`
|
|
402
408
|
|
|
403
|
-
|
|
409
|
+
Manage MCP server skills with universal spec.
|
|
404
410
|
|
|
405
411
|
```sh
|
|
406
|
-
mcpman
|
|
407
|
-
mcpman
|
|
408
|
-
mcpman
|
|
409
|
-
mcpman group list work # show group members
|
|
410
|
-
mcpman group install work # install all in group
|
|
411
|
-
mcpman group run work # run all concurrently
|
|
412
|
-
mcpman group delete work # remove entire group
|
|
412
|
+
mcpman skill install ./my-skill
|
|
413
|
+
mcpman skill sync --client claude-code
|
|
414
|
+
mcpman skill list
|
|
413
415
|
```
|
|
414
416
|
|
|
415
|
-
|
|
417
|
+
#### `agent <sync|list|export>`
|
|
416
418
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
Pin a server to a specific version to prevent auto-updates.
|
|
419
|
+
Sync agent configurations across AI clients.
|
|
420
420
|
|
|
421
421
|
```sh
|
|
422
|
-
mcpman
|
|
423
|
-
mcpman
|
|
424
|
-
mcpman
|
|
425
|
-
mcpman pin --list # show all pinned servers
|
|
422
|
+
mcpman agent sync
|
|
423
|
+
mcpman agent list
|
|
424
|
+
mcpman agent export --client roo-code
|
|
426
425
|
```
|
|
427
426
|
|
|
428
|
-
|
|
427
|
+
### Operations
|
|
429
428
|
|
|
430
|
-
|
|
429
|
+
#### `run <server>`
|
|
431
430
|
|
|
432
|
-
|
|
431
|
+
Launch an MCP server with vault secrets auto-injected.
|
|
433
432
|
|
|
434
433
|
```sh
|
|
435
|
-
mcpman
|
|
436
|
-
mcpman rollback 0 # restore most recent snapshot
|
|
437
|
-
mcpman rollback 2 # restore specific snapshot
|
|
434
|
+
mcpman run my-server
|
|
438
435
|
```
|
|
439
436
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
### `validate [--client <name>]`
|
|
437
|
+
#### `logs <server>`
|
|
443
438
|
|
|
444
|
-
|
|
439
|
+
Stream stdout/stderr from an MCP server process.
|
|
445
440
|
|
|
446
441
|
```sh
|
|
447
|
-
mcpman
|
|
448
|
-
mcpman validate --client cursor # validate specific client only
|
|
449
|
-
mcpman validate --json # machine-readable output
|
|
442
|
+
mcpman logs my-server
|
|
450
443
|
```
|
|
451
444
|
|
|
452
|
-
|
|
445
|
+
#### `notify <add|remove|list|test>`
|
|
453
446
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
Show live process status of all installed MCP servers.
|
|
447
|
+
Configure webhook and shell hooks for lifecycle events.
|
|
457
448
|
|
|
458
449
|
```sh
|
|
459
|
-
mcpman
|
|
460
|
-
mcpman
|
|
461
|
-
mcpman status --json # JSON output
|
|
450
|
+
mcpman notify add --event install --webhook https://hooks.example.com/mcp
|
|
451
|
+
mcpman notify test install
|
|
462
452
|
```
|
|
463
453
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
### `replay [index]`
|
|
454
|
+
#### `replay [index]`
|
|
467
455
|
|
|
468
456
|
Re-run previous CLI commands from history.
|
|
469
457
|
|
|
470
458
|
```sh
|
|
471
|
-
mcpman replay --list
|
|
472
|
-
mcpman replay 0
|
|
473
|
-
mcpman replay 5 # re-run 5th command
|
|
459
|
+
mcpman replay --list
|
|
460
|
+
mcpman replay 0
|
|
474
461
|
```
|
|
475
462
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
### `alias <add|remove|list>`
|
|
463
|
+
#### `alias <add|remove|list>`
|
|
479
464
|
|
|
480
|
-
Create
|
|
465
|
+
Create command shorthands.
|
|
481
466
|
|
|
482
467
|
```sh
|
|
483
|
-
mcpman alias add dev "group run dev-servers"
|
|
484
468
|
mcpman alias add fs "install @modelcontextprotocol/server-filesystem"
|
|
485
|
-
mcpman alias remove dev
|
|
486
|
-
mcpman alias list
|
|
487
469
|
```
|
|
488
470
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
### `template <save|apply|list|delete>`
|
|
471
|
+
#### `export / import`
|
|
492
472
|
|
|
493
|
-
|
|
473
|
+
Portable config migration.
|
|
494
474
|
|
|
495
475
|
```sh
|
|
496
|
-
mcpman
|
|
497
|
-
mcpman
|
|
498
|
-
mcpman template apply myteam # print install commands
|
|
499
|
-
mcpman template list # show all templates
|
|
500
|
-
mcpman template delete myteam # remove template
|
|
476
|
+
mcpman export backup.json
|
|
477
|
+
mcpman import backup.json --dry-run
|
|
501
478
|
```
|
|
502
479
|
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
### `notify <add|remove|list|test>`
|
|
480
|
+
#### `plugin <add|remove|list>`
|
|
506
481
|
|
|
507
|
-
|
|
482
|
+
Manage npm-based plugins for custom registries.
|
|
508
483
|
|
|
509
484
|
```sh
|
|
510
|
-
mcpman
|
|
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
|
|
485
|
+
mcpman plugin add mcpman-plugin-ollama
|
|
515
486
|
```
|
|
516
487
|
|
|
517
|
-
|
|
488
|
+
#### `completions <bash|zsh|fish|install>`
|
|
489
|
+
|
|
490
|
+
Generate shell completion scripts.
|
|
491
|
+
|
|
492
|
+
```sh
|
|
493
|
+
source <(mcpman completions bash)
|
|
494
|
+
mcpman completions install
|
|
495
|
+
```
|
|
518
496
|
|
|
519
497
|
---
|
|
520
498
|
|
|
@@ -522,41 +500,27 @@ Events: `install`, `remove`, `update`, `health-fail`. Webhooks use native `fetch
|
|
|
522
500
|
|
|
523
501
|
| Feature | mcpman | Smithery CLI | mcpm.sh |
|
|
524
502
|
|---|---|---|---|
|
|
525
|
-
| Multi-client support | All
|
|
503
|
+
| Multi-client support | **All 10 clients** | Claude only | Limited |
|
|
526
504
|
| Lockfile | `mcpman.lock` | None | None |
|
|
527
505
|
| Health checks | Runtime + env + process | None | None |
|
|
528
506
|
| Encrypted secrets | AES-256 vault | None | None |
|
|
529
507
|
| Config sync | Cross-client + `--remove` | None | None |
|
|
530
508
|
| Security audit | Trust scoring + auto-fix | None | None |
|
|
531
|
-
|
|
|
532
|
-
|
|
|
533
|
-
|
|
|
509
|
+
| MCP server mode | 8 tools via stdio | None | None |
|
|
510
|
+
| Remote transport | HTTP + SSE | None | None |
|
|
511
|
+
| Dashboard | REST API + UI | None | None |
|
|
512
|
+
| Team collaboration | RBAC + audit log | None | None |
|
|
513
|
+
| Skills & agent sync | Universal spec + adapters | None | None |
|
|
514
|
+
| Registry & publishing | npm + Smithery + GitHub + mcpman | Smithery only | npm only |
|
|
534
515
|
| Plugin system | npm-based custom registries | None | None |
|
|
535
|
-
|
|
|
536
|
-
| Server testing | JSON-RPC validation | None | None |
|
|
537
|
-
| Log streaming | Real-time stdout/stderr | None | None |
|
|
538
|
-
| Profiles | Named config switching | None | None |
|
|
539
|
-
| Self-upgrade | Built-in CLI updater | None | None |
|
|
540
|
-
| Interactive setup | Yes | Partial | No |
|
|
541
|
-
| Project-scoped | Yes (`init`) | No | No |
|
|
542
|
-
| Server scaffolding | `create` (Node + Python) | None | None |
|
|
516
|
+
| Server scaffolding | Node + Python templates | None | None |
|
|
543
517
|
| Local dev linking | `link` (like npm link) | None | None |
|
|
544
518
|
| File watching | `watch` (auto-restart) | None | None |
|
|
545
|
-
| Custom registries | `registry` CRUD | None | None |
|
|
546
519
|
| Shell completions | bash + zsh + fish | None | None |
|
|
547
|
-
|
|
|
548
|
-
|
|
|
549
|
-
|
|
|
550
|
-
|
|
|
551
|
-
| Server groups | Batch install/run tags | None | None |
|
|
552
|
-
| Version pinning | `pin`/`unpin` CLI | None | None |
|
|
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 |
|
|
520
|
+
| Export/Import | Full config portability | None | None |
|
|
521
|
+
| Profiles | Named config switching | None | None |
|
|
522
|
+
| Auto-rollback | Snapshot + restore | None | None |
|
|
523
|
+
| CI/CD | GitHub Actions | None | None |
|
|
560
524
|
|
|
561
525
|
---
|
|
562
526
|
|
|
@@ -564,7 +528,7 @@ Events: `install`, `remove`, `update`, `health-fail`. Webhooks use native `fetch
|
|
|
564
528
|
|
|
565
529
|
1. Fork the repo and create a feature branch
|
|
566
530
|
2. `npm install` to install dependencies
|
|
567
|
-
3. `npm test` to run the test suite
|
|
531
|
+
3. `npm test` to run the test suite (1,123 tests)
|
|
568
532
|
4. Submit a pull request with a clear description
|
|
569
533
|
|
|
570
534
|
Please follow the existing code style (TypeScript strict, ES modules).
|