@nimblebrain/mpak 0.0.2 → 0.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/CLAUDE.md CHANGED
@@ -142,6 +142,18 @@ git push && git push --tags
142
142
  | `mpak search <query> --type bundle` | Search bundles only |
143
143
  | `mpak search <query> --type skill` | Search skills only |
144
144
 
145
+ ### Run (Top-Level Alias)
146
+
147
+ | Command | Description |
148
+ |---------|-------------|
149
+ | `mpak run <package>` | Run an MCP server (alias for `bundle run`) |
150
+
151
+ This is the recommended way to integrate with Claude Code:
152
+
153
+ ```bash
154
+ claude mcp add --transport stdio echo -- mpak run @nimblebraininc/echo
155
+ ```
156
+
145
157
  ### Bundle Commands
146
158
 
147
159
  | Command | Description |
package/README.md CHANGED
@@ -21,11 +21,8 @@ npm install -g @nimblebrain/mpak
21
21
  # Search for everything (bundles + skills)
22
22
  mpak search postgres
23
23
 
24
- # Search bundles only
25
- mpak bundle search postgres
26
-
27
24
  # Run an MCP server
28
- mpak bundle run @owner/my-server
25
+ mpak run @owner/my-server
29
26
 
30
27
  # Search skills only
31
28
  mpak skill search strategy
@@ -34,6 +31,24 @@ mpak skill search strategy
34
31
  mpak skill install @owner/my-skill
35
32
  ```
36
33
 
34
+ ## Claude Code Integration
35
+
36
+ Add any mpak bundle to Claude Code with a single command:
37
+
38
+ ```bash
39
+ claude mcp add --transport stdio echo -- mpak run @nimblebraininc/echo
40
+ ```
41
+
42
+ For bundles requiring API keys:
43
+
44
+ ```bash
45
+ # Set config once
46
+ mpak config set @nimblebraininc/ipinfo api_key=your_token
47
+
48
+ # Then add to Claude Code
49
+ claude mcp add --transport stdio ipinfo -- mpak run @nimblebraininc/ipinfo
50
+ ```
51
+
37
52
  ## Commands
38
53
 
39
54
  ### Unified Search
@@ -148,14 +163,22 @@ mpak bundle run @nimblebraininc/echo --update
148
163
  Options:
149
164
  - `--update` - Force re-download even if cached
150
165
 
151
- **Claude Desktop Integration:**
166
+ > **Tip:** Use `mpak run` as a shortcut for `mpak bundle run`.
167
+
168
+ **Claude Code:**
169
+
170
+ ```bash
171
+ claude mcp add --transport stdio echo -- mpak run @nimblebraininc/echo
172
+ ```
173
+
174
+ **Claude Desktop:**
152
175
 
153
176
  ```json
154
177
  {
155
178
  "mcpServers": {
156
179
  "echo": {
157
180
  "command": "mpak",
158
- "args": ["bundle", "run", "@nimblebraininc/echo"]
181
+ "args": ["run", "@nimblebraininc/echo"]
159
182
  }
160
183
  }
161
184
  }
@@ -1,5 +1,6 @@
1
1
  export interface RunOptions {
2
2
  update?: boolean;
3
+ local?: string;
3
4
  }
4
5
  /**
5
6
  * Parse package specification into name and version
@@ -30,7 +31,17 @@ export declare function substituteUserConfig(value: string, userConfigValues: Re
30
31
  */
31
32
  export declare function substituteEnvVars(env: Record<string, string> | undefined, userConfigValues: Record<string, string>): Record<string, string>;
32
33
  /**
33
- * Run a package from the registry
34
+ * Get cache directory for a local bundle.
35
+ * Uses hash of absolute path to avoid collisions.
36
+ */
37
+ export declare function getLocalCacheDir(bundlePath: string): string;
38
+ /**
39
+ * Check if local bundle needs re-extraction.
40
+ * Returns true if cache doesn't exist or bundle was modified after extraction.
41
+ */
42
+ export declare function localBundleNeedsExtract(bundlePath: string, cacheDir: string): boolean;
43
+ /**
44
+ * Run a package from the registry or a local bundle file
34
45
  */
35
46
  export declare function handleRun(packageSpec: string, options?: RunOptions): Promise<void>;
