@yawlabs/mcph 0.46.2 → 0.46.4
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/CHANGELOG.md +9 -0
- package/dist/index.js +74 -33
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@yawlabs/mcph` are documented here. This project uses [semantic versioning](https://semver.org) and a CI-gated release flow: pushing a `vX.Y.Z` tag triggers `.github/workflows/release.yml`, which publishes to npm.
|
|
4
4
|
|
|
5
|
+
## 0.46.4 — 2026-04-18
|
|
6
|
+
|
|
7
|
+
- **`mcph --help` Setup block rewritten for clarity** — The v0.46.3 rewrite used jargony wording ("Auto-edit an MCP client's config") and split the client list onto an ambiguous continuation line. Rewrote the three install rows to action-first prose: `install <client>` says "Configure one MCP client to launch mcph" and spells out the exact slugs (`claude-code, claude-desktop, cursor, vscode`) inline; `--list` says "List which MCP clients are installed on this machine"; `--all` says "Configure every installed MCP client in one go". Same three commands, but it now reads as plain English.
|
|
8
|
+
- **Help + doctor now list `MCPH_AUTO_ACTIVATE`** — The env var has controlled the discover auto-activate gate since the confidence-scoring work landed, but neither the help page nor `mcph doctor`'s ENVIRONMENT section mentioned it, so the only way to discover the toggle was to grep `server.ts`. Added to both: help describes what flipping to `0` does, doctor surfaces the current value with `default on` hint. Also tightens the config resolution table in help — tier 3 (`<project>/.mcph/config.json`, the project-shared file) now notes "never put a token here — apiBase only" so nobody accidentally commits a token to a shared repo.
|
|
9
|
+
|
|
10
|
+
## 0.46.3 — 2026-04-18
|
|
11
|
+
|
|
12
|
+
- **`mcph --help` rewritten: quickstart, grouped subcommands, env vars, config precedence** — The old help listed ten subcommands in a flat table and spent most of its real estate on install flag details (already available via `mcph install --help`) and a three-line token-resolution note. Subcommands are now grouped by purpose (Setup, Inspection, Maintenance, Other), each with a multi-line description that explains what the command actually does — not just its name. A numbered Quickstart at the top points users at the token URL and shows the two commands needed to finish onboarding. An Environment variables section documents the eight `MCPH_*` overrides (`MCPH_URL`, `MCPH_POLL_INTERVAL`, `MCPH_SERVER_CAP`, `MCPH_MIN_COMPLIANCE`, `MCPH_AUTO_LOAD`, `MCPH_PRUNE_RESPONSES`, `MCPH_DISABLE_PERSISTENCE`) that were previously only discoverable by reading the doctor source. Config resolution is expanded from three lines to a proper four-tier precedence list (env → project.local → project → user-global). Trailing pointer to `mcph <subcommand> --help` for flag-level detail so the top-level stays scannable. `INSTALL_USAGE` import removed from `index.ts` since the install flag block no longer inlines into top-level help.
|
|
13
|
+
|
|
5
14
|
## 0.46.2 — 2026-04-18
|
|
6
15
|
|
|
7
16
|
- **Doctor's UPGRADE AVAILABLE section points at `mcph upgrade`** — Previously it inlined `npm install -g @yawlabs/mcph@latest` with a long prose aside about npx-vs-global. Now it tells the user to run `mcph upgrade` (prints the exact command for their install method) or `mcph upgrade --run` (executes for global-npm). Shorter, single source of truth for "how do I actually update?" since doctor already detects staleness and the upgrade subcommand already understands how the install was done.
|
package/dist/index.js
CHANGED
|
@@ -1458,7 +1458,7 @@ function selectFlakyNamespaces(entries, limit) {
|
|
|
1458
1458
|
}
|
|
1459
1459
|
|
|
1460
1460
|
// src/doctor-cmd.ts
|
|
1461
|
-
var VERSION = true ? "0.46.
|
|
1461
|
+
var VERSION = true ? "0.46.4" : "dev";
|
|
1462
1462
|
async function runDoctor(opts = {}) {
|
|
1463
1463
|
if (opts.json) return runDoctorJson(opts);
|
|
1464
1464
|
const lines = [];
|
|
@@ -1563,6 +1563,7 @@ async function runDoctorJson(opts) {
|
|
|
1563
1563
|
"MCPH_SERVER_CAP",
|
|
1564
1564
|
"MCPH_MIN_COMPLIANCE",
|
|
1565
1565
|
"MCPH_AUTO_LOAD",
|
|
1566
|
+
"MCPH_AUTO_ACTIVATE",
|
|
1566
1567
|
"MCPH_PRUNE_RESPONSES"
|
|
1567
1568
|
];
|
|
1568
1569
|
const envOverrides = {};
|
|
@@ -1650,6 +1651,7 @@ function renderEnvSection(opts) {
|
|
|
1650
1651
|
{ name: "MCPH_SERVER_CAP", defaultHint: "default 6" },
|
|
1651
1652
|
{ name: "MCPH_MIN_COMPLIANCE", defaultHint: "filter inactive" },
|
|
1652
1653
|
{ name: "MCPH_AUTO_LOAD", defaultHint: "auto-load inactive" },
|
|
1654
|
+
{ name: "MCPH_AUTO_ACTIVATE", defaultHint: "default on" },
|
|
1653
1655
|
{ name: "MCPH_PRUNE_RESPONSES", defaultHint: "pruning active" }
|
|
1654
1656
|
];
|
|
1655
1657
|
const widest = vars.reduce((m, v) => Math.max(m, v.name.length), 0);
|
|
@@ -2542,7 +2544,6 @@ async function runInstallAll(opts, log2, err) {
|
|
|
2542
2544
|
exitCode: 1
|
|
2543
2545
|
};
|
|
2544
2546
|
}
|
|
2545
|
-
var INSTALL_USAGE = USAGE;
|
|
2546
2547
|
|
|
2547
2548
|
// src/reset-learning-cmd.ts
|
|
2548
2549
|
import { unlink } from "fs/promises";
|
|
@@ -4745,7 +4746,7 @@ function categorizeSpawnError(err) {
|
|
|
4745
4746
|
}
|
|
4746
4747
|
async function connectToUpstream(config, onDisconnect, onListChanged) {
|
|
4747
4748
|
const client = new Client(
|
|
4748
|
-
{ name: "mcph", version: true ? "0.46.
|
|
4749
|
+
{ name: "mcph", version: true ? "0.46.4" : "dev" },
|
|
4749
4750
|
{ capabilities: {} }
|
|
4750
4751
|
);
|
|
4751
4752
|
let transport;
|
|
@@ -5226,7 +5227,7 @@ var ConnectServer = class _ConnectServer {
|
|
|
5226
5227
|
this.apiUrl = apiUrl6;
|
|
5227
5228
|
this.token = token6;
|
|
5228
5229
|
this.server = new Server(
|
|
5229
|
-
{ name: "mcph", version: true ? "0.46.
|
|
5230
|
+
{ name: "mcph", version: true ? "0.46.4" : "dev" },
|
|
5230
5231
|
{
|
|
5231
5232
|
capabilities: {
|
|
5232
5233
|
tools: { listChanged: true },
|
|
@@ -7571,7 +7572,7 @@ async function runUpgrade(opts = {}) {
|
|
|
7571
7572
|
return { exitCode: 3, lines };
|
|
7572
7573
|
}
|
|
7573
7574
|
function readCurrentVersion() {
|
|
7574
|
-
return true ? "0.46.
|
|
7575
|
+
return true ? "0.46.4" : "dev";
|
|
7575
7576
|
}
|
|
7576
7577
|
|
|
7577
7578
|
// src/index.ts
|
|
@@ -7652,42 +7653,82 @@ if (subcommand === "compliance") {
|
|
|
7652
7653
|
}
|
|
7653
7654
|
runUpgrade(parsed.options).then((r) => process.exit(r.exitCode));
|
|
7654
7655
|
} else if (subcommand === "--help" || subcommand === "-h" || subcommand === "help") {
|
|
7655
|
-
|
|
7656
|
-
|
|
7657
|
-
`
|
|
7658
|
-
mcph \u2014 MCP server orchestrator for mcp.hosting
|
|
7656
|
+
process.stdout.write(`
|
|
7657
|
+
mcph \u2014 one install, every MCP server, managed from the cloud.
|
|
7659
7658
|
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
mcph install
|
|
7663
|
-
mcph doctor
|
|
7664
|
-
mcph servers [--json] List servers configured in your mcp.hosting dashboard
|
|
7665
|
-
mcph bundles [list|match] Browse curated multi-server bundles
|
|
7666
|
-
mcph compliance <target> [flags] Run the compliance suite against an MCP server
|
|
7667
|
-
mcph reset-learning Clear cross-session learning history (~/.mcph/state.json)
|
|
7668
|
-
mcph completion <shell> Print a shell completion script (bash|zsh|fish|powershell)
|
|
7669
|
-
mcph upgrade [--run] [--json] Show (or run) the upgrade command for @yawlabs/mcph
|
|
7670
|
-
mcph --version Print version
|
|
7659
|
+
Quickstart:
|
|
7660
|
+
1. Get a token https://mcp.hosting/dashboard/settings/tokens
|
|
7661
|
+
2. Install mcph mcph install claude-code --token mcp_pat_...
|
|
7662
|
+
3. Verify setup mcph doctor
|
|
7671
7663
|
|
|
7672
|
-
|
|
7673
|
-
|
|
7664
|
+
Setup:
|
|
7665
|
+
install <client> Configure one MCP client to launch mcph.
|
|
7666
|
+
<client> is one of: claude-code, claude-desktop,
|
|
7667
|
+
cursor, vscode.
|
|
7668
|
+
install --list List which MCP clients are installed on this
|
|
7669
|
+
machine (read-only; no writes).
|
|
7670
|
+
install --all Configure every installed MCP client in one go.
|
|
7674
7671
|
|
|
7675
|
-
|
|
7676
|
-
|
|
7672
|
+
Inspection:
|
|
7673
|
+
doctor Diagnose setup: config, token, clients, learning,
|
|
7674
|
+
upgrade, flaky-namespace reliability rollup.
|
|
7675
|
+
servers [<filter>] List servers in your mcp.hosting dashboard; the
|
|
7676
|
+
positional arg substring-filters by namespace.
|
|
7677
|
+
bundles [list|match] Browse curated multi-server bundles. \`list\` shows
|
|
7678
|
+
all; \`match\` partitions against your enabled
|
|
7679
|
+
servers (ready vs. partially installed).
|
|
7677
7680
|
|
|
7678
|
-
|
|
7679
|
-
|
|
7680
|
-
|
|
7681
|
-
|
|
7681
|
+
Maintenance:
|
|
7682
|
+
upgrade Show (or --run) the command that bumps
|
|
7683
|
+
@yawlabs/mcph to the latest version.
|
|
7684
|
+
reset-learning Clear cross-session learning history
|
|
7685
|
+
(~/.mcph/state.json).
|
|
7686
|
+
completion <shell> Print a shell completion script for bash, zsh,
|
|
7687
|
+
fish, or powershell. Redirect to your
|
|
7688
|
+
completions directory to install.
|
|
7682
7689
|
|
|
7683
|
-
|
|
7684
|
-
|
|
7690
|
+
Other:
|
|
7691
|
+
compliance <target> Run the 88-test compliance suite against an MCP
|
|
7692
|
+
server. --publish posts the report to
|
|
7693
|
+
mcp.hosting and prints the public URL.
|
|
7694
|
+
help, --help, -h Show this help.
|
|
7695
|
+
--version, -V Print mcph version.
|
|
7685
7696
|
|
|
7686
|
-
|
|
7687
|
-
)
|
|
7697
|
+
Running \`mcph\` with no subcommand starts the MCP server (requires a
|
|
7698
|
+
resolved token). Most read-only subcommands accept \`--json\` for
|
|
7699
|
+
machine-readable output. Run \`mcph <subcommand> --help\` for per-
|
|
7700
|
+
subcommand flag details.
|
|
7701
|
+
|
|
7702
|
+
Environment variables:
|
|
7703
|
+
MCPH_TOKEN API token (overrides every config file).
|
|
7704
|
+
MCPH_URL API base URL (default https://mcp.hosting).
|
|
7705
|
+
MCPH_POLL_INTERVAL Dashboard polling interval, seconds (default 60).
|
|
7706
|
+
MCPH_SERVER_CAP Max concurrently active servers (default 6).
|
|
7707
|
+
MCPH_MIN_COMPLIANCE Minimum grade to auto-activate (A|B|C|D|F).
|
|
7708
|
+
MCPH_AUTO_LOAD Load all servers at startup, ignoring SERVER_CAP.
|
|
7709
|
+
MCPH_AUTO_ACTIVATE Set to \`0\` to disable discover's auto-activate
|
|
7710
|
+
gate (default: a clearly-winning server is
|
|
7711
|
+
activated in the same call).
|
|
7712
|
+
MCPH_PRUNE_RESPONSES Set to \`0\` to disable response pruning.
|
|
7713
|
+
MCPH_DISABLE_PERSISTENCE Disable cross-session learning state.
|
|
7714
|
+
|
|
7715
|
+
Config resolution (highest precedence first):
|
|
7716
|
+
1. MCPH_TOKEN / MCPH_URL env vars
|
|
7717
|
+
2. <project>/.mcph/config.local.json machine-local overrides (gitignore)
|
|
7718
|
+
3. <project>/.mcph/config.json project-shared (checked in; never
|
|
7719
|
+
put a token here \u2014 apiBase only)
|
|
7720
|
+
4. ~/.mcph/config.json user-global default
|
|
7721
|
+
|
|
7722
|
+
Token rotation: mcph reads config at startup. Restart the MCP client
|
|
7723
|
+
(or kill mcph; the client will respawn it) after editing any config.
|
|
7724
|
+
|
|
7725
|
+
Docs: https://mcp.hosting
|
|
7726
|
+
Source: https://github.com/YawLabs/mcph
|
|
7727
|
+
|
|
7728
|
+
`);
|
|
7688
7729
|
process.exit(0);
|
|
7689
7730
|
} else if (subcommand === "--version" || subcommand === "-V") {
|
|
7690
|
-
process.stdout.write(`mcph ${true ? "0.46.
|
|
7731
|
+
process.stdout.write(`mcph ${true ? "0.46.4" : "dev"}
|
|
7691
7732
|
`);
|
|
7692
7733
|
process.exit(0);
|
|
7693
7734
|
} else if (subcommand && !subcommand.startsWith("-")) {
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yawlabs/mcph",
|
|
3
|
-
"version": "0.46.
|
|
3
|
+
"version": "0.46.4",
|
|
4
4
|
"description": "mcp.hosting — one install, all your MCP servers, managed from the cloud",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
|
-
"author": "Yaw Labs <
|
|
6
|
+
"author": "Yaw Labs <support@mcp.hosting> (https://mcp.hosting)",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"bin": {
|
|
9
9
|
"mcph": "./dist/index.js"
|