career-compass-mcp 2.8.0 → 2.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 CHANGED
@@ -66,8 +66,20 @@ Claude: 3 things:
66
66
 
67
67
  ## Install
68
68
 
69
- Pick your client. Every route runs the same server, and none of them needs a clone or a
70
- build.
69
+ One command wires every Claude client on your machine — Claude Desktop, Claude Code, and
70
+ Cursor — and tells you what to restart:
71
+
72
+ ```bash
73
+ npx -y career-compass-mcp install
74
+ ```
75
+
76
+ It backs up any config it touches, leaves your other servers alone, skips clients you don't
77
+ have, and does nothing twice. `--dry-run` shows the plan first; `--data /path/to/career-data`
78
+ puts your files somewhere other than `~/.career-compass`. Then say to Claude: **"Run the
79
+ Career Compass setup check."**
80
+
81
+ Prefer to do it by hand, or use another client? Every route below runs the same server, and
82
+ none of them needs a clone or a build.
71
83
 
72
84
  ### Claude Code
73
85
 
package/build/bin/cli.js CHANGED
@@ -31,6 +31,9 @@ if (args.includes("--help") || args.includes("-h")) {
31
31
  career-compass-mcp v${pkgVersion}
32
32
 
33
33
  Usage:
34
+ career-compass-mcp install Wire it into every Claude client on this machine (Claude Desktop, Claude Code, Cursor)
35
+ career-compass-mcp install --dry-run Show what install would change, write nothing
36
+ career-compass-mcp install --data <path> Same, with your career files somewhere other than ~/.career-compass
34
37
  career-compass-mcp Run the MCP server on stdio (your MCP client launches this; you don't)
35
38
  career-compass-mcp dashboard Open the local web dashboard on your data
36
39
  career-compass-mcp dashboard --sample Open the bundled Alex Rivera demo — no data of your own needed
@@ -54,6 +57,22 @@ Your data folder is CAREER_DATA_PATH, or ~/.career-compass when that is unset.
54
57
  process.exit(0);
55
58
  }
56
59
  const isDashboard = args.includes("dashboard");
60
+ // ─── Install ─────────────────────────────────────────────────────────────────
61
+ // `career-compass-mcp install` — wire every Claude client on this machine.
62
+ if (args[0] === "install") {
63
+ const { runInstall, renderInstallReport, parseInstallArgs } = await import("../src/install.js");
64
+ let opts;
65
+ try {
66
+ opts = parseInstallArgs(args.slice(1));
67
+ }
68
+ catch (e) {
69
+ console.error(`Error: ${e.message}`);
70
+ process.exit(2);
71
+ }
72
+ const results = runInstall(opts);
73
+ console.log(renderInstallReport(results, { dryRun: opts.dryRun }));
74
+ process.exit(results.some((r) => r.status === "failed") ? 1 : 0);
75
+ }
57
76
  if (!isDashboard) {
58
77
  // Run MCP server on stdio (existing behavior)
59
78
  await import("../src/index.js");
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * `career-compass-mcp install` — said and done.
3
+ *
4
+ * Every install route in the README still ended with a person opening a JSON
5
+ * file. This finds the Claude clients on the machine and writes the entry for
6
+ * them: Claude Desktop's config file (backed up first, other servers untouched),
7
+ * Claude Code through its own `claude mcp add`, and Cursor's mcp.json. Clients
8
+ * that are not installed are skipped and named, so the report says exactly what
9
+ * happened and what to restart.
10
+ *
11
+ * Nothing here needs a shell; every config is read and written as JSON. The
12
+ * only spawn is Claude Code's own CLI, argv-only.
13
+ */
14
+ export type ClientId = "claude-desktop" | "claude-code" | "cursor";
15
+ export interface InstallOptions {
16
+ dataPath?: string;
17
+ only?: ClientId[];
18
+ dryRun?: boolean;
19
+ platform?: NodeJS.Platform;
20
+ env?: NodeJS.ProcessEnv;
21
+ home?: string;
22
+ exec?: (cmd: string, args: string[]) => string;
23
+ }
24
+ export interface ClientResult {
25
+ client: ClientId;
26
+ label: string;
27
+ status: "added" | "updated" | "present" | "skipped" | "dry-run" | "failed";
28
+ detail: string;
29
+ restart?: string;
30
+ }
31
+ /** The server entry, in the shape each client expects. */
32
+ export declare function serverEntry(platform: NodeJS.Platform, dataPath?: string): Record<string, unknown>;
33
+ export declare function claudeDesktopConfigPath(platform: NodeJS.Platform, env: NodeJS.ProcessEnv, home: string): string;
34
+ export declare function cursorConfigPath(home: string): string;
35
+ export declare function claudeCodeOnPath(platform: NodeJS.Platform, env: NodeJS.ProcessEnv): string | null;
36
+ /**
37
+ * Merge our entry into an `mcpServers` config object. Pure. Returns the new
38
+ * object and whether anything changed. An existing entry with a different
39
+ * `env` keeps its env unless the caller supplied one — a user's chosen data
40
+ * folder must not be silently reset to the default.
41
+ */
42
+ export declare function mergeServersConfig(existing: Record<string, unknown> | null, entry: Record<string, unknown>): {
43
+ next: Record<string, unknown>;
44
+ change: "added" | "updated" | "present";
45
+ };
46
+ export declare function installClaudeDesktop(opts: InstallOptions, platform: NodeJS.Platform, env: NodeJS.ProcessEnv, home: string): ClientResult;
47
+ export declare function installCursor(opts: InstallOptions, platform: NodeJS.Platform, home: string): ClientResult;
48
+ export declare function installClaudeCode(opts: InstallOptions, platform: NodeJS.Platform, env: NodeJS.ProcessEnv, exec: (cmd: string, args: string[]) => string): ClientResult;
49
+ export declare function runInstall(opts?: InstallOptions): ClientResult[];
50
+ /** The report a person reads. Says what happened, what to restart, and what to say to Claude first. */
51
+ export declare function renderInstallReport(results: ClientResult[], opts?: {
52
+ dryRun?: boolean;
53
+ }): string;
54
+ /** Parse `install` flags from argv (after the subcommand). */
55
+ export declare function parseInstallArgs(args: string[]): Pick<InstallOptions, "dataPath" | "only" | "dryRun">;
56
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOjG;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/G;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI,CAOjG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,CAU5E;AA2CD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAGxI;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAKzG;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,YAAY,CAiBtK;AAID,wBAAgB,UAAU,CAAC,IAAI,GAAE,cAAmB,GAAG,YAAY,EAAE,CAWpE;AAID,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAgBpG;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC,CAcrG"}
@@ -0,0 +1,196 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, copyFileSync } from "fs";
2
+ import { execFileSync } from "child_process";
3
+ import { homedir } from "os";
4
+ import { join, delimiter } from "path";
5
+ /** The server entry, in the shape each client expects. */
6
+ export function serverEntry(platform, dataPath) {
7
+ // Claude Desktop on Windows spawns without a shell, so `npx` (a .cmd) has to
8
+ // go through cmd. Everywhere else `npx` resolves directly.
9
+ const base = platform === "win32"
10
+ ? { command: "cmd", args: ["/c", "npx", "-y", "career-compass-mcp"] }
11
+ : { command: "npx", args: ["-y", "career-compass-mcp"] };
12
+ return dataPath ? { ...base, env: { CAREER_DATA_PATH: dataPath } } : base;
13
+ }
14
+ export function claudeDesktopConfigPath(platform, env, home) {
15
+ if (platform === "win32")
16
+ return join(env.APPDATA ?? join(home, "AppData", "Roaming"), "Claude", "claude_desktop_config.json");
17
+ if (platform === "darwin")
18
+ return join(home, "Library", "Application Support", "Claude", "claude_desktop_config.json");
19
+ return join(env.XDG_CONFIG_HOME ?? join(home, ".config"), "Claude", "claude_desktop_config.json");
20
+ }
21
+ export function cursorConfigPath(home) {
22
+ return join(home, ".cursor", "mcp.json");
23
+ }
24
+ export function claudeCodeOnPath(platform, env) {
25
+ const names = platform === "win32" ? ["claude.exe", "claude.cmd", "claude"] : ["claude"];
26
+ for (const dir of (env.PATH ?? "").split(delimiter)) {
27
+ if (!dir)
28
+ continue;
29
+ for (const n of names) {
30
+ const p = join(dir, n);
31
+ if (existsSync(p))
32
+ return p;
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+ /**
38
+ * Merge our entry into an `mcpServers` config object. Pure. Returns the new
39
+ * object and whether anything changed. An existing entry with a different
40
+ * `env` keeps its env unless the caller supplied one — a user's chosen data
41
+ * folder must not be silently reset to the default.
42
+ */
43
+ export function mergeServersConfig(existing, entry) {
44
+ const cfg = existing ? structuredClone(existing) : {};
45
+ const servers = (cfg.mcpServers && typeof cfg.mcpServers === "object" ? cfg.mcpServers : {});
46
+ const current = servers["career-compass"];
47
+ let merged = { ...entry };
48
+ if (current && !("env" in entry) && current.env)
49
+ merged = { ...merged, env: current.env };
50
+ const change = !current ? "added"
51
+ : JSON.stringify(current) === JSON.stringify(merged) ? "present" : "updated";
52
+ cfg.mcpServers = { ...servers, "career-compass": merged };
53
+ return { next: cfg, change };
54
+ }
55
+ function readJson(file) {
56
+ if (!existsSync(file))
57
+ return null;
58
+ const raw = readFileSync(file, "utf-8").trim();
59
+ if (!raw)
60
+ return null;
61
+ const parsed = JSON.parse(raw);
62
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
63
+ throw new Error(`${file} is not a JSON object`);
64
+ return parsed;
65
+ }
66
+ function writeJsonWithBackup(file, obj) {
67
+ mkdirSync(join(file, ".."), { recursive: true });
68
+ let backup = null;
69
+ if (existsSync(file)) {
70
+ backup = `${file}.bak-${new Date().toISOString().replace(/[:.]/g, "-")}`;
71
+ copyFileSync(file, backup);
72
+ }
73
+ writeFileSync(file, JSON.stringify(obj, null, 2) + "\n", "utf-8");
74
+ return backup;
75
+ }
76
+ function installJsonClient(client, label, file, installedMarker, entry, opts, restart) {
77
+ if (!existsSync(installedMarker)) {
78
+ return { client, label, status: "skipped", detail: `${label} not found (no ${installedMarker}).` };
79
+ }
80
+ let existing;
81
+ try {
82
+ existing = readJson(file);
83
+ }
84
+ catch (e) {
85
+ return { client, label, status: "failed", detail: `${file} could not be parsed: ${e.message}. Fix it or move it aside, then run install again.` };
86
+ }
87
+ const { next, change } = mergeServersConfig(existing, entry);
88
+ if (change === "present")
89
+ return { client, label, status: "present", detail: `Already configured in ${file}.` };
90
+ if (opts.dryRun)
91
+ return { client, label, status: "dry-run", detail: `Would ${change === "added" ? "add" : "update"} career-compass in ${file}.` };
92
+ const backup = writeJsonWithBackup(file, next);
93
+ return {
94
+ client, label, status: change,
95
+ detail: `${change === "added" ? "Added to" : "Updated in"} ${file}${backup ? ` (backup: ${backup})` : ""}.`,
96
+ restart,
97
+ };
98
+ }
99
+ export function installClaudeDesktop(opts, platform, env, home) {
100
+ const file = claudeDesktopConfigPath(platform, env, home);
101
+ return installJsonClient("claude-desktop", "Claude Desktop", file, join(file, ".."), serverEntry(platform, opts.dataPath), opts, "Restart Claude Desktop.");
102
+ }
103
+ export function installCursor(opts, platform, home) {
104
+ const file = cursorConfigPath(home);
105
+ // Cursor spawns through a shell on every platform, so plain npx is fine there.
106
+ const entry = serverEntry(platform === "win32" ? "linux" : platform, opts.dataPath);
107
+ return installJsonClient("cursor", "Cursor", file, join(home, ".cursor"), entry, opts, "Restart Cursor (or reload its MCP settings).");
108
+ }
109
+ export function installClaudeCode(opts, platform, env, exec) {
110
+ const label = "Claude Code";
111
+ const bin = claudeCodeOnPath(platform, env);
112
+ if (!bin)
113
+ return { client: "claude-code", label, status: "skipped", detail: "Claude Code not found on PATH." };
114
+ let present = false;
115
+ try {
116
+ exec(bin, ["mcp", "get", "career-compass"]);
117
+ present = true;
118
+ }
119
+ catch {
120
+ present = false;
121
+ }
122
+ if (present)
123
+ return { client: "claude-code", label, status: "present", detail: "Already registered (claude mcp get career-compass)." };
124
+ const args = ["mcp", "add", "career-compass", "-s", "user"];
125
+ if (opts.dataPath)
126
+ args.push("-e", `CAREER_DATA_PATH=${opts.dataPath}`);
127
+ args.push("--", "npx", "-y", "career-compass-mcp");
128
+ if (opts.dryRun)
129
+ return { client: "claude-code", label, status: "dry-run", detail: `Would run: claude ${args.join(" ")}` };
130
+ try {
131
+ exec(bin, args);
132
+ return { client: "claude-code", label, status: "added", detail: `Registered for every project: claude ${args.join(" ")}`, restart: "Open a new Claude Code session." };
133
+ }
134
+ catch (e) {
135
+ return { client: "claude-code", label, status: "failed", detail: `claude mcp add failed: ${e.message}` };
136
+ }
137
+ }
138
+ const defaultExec = (cmd, args) => execFileSync(cmd, args, { encoding: "utf-8", stdio: ["ignore", "pipe", "pipe"], windowsHide: true });
139
+ export function runInstall(opts = {}) {
140
+ const platform = opts.platform ?? process.platform;
141
+ const env = opts.env ?? process.env;
142
+ const home = opts.home ?? homedir();
143
+ const exec = opts.exec ?? defaultExec;
144
+ const want = (c) => !opts.only || opts.only.includes(c);
145
+ const out = [];
146
+ if (want("claude-desktop"))
147
+ out.push(installClaudeDesktop(opts, platform, env, home));
148
+ if (want("claude-code"))
149
+ out.push(installClaudeCode(opts, platform, env, exec));
150
+ if (want("cursor"))
151
+ out.push(installCursor(opts, platform, home));
152
+ return out;
153
+ }
154
+ const GLYPH = { added: "✅", updated: "✅", present: "✅", skipped: "·", "dry-run": "○", failed: "❌" };
155
+ /** The report a person reads. Says what happened, what to restart, and what to say to Claude first. */
156
+ export function renderInstallReport(results, opts = {}) {
157
+ const lines = [opts.dryRun ? "Career Compass — install (dry run, nothing written)" : "Career Compass — install", ""];
158
+ for (const r of results)
159
+ lines.push(`${GLYPH[r.status]} ${r.label} — ${r.detail}`);
160
+ const done = results.filter((r) => r.status === "added" || r.status === "updated" || r.status === "present");
161
+ const restarts = [...new Set(results.filter((r) => r.restart && r.status !== "present").map((r) => r.restart))];
162
+ lines.push("");
163
+ if (done.length === 0) {
164
+ lines.push("No Claude client was found on this machine. Install Claude Desktop, Claude Code, or Cursor and run this again —");
165
+ lines.push("or wire any MCP client by hand: command `npx`, args `-y career-compass-mcp`.");
166
+ }
167
+ else {
168
+ if (restarts.length)
169
+ lines.push(restarts.join(" "));
170
+ lines.push("Then say to Claude: \"Run the Career Compass setup check.\"");
171
+ lines.push("First conversation: \"Set up my Career KB. Here's my résumé:\" — and paste it.");
172
+ }
173
+ lines.push("See it with nobody's data: npx -y career-compass-mcp dashboard --sample");
174
+ return lines.join("\n");
175
+ }
176
+ /** Parse `install` flags from argv (after the subcommand). */
177
+ export function parseInstallArgs(args) {
178
+ const opts = {};
179
+ for (let i = 0; i < args.length; i++) {
180
+ const a = args[i];
181
+ if (a === "--dry-run")
182
+ opts.dryRun = true;
183
+ else if (a === "--data" && args[i + 1]) {
184
+ opts.dataPath = args[++i];
185
+ }
186
+ else if (a === "--client" && args[i + 1]) {
187
+ const v = args[++i];
188
+ const map = { desktop: "claude-desktop", "claude-desktop": "claude-desktop", code: "claude-code", "claude-code": "claude-code", cursor: "cursor" };
189
+ if (!map[v])
190
+ throw new Error(`Unknown client "${v}". Use desktop, code, or cursor.`);
191
+ opts.only = [...(opts.only ?? []), map[v]];
192
+ }
193
+ }
194
+ return opts;
195
+ }
196
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "career-compass-mcp",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "AI-native career co-pilot for Claude — Career KB, resume tailoring, job pipeline, interview prep, and offer evaluation via MCP",
5
5
  "type": "module",
6
6
  "main": "build/src/index.js",