36
47
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/packages/run.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAuCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAejF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKvD;AAqDD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAItE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AA+HD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAoJf"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/packages/run.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAejF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKvD;AAqDD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAItE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWrF;AA+HD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Mf"}
@@ -1,8 +1,9 @@
1
1
  import { spawn, spawnSync } from 'child_process';
2
2
  import { createInterface } from 'readline';
3
- import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync } from 'fs';
3
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync, rmSync, statSync } from 'fs';
4
+ import { createHash } from 'crypto';
4
5
  import { homedir } from 'os';
5
- import { join, dirname } from 'path';
6
+ import { join, dirname, resolve, basename } from 'path';
6
7
  import { RegistryClient } from '../../lib/api/registry-client.js';
7
8
  import { ConfigManager } from '../../utils/config-manager.js';
8
9
  /**
@@ -107,6 +108,32 @@ export function substituteEnvVars(env, userConfigValues) {
107
108
  }
108
109
  return result;
109
110
  }
111
+ /**
112
+ * Get cache directory for a local bundle.
113
+ * Uses hash of absolute path to avoid collisions.
114
+ */
115
+ export function getLocalCacheDir(bundlePath) {
116
+ const absolutePath = resolve(bundlePath);
117
+ const hash = createHash('md5').update(absolutePath).digest('hex').slice(0, 12);
118
+ return join(homedir(), '.mpak', 'cache', '_local', hash);
119
+ }
120
+ /**
121
+ * Check if local bundle needs re-extraction.
122
+ * Returns true if cache doesn't exist or bundle was modified after extraction.
123
+ */
124
+ export function localBundleNeedsExtract(bundlePath, cacheDir) {
125
+ const metaPath = join(cacheDir, '.mpak-meta.json');
126
+ if (!existsSync(metaPath))
127
+ return true;
128
+ try {
129
+ const meta = JSON.parse(readFileSync(metaPath, 'utf8'));
130
+ const bundleStat = statSync(bundlePath);
131
+ return bundleStat.mtimeMs > new Date(meta.extractedAt).getTime();
132
+ }
133
+ catch {
134
+ return true;
135
+ }
136
+ }
110
137
  /**
111
138
  * Prompt user for a config value (interactive terminal input)
112
139
  */
@@ -216,56 +243,100 @@ function findPythonCommand() {
216
243
  return 'python';
217
244
  }
218
245
  /**
219
- * Run a package from the registry
246
+ * Run a package from the registry or a local bundle file
220
247
  */
