feat(catalog): register sean/ex-mcp as a native Elixir library project #263
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/ex-mcp-catalog"
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?
Why
Binjovi builds its own MCP server from
sean/ex-mcp, and the fork was not a Binjovi project at all — no CI on its pull requests, and until this morning no off-cluster backup either.It could not become one before today: schema 21 pins the project to four names, so a library needed a Binjovi change first. Binjovi v0.1.681 shipped schema 29 — the first open native-library generation, validating a DNS-form name and
repo == sean/<project>instead of an allowlist. That release is deployed to production, so the decoder is in the running image and this record can activate.Verified against the running decoder
Not "it looks right" — the exact record from this
bundle.jsonfed throughProjectRegistry.from_map/2:No taxonomy, deliberately. Taxonomy names a delivery shape, and a library delivers nothing.
byteyandlibseanfarm-operatorare the same.The checks come from the fork, not from me
recipes/ex-mcp/Dockerfileruns FORK.md's own Checks list:plus two the fork's purpose demands:
That absence is the reason the fork exists — upstream ExMCP 1.3.0 pulls Cowlib 2.20.0 through a mandatory
Plug.Cowboyand failshex.auditon three EEF CVEs with no upstream fix. FORK.md: "No advisory exceptions are configured in this fork." So it is asserted, not assumed.Left out on purpose: the three
tests/consumer-contract.shlanes need jq, rg, OpenSSL and an HTTP/2 curl and build three separate consumer releases — wider than a library tag build.Two things worth flagging
cache: buildkit-layer. The closed set isbuildkit-c-and-layer,buildkit-go-and-layer,buildkit-layer,gitops,kernel-ccache. There is no Elixir profile; the generic layer cache is the honest fit rather than inventing one.build.dockerfileis inert here. A native recipe build passesfilename=recipes/<project>/Dockerfile(agent/command.ex), so the recipe's own Dockerfile runs and this field is never read. The schema still requires the key, so it is set toci.Dockerfileto match the fleet — but it names a file the fork does not have. A schema requiring a key its own lane ignores is a wart; worth removing when the bindings are collapsed.Verification
Still to come: the Forgejo binding lists, so
ex-mcpgets the webhook that triggers CI and Binjovi-owned branch protection.https://claude.ai/code/session_01XdBRc9CHgFhAxCyHbdVtt6