@mcpcloud/cli 0.27.0 → 0.28.0-next-20261003040400

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 CHANGED
@@ -571,7 +571,7 @@ _Generated from the live command tree by `bun run docs:readme` — do not edit b
571
571
  | `mcp servers test-suites run <server>` | Run the server’s test scenarios and report the suite result |
572
572
  | `mcp servers traces <server>` | Show recent tool-call traces from the edge — what a caller sent and what came back. Pass --request to open one call in full. |
573
573
  | `mcp servers transfer <server>` | Move a server into another organization you administer, keeping its id, slug, deployment, custom domain, end-user keys and git link. Shows the plan; add --yes to execute. |
574
- | `mcp servers update <server>` | Update a server (name, description, tool surface, upstream key mode, runtime token TTL, spec source URL) |
574
+ | `mcp servers update <server>` | Update a server (name, description, tool surface, upstream key mode, runtime token TTL, client identity forwarding, spec source URL) |
575
575
  | `mcp servers variables` | Inspect and set the sandbox variables that scenario arguments reference |
576
576
  | `mcp servers variables list <server>` | List a server’s sandbox variables and which ones still need a value |
577
577
  | `mcp servers variables set <server>` | Set or clear sandbox variables (repeat --set; an empty value clears) |
package/dist/index.js CHANGED
@@ -7970,6 +7970,7 @@ function registerServerGetCommand(servers) {
7970
7970
  url: s.deploymentUrl ?? "—",
7971
7971
  "tool surface": describeToolSurface(s),
7972
7972
  "upstream keys": s.upstreamApiKeyMode ?? "shared",
7973
+ "client identity": s.forwardClientIdentity ? "forwarded" : "off",
7973
7974
  upstream: "mcp deployments get latest --server <server>",
7974
7975
  "end-user access": s.endUserAccess ?? "disabled",
7975
7976
  ...s.endUserAccess === "enabled" && s.connectPageUrl ? { "connect page": s.connectPageUrl } : {},
@@ -9124,7 +9125,7 @@ function driftLine(change) {
9124
9125
 
9125
9126
  // src/commands/servers-update.ts
9126
9127
  function registerServerUpdateCommand(servers) {
9127
- servers.command("update <server>").description("Update a server (name, description, tool surface, upstream key mode, runtime token TTL, spec source URL)").option("--org <organizationId>", "Organization ID").option("--name <name>", "New display name").option("--description <text>", "New description").option("--discovery-mode <all|wrapper>", 'Tool surface: "all" registers every operation; "wrapper" registers searchTools/getToolDefinition/useTool INSTEAD (operations are called through useTool).').option("--code-mode <off|opt-in|default>", "Code Mode: expose codemode_execute so an agent can script several calls in one sandboxed run. Served by the edge, so it takes effect on the next deploy.").option("--upstream-api-key-mode <shared|perMember>", "Whose upstream credential the server uses: one shared key, or each member their own (Pro and above). perMember needs a protected access mode (privateOrg or unlisted) — refused while the active deployment is public.").option("--runtime-token-ttl <seconds|default>", 'Runtime token lifetime in seconds (60-86400; the default AND cap for minted tokens). Pass "default" to restore the 300s platform default.').option("--source-url <url>", "Read this server’s spec from a different URL from now on. The URL is fetched and parsed as the server’s source type first, and the report shows what a regenerate from it would change. Tools are not touched until you regenerate.").option("--dry-run", "With --source-url: fetch, parse and report without storing anything").addHelpText("after", [
9128
+ servers.command("update <server>").description("Update a server (name, description, tool surface, upstream key mode, runtime token TTL, client identity forwarding, spec source URL)").option("--org <organizationId>", "Organization ID").option("--name <name>", "New display name").option("--description <text>", "New description").option("--discovery-mode <all|wrapper>", 'Tool surface: "all" registers every operation; "wrapper" registers searchTools/getToolDefinition/useTool INSTEAD (operations are called through useTool).').option("--code-mode <off|opt-in|default>", "Code Mode: expose codemode_execute so an agent can script several calls in one sandboxed run. Served by the edge, so it takes effect on the next deploy.").option("--upstream-api-key-mode <shared|perMember>", "Whose upstream credential the server uses: one shared key, or each member their own (Pro and above). perMember needs a protected access mode (privateOrg or unlisted) — refused while the active deployment is public.").option("--runtime-token-ttl <seconds|default>", 'Runtime token lifetime in seconds (60-86400; the default AND cap for minted tokens). Pass "default" to restore the 300s platform default.').option("--forward-client-identity <on|off>", 'Tell your upstream API which agent is calling: "on" adds X-MCP-Client-Name (e.g. "Claude Code") and the MCP client info headers to every upstream request, so your app can show the agent by name. The values are the client’s own claims — for display, never for authentication. Takes effect on the next deploy.').option("--source-url <url>", "Read this server’s spec from a different URL from now on. The URL is fetched and parsed as the server’s source type first, and the report shows what a regenerate from it would change. Tools are not touched until you regenerate.").option("--dry-run", "With --source-url: fetch, parse and report without storing anything").addHelpText("after", [
9128
9129
  "",
9129
9130
  "Notes:",
9130
9131
  " The OAuth provider is `mcp servers oauth set`; how customers sign in is",
@@ -9159,7 +9160,7 @@ async function runUpdate(serverRef, opts) {
9159
9160
  throw new Error("--dry-run only previews --source-url. Run the other changes without --dry-run.");
9160
9161
  }
9161
9162
  if (!hasSettings && opts.sourceUrl === undefined) {
9162
- throw new Error("Provide at least one of --name, --description, --discovery-mode, --code-mode, --upstream-api-key-mode, --runtime-token-ttl, or --source-url.");
9163
+ throw new Error("Provide at least one of --name, --description, --discovery-mode, --code-mode, --upstream-api-key-mode, --runtime-token-ttl, --forward-client-identity, or --source-url.");
9163
9164
  }
9164
9165
  const orgId = await resolveOrgId(opts.org);
9165
9166
  const serverId = await resolveServerId(serverRef, orgId);
@@ -9238,6 +9239,12 @@ function buildSettingsPatch(opts) {
9238
9239
  body["runtimeTokenTtlSeconds"] = ttl;
9239
9240
  }
9240
9241
  }
9242
+ if (opts.forwardClientIdentity !== undefined) {
9243
+ body["forwardClientIdentity"] = validateChoice("forward-client-identity", opts.forwardClientIdentity, [
9244
+ "on",
9245
+ "off"
9246
+ ]) === "on";
9247
+ }
9241
9248
  return body;
9242
9249
  }
9243
9250
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcpcloud/cli",
3
- "version": "0.27.0",
3
+ "version": "0.28.0-next-20261003040400",
4
4
  "description": "The official CLI for MCPCloud — manage projects, servers, skills, and API keys from the terminal",
5
5
  "type": "module",
6
6
  "bin": {