@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.
- package/deploy/Dockerfile +28 -0
- package/deploy/docker-compose.yml +12 -3
- package/dist/install.d.ts +8 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +68 -2
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
60
|
-
#
|
|
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;
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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
|
-
|
|
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`. */
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,mGAAmG;AACnG,EAAE;AACF,kGAAkG;AAClG,oGAAoG;AACpG,kGAAkG;AAClG,sFAAsF;AACtF,EAAE;AACF,iGAAiG;AACjG,gFAAgF;AAChF,gGAAgG;
|
|
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.
|
|
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",
|