@stackable-labs/mcp-app-extension 1.1.0 → 1.2.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 CHANGED
@@ -6,7 +6,7 @@ MCP server exposing Stackable Labs extension-platform tools to AI agents (Claude
6
6
 
7
7
  | Transport | Home | Auth flow | Best for |
8
8
  |-----------|------|-----------|----------|
9
- | **HTTP** (streamable) | Deployed at `api-{stage}-use1.stackablelabs.io/mcp/app-extension` | Claude Code native OAuth — SDK discovers `.well-known/oauth-authorization-server` via `WWW-Authenticate` header, stores token in keychain | Most users. Simplest to configure. |
9
+ | **HTTP** (streamable) | Deployed at `mcp{-stage,}.stackablelabs.io/app-extension` | Claude Code native OAuth — SDK discovers `.well-known/oauth-authorization-server` via `WWW-Authenticate` header, stores token in keychain | Most users. Simplest to configure. |
10
10
  | **stdio** | Local process via `pnpm dlx @stackable-labs/mcp-app-extension@latest` | Package-level OAuth flow — spins up localhost callback listener, caches token to `~/.stackable/mcp-auth.json` | Local dev, agent orchestration outside a Claude Code keychain |
11
11
 
12
12
  Both transports expose the same tool surface: `list_apps`, `list_extensions`, `get_extension`, `list_instances`, plus SDK-only tools (`list_skills`, `lookup_skill`, `validate_manifest`, `validate_permissions`).
@@ -22,7 +22,7 @@ Drop into your project root (or `~/.claude.json` for user-scoped setup). Both en
22
22
  "mcpServers": {
23
23
  "stackable-dev-http": {
24
24
  "type": "http",
25
- "url": "https://api-dev-use1.stackablelabs.io/mcp/app-extension"
25
+ "url": "https://mcp-dev.stackablelabs.io/app-extension"
26
26
  },
27
27
  "stackable-dev-stdio": {
28
28
  "type": "stdio",
@@ -33,7 +33,7 @@ Drop into your project root (or `~/.claude.json` for user-scoped setup). Both en
33
33
  "@stackable-labs/mcp-app-extension@latest"
34
34
  ],
35
35
  "env": {
36
- "MCP_API_BASE_URL": "https://api-dev-use1.stackablelabs.io/mcp",
36
+ "MCP_API_BASE_URL": "https://mcp-dev.stackablelabs.io",
37
37
  "ADMIN_API_BASE_URL": "https://api-dev-use1.stackablelabs.io/admin"
38
38
  }
39
39
  }
@@ -48,7 +48,7 @@ Drop into your project root (or `~/.claude.json` for user-scoped setup). Both en
48
48
  "mcpServers": {
49
49
  "stackable-http": {
50
50
  "type": "http",
51
- "url": "https://api-use1.stackablelabs.io/mcp/app-extension"
51
+ "url": "https://mcp.stackablelabs.io/app-extension"
52
52
  },
53
53
  "stackable-stdio": {
54
54
  "type": "stdio",
@@ -65,7 +65,7 @@ Both optional — defaults point at prod. Override per-stage as needed.
65
65
 
66
66
  | Env var | Default | Purpose |
67
67
  |---------|---------|---------|
68
- | `MCP_API_BASE_URL` | `https://api-use1.stackablelabs.io/mcp` | MCP host root. OAuth discovery URL is derived as `${mcpBase}/.well-known/oauth-authorization-server`. |
68
+ | `MCP_API_BASE_URL` | `https://mcp.stackablelabs.io` | MCP host root. OAuth discovery URL is derived as `${mcpBase}/.well-known/oauth-authorization-server`. |
69
69
  | `ADMIN_API_BASE_URL` | `https://api-use1.stackablelabs.io/admin` | Admin API endpoint for platform tool calls (`list_apps`, etc.). |
70
70
 
71
71
  HTTP transport reads URLs from the deployed Lambda's env (set via CDK + `packages/infra/cdk/.env.{stage}` — not client-controlled).
package/dist/index.js CHANGED
@@ -2453,6 +2453,7 @@ Both workflows produce the same output \u2014 a Stackable extension that runs in
2453
2453
  };
2454
2454
 
2455
2455
  // ../../sdk/extension/ai-docs/src/generators/ai-accelerated-development.ts
2456
+ var DEFAULT_MCP_API_BASE_URL = "https://mcp.stackablelabs.io";
2456
2457
  var generateAIAcceleratedDevelopment = () => {
2457
2458
  const fm = frontmatter({
2458
2459
  root: false,
@@ -2460,6 +2461,8 @@ var generateAIAcceleratedDevelopment = () => {
2460
2461
  description: "AI-Accelerated Development: AI Extension Studio, Agent Skills, the live MCP server, and the Claude Code plugin \u2014 and how to choose between them.",
2461
2462
  globs: ["*"]
2462
2463
  });
2464
+ const mcpApiBaseUrl = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL;
2465
+ const mcpEndpointUrl = `${mcpApiBaseUrl}/app-extension`;
2463
2466
  return `${fm}
2464
2467
 
2465
2468
  # AI-Accelerated Development
@@ -2508,7 +2511,7 @@ Agent Skills work with any tool that supports the format \u2014 Claude Code, Cur
2508
2511
 
2509
2512
  The Stackable platform exposes a hosted MCP (Model Context Protocol) server that any compatible AI client can connect to for live access to your account's apps, extensions, and platform metadata.
2510
2513
 
2511
- **Endpoint:** \`https://api-use1.stackablelabs.io/mcp/app-extension\`
2514
+ **Endpoint:** \`${mcpEndpointUrl}\`
2512
2515
 
2513
2516
  ### Available tools (snapshot)
2514
2517
 
@@ -4551,7 +4554,7 @@ var package_default = {
4551
4554
  // src/server.ts
4552
4555
  var MCP_CLIENT_NAME = STANDALONE_CLIENT.MCP;
4553
4556
  var DEFAULT_ADMIN_API_URL = "https://api-use1.stackablelabs.io/admin";
4554
- var DEFAULT_MCP_API_BASE_URL = "https://api-use1.stackablelabs.io/mcp";
4557
+ var DEFAULT_MCP_API_BASE_URL2 = "https://mcp.stackablelabs.io";
4555
4558
  var textContent = (text) => ({ content: [{ type: "text", text }] });
4556
4559
  var errorContent = (text) => ({ content: [{ type: "text", text }], isError: true });
4557
4560
  var createMcpServer = (options = {}) => {
@@ -4572,7 +4575,7 @@ var createMcpServer = (options = {}) => {
4572
4575
  "No auth token available. Provide authContext (server) or performOAuthFlow (CLI)."
4573
4576
  );
4574
4577
  }
4575
- const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL;
4578
+ const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL2;
4576
4579
  return options.performOAuthFlow(`${MCP_API_BASE_URL}/.well-known/oauth-authorization-server`);
4577
4580
  };
4578
4581
  const authHeaders = (token) => ({
@@ -4604,7 +4607,7 @@ var createMcpServer = (options = {}) => {
4604
4607
  } catch (err) {
4605
4608
  const e = err;
4606
4609
  if (e.message.includes("fetch")) {
4607
- const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL;
4610
+ const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL2;
4608
4611
  return errorContent(
4609
4612
  `MCP auth flow failed: ${e.message}. Check MCP_API_BASE_URL env var (currently "${MCP_API_BASE_URL}"). To re-auth from scratch: rm ${MCP_AUTH_FILE}`
4610
4613
  );
package/dist/server.js CHANGED
@@ -2446,6 +2446,7 @@ Both workflows produce the same output \u2014 a Stackable extension that runs in
2446
2446
  };
2447
2447
 
2448
2448
  // ../../sdk/extension/ai-docs/src/generators/ai-accelerated-development.ts
2449
+ var DEFAULT_MCP_API_BASE_URL = "https://mcp.stackablelabs.io";
2449
2450
  var generateAIAcceleratedDevelopment = () => {
2450
2451
  const fm = frontmatter({
2451
2452
  root: false,
@@ -2453,6 +2454,8 @@ var generateAIAcceleratedDevelopment = () => {
2453
2454
  description: "AI-Accelerated Development: AI Extension Studio, Agent Skills, the live MCP server, and the Claude Code plugin \u2014 and how to choose between them.",
2454
2455
  globs: ["*"]
2455
2456
  });
2457
+ const mcpApiBaseUrl = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL;
2458
+ const mcpEndpointUrl = `${mcpApiBaseUrl}/app-extension`;
2456
2459
  return `${fm}
2457
2460
 
2458
2461
  # AI-Accelerated Development
@@ -2501,7 +2504,7 @@ Agent Skills work with any tool that supports the format \u2014 Claude Code, Cur
2501
2504
 
2502
2505
  The Stackable platform exposes a hosted MCP (Model Context Protocol) server that any compatible AI client can connect to for live access to your account's apps, extensions, and platform metadata.
2503
2506
 
2504
- **Endpoint:** \`https://api-use1.stackablelabs.io/mcp/app-extension\`
2507
+ **Endpoint:** \`${mcpEndpointUrl}\`
2505
2508
 
2506
2509
  ### Available tools (snapshot)
2507
2510
 
@@ -4500,7 +4503,7 @@ var package_default = {
4500
4503
  // src/server.ts
4501
4504
  var MCP_CLIENT_NAME = STANDALONE_CLIENT.MCP;
4502
4505
  var DEFAULT_ADMIN_API_URL = "https://api-use1.stackablelabs.io/admin";
4503
- var DEFAULT_MCP_API_BASE_URL = "https://api-use1.stackablelabs.io/mcp";
4506
+ var DEFAULT_MCP_API_BASE_URL2 = "https://mcp.stackablelabs.io";
4504
4507
  var textContent = (text) => ({ content: [{ type: "text", text }] });
4505
4508
  var errorContent = (text) => ({ content: [{ type: "text", text }], isError: true });
4506
4509
  var createMcpServer = (options = {}) => {
@@ -4521,7 +4524,7 @@ var createMcpServer = (options = {}) => {
4521
4524
  "No auth token available. Provide authContext (server) or performOAuthFlow (CLI)."
4522
4525
  );
4523
4526
  }
4524
- const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL;
4527
+ const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL2;
4525
4528
  return options.performOAuthFlow(`${MCP_API_BASE_URL}/.well-known/oauth-authorization-server`);
4526
4529
  };
4527
4530
  const authHeaders = (token) => ({
@@ -4553,7 +4556,7 @@ var createMcpServer = (options = {}) => {
4553
4556
  } catch (err) {
4554
4557
  const e = err;
4555
4558
  if (e.message.includes("fetch")) {
4556
- const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL;
4559
+ const MCP_API_BASE_URL = process.env.MCP_API_BASE_URL ?? DEFAULT_MCP_API_BASE_URL2;
4557
4560
  return errorContent(
4558
4561
  `MCP auth flow failed: ${e.message}. Check MCP_API_BASE_URL env var (currently "${MCP_API_BASE_URL}"). To re-auth from scratch: rm ${MCP_AUTH_FILE}`
4559
4562
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackable-labs/mcp-app-extension",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mcp-app-extension": "./dist/index.js"