221
248
  export async function handleRun(packageSpec, options = {}) {
222
- const { name, version: requestedVersion } = parsePackageSpec(packageSpec);
223
- const client = new RegistryClient();
224
- const platform = RegistryClient.detectPlatform();
225
- const cacheDir = getCacheDir(name);
226
- let needsPull = true;
227
- let cachedMeta = getCacheMetadata(cacheDir);
228
- // Check if we have a cached version
229
- if (cachedMeta && !options.update) {
230
- if (requestedVersion) {
231
- // Specific version requested - check if cached version matches
232
- needsPull = cachedMeta.version !== requestedVersion;
233
- }
234
- else {
235
- // Latest requested - use cache (user can --update to refresh)
236
- needsPull = false;
237
- }
249
+ // Validate that either --local or package spec is provided
250
+ if (!options.local && !packageSpec) {
251
+ process.stderr.write(`=> Error: Either provide a package name or use --local <path>\n`);
252
+ process.exit(1);
238
253
  }
239
- if (needsPull) {
240
- // Fetch download info
241
- const downloadInfo = await client.getDownloadInfo(name, requestedVersion, platform);
242
- const bundle = downloadInfo.bundle;
243
- // Check if cached version is already the latest
244
- if (cachedMeta && cachedMeta.version === bundle.version && !options.update) {
245
- needsPull = false;
254
+ let cacheDir;
255
+ let packageName;
256
+ if (options.local) {
257
+ // === LOCAL BUNDLE MODE ===
258
+ const bundlePath = resolve(options.local);
259
+ // Validate bundle exists
260
+ if (!existsSync(bundlePath)) {
261
+ process.stderr.write(`=> Error: Bundle not found: ${bundlePath}\n`);
262
+ process.exit(1);
246
263
  }
247
- if (needsPull) {
248
- // Download to temp file
249
- const tempPath = join(homedir(), '.mpak', 'tmp', `${Date.now()}.mcpb`);
250
- mkdirSync(dirname(tempPath), { recursive: true });
251
- process.stderr.write(`=> Pulling ${name}@${bundle.version}...\n`);
252
- await client.downloadBundle(downloadInfo.url, tempPath);
253
- // Clear old cache and extract
254
- const { rmSync } = await import('fs');
264
+ // Validate .mcpb extension
265
+ if (!bundlePath.endsWith('.mcpb')) {
266
+ process.stderr.write(`=> Error: Not an MCPB bundle: ${bundlePath}\n`);
267
+ process.exit(1);
268
+ }
269
+ cacheDir = getLocalCacheDir(bundlePath);
270
+ const needsExtract = options.update || localBundleNeedsExtract(bundlePath, cacheDir);
271
+ if (needsExtract) {
272
+ // Clear old extraction
255
273
  if (existsSync(cacheDir)) {
256
274
  rmSync(cacheDir, { recursive: true, force: true });
257
275
  }
258
276
  mkdirSync(cacheDir, { recursive: true });
259
- await extractZip(tempPath, cacheDir);
260
- // Write metadata
261
- writeCacheMetadata(cacheDir, {
262
- version: bundle.version,
263
- pulledAt: new Date().toISOString(),
264
- platform: bundle.platform,
265
- });
266
- // Cleanup temp file
267
- rmSync(tempPath, { force: true });
268
- process.stderr.write(`=> Cached ${name}@${bundle.version}\n`);
277
+ process.stderr.write(`=> Extracting ${basename(bundlePath)}...\n`);
278
+ await extractZip(bundlePath, cacheDir);
279
+ // Write local metadata
280
+ writeFileSync(join(cacheDir, '.mpak-meta.json'), JSON.stringify({
281
+ localPath: bundlePath,
282
+ extractedAt: new Date().toISOString(),
283
+ }));
284
+ }
285
+ // Read manifest to get package name for config lookup
286
+ const manifest = readManifest(cacheDir);
287
+ packageName = manifest.name;
288
+ process.stderr.write(`=> Running ${packageName} (local)\n`);
289
+ }
290
+ else {
291
+ // === REGISTRY MODE ===
292
+ const { name, version: requestedVersion } = parsePackageSpec(packageSpec);
293
+ packageName = name;
294
+ const client = new RegistryClient();
295
+ const platform = RegistryClient.detectPlatform();
296
+ cacheDir = getCacheDir(name);
297
+ let needsPull = true;
298
+ let cachedMeta = getCacheMetadata(cacheDir);
299
+ // Check if we have a cached version
300
+ if (cachedMeta && !options.update) {
301
+ if (requestedVersion) {
302
+ // Specific version requested - check if cached version matches
303
+ needsPull = cachedMeta.version !== requestedVersion;
304
+ }
305
+ else {
306
+ // Latest requested - use cache (user can --update to refresh)
307
+ needsPull = false;
308
+ }
309
+ }
310
+ if (needsPull) {
311
+ // Fetch download info
312
+ const downloadInfo = await client.getDownloadInfo(name, requestedVersion, platform);
313
+ const bundle = downloadInfo.bundle;
314
+ // Check if cached version is already the latest
315
+ if (cachedMeta && cachedMeta.version === bundle.version && !options.update) {
316
+ needsPull = false;
317
+ }
318
+ if (needsPull) {
319
+ // Download to temp file
320
+ const tempPath = join(homedir(), '.mpak', 'tmp', `${Date.now()}.mcpb`);
321
+ mkdirSync(dirname(tempPath), { recursive: true });
322
+ process.stderr.write(`=> Pulling ${name}@${bundle.version}...\n`);
323
+ await client.downloadBundle(downloadInfo.url, tempPath);
324
+ // Clear old cache and extract
325
+ if (existsSync(cacheDir)) {
326
+ rmSync(cacheDir, { recursive: true, force: true });
327
+ }
328
+ mkdirSync(cacheDir, { recursive: true });
329
+ await extractZip(tempPath, cacheDir);
330
+ // Write metadata
331
+ writeCacheMetadata(cacheDir, {
332
+ version: bundle.version,
333
+ pulledAt: new Date().toISOString(),
334
+ platform: bundle.platform,
335
+ });
336
+ // Cleanup temp file
337
+ rmSync(tempPath, { force: true });
338
+ process.stderr.write(`=> Cached ${name}@${bundle.version}\n`);
339
+ }
269
340
  }
270
341
  }
271
342
  // Read manifest and execute
@@ -275,7 +346,7 @@ export async function handleRun(packageSpec, options = {}) {
275
346
  let userConfigValues = {};
276
347
  if (manifest.user_config && Object.keys(manifest.user_config).length > 0) {
277
348
  const configManager = new ConfigManager();
278
- userConfigValues = await gatherUserConfigValues(name, manifest.user_config, configManager);
349
+ userConfigValues = await gatherUserConfigValues(packageName, manifest.user_config, configManager);
279
350
  }
280
351
  // Substitute user_config placeholders in env vars
281
352
  // Priority: process.env (from parent like Claude Desktop) > substituted values (from mpak config)
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/packages/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/packages/run.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC;;;;;;;;GAQG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAmLvC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC;;;;;;;;GAQG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAiMvC"}
package/dist/program.js CHANGED
@@ -37,6 +37,17 @@ export function createProgram() {
37
37
  await handleUnifiedSearch(query, options);
38
38
  });
39
39
  // ==========================================================================
40
+ // Top-level run alias (for Claude Code integration)
41
+ // ==========================================================================
42
+ program
43
+ .command('run [package]')
44
+ .description('Run an MCP server (alias for "bundle run")')
45
+ .option('--update', 'Force re-download even if cached')
46
+ .option('-l, --local <path>', 'Run a local .mcpb bundle file')
47
+ .action(async (packageSpec, options) => {
48
+ await handleRun(packageSpec || '', options);
49
+ });
50
+ // ==========================================================================
40
51
  // Bundle namespace (MCP bundles)
41
52
  // ==========================================================================
42
53
  const bundle = program.command('bundle').description('MCP bundle commands');
@@ -69,11 +80,12 @@ export function createProgram() {
69
80
  await handlePull(packageSpec, options);
70
81
  });
71
82
  bundle
72
- .command('run <package>')
83
+ .command('run [package]')
73
84
  .description('Run an MCP server from the registry')
74
85
  .option('--update', 'Force re-download even if cached')
86
+ .option('-l, --local <path>', 'Run a local .mcpb bundle file')
75
87
  .action(async (packageSpec, options) => {
76
- await handleRun(packageSpec, options);
88
+ await handleRun(packageSpec || '', options);
77
89
  });
78
90
  // ==========================================================================
79
91
  // Skill namespace (Agent Skills)
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimblebrain/mpak",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "description": "CLI for downloading MCPB bundles from the mpak registry",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { homedir } from 'os';
3
3
  import { join } from 'path';
4
- import { parsePackageSpec, getCacheDir, resolveArgs, substituteUserConfig, substituteEnvVars } from './run.js';
4
+ import { parsePackageSpec, getCacheDir, resolveArgs, substituteUserConfig, substituteEnvVars, getLocalCacheDir, localBundleNeedsExtract } from './run.js';
5
5
 
6
6
  describe('parsePackageSpec', () => {
7
7
  describe('scoped packages', () => {
@@ -220,3 +220,42 @@ describe('substituteEnvVars', () => {
220
220
  });
221
221
  });
222
222
  });
223
+
224
+ describe('getLocalCacheDir', () => {
225
+ const expectedBase = join(homedir(), '.mpak', 'cache', '_local');
226
+
227
+ it('returns consistent hash for same path', () => {
228
+ const dir1 = getLocalCacheDir('/path/to/bundle.mcpb');
229
+ const dir2 = getLocalCacheDir('/path/to/bundle.mcpb');
230
+ expect(dir1).toBe(dir2);
231
+ });
232
+
233
+ it('returns different hash for different paths', () => {
234
+ const dir1 = getLocalCacheDir('/path/to/bundle1.mcpb');
235
+ const dir2 = getLocalCacheDir('/path/to/bundle2.mcpb');
236
+ expect(dir1).not.toBe(dir2);
237
+ });
238
+
239
+ it('includes _local in path', () => {
240
+ const dir = getLocalCacheDir('/path/to/bundle.mcpb');
241
+ expect(dir).toContain('_local');
242
+ expect(dir.startsWith(expectedBase)).toBe(true);
243
+ });
244
+
245
+ it('produces a 12-character hash suffix', () => {
246
+ const dir = getLocalCacheDir('/path/to/bundle.mcpb');
247
+ const hashPart = dir.split('/').pop();
248
+ expect(hashPart).toHaveLength(12);
249
+ });
250
+ });
251
+
252
+ describe('localBundleNeedsExtract', () => {
253
+ it('returns true when cache directory does not exist', () => {
254
+ expect(localBundleNeedsExtract('/any/path.mcpb', '/nonexistent/cache')).toBe(true);
255
+ });
256
+
257
+ it('returns true when meta file does not exist in cache dir', () => {
258
+ // Using a directory that exists but has no .mpak-meta.json
259
+ expect(localBundleNeedsExtract('/any/path.mcpb', '/tmp')).toBe(true);
260
+ });
261
+ });
@@ -1,13 +1,15 @@
1
1
  import { spawn, spawnSync } from 'child_process';
2
2
  import { createInterface } from 'readline';
3
- import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync } from 'fs';
3
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, chmodSync, rmSync, statSync } from 'fs';
4
+ import { createHash } from 'crypto';
4
5
  import { homedir } from 'os';
5
- import { join, dirname } from 'path';
6
+ import { join, dirname, resolve, basename } from 'path';
6
7
  import { RegistryClient } from '../../lib/api/registry-client.js';
7
8
  import { ConfigManager } from '../../utils/config-manager.js';
8
9
 
9
10
  export interface RunOptions {
10
11
  update?: boolean;
12
+ local?: string; // Path to local .mcpb file
11
13
  }
12
14
 
13
15
  interface McpConfig {
@@ -169,6 +171,33 @@ export function substituteEnvVars(
169
171
  return result;
170
172
  }
171
173
 
174
+ /**
175
+ * Get cache directory for a local bundle.
176
+ * Uses hash of absolute path to avoid collisions.
177
+ */
178
+ export function getLocalCacheDir(bundlePath: string): string {
179
+ const absolutePath = resolve(bundlePath);
180
+ const hash = createHash('md5').update(absolutePath).digest('hex').slice(0, 12);
181
+ return join(homedir(), '.mpak', 'cache', '_local', hash);
182
+ }
183
+
184
+ /**
185
+ * Check if local bundle needs re-extraction.
186
+ * Returns true if cache doesn't exist or bundle was modified after extraction.
187
+ */
188
+ export function localBundleNeedsExtract(bundlePath: string, cacheDir: string): boolean {
189
+ const metaPath = join(cacheDir, '.mpak-meta.json');
190
+ if (!existsSync(metaPath)) return true;
191
+
192
+ try {
193
+ const meta = JSON.parse(readFileSync(metaPath, 'utf8'));
194
+ const bundleStat = statSync(bundlePath);
195
+ return bundleStat.mtimeMs > new Date(meta.extractedAt).getTime();
196
+ } catch {
197
+ return true;
198
+ }
199
+ }
200
+
172
201
  /**
173
202
  * Prompt user for a config value (interactive terminal input)
174
203
  */
@@ -295,69 +324,125 @@ function findPythonCommand(): string {
295
324
  }
296
325
 
297
326
  /**
298
- * Run a package from the registry
327
+ * Run a package from the registry or a local bundle file
299
328
  */
300
329
  export async function handleRun(
301
330
  packageSpec: string,
302
331
  options: RunOptions = {}
303
332
  ): Promise<void> {
304
- const { name, version: requestedVersion } = parsePackageSpec(packageSpec);
305
- const client = new RegistryClient();
306
- const platform = RegistryClient.detectPlatform();
307
- const cacheDir = getCacheDir(name);
308
-
309
- let needsPull = true;
310
- let cachedMeta = getCacheMetadata(cacheDir);
311
-
312
- // Check if we have a cached version
313
- if (cachedMeta && !options.update) {
314
- if (requestedVersion) {
315
- // Specific version requested - check if cached version matches
316
- needsPull = cachedMeta.version !== requestedVersion;
317
- } else {
318
- // Latest requested - use cache (user can --update to refresh)
319
- needsPull = false;
320
- }
333
+ // Validate that either --local or package spec is provided
334
+ if (!options.local && !packageSpec) {
335
+ process.stderr.write(`=> Error: Either provide a package name or use --local <path>\n`);
336
+ process.exit(1);
321
337
  }
322
338
 
323
- if (needsPull) {
324
- // Fetch download info
325
- const downloadInfo = await client.getDownloadInfo(name, requestedVersion, platform);
326
- const bundle = downloadInfo.bundle;
339
+ let cacheDir: string;
340
+ let packageName: string;
341
+
342
+ if (options.local) {
343
+ // === LOCAL BUNDLE MODE ===
344
+ const bundlePath = resolve(options.local);
327
345
 
328
- // Check if cached version is already the latest
329
- if (cachedMeta && cachedMeta.version === bundle.version && !options.update) {
330
- needsPull = false;
346
+ // Validate bundle exists
347
+ if (!existsSync(bundlePath)) {
348
+ process.stderr.write(`=> Error: Bundle not found: ${bundlePath}\n`);
349
+ process.exit(1);
331
350
  }
332
351
 
333
- if (needsPull) {
334
- // Download to temp file
335
- const tempPath = join(homedir(), '.mpak', 'tmp', `${Date.now()}.mcpb`);
336
- mkdirSync(dirname(tempPath), { recursive: true });
352
+ // Validate .mcpb extension
353
+ if (!bundlePath.endsWith('.mcpb')) {
354
+ process.stderr.write(`=> Error: Not an MCPB bundle: ${bundlePath}\n`);
355
+ process.exit(1);
356
+ }
337
357
 
338
- process.stderr.write(`=> Pulling ${name}@${bundle.version}...\n`);
339
- await client.downloadBundle(downloadInfo.url, tempPath);
358
+ cacheDir = getLocalCacheDir(bundlePath);
359
+ const needsExtract = options.update || localBundleNeedsExtract(bundlePath, cacheDir);
340
360
 
341
- // Clear old cache and extract
342
- const { rmSync } = await import('fs');
361
+ if (needsExtract) {
362
+ // Clear old extraction
343
363
  if (existsSync(cacheDir)) {
344
364
  rmSync(cacheDir, { recursive: true, force: true });
345
365
  }
346
366
  mkdirSync(cacheDir, { recursive: true });
347
367
 
348
- await extractZip(tempPath, cacheDir);
368
+ process.stderr.write(`=> Extracting ${basename(bundlePath)}...\n`);
369
+ await extractZip(bundlePath, cacheDir);
370
+
371
+ // Write local metadata
372
+ writeFileSync(
373
+ join(cacheDir, '.mpak-meta.json'),
374
+ JSON.stringify({
375
+ localPath: bundlePath,
376
+ extractedAt: new Date().toISOString(),
377
+ })
378
+ );
379
+ }
349
380
 
350
- // Write metadata
351
- writeCacheMetadata(cacheDir, {
352
- version: bundle.version,
353
- pulledAt: new Date().toISOString(),
354
- platform: bundle.platform,
355
- });
381
+ // Read manifest to get package name for config lookup
382
+ const manifest = readManifest(cacheDir);
383
+ packageName = manifest.name;
384
+ process.stderr.write(`=> Running ${packageName} (local)\n`);
385
+
386
+ } else {
387
+ // === REGISTRY MODE ===
388
+ const { name, version: requestedVersion } = parsePackageSpec(packageSpec);
389
+ packageName = name;
390
+ const client = new RegistryClient();
391
+ const platform = RegistryClient.detectPlatform();
392
+ cacheDir = getCacheDir(name);
393
+
394
+ let needsPull = true;
395
+ let cachedMeta = getCacheMetadata(cacheDir);
396
+
397
+ // Check if we have a cached version
398
+ if (cachedMeta && !options.update) {
399
+ if (requestedVersion) {
400
+ // Specific version requested - check if cached version matches
401
+ needsPull = cachedMeta.version !== requestedVersion;
402
+ } else {
403
+ // Latest requested - use cache (user can --update to refresh)
404
+ needsPull = false;
405
+ }
406
+ }
407
+
408
+ if (needsPull) {
409
+ // Fetch download info
410
+ const downloadInfo = await client.getDownloadInfo(name, requestedVersion, platform);
411
+ const bundle = downloadInfo.bundle;
356
412
 
357
- // Cleanup temp file
358
- rmSync(tempPath, { force: true });
413
+ // Check if cached version is already the latest
414
+ if (cachedMeta && cachedMeta.version === bundle.version && !options.update) {
415
+ needsPull = false;
416
+ }
359
417
 
360
- process.stderr.write(`=> Cached ${name}@${bundle.version}\n`);
418
+ if (needsPull) {
419
+ // Download to temp file
420
+ const tempPath = join(homedir(), '.mpak', 'tmp', `${Date.now()}.mcpb`);
421
+ mkdirSync(dirname(tempPath), { recursive: true });
422
+
423
+ process.stderr.write(`=> Pulling ${name}@${bundle.version}...\n`);
424
+ await client.downloadBundle(downloadInfo.url, tempPath);
425
+
426
+ // Clear old cache and extract
427
+ if (existsSync(cacheDir)) {
428
+ rmSync(cacheDir, { recursive: true, force: true });
429
+ }
430
+ mkdirSync(cacheDir, { recursive: true });
431
+
432
+ await extractZip(tempPath, cacheDir);
433
+
434
+ // Write metadata
435
+ writeCacheMetadata(cacheDir, {
436
+ version: bundle.version,
437
+ pulledAt: new Date().toISOString(),
438
+ platform: bundle.platform,
439
+ });
440
+
441
+ // Cleanup temp file
442
+ rmSync(tempPath, { force: true });
443
+
444
+ process.stderr.write(`=> Cached ${name}@${bundle.version}\n`);
445
+ }
361
446
  }
362
447
  }
363
448
 
@@ -369,7 +454,7 @@ export async function handleRun(
369
454
  let userConfigValues: Record<string, string> = {};
370
455
  if (manifest.user_config && Object.keys(manifest.user_config).length > 0) {
371
456
  const configManager = new ConfigManager();
372
- userConfigValues = await gatherUserConfigValues(name, manifest.user_config, configManager);
457
+ userConfigValues = await gatherUserConfigValues(packageName, manifest.user_config, configManager);
373
458
  }
374
459
 
375
460
  // Substitute user_config placeholders in env vars
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import { mkdirSync, writeFileSync, rmSync, existsSync, readFileSync } from 'fs';
2
+ import { mkdirSync, writeFileSync, rmSync, existsSync } from 'fs';
3
3
  import { join, basename } from 'path';
4
4
  import { tmpdir } from 'os';
5
5
  import { packSkill } from './pack.js';
package/src/program.ts CHANGED
@@ -54,6 +54,19 @@ export function createProgram(): Command {
54
54
  await handleUnifiedSearch(query, options);
55
55
  });
56
56
 
57
+ // ==========================================================================
58
+ // Top-level run alias (for Claude Code integration)
59
+ // ==========================================================================
60
+
61
+ program
62
+ .command('run [package]')
63
+ .description('Run an MCP server (alias for "bundle run")')
64
+ .option('--update', 'Force re-download even if cached')
65
+ .option('-l, --local <path>', 'Run a local .mcpb bundle file')
66
+ .action(async (packageSpec, options) => {
67
+ await handleRun(packageSpec || '', options);
68
+ });
69
+
57
70
  // ==========================================================================
58
71
  // Bundle namespace (MCP bundles)
59
72
  // ==========================================================================
@@ -92,11 +105,12 @@ export function createProgram(): Command {
92
105
  });
93
106
 
94
107
  bundle
95
- .command('run <package>')
108
+ .command('run [package]')
96
109
  .description('Run an MCP server from the registry')
97
110
  .option('--update', 'Force re-download even if cached')
111
+ .option('-l, --local <path>', 'Run a local .mcpb bundle file')
98
112
  .action(async (packageSpec, options) => {
99
- await handleRun(packageSpec, options);
113
+ await handleRun(packageSpec || '', options);
100
114
  });
101
115
 
102
116
  // ==========================================================================