Repository navigation
ci(mcp): build nirium-mcp and clean-install check the npm tarball (#144) - #153
Merged
Eras256 merged 1 commit intoOct 21, 2026
Merged
Conversation
…rium-protocol#144) packages/mcp had no CI, which is how 0.6.1 reached npm without dist/. mcp-ci.yml runs on PRs touching packages/mcp/** and on push to main: it builds with tsc, packs, installs the tarball into an empty project and starts the nirium-mcp bin with an MCP initialize over stdio. The check fails if dist/ or the bin target is missing from the tarball, if any *.test.* file would be published, or if the bin does not answer initialize and exit 0. --legacy-peer-deps (nirium-protocol#125) and the temporary viem install (nirium-protocol#118, PR nirium-protocol#124) are commented where they are used. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds CI for
packages/mcp(npm:nirium-mcp). Before this the package had no CI, which is how 0.6.1 reached npm withoutdist/. The newmcp-ci.ymlfollows theclean-installjob insdk-test.yml: same path-filter shape, Node 22,actions/checkout@v4/actions/setup-node@v4, and a pack-and-install script likepackages/sdk/scripts/clean-install-check.mjs.How each "Done when" item is met
pull_requestwith pathspackages/mcp/**and the workflow file itself, pluspushtomainwith the same paths, as insdk-test.yml.npm run build(tsc), thennode scripts/clean-install-check.mjs, which:npm pack --jsonnode_modules/.bin/nirium-mcpand sends an MCPinitializeover stdio (the bin has no--help)serverInfowhose version matchespackage.jsoninitializeneeds no network, the env has no secret key, and no tool is calleddist/,mainor thebintarget is missing; if any*.test.*file would be published; if the bin exits before answering; or if it doesn't answer within 20 s.--legacy-peer-deps:@stellar/mpp@0.7.1peer-requires@stellar/stellar-sdk@^15.1.0, while nirium-mcp pins^14, so a plainnpm installfails with ERESOLVE. Tracked in packages/mcp: align @x402 and stellar-sdk with the SDK (2.28 / 16.3) #125.vieminstall in the scratch project:mppximportsviembut declares it only as a required peer, so a clean install of 0.6.3 dies withERR_MODULE_NOT_FOUND: viem. That bug is nirium-mcp needs viem installed by hand (missing peer of mppx, not covered by peerDependenciesMeta) #118 (fix in fix(mcp): add viem as direct dependency to resolve mppx peer import (#118) #124) and out of scope here. Once fix(mcp): add viem as direct dependency to resolve mppx peer import (#118) #124 lands, removing theviem@^2.51.0argument makes this check cover that bug too.Local validation (Node 22.23.3, npm 10.9)
node_modules,dist, or lockfile): install, build and the check all exit 0.packed nirium-mcp-0.6.3.tgz: 4 files, no *.test.* filesok: nirium-mcp answered initialize as nirium-mcp-server 0.6.3 and exited 0dist/removed:tarball is missing dist/index.jsdist/index.test.jsadded:tarball ships test files: dist/index.test.jsbin exited (1) before answering initializeno initialize response in 20sviemworkaround:ERR_MODULE_NOT_FOUND: viem(the nirium-mcp needs viem installed by hand (missing peer of mppx, not covered by peerDependenciesMeta) #118 bug)actionlint1.7.12 onmcp-ci.ymlandsdk-test.yml: no findings.Closes #144