@mcsherrylabs/evolver-mcp 0.8.5 → 0.8.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.
@@ -0,0 +1,28 @@
1
+ # evolver-mcp follower node image: bakes the devnet-follower config INTO the image so the
2
+ # published `npx … install` never depends on a checkout path. The base image is the pinned
3
+ # evolver-node; we add only the three static config files under /config and keep the base's
4
+ # runtime user/entrypoint (which the compose `entrypoint:` then overrides with node-join.sh).
5
+ #
6
+ # WHY NOT A BIND MOUNT (./config:/config:ro): a bind mount's host path is resolved by the Docker
7
+ # daemon, which runs on the HOST. When `install` runs inside a rig dev container, the daemon's
8
+ # idea of `/workspace` is a different directory than the container's, so `./config` is empty and
9
+ # the node boots with `/config/node-join.sh: No such file`. Baking removes the path entirely.
10
+
11
+ ARG EVOLVER_REGISTRY=nexus.mcsherrylabs.com
12
+ ARG EVOLVER_VERSION=v0.24.5
13
+ FROM ${EVOLVER_REGISTRY}/evolver-node:${EVOLVER_VERSION}
14
+
15
+ # The static, chain-identity configs. node.conf references these by absolute path and
16
+ # node-join.sh execs `-Dconfig.file=/config/node.conf`, so /config is their fixed home.
17
+ # genesis.devnet.conf is byte-identical to the devnet genesis — the chain's identity, never edit.
18
+ #
19
+ # ⚠️ `/config` does NOT exist in the base image, and the image ends with `USER evolver`, so a bare
20
+ # `COPY … /config/x` lets buildkit create `/config` at the build umask (drw-r--r--, root-owned)
21
+ # that `evolver` (uid != root) then cannot traverse. Also, a `RUN` here would EXECUTE as evolver and
22
+ # cannot `mkdir` at `/`. Do the dir creation as root, then drop back to the image's runtime user.
23
+ USER root
24
+ RUN mkdir -p /config && chmod 755 /config
25
+ COPY --chmod=644 config/genesis.devnet.conf /config/genesis.devnet.conf
26
+ COPY --chmod=644 config/node.conf /config/node.conf
27
+ COPY --chmod=644 config/node-join.sh /config/node-join.sh
28
+ USER evolver
@@ -29,7 +29,16 @@ name: evolver-mcp
29
29
  services:
30
30
  # ── the LOCAL devnet follower ──────────────────────────────────────────────
31
31
  node:
32
- image: ${EVOLVER_REGISTRY:-nexus.mcsherrylabs.com}/evolver-node:${EVOLVER_VERSION:-v0.24.5}
32
+ # Build FROM the pinned evolver-node and bake /config in (see deploy/Dockerfile). No bind
33
+ # mount: the daemon resolves host paths, and `install` may run in a container whose /workspace
34
+ # differs from the host's. `--build` is passed by the install so a fresh machine builds it.
35
+ build:
36
+ context: .
37
+ dockerfile: Dockerfile
38
+ args:
39
+ EVOLVER_REGISTRY: ${EVOLVER_REGISTRY:-nexus.mcsherrylabs.com}
40
+ EVOLVER_VERSION: ${EVOLVER_VERSION:-v0.24.5}
41
+ image: evolver-mcp-node:latest
33
42
  restart: unless-stopped
34
43
  environment:
35
44
  # The node claims its OWN identity (node keys never leave this container) and persists the
@@ -56,8 +65,8 @@ services:
56
65
  EVOLVER_NODE_PORT: "7100"
57
66
  volumes:
58
67
  - node-data:/data
59
- - ./config:/config:ro
60
- # INVOKED VIA /bin/sh (a bind-mounted script's exec bit depends on the checkout's file mode).
68
+ # INVOKED VIA /bin/sh (a baked script's exec bit is irrelevant; node-join.sh is COPYed into
69
+ # /config by the Dockerfile, not bind-mounted, so no checkout file-mode concerns).
61
70
  entrypoint: ["/bin/sh", "/config/node-join.sh"]
62
71
  healthcheck:
63
72
  test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8440/api/explorer/blocks?limit=1 >/dev/null || exit 1"]
