@contextstream/mcp-server 0.4.82 → 1.0.1

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.
@@ -1,56 +0,0 @@
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`);
@@ -1,45 +0,0 @@
1
- process.env.CONTEXTSTREAM_API_KEY ||= "cs_test_dummy";
2
- process.env.CONTEXTSTREAM_API_URL ||= "https://api.contextstream.io";
3
- process.env.CONTEXTSTREAM_LOG_LEVEL = "quiet";
4
-
5
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
-
7
- const { loadConfig } = await import("../src/config.js");
8
- const { ContextStreamClient } = await import("../src/client.js");
9
- const { registerTools } = await import("../src/tools.js");
10
- const { SessionManager } = await import("../src/session-manager.js");
11
-
12
- const config = loadConfig();
13
- const client = new ContextStreamClient(config);
14
- const server = new McpServer({ name: "smoke", version: "0.0.0" });
15
- const sessionManager = new SessionManager(server, client);
16
- registerTools(server, client, sessionManager, { toolSurfaceProfile: config.toolSurfaceProfile });
17
-
18
- const registered = (server as any)._registeredTools;
19
- const names = registered ? Object.keys(registered).sort() : [];
20
- console.log(`TOOL_COUNT=${names.length}`);
21
- console.log(names.join("\n"));
22
-
23
- const mustHave = [
24
- "qa",
25
- "capture_plan",
26
- "session_capture",
27
- "session_capture_lesson",
28
- "session_remember",
29
- "memory_create_doc",
30
- "memory_update_doc",
31
- "memory_delete_doc",
32
- "memory_create_task",
33
- "memory_update_task",
34
- "memory_create_todo",
35
- "memory_complete_todo",
36
- "memory_create_event",
37
- ];
38
- const mustNotHave = ["ram", "mem", "chart", "async_job", "atlas_chart", "atlas_job"];
39
- const missing = mustHave.filter((n) => !names.includes(n));
40
- const forbidden = mustNotHave.filter((n) => names.includes(n));
41
- if (missing.length || forbidden.length) {
42
- console.error(`SMOKE_FAIL missing=[${missing.join(",")}] forbidden=[${forbidden.join(",")}]`);
43
- process.exit(1);
44
- }
45
- console.log("SMOKE_PASS");