@4da/mcp-server 3.2.0 → 4.0.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.
Files changed (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +160 -63
  3. package/dist/db.d.ts +27 -2
  4. package/dist/db.d.ts.map +1 -1
  5. package/dist/db.js +104 -1
  6. package/dist/db.js.map +1 -1
  7. package/dist/doctor.d.ts +15 -0
  8. package/dist/doctor.d.ts.map +1 -0
  9. package/dist/doctor.js +98 -0
  10. package/dist/doctor.js.map +1 -0
  11. package/dist/http-transport.d.ts +25 -0
  12. package/dist/http-transport.d.ts.map +1 -0
  13. package/dist/http-transport.js +126 -0
  14. package/dist/http-transport.js.map +1 -0
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +130 -10
  17. package/dist/index.js.map +1 -1
  18. package/dist/llm.d.ts +20 -2
  19. package/dist/llm.d.ts.map +1 -1
  20. package/dist/llm.js +77 -20
  21. package/dist/llm.js.map +1 -1
  22. package/dist/schema-registry.d.ts.map +1 -1
  23. package/dist/schema-registry.js +44 -0
  24. package/dist/schema-registry.js.map +1 -1
  25. package/dist/schemas/agent-memory.json +49 -0
  26. package/dist/schemas/agent-session-brief.json +25 -0
  27. package/dist/schemas/attention-report.json +13 -0
  28. package/dist/schemas/autophagy-status.json +13 -0
  29. package/dist/schemas/compound-advantage.json +14 -0
  30. package/dist/schemas/decision-enforcement.json +22 -0
  31. package/dist/schemas/decision-memory.json +54 -0
  32. package/dist/schemas/decision-windows.json +22 -0
  33. package/dist/schemas/delegation-score.json +18 -0
  34. package/dist/schemas/developer-dna.json +219 -0
  35. package/dist/schemas/export-context.json +17 -0
  36. package/dist/schemas/knowledge-gaps.json +14 -0
  37. package/dist/schemas/project-health.json +13 -0
  38. package/dist/schemas/reverse-mentions.json +13 -0
  39. package/dist/schemas/semantic-shifts.json +17 -0
  40. package/dist/schemas/signal-chains.json +19 -0
  41. package/dist/schemas/tech-radar.json +23 -0
  42. package/dist/setup.d.ts +17 -0
  43. package/dist/setup.d.ts.map +1 -0
  44. package/dist/setup.js +137 -0
  45. package/dist/setup.js.map +1 -0
  46. package/dist/tools/agent-memory.d.ts +94 -0
  47. package/dist/tools/agent-memory.d.ts.map +1 -0
  48. package/dist/tools/agent-memory.js +229 -0
  49. package/dist/tools/agent-memory.js.map +1 -0
  50. package/dist/tools/agent-session-brief.d.ts +44 -0
  51. package/dist/tools/agent-session-brief.d.ts.map +1 -0
  52. package/dist/tools/agent-session-brief.js +178 -0
  53. package/dist/tools/agent-session-brief.js.map +1 -0
  54. package/dist/tools/attention-report.d.ts +6 -5
  55. package/dist/tools/attention-report.d.ts.map +1 -1
  56. package/dist/tools/attention-report.js.map +1 -1
  57. package/dist/tools/autophagy-status.d.ts +25 -0
  58. package/dist/tools/autophagy-status.d.ts.map +1 -0
  59. package/dist/tools/autophagy-status.js +56 -0
  60. package/dist/tools/autophagy-status.js.map +1 -0
  61. package/dist/tools/compound-advantage.d.ts +27 -0
  62. package/dist/tools/compound-advantage.d.ts.map +1 -0
  63. package/dist/tools/compound-advantage.js +76 -0
  64. package/dist/tools/compound-advantage.js.map +1 -0
  65. package/dist/tools/decision-enforcement.d.ts +59 -0
  66. package/dist/tools/decision-enforcement.d.ts.map +1 -0
  67. package/dist/tools/decision-enforcement.js +184 -0
  68. package/dist/tools/decision-enforcement.js.map +1 -0
  69. package/dist/tools/decision-memory.d.ts +130 -0
  70. package/dist/tools/decision-memory.d.ts.map +1 -0
  71. package/dist/tools/decision-memory.js +265 -0
  72. package/dist/tools/decision-memory.js.map +1 -0
  73. package/dist/tools/decision-windows.d.ts +37 -0
  74. package/dist/tools/decision-windows.d.ts.map +1 -0
  75. package/dist/tools/decision-windows.js +67 -0
  76. package/dist/tools/decision-windows.js.map +1 -0
  77. package/dist/tools/delegation-score.d.ts +34 -0
  78. package/dist/tools/delegation-score.d.ts.map +1 -0
  79. package/dist/tools/delegation-score.js +250 -0
  80. package/dist/tools/delegation-score.js.map +1 -0
  81. package/dist/tools/developer-dna.d.ts +79 -0
  82. package/dist/tools/developer-dna.d.ts.map +1 -0
  83. package/dist/tools/developer-dna.js +377 -0
  84. package/dist/tools/developer-dna.js.map +1 -0
  85. package/dist/tools/export-context.d.ts +14 -6
  86. package/dist/tools/export-context.d.ts.map +1 -1
  87. package/dist/tools/export-context.js +13 -13
  88. package/dist/tools/export-context.js.map +1 -1
  89. package/dist/tools/index.d.ts +10 -0
  90. package/dist/tools/index.d.ts.map +1 -1
  91. package/dist/tools/index.js +14 -0
  92. package/dist/tools/index.js.map +1 -1
  93. package/dist/tools/knowledge-gaps.d.ts +11 -1
  94. package/dist/tools/knowledge-gaps.d.ts.map +1 -1
  95. package/dist/tools/knowledge-gaps.js.map +1 -1
  96. package/dist/tools/project-health.d.ts +6 -6
  97. package/dist/tools/project-health.d.ts.map +1 -1
  98. package/dist/tools/project-health.js +1 -1
  99. package/dist/tools/project-health.js.map +1 -1
  100. package/dist/tools/reverse-mentions.d.ts +8 -8
  101. package/dist/tools/reverse-mentions.d.ts.map +1 -1
  102. package/dist/tools/reverse-mentions.js.map +1 -1
  103. package/dist/tools/semantic-shifts.d.ts +17 -1
  104. package/dist/tools/semantic-shifts.d.ts.map +1 -1
  105. package/dist/tools/semantic-shifts.js.map +1 -1
  106. package/dist/tools/signal-chains.d.ts +14 -7
  107. package/dist/tools/signal-chains.d.ts.map +1 -1
  108. package/dist/tools/signal-chains.js.map +1 -1
  109. package/dist/tools/tech-radar.d.ts +38 -0
  110. package/dist/tools/tech-radar.d.ts.map +1 -0
  111. package/dist/tools/tech-radar.js +248 -0
  112. package/dist/tools/tech-radar.js.map +1 -0
  113. package/dist/types.d.ts +109 -0
  114. package/dist/types.d.ts.map +1 -1
  115. package/package.json +26 -14
package/dist/doctor.js ADDED
@@ -0,0 +1,98 @@
1
+ /**
2
+ * 4DA MCP Doctor — Installation health checker
3
+ *
4
+ * Validates that the MCP server can run correctly:
5
+ * 1. Node.js version is sufficient
6
+ * 2. Native bindings (better-sqlite3) load successfully
7
+ * 3. Database is found and readable
8
+ * 4. LLM providers are configured (optional)
9
+ *
10
+ * Usage:
11
+ * npx @4da/mcp-server --doctor
12
+ * 4da-mcp --doctor
13
+ */
14
+ import { existsSync } from "node:fs";
15
+ import { FourDADatabase } from "./db.js";
16
+ export function runDoctor() {
17
+ console.log("\n 4DA MCP Server — Doctor\n");
18
+ const checks = [];
19
+ // 1. Node.js version
20
+ const nodeVersion = process.version;
21
+ const major = parseInt(nodeVersion.slice(1).split(".")[0], 10);
22
+ checks.push({
23
+ name: "Node.js version",
24
+ status: major >= 18 ? "pass" : "fail",
25
+ detail: major >= 18
26
+ ? `${nodeVersion} (>= 18 required)`
27
+ : `${nodeVersion} — Node.js 18+ required`,
28
+ });
29
+ // 2. Native bindings — if we reached here, the dynamic import in db.ts succeeded
30
+ // (it calls process.exit(1) with a diagnostic message on failure)
31
+ checks.push({
32
+ name: "SQLite native bindings",
33
+ status: "pass",
34
+ detail: "better-sqlite3 loaded successfully",
35
+ });
36
+ // 3. Database discovery
37
+ const validation = FourDADatabase.validateDatabase();
38
+ checks.push({
39
+ name: "4DA database",
40
+ status: validation.valid ? "pass" : "warn",
41
+ detail: validation.valid
42
+ ? `Found with ${validation.tables?.length ?? 0} tables`
43
+ : (validation.error ?? "Database not found — run 4DA desktop app first"),
44
+ });
45
+ // 4. Environment variables
46
+ const envDb = process.env.FOURDA_DB_PATH;
47
+ if (envDb) {
48
+ const envExists = existsSync(envDb);
49
+ checks.push({
50
+ name: "FOURDA_DB_PATH",
51
+ status: envExists ? "pass" : "fail",
52
+ detail: envExists ? envDb : `Set to ${envDb} but file does not exist`,
53
+ });
54
+ }
55
+ // 5. LLM providers (optional)
56
+ const llmProvider = process.env.LLM_PROVIDER;
57
+ const hasAnthropic = !!process.env.ANTHROPIC_API_KEY;
58
+ const hasOpenAI = !!process.env.OPENAI_API_KEY;
59
+ if (llmProvider || hasAnthropic || hasOpenAI) {
60
+ checks.push({
61
+ name: "LLM provider",
62
+ status: "pass",
63
+ detail: llmProvider
64
+ ? `${llmProvider} configured`
65
+ : hasAnthropic ? "Anthropic API key set" : "OpenAI API key set",
66
+ });
67
+ }
68
+ else {
69
+ checks.push({
70
+ name: "LLM provider",
71
+ status: "warn",
72
+ detail: "No API keys set — AI synthesis tools will be unavailable",
73
+ });
74
+ }
75
+ // Print results
76
+ const icons = { pass: "\u2713", warn: "!", fail: "\u2717" };
77
+ const colors = { pass: "\x1b[32m", warn: "\x1b[33m", fail: "\x1b[31m" };
78
+ const reset = "\x1b[0m";
79
+ for (const check of checks) {
80
+ const icon = icons[check.status];
81
+ const color = colors[check.status];
82
+ console.log(` ${color}${icon}${reset} ${check.name}: ${check.detail}`);
83
+ }
84
+ const failures = checks.filter((c) => c.status === "fail");
85
+ const warnings = checks.filter((c) => c.status === "warn");
86
+ console.log("");
87
+ if (failures.length > 0) {
88
+ console.log(` ${failures.length} issue(s) need attention.\n`);
89
+ process.exit(1);
90
+ }
91
+ else if (warnings.length > 0) {
92
+ console.log(` All clear with ${warnings.length} optional warning(s).\n`);
93
+ }
94
+ else {
95
+ console.log(" All checks passed.\n");
96
+ }
97
+ }
98
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQzC,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,qBAAqB;IACrB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QACrC,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,CAAC,CAAC,GAAG,WAAW,mBAAmB;YACnC,CAAC,CAAC,GAAG,WAAW,yBAAyB;KAC5C,CAAC,CAAC;IAEH,iFAAiF;IACjF,kEAAkE;IAClE,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,wBAAwB;QAC9B,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,oCAAoC;KAC7C,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,UAAU,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC1C,MAAM,EAAE,UAAU,CAAC,KAAK;YACtB,CAAC,CAAC,cAAc,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS;YACvD,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,gDAAgD,CAAC;KAC3E,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACnC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,0BAA0B;SACtE,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE/C,IAAI,WAAW,IAAI,YAAY,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,WAAW;gBACjB,CAAC,CAAC,GAAG,WAAW,aAAa;gBAC7B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB;SAClE,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,0DAA0D;SACnE,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,SAAS,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,6BAA6B,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 4DA MCP Server — Streamable HTTP Transport
3
+ *
4
+ * Implements the MCP Streamable HTTP transport (spec 2025-03-26) using
5
+ * Node's built-in http module. No express or other framework needed.
6
+ *
7
+ * Security:
8
+ * - Binds to 127.0.0.1 only (localhost)
9
+ * - DNS rebinding protection via Origin header check
10
+ * - Stateless mode (no session tracking)
11
+ */
12
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
13
+ export interface HttpServerOptions {
14
+ port: number;
15
+ host: string;
16
+ }
17
+ /**
18
+ * Start a Streamable HTTP server for the MCP protocol.
19
+ *
20
+ * Uses stateless mode (sessionIdGenerator: undefined) — each request
21
+ * gets its own transport instance. This is the simplest approach and
22
+ * is compatible with serverless environments.
23
+ */
24
+ export declare function startHttpServer(server: Server, options?: HttpServerOptions): Promise<void>;
25
+ //# sourceMappingURL=http-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAA8D,GACtE,OAAO,CAAC,IAAI,CAAC,CAyFf"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * 4DA MCP Server — Streamable HTTP Transport
3
+ *
4
+ * Implements the MCP Streamable HTTP transport (spec 2025-03-26) using
5
+ * Node's built-in http module. No express or other framework needed.
6
+ *
7
+ * Security:
8
+ * - Binds to 127.0.0.1 only (localhost)
9
+ * - DNS rebinding protection via Origin header check
10
+ * - Stateless mode (no session tracking)
11
+ */
12
+ import { createServer } from "node:http";
13
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
14
+ const DEFAULT_PORT = 4840;
15
+ const DEFAULT_HOST = "127.0.0.1";
16
+ const SERVER_VERSION = "1.0.0";
17
+ /**
18
+ * Parse JSON body from an incoming HTTP request.
19
+ */
20
+ function parseBody(req) {
21
+ return new Promise((resolve, reject) => {
22
+ const chunks = [];
23
+ req.on("data", (chunk) => chunks.push(chunk));
24
+ req.on("end", () => {
25
+ try {
26
+ const raw = Buffer.concat(chunks).toString("utf-8");
27
+ resolve(raw ? JSON.parse(raw) : undefined);
28
+ }
29
+ catch (e) {
30
+ reject(e);
31
+ }
32
+ });
33
+ req.on("error", reject);
34
+ });
35
+ }
36
+ /**
37
+ * Start a Streamable HTTP server for the MCP protocol.
38
+ *
39
+ * Uses stateless mode (sessionIdGenerator: undefined) — each request
40
+ * gets its own transport instance. This is the simplest approach and
41
+ * is compatible with serverless environments.
42
+ */
43
+ export async function startHttpServer(server, options = { port: DEFAULT_PORT, host: DEFAULT_HOST }) {
44
+ const { port, host } = options;
45
+ const httpServer = createServer(async (req, res) => {
46
+ // DNS rebinding protection: reject cross-origin requests from non-local origins
47
+ const origin = req.headers.origin;
48
+ if (origin) {
49
+ try {
50
+ const url = new URL(origin);
51
+ if (url.hostname !== "localhost" && url.hostname !== "127.0.0.1") {
52
+ res.writeHead(403, { "Content-Type": "application/json" });
53
+ res.end(JSON.stringify({ error: "Forbidden: DNS rebinding protection" }));
54
+ return;
55
+ }
56
+ }
57
+ catch {
58
+ res.writeHead(403, { "Content-Type": "application/json" });
59
+ res.end(JSON.stringify({ error: "Forbidden: invalid Origin header" }));
60
+ return;
61
+ }
62
+ }
63
+ // Route requests
64
+ const pathname = new URL(req.url || "/", `http://${host}:${port}`).pathname;
65
+ // Health check endpoint
66
+ if (pathname === "/" && req.method === "GET") {
67
+ res.writeHead(200, { "Content-Type": "application/json" });
68
+ res.end(JSON.stringify({
69
+ name: "4da-mcp",
70
+ version: SERVER_VERSION,
71
+ transport: "streamable-http",
72
+ status: "ok",
73
+ }));
74
+ return;
75
+ }
76
+ // Only handle /mcp endpoint
77
+ if (pathname !== "/mcp") {
78
+ res.writeHead(404, { "Content-Type": "application/json" });
79
+ res.end(JSON.stringify({ error: "Not Found" }));
80
+ return;
81
+ }
82
+ // Parse JSON body for POST requests
83
+ let body = undefined;
84
+ if (req.method === "POST") {
85
+ try {
86
+ body = await parseBody(req);
87
+ }
88
+ catch {
89
+ res.writeHead(400, { "Content-Type": "application/json" });
90
+ res.end(JSON.stringify({ error: "Invalid JSON body" }));
91
+ return;
92
+ }
93
+ }
94
+ // Stateless mode: new transport per request
95
+ const transport = new StreamableHTTPServerTransport({
96
+ sessionIdGenerator: undefined,
97
+ });
98
+ res.on("close", () => {
99
+ transport.close();
100
+ });
101
+ try {
102
+ await server.connect(transport);
103
+ await transport.handleRequest(req, res, body);
104
+ }
105
+ catch (err) {
106
+ console.error("MCP transport error:", err);
107
+ if (!res.headersSent) {
108
+ res.writeHead(500, { "Content-Type": "application/json" });
109
+ res.end(JSON.stringify({ error: "Internal server error" }));
110
+ }
111
+ }
112
+ });
113
+ httpServer.listen(port, host, () => {
114
+ console.error(`4DA MCP Server v${SERVER_VERSION} (Streamable HTTP) listening on http://${host}:${port}/mcp`);
115
+ console.error(`Health check: http://${host}:${port}/`);
116
+ });
117
+ // Graceful shutdown
118
+ const shutdown = () => {
119
+ console.error("Shutting down HTTP server...");
120
+ httpServer.close();
121
+ process.exit(0);
122
+ };
123
+ process.on("SIGINT", shutdown);
124
+ process.on("SIGTERM", shutdown);
125
+ }
126
+ //# sourceMappingURL=http-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  * Do NOT expose this server over a network without adding proper auth.
13
13
  */
14
14
  /**
15
- * 4DA MCP Server v3.0 - AI Superpower Edition
15
+ * 4DA MCP Server v4.0.0 - Intelligence Platform
16
16
  *
17
17
  * Exposes 4DA's personalized content filtering to AI agents via MCP.
18
18
  * Now with local LLM support via Ollama for fully offline AI synthesis.
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@
12
12
  * Do NOT expose this server over a network without adding proper auth.
13
13
  */
14
14
  /**
15
- * 4DA MCP Server v3.0 - AI Superpower Edition
15
+ * 4DA MCP Server v4.0.0 - Intelligence Platform
16
16
  *
17
17
  * Exposes 4DA's personalized content filtering to AI agents via MCP.
18
18
  * Now with local LLM support via Ollama for fully offline AI synthesis.
@@ -40,21 +40,24 @@ import { readFileSync, existsSync } from "node:fs";
40
40
  import { join, dirname } from "node:path";
41
41
  import { fileURLToPath } from "node:url";
42
42
  import { homedir } from "node:os";
43
+ import { startHttpServer } from "./http-transport.js";
44
+ import { runSetup } from "./setup.js";
45
+ import { runDoctor } from "./doctor.js";
43
46
  // Schema registry for slim tool listing
44
47
  import { getSlimToolList, getSchemaResources, hasToolSchema, getSchemaFilename } from "./schema-registry.js";
45
48
  const __filename = fileURLToPath(import.meta.url);
46
49
  const __dirname = dirname(__filename);
47
- import { createDatabase } from "./db.js";
50
+ import { createDatabase, FourDADatabase } from "./db.js";
48
51
  // Core Tools
49
52
  import { executeGetRelevantContent, executeGetContext, executeExplainRelevance, executeRecordFeedback, } from "./tools/index.js";
50
53
  // Superpower Tools
51
- import { executeScoreAutopsy, executeTrendAnalysis, executeDailyBriefing, executeContextAnalysis, executeSourceHealth, executeTopicConnections, executeConfigValidator, executeLLMStatus, executeGetActionableSignals, executeExportContextPacket, executeKnowledgeGaps, executeSignalChains, executeSemanticShifts, executeReverseMentions, executeAttentionReport, executeProjectHealth, } from "./tools/index.js";
54
+ import { executeScoreAutopsy, executeTrendAnalysis, executeDailyBriefing, executeContextAnalysis, executeSourceHealth, executeTopicConnections, executeConfigValidator, executeLLMStatus, executeGetActionableSignals, executeExportContextPacket, executeKnowledgeGaps, executeSignalChains, executeSemanticShifts, executeReverseMentions, executeAttentionReport, executeProjectHealth, executeDecisionMemory, executeTechRadar, executeCheckDecisionAlignment, executeAgentMemory, executeAgentSessionBrief, executeDelegationScore, executeDeveloperDna, executeAutophagyStatus, executeDecisionWindows, executeCompoundAdvantage, } from "./tools/index.js";
52
55
  // =============================================================================
53
56
  // Server Setup
54
57
  // =============================================================================
55
58
  const server = new Server({
56
59
  name: "4da-server",
57
- version: "3.2.0", // Dynamic Context Discovery Edition
60
+ version: "4.0.0",
58
61
  }, {
59
62
  capabilities: {
60
63
  tools: {},
@@ -373,6 +376,85 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
373
376
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
374
377
  };
375
378
  }
379
+ // =========================================================================
380
+ // Decision Intelligence Tools
381
+ // =========================================================================
382
+ case "decision_memory": {
383
+ const params = (args || {});
384
+ const result = executeDecisionMemory(database, params);
385
+ return {
386
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
387
+ };
388
+ }
389
+ case "tech_radar": {
390
+ const params = (args || {});
391
+ const result = executeTechRadar(database, params);
392
+ return {
393
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
394
+ };
395
+ }
396
+ case "check_decision_alignment": {
397
+ const params = (args || {});
398
+ const result = executeCheckDecisionAlignment(database, params);
399
+ return {
400
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
401
+ };
402
+ }
403
+ // =========================================================================
404
+ // Agent Autonomy Tools
405
+ // =========================================================================
406
+ case "agent_memory": {
407
+ const params = (args || {});
408
+ const result = executeAgentMemory(database, params);
409
+ return {
410
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
411
+ };
412
+ }
413
+ case "agent_session_brief": {
414
+ const params = (args || {});
415
+ const result = executeAgentSessionBrief(database, params);
416
+ return {
417
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
418
+ };
419
+ }
420
+ case "delegation_score": {
421
+ const params = (args || {});
422
+ const result = executeDelegationScore(database, params);
423
+ return {
424
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
425
+ };
426
+ }
427
+ case "developer_dna": {
428
+ const params = (args || {});
429
+ const result = executeDeveloperDna(database, params);
430
+ return {
431
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
432
+ };
433
+ }
434
+ // =========================================================================
435
+ // Intelligence Metabolism Tools
436
+ // =========================================================================
437
+ case "autophagy_status": {
438
+ const params = (args || {});
439
+ const result = executeAutophagyStatus(database, params);
440
+ return {
441
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
442
+ };
443
+ }
444
+ case "decision_windows": {
445
+ const params = (args || {});
446
+ const result = executeDecisionWindows(database, params);
447
+ return {
448
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
449
+ };
450
+ }
451
+ case "compound_advantage": {
452
+ const params = (args || {});
453
+ const result = executeCompoundAdvantage(database, params);
454
+ return {
455
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
456
+ };
457
+ }
376
458
  default:
377
459
  throw new Error(`Unknown tool: ${name}`);
378
460
  }
@@ -395,25 +477,63 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
395
477
  // =============================================================================
396
478
  /**
397
479
  * Start the MCP server
480
+ *
481
+ * Supports three modes:
482
+ * (default) stdio transport — classic MCP, works with all hosts
483
+ * --http Streamable HTTP transport (spec 2025-03-26)
484
+ * --setup Configure editors for 4DA MCP
398
485
  */
399
486
  async function main() {
487
+ const args = process.argv.slice(2);
488
+ // Setup command: configure editors
489
+ if (args.includes("--setup") || args.includes("setup")) {
490
+ runSetup();
491
+ return;
492
+ }
493
+ // Doctor command: validate installation health
494
+ if (args.includes("--doctor") || args.includes("doctor")) {
495
+ runDoctor();
496
+ return;
497
+ }
498
+ // HTTP transport mode
499
+ if (args.includes("--http")) {
500
+ const portIndex = args.indexOf("--port");
501
+ const port = portIndex !== -1 ? parseInt(args[portIndex + 1], 10) : 4840;
502
+ const host = args.includes("--host") ? args[args.indexOf("--host") + 1] : "127.0.0.1";
503
+ await startHttpServer(server, { port, host });
504
+ return;
505
+ }
506
+ // -------------------------------------------------------------------------
507
+ // Pre-flight: validate the database before accepting tool calls
508
+ // -------------------------------------------------------------------------
509
+ const dbPath = process.env.FOURDA_DB_PATH || undefined;
510
+ const validation = FourDADatabase.validateDatabase(dbPath);
511
+ if (validation.valid) {
512
+ console.error(`[4DA] Database validated — ${validation.tables?.length ?? 0} tables found`);
513
+ }
514
+ else {
515
+ // Log warning but do not abort — tools will surface errors naturally
516
+ console.error(`[4DA] Database validation warning: ${validation.error}`);
517
+ }
518
+ // Default: stdio transport (existing behavior)
400
519
  const transport = new StdioServerTransport();
401
520
  await server.connect(transport);
402
521
  // Handle graceful shutdown
403
522
  process.on("SIGINT", () => {
404
- if (db) {
523
+ console.error("[4DA] Received SIGINT — shutting down gracefully");
524
+ if (db)
405
525
  db.close();
406
- }
407
526
  process.exit(0);
408
527
  });
409
528
  process.on("SIGTERM", () => {
410
- if (db) {
529
+ console.error("[4DA] Received SIGTERM — shutting down gracefully");
530
+ if (db)
411
531
  db.close();
412
- }
413
532
  process.exit(0);
414
533
  });
415
- // Log startup (to stderr so it doesn't interfere with MCP protocol)
416
- console.error("4DA MCP Server v3.3 (Intelligence Platform) started - 20 tools, compact output, lazy schemas");
534
+ const toolCount = getSlimToolList().length;
535
+ console.error(`4DA MCP Server v4.0.0 (Intelligence Platform) started — ${toolCount} tools, stdio transport`);
536
+ console.error(" Use --http for Streamable HTTP, --setup to configure editors, --doctor to check health");
417
537
  }
418
538
  main().catch((error) => {
419
539
  console.error("Fatal error:", error);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/llm.d.ts CHANGED
@@ -45,7 +45,10 @@ export declare const DEFAULT_OLLAMA_MODELS: {
45
45
  */
46
46
  export declare const TOOL_COMPLEXITY: Record<string, TaskComplexity>;
47
47
  /**
48
- * Get LLM configuration from settings.json file
48
+ * Get LLM configuration from settings.json file.
49
+ *
50
+ * Uses a cached approach: the file is only re-read if its mtime has changed,
51
+ * avoiding unnecessary filesystem reads on every tool invocation.
49
52
  */
50
53
  export declare function getLLMConfig(_db?: {
51
54
  prepare: (sql: string) => {
@@ -58,8 +61,23 @@ export declare function getLLMConfig(_db?: {
58
61
  export declare function canSynthesize(config: LLMConfig): boolean;
59
62
  /**
60
63
  * Synthesize insights using LLM
64
+ *
65
+ * Accepts an optional AbortSignal to allow timeout/cancellation of the
66
+ * underlying fetch calls.
67
+ */
68
+ export declare function synthesize(config: LLMConfig, request: SynthesisRequest, signal?: AbortSignal): Promise<SynthesisResult>;
69
+ /**
70
+ * Synthesize with a timeout wrapper.
71
+ *
72
+ * Wraps the LLM API call with an AbortController + configurable timeout.
73
+ * On timeout, throws a descriptive error so callers can fall back to
74
+ * data-only results.
75
+ *
76
+ * @param config - LLM provider configuration
77
+ * @param request - Synthesis request (system prompt, user prompt, etc.)
78
+ * @param timeoutMs - Timeout in milliseconds (default: 30000)
61
79
  */
62
- export declare function synthesize(config: LLMConfig, request: SynthesisRequest): Promise<SynthesisResult>;
80
+ export declare function synthesizeWithTimeout(config: LLMConfig, request: SynthesisRequest, timeoutMs?: number): Promise<SynthesisResult>;
63
81
  /**
64
82
  * Prompts are optimized for:
65
83
  * 1. Clear structure (local models need explicit formatting)
package/dist/llm.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;CASjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAM1D,CAAC;AA4CF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,CAAC,EAAE;IAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;KAAE,CAAA;CAAE,GAC3E,SAAS,CAiCX;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAaxD;AA0BD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CA0B1B;AA4ID;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;;oBAEuB,cAAc;;4BAWlB,OAAO,WAAW,OAAO,KAAG,MAAM;;IAaxD;;;OAGG;;oBAEsB,cAAc;;4BAYjB,OAAO,WAAW,OAAO,KAAG,MAAM;;IAUxD;;;OAGG;;oBAEsB,cAAc;;4BAYjB,OAAO,WAAW,OAAO,KAAG,MAAM;;IAUxD;;;OAGG;;oBAEuB,cAAc;;4BAWlB,OAAO,KAAG,MAAM;;IAOtC;;;OAGG;;oBAEsB,cAAc;;4BAYjB,OAAO,WAAW,OAAO,KAAG,MAAM;;CASzD,CAAC;AAMF;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,MAAiC,GACzC,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBnE;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAgB9B,CAAC"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;CASjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAM1D,CAAC;AAwDF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,CAAC,EAAE;IAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;KAAE,CAAA;CAAE,GAC3E,SAAS,CAmDX;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAaxD;AA0BD;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,gBAAgB,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CA0B1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,gBAAgB,EACzB,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC,eAAe,CAAC,CAc1B;AAkJD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;;oBAEuB,cAAc;;4BAWlB,OAAO,WAAW,OAAO,KAAG,MAAM;;IAaxD;;;OAGG;;oBAEsB,cAAc;;4BAYjB,OAAO,WAAW,OAAO,KAAG,MAAM;;IAUxD;;;OAGG;;oBAEsB,cAAc;;4BAYjB,OAAO,WAAW,OAAO,KAAG,MAAM;;IAUxD;;;OAGG;;oBAEuB,cAAc;;4BAWlB,OAAO,KAAG,MAAM;;IAOtC;;;OAGG;;oBAEsB,cAAc;;4BAYjB,OAAO,WAAW,OAAO,KAAG,MAAM;;CASzD,CAAC;AAMF;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,MAAiC,GACzC,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBnE;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;CAgB9B,CAAC"}