package/dist/install.d.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /** Split `--mcp-home <dir>` / `--mcp-home=<dir>` out of argv, returning the value (or undefined)
2
+ * and the argv with the flag + its value removed (so the forwarded bootstrap never sees it). Also
3
+ * drops the `install` subcommand token and forces `--target local`, yielding bootstrap-shaped argv
4
+ * (`[node, script, --target, local, …]`) the forwarded runBootstrap parses from index 2. */
5
+ export declare function parseMcpHome(argv: string[]): {
6
+ mcpHome: string | undefined;
7
+ rest: string[];
8
+ };
1
9
  interface InstallEnv {
2
10
  /** Override the shipped compose file path (default: `../deploy/docker-compose.yml` beside dist). */
3
11
  EVOLVER_INSTALL_COMPOSE?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAwBA,UAAU,UAAU;IAClB,oGAAoG;IACpG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kDAAkD;IAClD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kGAAkG;IAClG,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,6FAA6F;AAC7F,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAClC,OAAO,CAAC,aAAa,CAAC,CAkDxB"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAoCA;;;6FAG6F;AAC7F,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BjD;AASD,UAAU,UAAU;IAClB,oGAAoG;IACpG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kDAAkD;IAClD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kGAAkG;IAClG,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,6FAA6F;AAC7F,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAClC,OAAO,CAAC,aAAa,CAAC,CAmExB"}
package/dist/install.js CHANGED
@@ -9,6 +9,13 @@
9
9
  // Reachability (B1): the compose publishes the node's 8440/8450 loopback-only, so THIS host-side
10
10
  // process reaches `http://127.0.0.1:8440` / `:8450`. The bootstrap then derives
11
11
  // `EVOLVER_CONTENT_URL` from the node's content port (see bootstrap's local-target derivation).
12
+ //
13
+ // PORTABILITY: the node's config is BAKED into its image (deploy/Dockerfile), not bind-mounted.
14
+ // `docker compose` resolves a bind mount's host path in the DAEMON'S filesystem, which runs on the
15
+ // host; `install` may run inside a rig dev container whose `/workspace` is a different directory
16
+ // than the host's. `--build` removes the path entirely, so `install` works from the host or any
17
+ // container. The MCP itself is a stdio server launched by Claude wherever Claude runs; it reaches
18
+ // the node on the shared loopback, so `claude mcp add` works on either side identically.
12
19
  import { spawnSync } from "node:child_process";
13
20
  import { existsSync } from "node:fs";
14
21
  import { dirname, join, resolve } from "node:path";
@@ -18,6 +25,49 @@ import { runBootstrap } from "./bootstrap.js";
18
25
  const LOCAL_NODE_HOST = "127.0.0.1";
19
26
  const LOCAL_CHAIN_URL = `http://${LOCAL_NODE_HOST}:8440`;
20
27
  const HEALTH_PATH = "/api/explorer/blocks?limit=1";
28
+ /** `--mcp-home <dir>`: the `$HOME` of the environment WHERE CLAUDE RUNS, when that differs from the
29
+ * machine where `install` runs (Claude in a container with a bind-mounted `$HOME`). Unset means
30
+ * "same machine, same `$HOME`" — the default, and the correct non-container case. */
31
+ const MCP_HOME_FLAG = "--mcp-home";
32
+ /** Split `--mcp-home <dir>` / `--mcp-home=<dir>` out of argv, returning the value (or undefined)
33
+ * and the argv with the flag + its value removed (so the forwarded bootstrap never sees it). Also
34
+ * drops the `install` subcommand token and forces `--target local`, yielding bootstrap-shaped argv
35
+ * (`[node, script, --target, local, …]`) the forwarded runBootstrap parses from index 2. */
36
+ export function parseMcpHome(argv) {
37
+ let mcpHome;
38
+ const rest = [];
39
+ for (let i = 0; i < argv.length; i++) {
40
+ const a = argv[i];
41
+ if (a === MCP_HOME_FLAG) {
42
+ mcpHome = argv[++i];
43
+ if (mcpHome === undefined)
44
+ return { mcpHome: undefined, rest: argv }; // leave to install's error path
45
+ continue;
46
+ }
47
+ if (a.startsWith(`${MCP_HOME_FLAG}=`)) {
48
+ mcpHome = a.slice(MCP_HOME_FLAG.length + 1);
49
+ continue;
50
+ }
51
+ if (a === "install")
52
+ continue; // the subcommand token, not a bootstrap flag
53
+ rest.push(a);
54
+ }
55
+ // Force the local target: install always bootstraps against the node it just started. Skip only
56
+ // if the operator already named one (their choice wins — but a non-local target would be wrong).
57
+ const targetIdx = rest.indexOf("--target");
58
+ const hasTarget = targetIdx >= 0 || rest.some((x) => x.startsWith("--target="));
59
+ if (!hasTarget) {
60
+ // insert after [node, script] (indices 0,1) so parseBootstrapArgs picks it up at index 2+
61
+ rest.splice(2, 0, "--target", "local");
62
+ }
63
+ return { mcpHome, rest };
64
+ }
65
+ /** Translate a `--mcp-home` value into the `EVOLVER_MCP_STATE_DIR` the bootstrap should derive,
66
+ * i.e. `<home>/.local/state/evolver-mcp/local` (mirroring stateDirFor's default). Only a
67
+ * convenience default: an explicit `EVOLVER_MCP_STATE_DIR` in the env always wins. */
68
+ function stateDirForMcpHome(mcpHome) {
69
+ return join(mcpHome, ".local", "state", "evolver-mcp", "local");
70
+ }
21
71
  /** Resolve the shipped `deploy/docker-compose.yml`, honoring an explicit override. */
