@engramprotocol/mcp-server 0.10.6 → 0.10.7

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
@@ -8,7 +8,7 @@ Request an API token: **parsley_22bonds@icloud.com**
8
8
 
9
9
  ```bash
10
10
  EML_API_TOKEN=eml_<prefix><secret> \
11
- npx @engramprotocol/mcp-server setup install
11
+ npx --prefer-online @engramprotocol/mcp-server@latest setup install
12
12
  ```
13
13
 
14
14
  The installer:
@@ -18,7 +18,7 @@ The installer:
18
18
  - Adds two hooks to `~/.claude/settings.json` (see [Hooks](#hooks) below):
19
19
  - **SessionStart** → loads your brain at session start (identity, rules, decisions, status, tasks, protocol conventions)
20
20
  - **UserPromptSubmit** → light mid-session reminder on turn 1, every 5 turns, or after >1h pause
21
- - Adds two permissions: `mcp__engramprotocol__*` (skip per-call prompt for EML tools) and `Bash(npx @engramprotocol/mcp-server setup *)` (let the agent auto-execute `setup update` when prompted)
21
+ - Adds two permissions: `mcp__engramprotocol__*` (skip per-call prompt for EML tools) and `Bash(npx --prefer-online @engramprotocol/mcp-server@latest setup *)` (let the agent auto-execute `setup update` when prompted)
22
22
  - Performs a final `/stats` round-trip as smoke test
23
23
 
24
24
  A backup of `~/.claude/settings.json` is created first (pattern `.pre-eml-install-YYYY-MM-DD-HH-MM-SS.bak`).
@@ -26,7 +26,7 @@ A backup of `~/.claude/settings.json` is created first (pattern `.pre-eml-instal
26
26
  ### Update
27
27
 
28
28
  ```bash
29
- npx @engramprotocol/mcp-server@latest setup update
29
+ npx --prefer-online @engramprotocol/mcp-server@latest setup update
30
30
  ```
31
31
 
32
32
  Refreshes hook templates (marker-aware — preserves files you customised), bumps `EML_CLIENT_VERSION` in `~/.eml/config`. Idempotent. The `@latest` suffix busts the npx cache so you actually get the new version.
@@ -34,7 +34,7 @@ Refreshes hook templates (marker-aware — preserves files you customised), bump
34
34
  ### Uninstall
35
35
 
36
36
  ```bash
37
- npx @engramprotocol/mcp-server setup uninstall
37
+ npx --prefer-online @engramprotocol/mcp-server@latest setup uninstall
38
38
  ```
39
39
 
40
40
  Removes the MCP registration, the two managed hook entries, the two managed permission entries, and `~/.eml/hooks/`. Your own hooks and permissions are untouched. `~/.eml/config` is kept by default (asks for confirmation before delete — it contains your token).
@@ -57,7 +57,7 @@ Two bash hooks land in `~/.eml/hooks/`:
57
57
 
58
58
  Both hooks log to `~/.eml/logs/<event>-YYYY-MM-DD.log` (self-rotating per day) and carry a `# managed-by: engramprotocol-setup` marker line that lets `setup update` / `setup uninstall` identify which files they own.
59
59
 
60
- ## Tools (v0.10.6)
60
+ ## Tools (v0.10.7)
61
61
 
62
62
  All tools have an `eml_` prefix. Total: **17 tools**.
63
63
 
@@ -41,7 +41,7 @@ var __importStar = (this && this.__importStar) || (function () {
41
41
  })();
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.runSetup = runSetup;
44
- const HELP = `npx @engramprotocol/mcp-server setup [install|update|uninstall]
44
+ const HELP = `npx --prefer-online @engramprotocol/mcp-server@latest setup [install|update|uninstall]
45
45
 
46
46
  Sub-commands:
47
47
  install Initial setup: token prompt, config write, MCP registration, permissions, hooks. (default)
@@ -38,7 +38,7 @@ exports.runInstall = runInstall;
38
38
  const fs = __importStar(require("fs"));
39
39
  const _helpers_1 = require("./_helpers");
40
40
  const API_URL = 'https://api.engramprotocol.io';
41
- const BASH_PERMISSION = `Bash(npx @engramprotocol/${_helpers_1.MCP_SERVER_NAME === 'engramprotocol' ? 'mcp-server' : _helpers_1.MCP_SERVER_NAME} setup *)`;
41
+ const BASH_PERMISSION = `Bash(npx --prefer-online @engramprotocol/${_helpers_1.MCP_SERVER_NAME === 'engramprotocol' ? 'mcp-server' : _helpers_1.MCP_SERVER_NAME}@latest setup *)`;
42
42
  const MCP_PERMISSION = `mcp__${_helpers_1.MCP_SERVER_NAME}__*`;
43
43
  function log(msg) {
44
44
  process.stderr.write(msg + '\n');
@@ -235,7 +235,7 @@ Hooks installed in: ${_helpers_1.EML_HOOKS_DIR}
235
235
  Config: ${_helpers_1.EML_CONFIG}
236
236
  Marker: # ${_helpers_1.MANAGED_BY_MARKER} (line 2 of each hook script + on managed entries)
237
237
 
238
- To reverse: \`npx @engramprotocol/mcp-server setup uninstall\`
238
+ To reverse: \`npx --prefer-online @engramprotocol/mcp-server@latest setup uninstall\`
239
239
  `);
240
240
  }
241
241
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ function log(msg) {
45
45
  process.stderr.write(msg + '\n');
46
46
  }
47
47
  const MCP_PERMISSION = `mcp__${_helpers_1.MCP_SERVER_NAME}__*`;
48
- const BASH_PERMISSION = `Bash(npx @engramprotocol/mcp-server setup *)`;
48
+ const BASH_PERMISSION = `Bash(npx --prefer-online @engramprotocol/mcp-server@latest setup *)`;
49
49
  async function runUninstall(_argv) {
50
50
  log('Engram Protocol — Setup (uninstall)\n');
51
51
  log('Will remove:');
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/setup/uninstall.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,EAAE;AACF,iFAAiF;AACjF,sFAAsF;AACtF,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyB1E,oCAiFC;AAxGD,uCAAwB;AACxB,yCAamB;AAEnB,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,cAAc,GAAG,QAAQ,0BAAe,KAAK,CAAA;AACnD,MAAM,eAAe,GAAG,8CAA8C,CAAA;AAE/D,KAAK,UAAU,YAAY,CAAC,KAAe;IAChD,GAAG,CAAC,uCAAuC,CAAC,CAAA;IAE5C,GAAG,CAAC,cAAc,CAAC,CAAA;IACnB,GAAG,CAAC,uBAAuB,0BAAe,mBAAmB,wBAAa,EAAE,CAAC,CAAA;IAC7E,GAAG,CAAC,2BAA2B,cAAc,KAAK,eAAe,EAAE,CAAC,CAAA;IACpE,GAAG,CAAC,gCAAgC,0BAAe,+BAA+B,CAAC,CAAA;IACnF,GAAG,CAAC,OAAO,wBAAa,iBAAiB,CAAC,CAAA;IAC1C,GAAG,CAAC,OAAO,qBAAU,sDAAsD,CAAC,CAAA;IAC5E,GAAG,CAAC,EAAE,CAAC,CAAA;IAEP,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAa,EAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IACjD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,GAAG,CAAC,+BAA+B,CAAC,CAAA;QACpC,OAAM;IACR,CAAC;IAED,6EAA6E;IAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,0BAAe,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAA,yBAAc,GAAE,CAAA;QACnC,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAA,uBAAY,GAAE,CAAA;QAE/B,MAAM,YAAY,GAAG,IAAA,qCAA0B,EAAC,QAAQ,EAAE,wBAAa,CAAC,CAAA;QACxE,GAAG,CAAC,eAAe,YAAY,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAE/E,MAAM,YAAY,GAAG,IAAA,4BAAiB,EACpC,QAAQ,EACR,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,eAAe,CACrD,CAAA;QACD,GAAG,CAAC,eAAe,YAAY,mBAAmB,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAErF,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAA;QACvB,GAAG,CAAC,OAAO,0BAAe,UAAU,CAAC,CAAA;IACvC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,0BAAe,qCAAqC,CAAC,CAAA;IAClE,CAAC;IAED,6EAA6E;IAC7E,MAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,0BAAe,CAAC,CAAC,CAAA;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,mBAAmB,0BAAe,WAAW,CAAC,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,2BAA2B,0BAAe,8CAA8C,CAAC,CAAA;IAC/F,CAAC;IAED,6EAA6E;IAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,wBAAa,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,MAAM,CAAC,wBAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,GAAG,CAAC,eAAe,wBAAa,EAAE,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,wBAAa,2BAA2B,CAAC,CAAA;IACtD,CAAC;IAED,6EAA6E;IAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,qBAAU,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,MAAM,YAAY,GAAG,MAAM,IAAA,wBAAa,EACtC,UAAU,qBAAU,6BAA6B,EACjD,KAAK,CACN,CAAA;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,EAAE,CAAC,MAAM,CAAC,qBAAU,CAAC,CAAA;YACrB,GAAG,CAAC,eAAe,qBAAU,EAAE,CAAC,CAAA;YAChC,4BAA4B;YAC5B,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,WAAW,CAAC,kBAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,EAAE,CAAC,SAAS,CAAC,kBAAO,CAAC,CAAA;oBACrB,GAAG,CAAC,qBAAqB,kBAAO,EAAE,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,iDAAiD,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,YAAY,qBAAU,EAAE,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,GAAG,CAAC;;;;CAIL,CAAC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/setup/uninstall.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/setup/update.ts"],"names":[],"mappings":"AA0CA,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G9D"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/setup/update.ts"],"names":[],"mappings":"AAwFA,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJ9D"}
@@ -10,7 +10,7 @@
10
10
  //
11
11
  // What this does NOT do:
12
12
  // - Refresh the npm package itself. That's the user's responsibility (typically via
13
- // `npx @engramprotocol/mcp-server@latest setup update` to bust npx cache).
13
+ // `npx --prefer-online @engramprotocol/mcp-server@latest setup update` to bust npx cache).
14
14
  // If the package version hasn't changed when `setup update` runs, it's a no-op
15
15
  // except for config-bump and template-overwrite (idempotent).
16
16
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -57,6 +57,38 @@ function fail(msg, code = 1) {
57
57
  log(`\n❌ ${msg}`);
58
58
  process.exit(code);
59
59
  }
60
+ function readLiveRegistration() {
61
+ const res = (0, _helpers_1.claudeCli)(['mcp', 'get', _helpers_1.MCP_SERVER_NAME]);
62
+ if (res.status !== 0)
63
+ return null;
64
+ const out = res.stdout;
65
+ const token = /EML_API_TOKEN=(\S+)/.exec(out)?.[1];
66
+ const url = /--url\s+(\S+)/.exec(out)?.[1];
67
+ const command = /Command:\s*(\S+)/.exec(out)?.[1];
68
+ const argsLine = /Args:\s*(.+)/.exec(out)?.[1];
69
+ const scope = /Scope:\s*(\w+)/i.exec(out)?.[1]?.toLowerCase() ?? 'user';
70
+ return {
71
+ token,
72
+ url,
73
+ command,
74
+ args: argsLine ? argsLine.trim().split(/\s+/) : undefined,
75
+ scope,
76
+ };
77
+ }
78
+ // Reconstruct the `claude mcp add` invocation that restores a prior registration —
79
+ // used to roll back if the new `add` fails after we have already removed the old one.
80
+ function rollbackAddArgs(live, token) {
81
+ const command = live.command || 'npx';
82
+ const args = live.args || ['--prefer-online', '@engramprotocol/mcp-server@latest', '--url', live.url || ''];
83
+ return [
84
+ 'mcp', 'add', _helpers_1.MCP_SERVER_NAME,
85
+ '--scope', live.scope || 'user',
86
+ '--transport', 'stdio',
87
+ '--env', `EML_API_TOKEN=${token}`,
88
+ '--',
89
+ command, ...args,
90
+ ];
91
+ }
60
92
  async function runUpdate(_argv) {
61
93
  log('Engram Protocol — Setup (update)');
62
94
  // --- 1. Read existing config ---------------------------------------------
@@ -92,34 +124,72 @@ async function runUpdate(_argv) {
92
124
  (0, _helpers_1.installTemplate)(tpl.filename);
93
125
  log(` ✓ ${installedPath}`);
94
126
  }
95
- // --- 4. Re-register claude mcp (idempotent fixes old @~0.10 pin to --prefer-online @latest) ---
127
+ // --- 4. Re-register claude mcp (safe: verify-before-touch + rollback) -----
128
+ // `claude mcp` has no edit command, so changing the registration means
129
+ // remove + add. The danger (which broke a user on 2026-06-02) is doing that
130
+ // unconditionally with a token taken blindly from config: a stale config token
131
+ // silently clobbers a working registration. So: read the live token, verify it
132
+ // BEFORE touching anything, and roll back / fail loudly if anything goes wrong.
96
133
  log('\nMCP server re-registration:');
97
- if ((0, _helpers_1.claudeCliExists)()) {
98
- (0, _helpers_1.claudeCli)(['mcp', 'remove', _helpers_1.MCP_SERVER_NAME]);
99
- const args = [
100
- 'mcp', 'add', _helpers_1.MCP_SERVER_NAME,
101
- '--scope', 'user',
102
- '--transport', 'stdio',
103
- '--env', `EML_API_TOKEN=${cfg.EML_API_TOKEN}`,
104
- '--',
105
- 'npx', '--prefer-online', '@engramprotocol/mcp-server@latest',
106
- '--url', cfg.EML_URL,
107
- ];
108
- const result = (0, _helpers_1.claudeCli)(args);
109
- if (result.status === 0) {
110
- log(` ✓ Re-registered with --prefer-online @latest (ensures next session loads newest version)`);
134
+ if (!(0, _helpers_1.claudeCliExists)()) {
135
+ log(' claude CLI not found — skipped re-registration');
136
+ }
137
+ else {
138
+ const live = readLiveRegistration();
139
+ // Source of truth for the token is the live registration (what works), with
140
+ // ~/.eml/config as fallback only when there is no live registration to read.
141
+ const token = live?.token ?? cfg.EML_API_TOKEN;
142
+ const url = live?.url ?? cfg.EML_URL;
143
+ if (live?.token && cfg.EML_API_TOKEN && live.token !== cfg.EML_API_TOKEN) {
144
+ log(' ⚠ Live registration token differs from ~/.eml/config — keeping the live (working) token and syncing config to it.');
145
+ }
146
+ // Verify BEFORE we remove anything. Never tear down a working setup to
147
+ // re-install a token we have not confirmed.
148
+ const pre = await (0, _helpers_1.verifyToken)(url, token);
149
+ if (!pre.ok && pre.status === 401) {
150
+ fail(`Current token is rejected by ${url} (401). Your registration was left untouched.\n Run \`npx --prefer-online @engramprotocol/mcp-server@latest setup install\` to re-authenticate with a valid token.`);
151
+ }
152
+ else if (!pre.ok) {
153
+ // Transient/network failure — do NOT risk clobbering a working registration.
154
+ log(` ⚠ Could not verify token (${pre.error ?? `HTTP ${pre.status}`}). Skipping re-registration to avoid breaking a working setup — re-run \`npx --prefer-online @engramprotocol/mcp-server@latest setup update\` once the server is reachable.`);
111
155
  }
112
156
  else {
113
- log(` ⚠ Re-registration failed (exit ${result.status}): ${result.stderr || result.stdout}`);
157
+ // Token confirmed good. Sync config to the live token so the two stop drifting.
158
+ if (live?.token && live.token !== cfg.EML_API_TOKEN) {
159
+ (0, _helpers_1.writeConfig)({ ...cfg, EML_API_TOKEN: live.token, EML_CLIENT_VERSION: newVersion });
160
+ }
161
+ (0, _helpers_1.claudeCli)(['mcp', 'remove', _helpers_1.MCP_SERVER_NAME]);
162
+ const added = (0, _helpers_1.claudeCli)([
163
+ 'mcp', 'add', _helpers_1.MCP_SERVER_NAME,
164
+ '--scope', 'user',
165
+ '--transport', 'stdio',
166
+ '--env', `EML_API_TOKEN=${token}`,
167
+ '--',
168
+ 'npx', '--prefer-online', '@engramprotocol/mcp-server@latest',
169
+ '--url', url,
170
+ ]);
171
+ if (added.status !== 0) {
172
+ // We already removed the old entry — try to restore it so we don't leave
173
+ // the user with no registration at all.
174
+ let restored = false;
175
+ if (live) {
176
+ restored = (0, _helpers_1.claudeCli)(rollbackAddArgs(live, token)).status === 0;
177
+ }
178
+ fail(`Re-registration failed (exit ${added.status}): ${added.stderr || added.stdout}\n ${restored ? 'Previous registration was restored.' : 'Could not auto-restore — run `npx --prefer-online @engramprotocol/mcp-server@latest setup install` to repair.'}`);
179
+ }
180
+ // Smoke-test AFTER add, exactly as install does — catch a broken re-register
181
+ // loudly instead of printing success over a dead registration.
182
+ const post = await (0, _helpers_1.verifyToken)(url, token);
183
+ if (!post.ok) {
184
+ fail(`Re-registered, but verification failed (${post.error ?? `HTTP ${post.status}`}). Run \`npx --prefer-online @engramprotocol/mcp-server@latest setup install\` to repair.`);
185
+ }
186
+ log(' ✓ Re-registered with --prefer-online @latest, token verified');
114
187
  }
115
188
  }
116
- else {
117
- log(' ⚠ claude CLI not found — skipped re-registration');
118
- }
119
189
  // --- 5. Settings.json sanity check ---------------------------------------
120
190
  log('\nSettings.json sanity check:');
121
191
  if (!fs.existsSync(_helpers_1.CLAUDE_SETTINGS)) {
122
- log(` ⚠ ${_helpers_1.CLAUDE_SETTINGS} missing — was the install completed? Run \`setup install\` again.`);
192
+ log(` ⚠ ${_helpers_1.CLAUDE_SETTINGS} missing — was the install completed? Run \`npx --prefer-online @engramprotocol/mcp-server@latest setup install\` again.`);
123
193
  }
124
194
  else {
125
195
  const settings = (0, _helpers_1.readSettings)();
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/setup/update.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,EAAE;AACF,kBAAkB;AAClB,qFAAqF;AACrF,0EAA0E;AAC1E,uFAAuF;AACvF,mFAAmF;AACnF,0EAA0E;AAC1E,EAAE;AACF,yBAAyB;AACzB,sFAAsF;AACtF,+EAA+E;AAC/E,mFAAmF;AACnF,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BlE,8BA6GC;AAxID,uCAAwB;AACxB,yCAemB;AAEnB,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,IAAI,GAAG,CAAC;IACjC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,KAAe;IAC7C,GAAG,CAAC,kCAAkC,CAAC,CAAA;IAEvC,4EAA4E;IAC5E,MAAM,GAAG,GAAG,IAAA,qBAAU,GAAE,CAAA;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,4BAA4B,qBAAU,gCAAgC,CAAC,CAAA;IAC9E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,qBAAU,8EAA8E,CAAC,CAAA;IAC7G,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAA;IACtD,MAAM,UAAU,GAAG,IAAA,qBAAU,GAAE,CAAA;IAC/B,GAAG,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAA;IACjD,GAAG,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAA;IACjD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,gFAAgF,CAAC,CAAA;IACvF,CAAC;IAED,4EAA4E;IAC5E,IAAA,sBAAW,EAAC,EAAE,GAAG,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAA;IACvD,GAAG,CAAC,OAAO,qBAAU,yBAAyB,UAAU,EAAE,CAAC,CAAA;IAE3D,4EAA4E;IAC5E,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACxB,EAAE,CAAC,SAAS,CAAC,wBAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,KAAK,MAAM,GAAG,IAAI,yBAAc,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,GAAG,wBAAa,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;QAExD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;YACvD,IAAI,CAAC,IAAA,oBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,YAAY,aAAa,4BAA4B,4BAAiB,mCAAmC,CAAC,CAAA;gBAC9G,SAAQ;YACV,CAAC;QACH,CAAC;QACD,IAAA,0BAAe,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7B,GAAG,CAAC,OAAO,aAAa,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,mGAAmG;IACnG,GAAG,CAAC,+BAA+B,CAAC,CAAA;IACpC,IAAI,IAAA,0BAAe,GAAE,EAAE,CAAC;QACtB,IAAA,oBAAS,EAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,0BAAe,CAAC,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,KAAK,EAAE,0BAAe;YAC7B,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,OAAO;YACtB,OAAO,EAAE,iBAAiB,GAAG,CAAC,aAAa,EAAE;YAC7C,IAAI;YACJ,KAAK,EAAE,iBAAiB,EAAE,mCAAmC;YAC7D,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAA;QACD,MAAM,MAAM,GAAG,IAAA,oBAAS,EAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,4FAA4F,CAAC,CAAA;QACnG,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,oCAAoC,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,oDAAoD,CAAC,CAAA;IAC3D,CAAC;IAED,4EAA4E;IAC5E,GAAG,CAAC,+BAA+B,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,0BAAe,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,OAAO,0BAAe,oEAAoE,CAAC,CAAA;IACjG,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,IAAA,uBAAY,GAAE,CAAA;QAC/B,MAAM,KAAK,GAAI,QAAQ,CAAC,WAAW,EAAE,KAA8B,IAAI,EAAE,CAAA;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,0BAAe,KAAK,CAAC,CAAA;QAC/D,IAAI,UAAU;YAAE,GAAG,CAAC,YAAY,0BAAe,kCAAkC,CAAC,CAAA;;YAC7E,GAAG,CAAC,YAAY,0BAAe,uEAAuE,CAAC,CAAA;QAE5G,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACtD,MAAM,GAAG,GAAI,QAAQ,CAAC,KAAwE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YAC3G,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;oBAC9B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAa,CAAC;wBAAE,WAAW,IAAI,CAAC,CAAA;gBAC1F,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,2BAA2B,wBAAa,EAAE,CAAC,CAAA;IAChG,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC;;mDAE2C,UAAU;;;iEAGI,UAAU;sDACrB,UAAU;;;;;;;CAO/D,CAAC,CAAA;IACA,CAAC;SAAM,CAAC;QACN,GAAG,CAAC;kCAC0B,UAAU;;;CAG3C,CAAC,CAAA;IACA,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/setup/update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@engramprotocol/mcp-server",
3
- "version": "0.10.6",
3
+ "version": "0.10.7",
4
4
  "description": "MCP wrapper for the EML HTTP API — exposes the Engram Protocol as MCP tools for Claude Code and other MCP clients. Includes setup-mode for one-shot install/update/uninstall.",
5
5
  "license": "MIT",
6
6
  "main": "dist/server.js",
@@ -23,11 +23,22 @@ echo "[$TS] fired (pid=$$) stdin=$STDIN" >> "$LOG_FILE"
23
23
 
24
24
  # --- 3. Config check + source ----------------------------------------------
25
25
  if [ ! -f "$CONFIG" ]; then
26
- echo "⚠️ EML config missing at $CONFIG — run 'npx @engramprotocol/mcp-server setup'"
26
+ echo "⚠️ EML config missing at $CONFIG — run 'npx --prefer-online @engramprotocol/mcp-server@latest setup install'"
27
27
  echo "[$TS] FAIL config missing" >> "$LOG_FILE"
28
28
  exit 0
29
29
  fi
30
- . "$CONFIG"
30
+ # Parse config as DATA — never `source`/`.` it. Sourcing executes the file as a
31
+ # shell script, so any unexpected content (corruption, tampering, a stray shell
32
+ # metachar in a value) would run as code at every session start. Read key=value
33
+ # lines and assign only the known keys instead.
34
+ EML_URL='' ; EML_API_TOKEN='' ; EML_CLIENT_VERSION=''
35
+ while IFS='=' read -r _k _v; do
36
+ case "$_k" in
37
+ EML_URL) EML_URL="$_v" ;;
38
+ EML_API_TOKEN) EML_API_TOKEN="$_v" ;;
39
+ EML_CLIENT_VERSION) EML_CLIENT_VERSION="$_v" ;;
40
+ esac
41
+ done < "$CONFIG"
31
42
 
32
43
  # --- 4. Sanity: required vars ----------------------------------------------
33
44
  if [ -z "${EML_URL:-}" ] || [ -z "${EML_API_TOKEN:-}" ]; then
@@ -37,15 +48,30 @@ if [ -z "${EML_URL:-}" ] || [ -z "${EML_API_TOKEN:-}" ]; then
37
48
  fi
38
49
 
39
50
  # --- 5. Call /boot ---------------------------------------------------------
40
- RESPONSE=$(curl -fsS -m 8 \
51
+ # Capture body + HTTP status separately so we can tell an invalid token (401/403)
52
+ # apart from the server being unreachable. A silent "brain not loaded" with no
53
+ # reason cost an hour of debugging on 2026-06-02 — never again.
54
+ BODY_FILE=$(mktemp)
55
+ HTTP_CODE=$(curl -sS -m 8 -o "$BODY_FILE" -w '%{http_code}' \
41
56
  -H "Authorization: Bearer $EML_API_TOKEN" \
42
57
  -H "Content-Type: application/json" \
43
58
  -X POST -d '{}' \
44
- "$EML_URL/boot" 2>>"$LOG_FILE") || {
45
- echo "⚠️ EML Boot failed — server unreachable or auth error. See $LOG_FILE"
46
- echo "[$TS] FAIL curl non-zero" >> "$LOG_FILE"
59
+ "$EML_URL/boot" 2>>"$LOG_FILE") || HTTP_CODE="000"
60
+ RESPONSE=$(cat "$BODY_FILE")
61
+ rm -f "$BODY_FILE"
62
+
63
+ if [ "$HTTP_CODE" = "401" ] || [ "$HTTP_CODE" = "403" ]; then
64
+ echo "⚠️ EML brain NOT loaded — your token was rejected (HTTP $HTTP_CODE)."
65
+ echo " Your EML_API_TOKEN is invalid or revoked. Reconnect with one command:"
66
+ echo " npx --prefer-online @engramprotocol/mcp-server@latest setup install"
67
+ echo "[$TS] FAIL auth $HTTP_CODE" >> "$LOG_FILE"
68
+ exit 0
69
+ fi
70
+ if [ "$HTTP_CODE" != "200" ]; then
71
+ echo "⚠️ EML Boot failed — server unreachable or error (HTTP $HTTP_CODE). See $LOG_FILE"
72
+ echo "[$TS] FAIL http $HTTP_CODE" >> "$LOG_FILE"
47
73
  exit 0
48
- }
74
+ fi
49
75
 
50
76
  # --- 6. Update-banner check ------------------------------------------------
51
77
  SERVER_VER=$(echo "$RESPONSE" | jq -r '.version // empty')