@yawlabs/mcph 0.46.3 → 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 CHANGED
@@ -2,6 +2,11 @@
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
+
5
10
  ## 0.46.3 — 2026-04-18
6
11
 
7
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.
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.3" : "dev";
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);
@@ -4744,7 +4746,7 @@ function categorizeSpawnError(err) {
4744
4746
  }
4745
4747
  async function connectToUpstream(config, onDisconnect, onListChanged) {
4746
4748
  const client = new Client(
4747
- { name: "mcph", version: true ? "0.46.3" : "dev" },
4749
+ { name: "mcph", version: true ? "0.46.4" : "dev" },
4748
4750
  { capabilities: {} }
4749
4751
  );
4750
4752
  let transport;
@@ -5225,7 +5227,7 @@ var ConnectServer = class _ConnectServer {
5225
5227
  this.apiUrl = apiUrl6;
5226
5228
  this.token = token6;
5227
5229
  this.server = new Server(
5228
- { name: "mcph", version: true ? "0.46.3" : "dev" },
5230
+ { name: "mcph", version: true ? "0.46.4" : "dev" },
5229
5231
  {
5230
5232
  capabilities: {
5231
5233
  tools: { listChanged: true },
@@ -7570,7 +7572,7 @@ async function runUpgrade(opts = {}) {
7570
7572
  return { exitCode: 3, lines };
7571
7573
  }
7572
7574
  function readCurrentVersion() {
7573
- return true ? "0.46.3" : "dev";
7575
+ return true ? "0.46.4" : "dev";
7574
7576
  }
7575
7577
 
7576
7578
  // src/index.ts
@@ -7660,10 +7662,12 @@ if (subcommand === "compliance") {
7660
7662
  3. Verify setup mcph doctor
7661
7663
 
7662
7664
  Setup:
7663
- install <client> Auto-edit an MCP client's config to launch mcph.
7664
- Clients: claude-code | claude-desktop | cursor | vscode.
7665
- install --list Detect MCP clients on this machine (read-only).
7666
- install --all Install into every detected client in one shot.
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.
7667
7671
 
7668
7672
  Inspection:
7669
7673
  doctor Diagnose setup: config, token, clients, learning,
@@ -7702,13 +7706,17 @@ if (subcommand === "compliance") {
7702
7706
  MCPH_SERVER_CAP Max concurrently active servers (default 6).
7703
7707
  MCPH_MIN_COMPLIANCE Minimum grade to auto-activate (A|B|C|D|F).
7704
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).
7705
7712
  MCPH_PRUNE_RESPONSES Set to \`0\` to disable response pruning.
7706
7713
  MCPH_DISABLE_PERSISTENCE Disable cross-session learning state.
7707
7714
 
7708
7715
  Config resolution (highest precedence first):
7709
7716
  1. MCPH_TOKEN / MCPH_URL env vars
7710
7717
  2. <project>/.mcph/config.local.json machine-local overrides (gitignore)
7711
- 3. <project>/.mcph/config.json project-shared (checked in)
7718
+ 3. <project>/.mcph/config.json project-shared (checked in; never
7719
+ put a token here \u2014 apiBase only)
7712
7720
  4. ~/.mcph/config.json user-global default
7713
7721
 
7714
7722
  Token rotation: mcph reads config at startup. Restart the MCP client
@@ -7720,7 +7728,7 @@ if (subcommand === "compliance") {
7720
7728
  `);
7721
7729
  process.exit(0);
7722
7730
  } else if (subcommand === "--version" || subcommand === "-V") {
7723
- process.stdout.write(`mcph ${true ? "0.46.3" : "dev"}
7731
+ process.stdout.write(`mcph ${true ? "0.46.4" : "dev"}
7724
7732
  `);
7725
7733
  process.exit(0);
7726
7734
  } else if (subcommand && !subcommand.startsWith("-")) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yawlabs/mcph",
3
- "version": "0.46.3",
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
6
  "author": "Yaw Labs <support@mcp.hosting> (https://mcp.hosting)",