@causari/mcp-server 0.1.2 → 0.1.4

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/CHANGELOG.md CHANGED
@@ -7,6 +7,40 @@ the package uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.1.4] — 2026-06-28 — Fix: `npx` install was broken (bundle the CKG)
11
+
12
+ ### Fixed
13
+
14
+ - **`npx @causari/mcp-server` failed to install** on 0.1.2 and 0.1.3. The package
15
+ declared the private workspace package `@causari/ckg` as a runtime dependency
16
+ (`workspace:*`) — which npm cannot resolve (`EUNSUPPORTEDPROTOCOL`) — and the
17
+ `tsc` build left bare `@causari/ckg` imports in `dist`. The build now bundles
18
+ `@causari/ckg` into the artifact via `tsup` (config was already present but
19
+ unwired), and `@causari/ckg` moves to `devDependencies`. Verified by a cold
20
+ install from the packed tarball: all 5 tools list and `--pack worldcup-2026`
21
+ loads. No code/API changes — 0.1.4 is 0.1.3 that actually installs.
22
+
23
+ ---
24
+
25
+ ## [0.1.3] — 2026-06-26 — Denser graph + opt-in data packs
26
+
27
+ ### Added
28
+
29
+ - **Opt-in data packs** — `npx @causari/mcp-server --pack <id>` (or
30
+ `CAUSARI_PACK=<id>`) merges a themed pack on top of the core CKG, queryable
31
+ through the same five tools. The default surface stays computing-only; packs
32
+ are explicit. First pack: `worldcup-2026` (the 2026 FIFA World Cup as a causal
33
+ map). A bad id fails loudly and degrades to the core graph. (See ADR-0018.)
34
+
35
+ ### Changed
36
+
37
+ - **Denser core graph** — the hottest developer verticals (Kubernetes, Docker,
38
+ React, Rust, PostgreSQL, OAuth, Python, Git, Go) gained cited causal links:
39
+ **470 → 497** confidence-scored links across the same 245 events, so first
40
+ multi-hop queries return richer chains.
41
+
42
+ ---
43
+
10
44
  ## [0.1.2] — 2026-06-26 — Hardening pass
11
45
 
12
46
  Reliability + correctness pass ahead of npm publish. No breaking changes to the
package/NOTICE CHANGED
@@ -19,7 +19,7 @@ See LICENSE for the full text.
19
19
  ────────────────────────────────────────────────────────────────────────
20
20
 
21
21
  This server bundles and serves a curated Causal Knowledge Graph (the
22
- "Dataset") — 245 events, 470 causal links, and 8 insight patterns across
22
+ "Dataset") — 245 events, 497 causal links, and 8 insight patterns across
23
23
  technology history. The Dataset is sourced from the @causari/ckg seed and
24
24
  mirrored in the public causari-data repository.
25
25
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @causari/mcp-server
2
2
 
3
- > **Wikipedia for AI agents.** A Model Context Protocol server that gives Claude Code, Cursor, Windsurf — or any MCP-compatible AI agent — structured causal knowledge: **245 events, 470 causal links** with confidence scores, and 8 insight patterns across 9 verticals of technology history.
3
+ > **Wikipedia for AI agents.** A Model Context Protocol server that gives Claude Code, Cursor, Windsurf — or any MCP-compatible AI agent — structured causal knowledge: **245 events, 497 causal links** with confidence scores, and 8 insight patterns across 9 verticals of technology history.
4
4
 
5
5
  <!-- TODO: Replace with 10s hero GIF showing Claude Code calling causal_chain("kubernetes") -->
6
6
  <!-- ![Causari MCP in action](assets/hero.gif) -->
@@ -249,7 +249,7 @@ This is honest reporting, not marketing copy.
249
249
  **Current data depth (as of 2026-06):**
250
250
 
251
251
  - **245 events** across 9 verticals: AI history, computing, web ecosystem, cloud/devops, databases, AI/ML tooling, security, mobile, and civilizational foundations
252
- - **470 causal links** with evidence text + confidence scores calibrated per-link
252
+ - **497 causal links** with evidence text + confidence scores calibrated per-link
253
253
  - **8 insight patterns** (Abstraction Layer Migration, Standardization Cycle, Open vs Proprietary, Information Democratization Cycle, and more)
254
254
 
255
255
  **Strong coverage:** Queries like `causal_chain("docker")`, `causal_chain("reactjs")`, `causal_chain("jwt")`, or `historical_resonance("microservices vs monolith")` return dense causal chains with evidence. Dev-term hit rate validated at 10/10.
@@ -313,7 +313,7 @@ pnpm smoke # build, then the CKG query smoke test
313
313
  │ - types │ ← schema (Event, CausalLink, Insight)
314
314
  │ - store │ ← in-memory + adjacency indexes
315
315
  │ - query │ ← BFS, search, resonance, scenarios
316
- │ - seed (9 verticals) │ ← 245 events, 470 links, 8 patterns
316
+ │ - seed (9 verticals) │ ← 245 events, 497 links, 8 patterns
317
317
  └──────────────────────────────┘
318
318
  ```
319
319
 
@@ -1,8 +1,11 @@
1
1
  import {
2
2
  ALL_TOOLS,
3
3
  CKGStore,
4
- loadSeed
5
- } from "./chunk-7XWPOH6R.js";
4
+ ValidationError,
5
+ loadPack,
6
+ loadSeed,
7
+ mergeSeedData
8
+ } from "./chunk-KBU67SEH.js";
6
9
 
7
10
  // src/server.ts
8
11
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
@@ -10,13 +13,18 @@ import {
10
13
  CallToolRequestSchema,
11
14
  ListToolsRequestSchema
12
15
  } from "@modelcontextprotocol/sdk/types.js";
13
- var SERVER_VERSION = "0.1.1";
16
+
17
+ // src/version.ts
18
+ var VERSION = "0.1.3";
19
+ var SERVER_NAME = "causari-mcp-server";
20
+
21
+ // src/server.ts
14
22
  function createCausariServer(opts = {}) {
15
- const store = opts.store ?? new CKGStore(loadSeed());
23
+ const store = opts.store ?? new CKGStore(opts.pack ? mergeSeedData(loadSeed(), loadPack(opts.pack)) : loadSeed());
16
24
  const server = new Server(
17
25
  {
18
- name: "causari-mcp-server",
19
- version: SERVER_VERSION
26
+ name: SERVER_NAME,
27
+ version: VERSION
20
28
  },
21
29
  {
22
30
  capabilities: {
@@ -47,6 +55,12 @@ function createCausariServer(opts = {}) {
47
55
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
48
56
  };
49
57
  } catch (err) {
58
+ if (err instanceof ValidationError) {
59
+ return {
60
+ content: [{ type: "text", text: `Invalid arguments: ${err.message}` }],
61
+ isError: true
62
+ };
63
+ }
50
64
  const message = err instanceof Error ? err.message : String(err);
51
65
  return {
52
66
  content: [{ type: "text", text: `Tool error: ${message}` }],