jerboa-mcp executes raw scheme binary (eval/verify exit 127, AGENTS.md violation) + stale jmcp hides writer tools #53
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
jerboa-mcp shells out to a raw
schemebinary — eval/verify broken on machines without it, violates the repo's own AGENTS.md banSummary
The MCP server (
mcp/server.ss) launches a bare Chezschemebinary as its code-execution runtime forjerboa_eval,jerboa_write_file(verify=true), and related verify/compile paths. This:schemebinary … The ONLY legal ways to run code arejerboa run file.ss,jerboa eval '<expr>',jerboa test,jerboa repl, jerboa-mcp tools, projectmaketargets." The MCP server is the one component that must never do this, and it does.schemeon PATH and none of the hardcoded fallback paths present: every eval/verify subprocess dies with exit 127 (/bin/sh: scheme: command not found).jerboa_write_filewithverify: truerefuses writes when verification can't run, which silently degrades the documented "Save What You Learn" workflow (recipes/error-fixes can't be verified before saving; agents fall back toverify: false).Environment
jerboa/jmcpat~/.local/bin/jerboa(jmcp→jerboasymlink)JERBOA_MCP_REPO=/Users/user/mine/jerboa,JERBOA_MCP_DATA_DIR=/Users/user/.jmap/dataschemebinary on PATH; no~/mine/ChezScheme/tarm64osx/bin/tarm64osx/scheme; no~/.local/bin/schemeDefect 1 —
jerboa_evalexit 127Reproduction (any session, or stdio):
Result:
Same failure today with the freshly rebuilt jmcp.
Defect 2 —
jerboa_write_fileverify=true blocks writes, misattributes the cause15 consecutive
jerboa_write_file {verify: true}calls during a verified knowledge import were blocked by the same exit-127 (logged in~/mcp-issues.md, entries2026-09-10T23:30:15.991Z….809Z). Two secondary problems in the same output:missing-libdirs("Run with: jerboa your-file.ss") — a JERBOA_HOME/libdirs problem is not a missing-binary problem, so the agent gets sent down the wrong repair path.Terminated: 15 … event=process.slow elapsed_ms=30000blocks for what is an instant 127.Also observed: eval failures have previously been returned with
isError: false, so clients can record success when nothing ran (see feature suggestioneval-runtime-preflight-and-status, catalogt:xwei4k, filed 2026-09-09).Defect 3 — hardcoded sibling-checkout fallbacks in
scheme-pathmcp/server.ss:~/mine/ChezScheme/tarm64osx/...is exactly the machine-specific sibling-checkout pattern this repo's own contribution rules forbid in build files.tool-preflightreportsscheme: … MISSINGas a first-class concept — the server's health model requires a Chez install that AGENTS.md says must never be used directly.Defect 4 — stale jmcp binaries silently hide documented writer tools
Today's investigation of "writers missing from the catalog":
mcp/server.sscritical-toolsincludesjerboa_howto_addandjerboa_error_fix_add(so hybrid mode should list them).~/.local/bin/jerboa(built Sep 10 13:13) predates that source (16:38) and serves 45 tools without either writer, whilejerboa_eval,jerboa_anti_pattern_add, etc. are present.~/.config/opencode/opencode.json) and codex (~/.codex/config.toml) run jmcp with onlyJERBOA_MCP_REPO/JERBOA_MCP_DATA_DIR;JERBOA_MCP_MODEis unset → defaulthybrid. Hybrid is fine — the binary was just stale.Consequences (logged
~/mcp-issues.md2026-09-10 ~15:30): AGENTS.md-mandated knowledge saves (verified incremental SHA-256 recipe,no entry for "fcntl"error-fix) could not be written; sessions lose hours discovering the catalog shrank. The dispatcher still routes to registered-but-hidden tools (jerboatool +tool: "jerboa_howto_add"works), but nothing tells the client its binary is stale, and nothing in tools/list indicates server build/version.Requested changes
jerboa eval '<expr>',jerboa run,jerboa test(or the internal jerbuild runtime the CLI itself uses). Never spawnschemefrom the MCP server. Delete the sibling-path fallbacks inscheme-pathand the scheme-centrictool-preflight.isError: truemessage naming the missing piece and the env var to set — never return success-shaped results for subprocess failures (exit 126/127, killed, etc.).missing-libdirsfor exit 127, and suppress the 30s slow-watchdog block when the process already exited.serverInfo.version= jerboa VERSION + build timestamp) so clients can detect stale jmcp binaries before losing writer tools.JERBOA_MCP_MODE(full/hybrid/mini) and the dispatcher-can-route-to-hidden-tools behavior in the repo docs, since AGENTS.md tells agents to use writer tools that hybrid+stale-binary combinations can hide.Related
eval-runtime-preflight-and-status(catalogt:xwei4k, 2026-09-09) — covers the preflight/isError part; this issue adds the AGENTS.md violation, write-blocking, misattribution, and staleness angles.~/mcp-issues.mdentries: 2026-09-09 (writer internal error), 2026-09-10T23:30 (6 blocked verify=true writes + fallback verification manifest/Users/user/mcp-import-examples/verification.json), 2026-09-10 ~15:30 (writers not exposed).Workarounds in current use
jerboa_eval: none possible — tool unusable on this machine (verified again today).jerboa_write_file: always passverify: false, verify separately viajerboa_check_balance+ ajerbuild-through-jerboa exec, or projectmaketargets.jerboatool withtool: "jerboa_howto_add") — works even when hidden from tools/list.