22
72
  export function composePathFor(env, distDir) {
23
73
  const explicit = env.EVOLVER_INSTALL_COMPOSE?.trim();
@@ -39,8 +89,16 @@ export async function runInstall(argv, env) {
39
89
  output: `install: the node compose file is missing at ${composeFile} — the published package must ship deploy/ (see package.json "files").\n`,
40
90
  };
41
91
  }
92
+ // Parse `--mcp-home` (and the `install` token / forced `--target local`) up front, so a malformed
93
+ // flag fails fast instead of after the node boot.
94
+ const { mcpHome, rest } = parseMcpHome(argv);
95
+ if (argv.includes(MCP_HOME_FLAG) && (mcpHome === undefined || mcpHome.trim() === "")) {
96
+ return { exitCode: 1, toStderr: true, output: `install: ${MCP_HOME_FLAG} needs a value (Claude's $HOME, e.g. /home/rig)\n` };
97
+ }
42
98
  // 1. Start the follower node (claims its own identity on devnet, then syncs from block 0).
43
- const up = spawnSync("docker", ["compose", "-f", composeFile, "up", "-d", "node"], {
99
+ // `--build` builds the config-bearing image (deploy/Dockerfile) on first use; the config is
100
+ // baked in, so no host bind-mount and no checkout-path dependency.
101
+ const up = spawnSync("docker", ["compose", "-f", composeFile, "up", "-d", "--build", "node"], {
44
102
  encoding: "utf8",
45
103
  env: { ...process.env, ...env },
46
104
  });
@@ -69,12 +127,20 @@ export async function runInstall(argv, env) {
69
127
  // 3. Bootstrap the SEPARATE agent identity against the local node. `--target local` +
70
128
  // EVOLVER_NODE=http://127.0.0.1:8440 makes the bootstrap derive
71
129
  // EVOLVER_CONTENT_URL=http://127.0.0.1:8450 (the local node's content listener).
130
+ //
131
+ // `--mcp-home` (if given) names Claude's `$HOME` and is translated into a default
132
+ // EVOLVER_MCP_STATE_DIR so the printed `claude mcp add` line carries paths Claude can read.
133
+ // Unset → no translation: the bootstrap defaults to THIS process's `$HOME`, which is exactly
134
+ // right when Claude runs on the same machine as `install`.
72
135
  const nodeEnv = {
73
136
  ...process.env,
74
137
  ...env,
75
138
  EVOLVER_NODE: env.EVOLVER_NODE ?? LOCAL_CHAIN_URL,
76
139
  };
77
- const boot = await runBootstrap(argv, nodeEnv);
140
+ if (mcpHome !== undefined && mcpHome.trim() !== "" && nodeEnv.EVOLVER_MCP_STATE_DIR === undefined) {
141
+ nodeEnv.EVOLVER_MCP_STATE_DIR = stateDirForMcpHome(mcpHome);
142
+ }
143
+ const boot = await runBootstrap(rest, nodeEnv);
78
144
  return { exitCode: boot.exitCode, output: boot.output, toStderr: boot.toStderr };
79
145
  }
80
146
  /** Poll `url` until it answers 200 (or a healthy node's success), bounded by `timeoutMs`. */
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcsherrylabs/evolver-mcp",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "description": "MCP server over a configurable Evolver node — read the chain, sign a transfer, administer what you own, write to a channel, submit a signed transaction. Wraps @mcsherrylabs/evolver-client; implements no wire format of its own.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",