Skip to main content
Glama

Server Details

Build, validate, and deploy multi-agent AI solutions from any AI environment.

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
42.7% over 43 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
ariekogan/ateam-mcp
GitHub Stars
1
Server Listing
ateam-mcp

TDQS

A3.9/5.0

Scored across 59 tools

Disambiguation4/5

Descriptions are unusually thorough about contrast (get_connector_source vs get_deployed_connector_source, chain_status vs get_chain, patch vs github_patch), which defuses most confusion. Still, several near-neighbors require careful reading to separate: github_write vs github_patch (both write a repo file), test_status vs chain_status vs get_chain, and the verify/verify_consistency trio overlap in intent.

Naming Consistency4/5

Strong, predictable ateam_-prefixed snake_case with verb_noun for the core (get_solution, create_connector, delete_skill, list_solutions) plus a clean github_* namespace. Minor deviations: noun_status/status_all/sync_all use a suffix style, and bare verbs like verify, redeploy, bootstrap break the verb_noun pattern.

Tool Count2/5

59 tools is far past the point where an agent can hold the surface in context, and several clusters are consolidatable (multiple status pollers, three verify tools, five-plus source/read tools). The domain is broad, but the count is driven partly by one-tool-per-edge-case rather than a minimal coherent set.

Completeness5/5

