@ai-ecoverse/mcpcat 0.18.2 → 0.19.0
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/README.md +4 -6
- package/dist/host/mcpcat.mjs +1 -1
- package/dist/kernel/mcpcat.mjs +1 -1
- package/package.json +6 -11
package/README.md
CHANGED
|
@@ -22,13 +22,11 @@ Or via npm:
|
|
|
22
22
|
npm install -g @ai-ecoverse/mcpcat
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
mcpcat runs natively on macOS, Linux and Windows (Node ≥
|
|
25
|
+
mcpcat runs natively on macOS, Linux and Windows (Node ≥ 26), and inside Sliccy Seven as a kernel program, with the same flags, the same output and the same config file in both places. Orphan-free shutdown of stdio server trees in the kernel needs slicc-kernel ≥ 1.74.0; on older kernels only the direct child is signalled. A SIGKILLed mcpcat runs no handler. On slicc-kernel ≥ 1.88.0, mcpcat spawns stdio servers and served commands with a parent death signal (like Linux `PR_SET_PDEATHSIG`), so the kernel SIGKILLs each server's process group when mcpcat dies. On older kernels, and on the host, where there is no portable equivalent, servers that exit on stdin EOF (most MCP servers) still stop, but servers that ignore it keep running.
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## CI and releases
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Silence never passes: every gate in the workflows prints a verdict line, and its caller requires that line, not just an exit code. These are `all-green: PASS|FAIL …`, the cert job's `cert: kernel <v> — N kernel tests passed`, shipped.mjs's `behaviour:`/`not behaviour:`, and the installer tests' `All installer tests passed.`. A gate that exits 0 without its line fails.
|
|
29
|
+
`.github/workflows/ci.yml` is the only workflow. It calls [slicc-shared-web's pipeline](https://github.com/ai-ecoverse/slicc-shared-web#pipeline): lint (Biome, tsc and the shared rules) on every event; on pull requests and in the merge queue the integration suite (`npm test`, every `test/integration/*.test.mjs` on Node 26, split over Linux shards); on pull requests a Claude and a Codex review. The checks to require are `ci / integration` and `ci / review`. Every merge to `main` is released to npm as `latest` by semantic-release, with provenance, through trusted publishing bound to `ci.yml`. When a merge releases (a new `v*` tag at the commit), the `binaries` job packs the published tarball, runs the installer tests on Ubuntu (with and without Node) and Alpine, and attaches the tarball, `install.sh` and `SHA256SUMS` to the GitHub release. `kernel-floor.test.mjs` runs the kernel tests on the `engines.slicc-kernel` floor; `MCPCAT_KERNEL_DIR` points the kernel tests at any installed `@ai-ecoverse/slicc-kernel`.
|
|
32
30
|
|
|
33
31
|
## Quick start
|
|
34
32
|
|
|
@@ -40,7 +38,7 @@ mcpcat serve --http 8808 ./scripts/jira.jsh
|
|
|
40
38
|
|
|
41
39
|
## Agent skill
|
|
42
40
|
|
|
43
|
-
The package ships an [Agent Skill](https://agentskills.io/specification) that teaches an agent mcpcat in one file: `dist/skills/mcpcat/SKILL.md`, built from [`src/skill/SKILL.txt`](src/skill/SKILL.txt) (the repo keeps no Markdown besides README.md and AGENTS.md). It covers targets, listing and calling tools, `mcp.json`, exit codes, and the secrets rule: `${NAME}` placeholders in single quotes, never a value in a command, a file or the conversation, and never a token in `mcp.json`. `mcpcat help --skill` prints the copy that matches the installed version. `package.json` declares it as a pi package skill (`"pi": { "skills": ["dist/skills"] }`). In seven, bios links it into `/usr/share/skills` for the
|
|
41
|
+
The package ships an [Agent Skill](https://agentskills.io/specification) that teaches an agent mcpcat in one file: `dist/skills/mcpcat/SKILL.md`, built from [`src/skill/SKILL.txt`](src/skill/SKILL.txt) (the repo keeps no Markdown besides README.md and AGENTS.md). It covers targets, listing and calling tools, `mcp.json`, exit codes, and the secrets rule: `${NAME}` placeholders in single quotes, never a value in a command, a file or the conversation, and never a token in `mcp.json`. `mcpcat help --skill` prints the copy that matches the installed version. `package.json` declares it as a pi package skill (`"pi": { "skills": ["dist/skills"] }`). In seven, bios links it into `/usr/share/skills` for the catalog install.
|
|
44
42
|
|
|
45
43
|
## License
|
|
46
44
|
|
package/dist/host/mcpcat.mjs
CHANGED
|
@@ -17188,5 +17188,5 @@ try {
|
|
|
17188
17188
|
});
|
|
17189
17189
|
} catch {
|
|
17190
17190
|
}
|
|
17191
|
-
var code = await run(platform, "0.
|
|
17191
|
+
var code = await run(platform, "0.19.0", args);
|
|
17192
17192
|
process.exit(code);
|
package/dist/kernel/mcpcat.mjs
CHANGED
|
@@ -16910,7 +16910,7 @@ async function main(ctx) {
|
|
|
16910
16910
|
packageDir: "/node_modules/@ai-ecoverse/mcpcat"
|
|
16911
16911
|
});
|
|
16912
16912
|
const args = ctx.argv.slice(1);
|
|
16913
|
-
return run(platform2, "0.
|
|
16913
|
+
return run(platform2, "0.19.0", args);
|
|
16914
16914
|
}
|
|
16915
16915
|
export {
|
|
16916
16916
|
main as default
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/mcpcat",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "A curl for the Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"mcpcat": "dist/host/mcpcat.mjs"
|
|
17
17
|
},
|
|
18
18
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
19
|
+
"node": ">=26",
|
|
20
20
|
"slicc-kernel": ">=1.65.2"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"fledgling": {
|
|
27
27
|
"provider": "github",
|
|
28
|
-
"workflow": "
|
|
28
|
+
"workflow": "ci.yml",
|
|
29
29
|
"repo": "ai-ecoverse/mcpcat",
|
|
30
30
|
"publish": true
|
|
31
31
|
},
|
|
@@ -51,25 +51,20 @@
|
|
|
51
51
|
"build": "node scripts/build.mjs",
|
|
52
52
|
"lint": "sh scripts/lint.sh",
|
|
53
53
|
"typecheck": "tsc",
|
|
54
|
-
"test": "
|
|
54
|
+
"test": "node --test --test-timeout=30000 'test/integration/*.test.mjs'",
|
|
55
55
|
"test:unit": "mcr -c node_modules/@ai-ecoverse/slicc-shared-web/mcr.config.mjs node --test 'test/unit/**/*.test.mjs' 'test/unit/**/*.test.ts'",
|
|
56
|
-
"test:integration": "node --test --test-timeout=30000 test/integration/*.test.mjs",
|
|
57
|
-
"test:kernel-min": "node scripts/test-kernel-min.mjs",
|
|
58
|
-
"cert": "node scripts/cert.mjs",
|
|
59
56
|
"release": "semantic-release",
|
|
60
57
|
"trust": "npx fledgling sync -y --skip-publish",
|
|
61
58
|
"trust:dry": "npx fledgling sync --dry-run -y --skip-publish"
|
|
62
59
|
},
|
|
63
60
|
"devDependencies": {
|
|
64
|
-
"@ai-ecoverse/slicc-
|
|
65
|
-
"@ai-ecoverse/slicc-
|
|
66
|
-
"@ai-ecoverse/slicc-shared-web": "1.30.3",
|
|
61
|
+
"@ai-ecoverse/slicc-kernel": "1.146.2",
|
|
62
|
+
"@ai-ecoverse/slicc-shared-web": "2.8.5",
|
|
67
63
|
"@biomejs/biome": "2.5.15",
|
|
68
64
|
"@earendil-works/pi-codemode": "1.2.0",
|
|
69
65
|
"@earendil-works/pi-mcp": "1.2.0",
|
|
70
66
|
"@types/node": "26.6.5",
|
|
71
67
|
"esbuild": "0.28.2",
|
|
72
|
-
"kernel-cert-new": "npm:@ai-ecoverse/slicc-kernel@1.143.4",
|
|
73
68
|
"lefthook": "2.2.2",
|
|
74
69
|
"monocart-coverage-reports": "2.13.2",
|
|
75
70
|
"proper-lockfile": "4.1.2",
|