@contextstream/mcp-server 0.4.50 → 0.4.53

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.
@@ -4053,6 +4053,9 @@ var NEVER = INVALID;
4053
4053
  // src/version.ts
4054
4054
  import { createRequire } from "module";
4055
4055
  function getVersion() {
4056
+ if (typeof __CONTEXTSTREAM_VERSION__ !== "undefined" && __CONTEXTSTREAM_VERSION__) {
4057
+ return __CONTEXTSTREAM_VERSION__;
4058
+ }
4056
4059
  try {
4057
4060
  const require2 = createRequire(import.meta.url);
4058
4061
  const pkg = require2("../package.json");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@contextstream/mcp-server",
3
3
  "mcpName": "io.github.contextstreamio/mcp-server",
4
- "version": "0.4.50",
4
+ "version": "0.4.53",
5
5
  "description": "ContextStream MCP server - v0.4.x with consolidated domain tools (~11 tools, ~75% token reduction). Code context, memory, search, and AI tools.",
6
6
  "type": "module",
7
7
  "license": "MIT",
@@ -9,14 +9,16 @@
9
9
  "files": [
10
10
  "dist",
11
11
  "dist/hooks",
12
+ "scripts",
12
13
  "README.md"
13
14
  ],
14
15
  "bin": {
15
- "contextstream-mcp": "dist/index.js"
16
+ "contextstream-mcp": "dist/index.js",
17
+ "contextstream-hook": "dist/hooks/runner.js"
16
18
  },
17
19
  "scripts": {
18
20
  "dev": "tsx src/index.ts",
19
- "build": "esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.js --format=esm --external:@modelcontextprotocol/sdk --banner:js=\"#!/usr/bin/env node\" && esbuild src/test-server.ts --bundle --platform=node --target=node18 --outfile=dist/test-server.js --format=esm --external:@modelcontextprotocol/sdk && esbuild src/hooks/post-write.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/post-write.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/pre-tool-use.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/pre-tool-use.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/user-prompt-submit.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/user-prompt-submit.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/media-aware.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/media-aware.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/pre-compact.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/pre-compact.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/auto-rules.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/auto-rules.js --format=esm --banner:js=\"#!/usr/bin/env node\"",
21
+ "build": "esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.js --format=esm --external:@modelcontextprotocol/sdk --banner:js=\"#!/usr/bin/env node\" && esbuild src/test-server.ts --bundle --platform=node --target=node18 --outfile=dist/test-server.js --format=esm --external:@modelcontextprotocol/sdk && esbuild src/hooks/runner.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/runner.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/post-write.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/post-write.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/pre-tool-use.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/pre-tool-use.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/user-prompt-submit.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/user-prompt-submit.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/media-aware.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/media-aware.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/pre-compact.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/pre-compact.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/post-compact.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/post-compact.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/auto-rules.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/auto-rules.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/on-bash.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/on-bash.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/on-task.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/on-task.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/on-read.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/on-read.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/on-web.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/on-web.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/session-init.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/session-init.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/session-end.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/session-end.js --format=esm --banner:js=\"#!/usr/bin/env node\" && esbuild src/hooks/on-save-intent.ts --bundle --platform=node --target=node18 --outfile=dist/hooks/on-save-intent.js --format=esm --banner:js=\"#!/usr/bin/env node\"",
20
22
  "start": "node dist/index.js",
21
23
  "test-server": "tsx src/test-server.ts",
22
24
  "test-server:start": "node dist/test-server.js",
@@ -27,7 +29,8 @@
27
29
  "lint:fix": "eslint src/ --fix",
28
30
  "format": "prettier --write src/",
29
31
  "format:check": "prettier --check src/",
30
- "prepublishOnly": "npm run build"
32
+ "prepublishOnly": "npm run build",
33
+ "postinstall": "node scripts/postinstall.js"
31
34
  },
32
35
  "dependencies": {
33
36
  "@modelcontextprotocol/sdk": "^1.25.1",
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
3
+ import { homedir } from "os";
4
+ import { join, dirname } from "path";
5
+ import { fileURLToPath } from "url";
6
+
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const pkgPath = join(__dirname, "..", "package.json");
9
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
10
+ const binPath = join(__dirname, "..", "dist", "index.js");
11
+ const claudeDir = join(homedir(), ".claude");
12
+ const claudeSettingsPath = join(claudeDir, "settings.json");
13
+ const versionFile = join(claudeDir, ".contextstream-version");
14
+
15
+ // Ensure .claude directory exists
16
+ if (!existsSync(claudeDir)) {
17
+ mkdirSync(claudeDir, { recursive: true });
18
+ }
19
+
20
+ // Store version for update detection
21
+ writeFileSync(versionFile, pkg.version);
22
+
23
+ // Auto-configure hooks if settings.json exists
24
+ if (existsSync(claudeSettingsPath)) {
25
+ try {
26
+ let content = readFileSync(claudeSettingsPath, "utf8");
27
+ const originalContent = content;
28
+
29
+ // Replace npx commands with direct node execution
30
+ content = content.replace(
31
+ /npx\s+@contextstream\/mcp-server/g,
32
+ `node ${binPath}`
33
+ );
34
+
35
+ // Also handle any existing direct paths that might be outdated
36
+ content = content.replace(
37
+ /node\s+[^\s"]+mcp-server\/dist\/index\.js/g,
38
+ `node ${binPath}`
39
+ );
40
+
41
+ if (content !== originalContent) {
42
+ writeFileSync(claudeSettingsPath, content);
43
+ console.log("✓ ContextStream hooks updated for optimal performance");
44
+ console.log(` Using: ${binPath}`);
45
+ } else {
46
+ console.log("✓ ContextStream hooks already configured");
47
+ }
48
+ } catch (err) {
49
+ console.warn("⚠ Could not auto-configure hooks:", err.message);
50
+ console.log(" Run: contextstream-mcp init");
51
+ }
52
+ } else {
53
+ console.log("ℹ Claude settings not found. Run: contextstream-mcp init");
54
+ }
55
+
56
+ console.log(`✓ ContextStream MCP Server v${pkg.version} installed`);