Coverage is exceptional: full CRUD plus lifecycle for connectors, skills, and solutions; a complete GitHub workflow (status, log, read, write, patch, diff, promote, sync, reconcile, rollback, versions, push/pull); testing, verification, and diagnostic introspection all present. Dead ends are rare — missing source has explicit recovery paths (recover_connector_source, github_pull).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Addedateam_get_deployed_connector_source
    • Changedateam_get_examples2 fields changed
      • changedInput schema / properties / type / description
        Previous value: -"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"New value: +"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"
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "skill",
        -  "connector",
        -  "connector-ui",
        -  "solution",
        -  "script-cache-skill",
        -  "ui-plugin-native",
        -  "index"
        -]New value: +[
        +  "skill",
        +  "connector",
        +  "connector-ui",
        +  "solution",
        +  "script-cache-skill",
        +  "ui-plugin-native",
        +  "ui-plugin-iframe",
        +  "device-tools",
        +  "index"
        +]
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'capabilities' = START HERE IF YOU ARE NEW — the capability index, organised by what a solution DOES rather than by our build artifacts: can I see what the user sees? talk with them out loud? know where they are and that they are moving? act while they sleep? remember each user? show them something? Each question gets a one-word answer (yes / yes-with-gaps / not yet / unknown) and the topics to read next. Every other topic below is named after an ARTIFACT, so if you do not already know our vocabulary this is the only door you can find by thinking about your own problem. 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget. 'device-capabilities' = THE DEVICE CAPABILITY MATRIX, GENERATED from the mobile SDK's own artefacts and stamped with their hashes: every native.* API (mechanical one-shot verbs), every deviceState.* domain (semantic state a reasoning loop reads, with freshness + confidence) and every server-called device.* tool, each with status (done / partial / shape-only / missing) and what is left. READ THIS before concluding the phone cannot do something — camera, video, scanning, vision, sensors, location, on-device storage. Absence from any other spec topic is NOT evidence. 'monitoring' = THE MONITORING CONTRACT: which tools are safe to call in a poll loop (with cost / poll interval / whether output stays bounded as the run grows), which are not and what to use instead, plus the running ateam-mcp version. Read this BEFORE writing any loop that watches a build — the safe poll is ateam_chain_status, never ateam_get_chain."New value: +"What to fetch: 'realizations' = HOW to build a capability: for each one the valid physical routes with use_when / do_not_use_when / execution / freshness, so device-dependent design picks a route deliberately instead of by accident. 'capabilities' = START HERE IF YOU ARE NEW — the capability index, organised by what a solution DOES rather than by our build artifacts: can I see what the user sees? talk with them out loud? know where they are and that they are moving? act while they sleep? remember each user? show them something? Each question gets a one-word answer (yes / yes-with-gaps / not yet / unknown) and the topics to read next. Every other topic below is named after an ARTIFACT, so if you do not already know our vocabulary this is the only door you can find by thinking about your own problem. 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget. 'device-capabilities' = THE DEVICE CAPABILITY MATRIX, GENERATED from the mobile SDK's own artefacts and stamped with their hashes: every native.* API (mechanical one-shot verbs), every deviceState.* domain (semantic state a reasoning loop reads, with freshness + confidence) and every server-called device.* tool, each with status (done / partial / shape-only / missing) and what is left. READ THIS before concluding the phone cannot do something — camera, video, scanning, vision, sensors, location, on-device storage. Absence from any other spec topic is NOT evidence. 'monitoring' = THE MONITORING CONTRACT: which tools are safe to call in a poll loop (with cost / poll interval / whether output stays bounded as the run grows), which are not and what to use instead, plus the running ateam-mcp version. Read this BEFORE writing any loop that watches a build — the safe poll is ateam_chain_status, never ateam_get_chain."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "capabilities",
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers",
        -  "widgets",
        -  "ui-plugins",
        -  "actor-storage",
        -  "voice",
        -  "voice-native",
        -  "triggers",
        -  "sub-agent",
        -  "consumer-roles",
        -  "mobile-connector",
        -  "device-capabilities",
        -  "monitoring"
        -]New value: +[
        +  "capabilities",
        +  "realizations",
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers",
        +  "widgets",
        +  "ui-plugins",
        +  "actor-storage",
        +  "voice",
        +  "voice-native",
        +  "triggers",
        +  "sub-agent",
        +  "consumer-roles",
        +  "mobile-connector",
        +  "device-capabilities",
        +  "monitoring"
        +]
    • Addedateam_recover_connector_source
  2. 1 tool update
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget. 'monitoring' = THE MONITORING CONTRACT: which tools are safe to call in a poll loop (with cost / poll interval / whether output stays bounded as the run grows), which are not and what to use instead, plus the running ateam-mcp version. Read this BEFORE writing any loop that watches a build — the safe poll is ateam_chain_status, never ateam_get_chain."New value: +"What to fetch: 'capabilities' = START HERE IF YOU ARE NEW — the capability index, organised by what a solution DOES rather than by our build artifacts: can I see what the user sees? talk with them out loud? know where they are and that they are moving? act while they sleep? remember each user? show them something? Each question gets a one-word answer (yes / yes-with-gaps / not yet / unknown) and the topics to read next. Every other topic below is named after an ARTIFACT, so if you do not already know our vocabulary this is the only door you can find by thinking about your own problem. 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget. 'device-capabilities' = THE DEVICE CAPABILITY MATRIX, GENERATED from the mobile SDK's own artefacts and stamped with their hashes: every native.* API (mechanical one-shot verbs), every deviceState.* domain (semantic state a reasoning loop reads, with freshness + confidence) and every server-called device.* tool, each with status (done / partial / shape-only / missing) and what is left. READ THIS before concluding the phone cannot do something — camera, video, scanning, vision, sensors, location, on-device storage. Absence from any other spec topic is NOT evidence. 'monitoring' = THE MONITORING CONTRACT: which tools are safe to call in a poll loop (with cost / poll interval / whether output stays bounded as the run grows), which are not and what to use instead, plus the running ateam-mcp version. Read this BEFORE writing any loop that watches a build — the safe poll is ateam_chain_status, never ateam_get_chain."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers",
        -  "widgets",
        -  "ui-plugins",
        -  "actor-storage",
        -  "voice",
        -  "voice-native",
        -  "triggers",
        -  "sub-agent",
        -  "consumer-roles",
        -  "mobile-connector",
        -  "monitoring"
        -]New value: +[
        +  "capabilities",
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers",
        +  "widgets",
        +  "ui-plugins",
        +  "actor-storage",
        +  "voice",
        +  "voice-native",
        +  "triggers",
        +  "sub-agent",
        +  "consumer-roles",
        +  "mobile-connector",
        +  "device-capabilities",
        +  "monitoring"
        +]
  3. 19 tool updates
    • Changedateam_chain_status2 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "description": "Optional. WHO is asking. A job belongs to an actor and Core enforces that on per-job reads, so a tenant key alone is refused. Usually unnecessary — the session remembers the actor from ateam_conversation/ateam_test_skill. Pass it to inspect a job run by a DIFFERENT actor (e.g. a real user's).",
        +  "type": "string"
        +}
      • addedInput schema / properties / job_id
        Added value: +{
        +  "description": "Alias for chain_id — any job in the chain resolves to the chain aggregate. The handler has always accepted it; without this declaration MCP stripped it before the handler could see it.",
        +  "type": "string"
        +}
    • Addedateam_connector_logs
    • Changedateam_get_chain4 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "description": "Optional. WHO is asking. A job belongs to an actor and Core enforces that on per-job reads, so a tenant key alone is refused. Usually unnecessary — the session remembers the actor from ateam_conversation/ateam_test_skill. Pass it to inspect a job run by a DIFFERENT actor (e.g. a real user's).",
        +  "type": "string"
        +}
      • addedInput schema / properties / chain_id
        Added value: +{
        +  "description": "THE EXECUTION'S IDENTITY — what ateam_conversation returns and what you actually hold. A chain is the whole run: root job + every handoff + every askAnySkill subcall. Prefer this.",
        +  "type": "string"
        +}
      • changedInput schema / properties / job_id / description
        Previous value: -"The root job ID of the chain to inspect (or any job inside the chain — Core walks up to the root)."New value: +"Alias for chain_id. Any job inside the chain works — Core walks up to the root — but you rarely hold one; prefer chain_id."
      • changedInput schema / required
        Previous value: -[
        -  "job_id"
        -]New value: +[]
    • Addedateam_get_execution_logs
    • Addedateam_get_lessons
    • Addedateam_get_metrics
    • Addedateam_get_progress
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget. 'monitoring' = THE MONITORING CONTRACT: which tools are safe to call in a poll loop (with cost / poll interval / whether output stays bounded as the run grows), which are not and what to use instead, plus the running ateam-mcp version. Read this BEFORE writing any loop that watches a build — the safe poll is ateam_chain_status, never ateam_get_chain."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers",
        -  "widgets",
        -  "ui-plugins",
        -  "actor-storage",
        -  "voice",
        -  "voice-native",
        -  "triggers",
        -  "sub-agent",
        -  "consumer-roles",
        -  "mobile-connector"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers",
        +  "widgets",
        +  "ui-plugins",
        +  "actor-storage",
        +  "voice",
        +  "voice-native",
        +  "triggers",
        +  "sub-agent",
        +  "consumer-roles",
        +  "mobile-connector",
        +  "monitoring"
        +]
    • Changedateam_github_patch1 field changed
      • addedInput schema / properties / branch
        Added value: +{
        +  "description": "Branch to read/write (alias for `ref`). Declared so MCP does not strip it — an undeclared argument is dropped silently, which made a branch:\"dev\" read return `main` with no error.",
        +  "type": "string"
        +}
    • Changedateam_github_read1 field changed
      • addedInput schema / properties / branch
        Added value: +{
        +  "description": "Branch to read/write (alias for `ref`). Declared so MCP does not strip it — an undeclared argument is dropped silently, which made a branch:\"dev\" read return `main` with no error.",
        +  "type": "string"
        +}
    • Addedateam_github_reconcile
    • Addedateam_github_sync_from_main
    • Addedateam_log_lesson
    • Addedateam_log_progress
    • Changedateam_patch1 field changed
      • changedInput schema / properties / source / description
        Previous value: -"Where the solution/skill definition lives. 'github' (DEFAULT) — read from and write to the tenant's GitHub repo (GitHub is master; the normal path). 'local' — read from and write to the Builder FS store (no GitHub repo required). Use 'local' ONLY for a repo-less bootstrap tenant (e.g. freshly onboarded from a template, before GitHub is connected). This is a DEDICATED, EXPLICIT switch — never a fallback. Redeploy is local in both modes."New value: +"Where the solution/skill definition lives. Omit (DEFAULT) — prefer the tenant's GitHub repo (GitHub is master), but AUTO-DEGRADE to the Builder FS store if the tenant hasn't connected a repo, so a simple def patch always succeeds (it's pushed to GitHub once connected). 'github' — force GitHub; fails loud if not connected (use when you specifically require the repo write). 'local' — force the Builder FS store, no GitHub (repo-less bootstrap tenant). Redeploy is local in all modes."
    • Changedateam_test_abort4 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "description": "Optional. WHO is asking. A job belongs to an actor and Core enforces that on per-job reads, so a tenant key alone is refused. Usually unnecessary — the session remembers the actor from ateam_conversation/ateam_test_skill. Pass it to inspect a job run by a DIFFERENT actor (e.g. a real user's).",
        +  "type": "string"
        +}
      • addedInput schema / properties / chain_id
        Added value: +{
        +  "description": "THE EXECUTION'S IDENTITY — what ateam_conversation returns and what you actually hold. A chain is the whole run: root job + every handoff + every askAnySkill subcall. Prefer this.",
        +  "type": "string"
        +}
      • changedInput schema / properties / job_id / description
        Previous value: -"The job ID to abort"New value: +"Abort ONE job only. Prefer chain_id: aborting the root leaves handoffs running while reporting the test aborted."
      • changedInput schema / required
        Previous value: -[
        -  "solution_id",
        -  "skill_id",
        -  "job_id"
        -]New value: +[
        +  "solution_id"
        +]
    • Changedateam_test_status4 fields changed
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "description": "Optional. WHO is asking. A job belongs to an actor and Core enforces that on per-job reads, so a tenant key alone is refused. Usually unnecessary — the session remembers the actor from ateam_conversation/ateam_test_skill. Pass it to inspect a job run by a DIFFERENT actor (e.g. a real user's).",
        +  "type": "string"
        +}
      • addedInput schema / properties / chain_id
        Added value: +{
        +  "description": "THE EXECUTION'S IDENTITY — what ateam_conversation returns and what you actually hold. A chain is the whole run: root job + every handoff + every askAnySkill subcall. Prefer this.",
        +  "type": "string"
        +}
      • changedInput schema / properties / job_id / description
        Previous value: -"The job ID returned by ateam_test_skill"New value: +"ONE job inside the chain, when you want that job alone. Omit and pass chain_id for the whole run — a root job can be 'completed' while a handoff is still running."
      • changedInput schema / required
        Previous value: -[
        -  "solution_id",
        -  "skill_id",
        -  "job_id"
        -]New value: +[
        +  "solution_id"
        +]
    • Changedateam_upload_connector5 fields changed
      • changedInput schema / properties / files / description
        Previous value: -"Files to upload. By default merges with the GitHub state at `ref`. Set replace:true to wipe the connector dir and write only these files."New value: +"Files to upload — each needs 'path' plus ONE of content (inline string) or content_base64 (escape-safe base64; preferred for multi-file connectors). By default merges with the GitHub state at `ref`. Set replace:true to wipe the connector dir and write only these files."
      • changedInput schema / properties / files / items / properties / content / description
        Previous value: -"File content"New value: +"File content as an inline string. Prefer content_base64 when the content has complex escaping (HTML/JS/JSON)."
      • addedInput schema / properties / files / items / properties / content_base64
        Added value: +{
        +  "description": "File content as a single-line base64 string — escape-safe. PREFERRED for a multi-file connector so large HTML/JS/bundles don't need hand-escaping in the tool call. Provide exactly ONE of content / content_base64 per file.",
        +  "type": "string"
        +}
      • changedInput schema / properties / files / items / required
        Previous value: -[
        -  "path",
        -  "content"
        -]New value: +[
        +  "path"
        +]
      • addedInput schema / properties / force
        Added value: +{
        +  "description": "RECOVERY: respawn the connector + re-inject its CURRENT env even when the source is UNCHANGED. Normally an unchanged-source upload no-ops (unchanged:true) and leaves the process running. But a connector spawned before a shared-secret rotation keeps the STALE secret — it still lists tools (looks healthy) yet 401s on every per-actor call, with no recovery short of a fake source edit. Use `ateam_upload_connector(solution_id, connector_id, github:true, force:true)` to pull the current source and force a fresh respawn (which picks up the current secret). Default: false.",
        +  "type": "boolean"
        +}
    • Addedateam_verify_surface
  4. 3 tool updates
    • Changedateam_get_examples2 fields changed
      • changedInput schema / properties / type / description
        Previous value: -"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), 'index' = list all available examples"New value: +"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"
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "skill",
        -  "connector",
        -  "connector-ui",
        -  "solution",
        -  "script-cache-skill",
        -  "index"
        -]New value: +[
        +  "skill",
        +  "connector",
        +  "connector-ui",
        +  "solution",
        +  "script-cache-skill",
        +  "ui-plugin-native",
        +  "index"
        +]
    • Changedateam_get_solution3 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Optional byte-paging: max bytes of the serialized result to return in this page (pair with 'offset'). Omit both for the whole result (may truncate at the output cap).",
        +  "type": "number"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Optional byte-paging: start returning the serialized result from this byte offset. Use with 'limit' to page a result larger than the ~50KB output cap; the response's _paging.next_offset gives the next page (null when done). Concatenate the `content` slices across pages, then JSON.parse.",
        +  "type": "number"
        +}
      • addedInput schema / properties / section
        Added value: +{
        +  "description": "Optional (with skill_id): return ONLY this section of the skill instead of the whole definition — avoids the ~50KB output truncation on big skills. Dotted paths work (e.g. 'role', 'tools', 'intents.supported', 'policy', 'engine'). Omit for the full skill; use ateam_show_skill_minimal for the slim authoring view.",
        +  "type": "string"
        +}
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory. 'ui-plugins' = the DEEP React Native (mobile) plugin build guide: author in rn-src/, compile with a build:rn esbuild script (format=cjs, target=es2015, external react/react-native/@adas/plugin-sdk) to rn-bundle/index.bundle.js, plain-object export — read this before authoring any MOBILE widget."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers",
        -  "widgets"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers",
        +  "widgets",
        +  "ui-plugins",
        +  "actor-storage",
        +  "voice",
        +  "voice-native",
        +  "triggers",
        +  "sub-agent",
        +  "consumer-roles",
        +  "mobile-connector"
        +]
  5. 7 tool updates
    • Addedateam_chain_status
    • Changedateam_conversation2 fields changed
      • removedInput schema / properties / timeout_ms
        Removed value: -{
        -  "description": "Optional: max wait time in ms (default: 60000, max: 300000).",
        -  "type": "number"
        -}
      • removedInput schema / properties / wait
        Removed value: -{
        -  "description": "If true (default), wait for completion. If false, return job_id immediately for polling.",
        -  "type": "boolean"
        -}
    • Addedateam_design_advisor
    • Changedateam_get_connector_source1 field changed
      • addedInput schema / properties / path
        Added value: +{
        +  "description": "Optional. Read ONE file (e.g. 'server.js', 'ui-dist/panel/index.html'). Omit to get a file manifest (paths + sizes, no content) — a whole connector's source exceeds the ~50KB output limit and truncates, so read files one at a time.",
        +  "type": "string"
        +}
    • Changedateam_patch1 field changed
      • addedInput schema / properties / include_definition
        Added value: +{
        +  "description": "If true, return the FULL patched definition. Default false — the result returns a compact patched_summary instead, because the full definition can exceed the ~50KB output limit and truncate the rest of the result (redeploy status, widget_health).",
        +  "type": "boolean"
        +}
    • Addedateam_spec_search
    • Addedateam_verify
  6. 6 tool updates
    • Changedateam_delete_connector2 fields changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "REQUIRED. Must be exactly true. A missing/false value refuses the call with a recovery hint.",
        +  "type": "boolean"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "solution_id",
        -  "connector_id"
        -]New value: +[
        +  "solution_id",
        +  "connector_id",
        +  "confirm"
        +]
    • Changedateam_delete_skill2 fields changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "REQUIRED. Must be exactly true. A missing/false value refuses the call with a recovery hint.",
        +  "type": "boolean"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "solution_id",
        -  "skill_id"
        -]New value: +[
        +  "solution_id",
        +  "skill_id",
        +  "confirm"
        +]
    • Changedateam_delete_solution3 fields changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "description": "REQUIRED. Must be exactly true. A missing/false value refuses the call with a recovery hint.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / confirm_solution_id
        Added value: +{
        +  "description": "REQUIRED. Must exactly equal `solution_id`. This defeats typos and hallucinated ids — you can't wipe a solution you couldn't spell.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "solution_id"
        -]New value: +[
        +  "solution_id",
        +  "confirm",
        +  "confirm_solution_id"
        +]
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers",
        +  "widgets"
        +]
    • Addedateam_get_widget_catalog
    • Changedateam_patch2 fields changed
      • addedInput schema / properties / dry_run
        Added value: +{
        +  "description": "If true, apply the patch in memory and return the diff (arrays_merged, arrays_replaced, dropped_ids, added_ids, would_write_bytes) WITHOUT writing to GitHub or redeploying. Preview a change before committing to it.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / source
        Added value: +{
        +  "description": "Where the solution/skill definition lives. 'github' (DEFAULT) — read from and write to the tenant's GitHub repo (GitHub is master; the normal path). 'local' — read from and write to the Builder FS store (no GitHub repo required). Use 'local' ONLY for a repo-less bootstrap tenant (e.g. freshly onboarded from a template, before GitHub is connected). This is a DEDICATED, EXPLICIT switch — never a fallback. Redeploy is local in both modes.",
        +  "enum": [
        +    "github",
        +    "local"
        +  ],
        +  "type": "string"
        +}
  7. 2 tool updates
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers",
        -  "widgets"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers"
        +]
    • Removedateam_get_widget_catalog
  8. 2 tool updates
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler), 'widgets' = widget (UI plugin) spec: catalog model, how_to_use block shape (solution.json snippet + opener_call + persona_phrasing + binding_notes), and rules for declaring ui_plugins. Pair with ateam_get_widget_catalog for the live per-tenant inventory."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers",
        +  "widgets"
        +]
    • Addedateam_get_widget_catalog
  9. 6 tool updates
    • Addedateam_get_chain
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide"New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers"
        +]
    • Addedateam_test_notification
    • Changedateam_test_skill3 fields changed
      • addedInput schema / properties / chain_timeout_ms
        Added value: +{
        +  "description": "Optional. Max total ms to wait when wait_for:'chain'. Default 300000 (5 min). Long-running chains (skill-factory, large bundle builds) may need higher. Clamped to [10000, 900000].",
        +  "type": "number"
        +}
      • changedInput schema / properties / wait / description
        Previous value: -"If true (default), wait for completion. If false, return job_id immediately for polling via ateam_test_status."New value: +"Legacy: if false, return job_id immediately for polling. If true or omitted, behaves like wait_for:'root'. Prefer wait_for going forward."
      • addedInput schema / properties / wait_for
        Added value: +{
        +  "description": "What to wait for before returning. 'root' (default) = root job done; 'chain' = every chain job terminal (use for multi-skill flows); 'never' = return job_id immediately (poll via ateam_test_status). When 'chain', the response includes the chain tree under response.chain.",
        +  "enum": [
        +    "root",
        +    "chain",
        +    "never"
        +  ],
        +  "type": "string"
        +}
    • Changedateam_test_status1 field changed
      • addedInput schema / properties / include_chain
        Added value: +{
        +  "description": "If true, includes response.chain — the full chain tree rooted at this job_id (chainJobs[] with parentJobId/relation/depth, executionSteps[] with tool-nesting). Costs one extra Core call. Default false (back-compat).",
        +  "type": "boolean"
        +}
    • Changedateam_upload_connector4 fields changed
      • changedInput schema / properties / files / description
        Previous value: -"Files to upload. Alternative to github=true."New value: +"Files to upload. By default merges with the GitHub state at `ref`. Set replace:true to wipe the connector dir and write only these files."
      • changedInput schema / properties / github / description
        Previous value: -"If true, pull connector files from GitHub repo. Default: false."New value: +"If true, pull connector files from GitHub repo at `ref`. Default: false. Combine with files:[] to use GitHub as the base and overlay your files."
      • addedInput schema / properties / ref
        Added value: +{
        +  "description": "GitHub branch to read from for the BASE state. Default: 'dev' (matches ateam_github_patch). Pass 'main' to read from production. Pre-2026-06-05 callers that relied on the silent-main default must pass ref:'main' explicitly.",
        +  "type": "string"
        +}
      • addedInput schema / properties / replace
        Added value: +{
        +  "description": "Opt into FULL REPLACE: wipe the connector dir and write only the provided `files`. Default: false (= merge with GitHub state at `ref`). Use with intent — sending an incomplete file set with replace:true will break the connector.",
        +  "type": "boolean"
        +}
  10. 6 tool updates
    • Removedateam_get_chain
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide"
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user"
        +]
    • Removedateam_test_notification
    • Changedateam_test_skill3 fields changed
      • removedInput schema / properties / chain_timeout_ms
        Removed value: -{
        -  "description": "Optional. Max total ms to wait when wait_for:'chain'. Default 300000 (5 min). Long-running chains (skill-factory, large bundle builds) may need higher. Clamped to [10000, 900000].",
        -  "type": "number"
        -}
      • changedInput schema / properties / wait / description
        Previous value: -"Legacy: if false, return job_id immediately for polling. If true or omitted, behaves like wait_for:'root'. Prefer wait_for going forward."New value: +"If true (default), wait for completion. If false, return job_id immediately for polling via ateam_test_status."
      • removedInput schema / properties / wait_for
        Removed value: -{
        -  "description": "What to wait for before returning. 'root' (default) = root job done; 'chain' = every chain job terminal (use for multi-skill flows); 'never' = return job_id immediately (poll via ateam_test_status). When 'chain', the response includes the chain tree under response.chain.",
        -  "enum": [
        -    "root",
        -    "chain",
        -    "never"
        -  ],
        -  "type": "string"
        -}
    • Changedateam_test_status1 field changed
      • removedInput schema / properties / include_chain
        Removed value: -{
        -  "description": "If true, includes response.chain — the full chain tree rooted at this job_id (chainJobs[] with parentJobId/relation/depth, executionSteps[] with tool-nesting). Costs one extra Core call. Default false (back-compat).",
        -  "type": "boolean"
        -}
    • Changedateam_upload_connector4 fields changed
      • changedInput schema / properties / files / description
        Previous value: -"Files to upload. By default merges with the GitHub state at `ref`. Set replace:true to wipe the connector dir and write only these files."New value: +"Files to upload. Alternative to github=true."
      • changedInput schema / properties / github / description
        Previous value: -"If true, pull connector files from GitHub repo at `ref`. Default: false. Combine with files:[] to use GitHub as the base and overlay your files."New value: +"If true, pull connector files from GitHub repo. Default: false."
      • removedInput schema / properties / ref
        Removed value: -{
        -  "description": "GitHub branch to read from for the BASE state. Default: 'dev' (matches ateam_github_patch). Pass 'main' to read from production. Pre-2026-06-05 callers that relied on the silent-main default must pass ref:'main' explicitly.",
        -  "type": "string"
        -}
      • removedInput schema / properties / replace
        Removed value: -{
        -  "description": "Opt into FULL REPLACE: wipe the connector dir and write only the provided `files`. Default: false (= merge with GitHub state at `ref`). Use with intent — sending an incomplete file set with replace:true will break the connector.",
        -  "type": "boolean"
        -}
  11. 6 tool updates
    • Addedateam_get_chain
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide"New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers"
        +]
    • Addedateam_test_notification
    • Changedateam_test_skill3 fields changed
      • addedInput schema / properties / chain_timeout_ms
        Added value: +{
        +  "description": "Optional. Max total ms to wait when wait_for:'chain'. Default 300000 (5 min). Long-running chains (skill-factory, large bundle builds) may need higher. Clamped to [10000, 900000].",
        +  "type": "number"
        +}
      • changedInput schema / properties / wait / description
        Previous value: -"If true (default), wait for completion. If false, return job_id immediately for polling via ateam_test_status."New value: +"Legacy: if false, return job_id immediately for polling. If true or omitted, behaves like wait_for:'root'. Prefer wait_for going forward."
      • addedInput schema / properties / wait_for
        Added value: +{
        +  "description": "What to wait for before returning. 'root' (default) = root job done; 'chain' = every chain job terminal (use for multi-skill flows); 'never' = return job_id immediately (poll via ateam_test_status). When 'chain', the response includes the chain tree under response.chain.",
        +  "enum": [
        +    "root",
        +    "chain",
        +    "never"
        +  ],
        +  "type": "string"
        +}
    • Changedateam_test_status1 field changed
      • addedInput schema / properties / include_chain
        Added value: +{
        +  "description": "If true, includes response.chain — the full chain tree rooted at this job_id (chainJobs[] with parentJobId/relation/depth, executionSteps[] with tool-nesting). Costs one extra Core call. Default false (back-compat).",
        +  "type": "boolean"
        +}
    • Changedateam_upload_connector4 fields changed
      • changedInput schema / properties / files / description
        Previous value: -"Files to upload. Alternative to github=true."New value: +"Files to upload. By default merges with the GitHub state at `ref`. Set replace:true to wipe the connector dir and write only these files."
      • changedInput schema / properties / github / description
        Previous value: -"If true, pull connector files from GitHub repo. Default: false."New value: +"If true, pull connector files from GitHub repo at `ref`. Default: false. Combine with files:[] to use GitHub as the base and overlay your files."
      • addedInput schema / properties / ref
        Added value: +{
        +  "description": "GitHub branch to read from for the BASE state. Default: 'dev' (matches ateam_github_patch). Pass 'main' to read from production. Pre-2026-06-05 callers that relied on the silent-main default must pass ref:'main' explicitly.",
        +  "type": "string"
        +}
      • addedInput schema / properties / replace
        Added value: +{
        +  "description": "Opt into FULL REPLACE: wipe the connector dir and write only the provided `files`. Default: false (= merge with GitHub state at `ref`). Use with intent — sending an incomplete file set with replace:true will break the connector.",
        +  "type": "boolean"
        +}
  12. 5 tool updates
    • Removedateam_get_chain
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide"
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user",
        -  "python_helpers"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user"
        +]
    • Removedateam_test_notification
    • Changedateam_test_skill3 fields changed
      • removedInput schema / properties / chain_timeout_ms
        Removed value: -{
        -  "description": "Optional. Max total ms to wait when wait_for:'chain'. Default 300000 (5 min). Long-running chains (skill-factory, large bundle builds) may need higher. Clamped to [10000, 900000].",
        -  "type": "number"
        -}
      • changedInput schema / properties / wait / description
        Previous value: -"Legacy: if false, return job_id immediately for polling. If true or omitted, behaves like wait_for:'root'. Prefer wait_for going forward."New value: +"If true (default), wait for completion. If false, return job_id immediately for polling via ateam_test_status."
      • removedInput schema / properties / wait_for
        Removed value: -{
        -  "description": "What to wait for before returning. 'root' (default) = root job done; 'chain' = every chain job terminal (use for multi-skill flows); 'never' = return job_id immediately (poll via ateam_test_status). When 'chain', the response includes the chain tree under response.chain.",
        -  "enum": [
        -    "root",
        -    "chain",
        -    "never"
        -  ],
        -  "type": "string"
        -}
    • Changedateam_test_status1 field changed
      • removedInput schema / properties / include_chain
        Removed value: -{
        -  "description": "If true, includes response.chain — the full chain tree rooted at this job_id (chainJobs[] with parentJobId/relation/depth, executionSteps[] with tool-nesting). Costs one extra Core call. Default false (back-compat).",
        -  "type": "boolean"
        -}
  13. 5 tool updates
    • Addedateam_get_chain
    • Changedateam_get_spec2 fields changed
      • changedInput schema / properties / topic / description
        Previous value: -"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide"New value: +"What to fetch: 'overview' = API overview + endpoints, 'skill' = full skill spec, 'solution' = full solution spec, 'enums' = all enum values, 'connector-multi-user' = multi-user connector guide, 'python_helpers' = adas.* helper namespace for run_python_script orchestration (read this when designing personas that read state → call tools → checkpoint → status; without it, scripts hand-roll JSON parsing and tool delegation = 5-10x larger and brittler)."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "overview",
        -  "skill",
        -  "solution",
        -  "enums",
        -  "connector-multi-user"
        -]New value: +[
        +  "overview",
        +  "skill",
        +  "solution",
        +  "enums",
        +  "connector-multi-user",
        +  "python_helpers"
        +]
    • Addedateam_test_notification
    • Changedateam_test_skill3 fields changed
      • addedInput schema / properties / chain_timeout_ms
        Added value: +{
        +  "description": "Optional. Max total ms to wait when wait_for:'chain'. Default 300000 (5 min). Long-running chains (skill-factory, large bundle builds) may need higher. Clamped to [10000, 900000].",
        +  "type": "number"
        +}
      • changedInput schema / properties / wait / description
        Previous value: -"If true (default), wait for completion. If false, return job_id immediately for polling via ateam_test_status."New value: +"Legacy: if false, return job_id immediately for polling. If true or omitted, behaves like wait_for:'root'. Prefer wait_for going forward."
      • addedInput schema / properties / wait_for
        Added value: +{
        +  "description": "What to wait for before returning. 'root' (default) = root job done; 'chain' = every chain job terminal (use for multi-skill flows); 'never' = return job_id immediately (poll via ateam_test_status). When 'chain', the response includes the chain tree under response.chain.",
        +  "enum": [
        +    "root",
        +    "chain",
        +    "never"
        +  ],
        +  "type": "string"
        +}
    • Changedateam_test_status1 field changed
      • addedInput schema / properties / include_chain
        Added value: +{
        +  "description": "If true, includes response.chain — the full chain tree rooted at this job_id (chainJobs[] with parentJobId/relation/depth, executionSteps[] with tool-nesting). Costs one extra Core call. Default false (back-compat).",
        +  "type": "boolean"
        +}
  14. 1 tool update
    • Removedateam_test_notification
  15. 1 tool update
    • Addedateam_test_notification
  16. 3 tool updates
    • Changedateam_build_and_run4 fields changed
      • changedInput schema / properties / github / description
        Previous value: -"Optional: if true, pull connector source code from the solution's GitHub repo. AUTO-DETECTED: if you omit both mcp_store and github, the system checks if a repo exists and pulls from it automatically. You rarely need to set this explicitly."New value: +"Optional: if true, pull connector source code from main. AUTO-DETECTED: if you omit both mcp_store and github, the system checks if a repo exists and pulls from main automatically."
      • changedInput schema / properties / skills / description
        Previous value: -"Optional after first deploy: skill definitions. If omitted, auto-pulled from GitHub repo (skills/{id}/skill.json)."New value: +"Optional after first deploy: skill definitions. If omitted, auto-pulled from main (skills/{id}/skill.json)."
      • changedInput schema / properties / solution / description
        Previous value: -"Full solution definition. Required on first deploy. After first deploy, just pass solution_id instead — everything is auto-pulled from GitHub."New value: +"Full solution definition. Required on first deploy. After first deploy, just pass solution_id instead — everything is auto-pulled from GitHub main."
      • changedInput schema / properties / solution_id / description
        Previous value: -"The solution ID. Use this INSTEAD of passing the full solution object — the solution definition is auto-pulled from GitHub. Required if solution object is omitted."New value: +"The solution ID. Use this INSTEAD of passing the full solution object — the solution definition is auto-pulled from main. Required if solution object is omitted."
    • Changedateam_github_diff2 fields changed
      • changedInput schema / properties / base / description
        Previous value: -"Base branch (the target). Default: 'main'."New value: +"Base branch/tag/sha (the target — what you're comparing TO). Default: 'main'."
      • changedInput schema / properties / head / description
        Previous value: -"Head branch (the source). Default: 'dev'."New value: +"Head branch/tag/sha (the source — what you're comparing FROM). Default: 'dev'."
    • Addedateam_verify_consistency
  17. 7 tool updates
    • Addedateam_github_diff
    • Changedateam_github_log1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "default": "main",
        +  "description": "Branch to read commits from. Default: 'main'.",
        +  "type": "string"
        +}
    • Changedateam_github_patch1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "default": "dev",
        +  "description": "Target branch. Default: 'dev' (safe — won't touch prod). Use 'main' only for emergency hotfixes.",
        +  "type": "string"
        +}
    • Changedateam_github_promote3 fields changed
      • addedInput schema / properties / dry_run
        Added value: +{
        +  "description": "If true: show the diff (commits + files about to ship) without merging. Default: false.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / label / description
        Previous value: -"Optional: human-readable label for this checkpoint (e.g., 'before refactor', 'v2 stable')"New value: +"Optional: human-readable label for the auto-tag (e.g., 'v2 stable', 'before refactor')"
      • addedInput schema / properties / skip_tag
        Added value: +{
        +  "description": "If true: merge without creating an auto-tag. Default: false (auto-tag enabled).",
        +  "type": "boolean"
        +}
    • Changedateam_github_read1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "default": "main",
        +  "description": "Branch, tag, or commit SHA to read from. Default: 'main' (prod). Use 'dev' to read in-progress work.",
        +  "type": "string"
        +}
    • Changedateam_github_rollback3 fields changed
      • removedInput schema / properties / tag
        Removed value: -{
        -  "description": "Required: checkpoint tag to rollback to (e.g., 'safe-2026-03-11-001')",
        -  "type": "string"
        -}
      • addedInput schema / properties / target
        Added value: +{
        +  "description": "Tag (e.g., 'safe-2026-05-19-001') or commit SHA to revert main to. Use ateam_github_list_versions to find safe-* tags.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "solution_id",
        -  "tag"
        -]New value: +[
        +  "solution_id",
        +  "target"
        +]
    • Changedateam_github_write1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "default": "dev",
        +  "description": "Target branch. Default: 'dev'.",
        +  "type": "string"
        +}
  18. 2 tool updates
    • Addedateam_show_skill_minimal
    • Addedateam_show_solution_minimal

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.