@ateam-ai/mcp 0.4.87 → 0.4.88

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.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/src/tools.js +16 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ateam-ai/mcp",
3
- "version": "0.4.87",
3
+ "version": "0.4.88",
4
4
  "mcpName": "io.github.ariekogan/ateam-mcp",
5
5
  "description": "A-Team MCP Server — build, validate, and deploy multi-agent solutions from any AI environment",
6
6
  "type": "module",
@@ -13,7 +13,7 @@
13
13
  "start:http": "node src/index.js --http",
14
14
  "dev": "node --watch src/index.js",
15
15
  "dev:http": "node --watch src/index.js --http",
16
- "test": "node test/session-isolation.test.mjs && node test/widget-protocol.test.mjs && node test/actor-binding.test.mjs && node test/spec-topics.test.mjs && node --test test/deploy-status-truth.test.mjs"
16
+ "test": "node test/session-isolation.test.mjs && node test/widget-protocol.test.mjs && node test/actor-binding.test.mjs && node test/spec-topics.test.mjs && node test/example-types.test.mjs && node --test test/deploy-status-truth.test.mjs"
17
17
  },
18
18
  "keywords": [
19
19
  "mcp",
package/src/tools.js CHANGED
@@ -633,9 +633,9 @@ export const tools = [
633
633
  properties: {
634
634
  type: {
635
635
  type: "string",
636
- enum: ["skill", "connector", "connector-ui", "solution", "script-cache-skill", "ui-plugin-native", "index"],
636
+ enum: ["skill", "connector", "connector-ui", "solution", "script-cache-skill", "ui-plugin-native", "ui-plugin-iframe", "device-tools", "index"],
637
637
  description:
638
- "Example type: 'skill' = Order Support Agent, 'connector' = stdio MCP connector, 'connector-ui' = UI-capable connector, 'solution' = full 3-skill e-commerce solution, 'script-cache-skill' = fat-tool skill with script_cache opt-in (reference implementation of script-level JIT shortcuts — study this before building any browser-automation skill), 'ui-plugin-native' = complete working React Native (mobile) UI plugin (rn-src/index.tsx + esbuild build:rn → rn-bundle, @adas/plugin-sdk, es2015), 'index' = list all available examples",
638
+ "Example type: 'skill' = Order Support Agent, 'connector' = stdio MCP connector, 'connector-ui' = UI-capable connector, 'solution' = full 3-skill e-commerce solution, 'script-cache-skill' = fat-tool skill with script_cache opt-in (reference implementation of script-level JIT shortcuts — study this before building any browser-automation skill), 'ui-plugin-native' = complete working React Native (mobile) UI plugin (rn-src/index.tsx + esbuild build:rn → rn-bundle, @adas/plugin-sdk, es2015), 'ui-plugin-iframe' = complete working web (iframe) UI plugin with the postMessage protocol, 'device-tools' = a solution's OWN tools that execute ON THE PHONE (runtime:\"device\") — BOTH halves and why they must agree: the plugin-bundle implementation, the connector manifest that declares it (Core cannot introspect a phone, so the manifest is the entire contract), and the skill wiring without which the skill gets none of them. Read this before designing anything that needs a LIVE device reading rather than the last synced one, 'index' = list all available examples",
639
639
  },
640
640
  },
641
641
  required: ["type"],
@@ -2522,6 +2522,8 @@ const EXAMPLE_PATHS = {
2522
2522
  solution: "/spec/examples/solution",
2523
2523
  "script-cache-skill": "/spec/examples/script-cache-skill",
2524
2524
  "ui-plugin-native": "/spec/examples/ui-plugin-native",
2525
+ "ui-plugin-iframe": "/spec/examples/ui-plugin-iframe",
2526
+ "device-tools": "/spec/examples/device-tools",
2525
2527
  };
2526
2528
 
2527
2529
  // Tools that are tenant-aware — require EXPLICIT ateam_auth (env vars alone not enough).
@@ -3559,7 +3561,18 @@ const handlers = {
3559
3561
 
3560
3562
  ateam_get_workflows: async (_args, sid) => get("/spec/workflows", sid),
3561
3563
 
3562
- ateam_get_examples: async ({ type }, sid) => get(EXAMPLE_PATHS[type], sid),
3564
+ ateam_get_examples: async ({ type }, sid) => {
3565
+ // An unknown type used to reach get(undefined) and fetch the API root, so a
3566
+ // typo answered with something that looked like a valid response. Say what
3567
+ // exists instead — the caller cannot see this map.
3568
+ const path = EXAMPLE_PATHS[type];
3569
+ if (!path) {
3570
+ throw new Error(
3571
+ `Unknown example type "${type}". Available: ${Object.keys(EXAMPLE_PATHS).join(", ")}.`
3572
+ );
3573
+ }
3574
+ return get(path, sid);
3575
+ },
3563
3576
 
3564
3577
  // Design-time capability advisor. Proxies to the Builder's /spec/advisor
3565
3578
  // (LLM over the curated capability catalog). Public endpoint (auth-exempt),