Skip to main content
Glama

View Session Stack Status

convostatus
Read-only

INSPECTION: View the current infrastructure stack for a session Returns the current state of the user's infrastructure design including:

Components - Selected infrastructure services (VPC, databases, caching, etc.) • Shows what services the user has chosen (e.g., PostgreSQL, Redis, S3) • Includes architecture decisions (EKS vs EC2, monolith vs microservices)

Config - Configuration details for each component • Database sizes, replica counts, storage amounts • Cache settings, queue configurations • Backup schedules and retention policies

Pricing - Cost estimates (when available) • Monthly cost estimates per component • Total estimated monthly spend

Phase Indicators - Where the user is in the design workflow: • hasComponents: User has selected infrastructure services • hasConfig: User has configured component details • hasPricing: Cost estimates have been calculated • hasTerraform: Ready for Terraform generation

Use this tool when the user asks 'what is my current stack?', 'show my infrastructure', 'what have I selected?', or similar questions about their design progress. REQUIRES: session_id from convoopen response (format: sess_v2_...).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "session_id": "<session_id>"
    },
    "name": "convostatus"
  }
}

Input Schema

NameRequiredDescriptionDefault
job_idNoOptional. Specific job ID to inspect. When omitted, returns the status of the latest job for the session.
session_idYesSession ID from convoopen — pass back EXACTLY as returned, including the ?token=... suffix (format: sess_v2_*?token=*). The suffix is part of the session credential; never strip it when summarizing.

Output Schema

NameRequiredDescriptionDefault
hintsNoGuidance for the calling agent: what to do next and which tools relate to this result.
configNoConfiguration of each selected component.
personaNoWhat InsideOut knows about the user and their target cloud.
pricingNoCost estimate details per component.
hasConfigNoTrue when the stack configuration is complete.
componentsNoSelected stack components, keyed by component.
hasPricingNoTrue when a cost estimate exists.
session_idNoSession ID this result belongs to (format sess_v2_*?token=*). Pass it back verbatim to later tools.
versioningNoStack version state, when the backend tracks versions.
hasFeaturesNoTrue when the session has selected features.
hasAnyConfigNoTrue when any component has configuration.
hasSelectionNoTrue when the session has selected stack components.
hasTerraformNoTrue when Terraform has been generated (tfgenerate).
hasDeploymentNoTrue when the stack is deployed.
session_sourceNoIDE or tool that opened the session (for example 'claude-code').
hasDeployAttemptNoTrue when a deploy has been started at least once.
hasCloudConnectionNoTrue when cloud credentials are connected to the session.
cloudConnectionInfoNoCloud credential status from the backend (has_credentials, expired, cloud, auth_method, account or project ID, ...).
grandTotalMonthlyUSDNoEstimated total monthly cost in US dollars, or null when there is no estimate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "cloudConnectionInfo": {
      +      "description": "Cloud credential status from the backend (has_credentials, expired, cloud, auth_method, account or project ID, ...).",
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    },
      +    "components": {
      +      "description": "Selected stack components, keyed by component.",
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    },
      +    "config": {
      +      "description": "Configuration of each selected component.",
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    },
      +    "grandTotalMonthlyUSD": {
      +      "description": "Estimated total monthly cost in US dollars, or null when there is no estimate.",
      +      "type": [
      +        "null",
      +        "number"
      +      ]
      +    },
      +    "hasAnyConfig": {
      +      "description": "True when any component has configuration.",
      +      "type": "boolean"
      +    },
      +    "hasCloudConnection": {
      +      "description": "True when cloud credentials are connected to the session.",
      +      "type": "boolean"
      +    },
      +    "hasConfig": {
      +      "description": "True when the stack configuration is complete.",
      +      "type": "boolean"
      +    },
      +    "hasDeployAttempt": {
      +      "description": "True when a deploy has been started at least once.",
      +      "type": "boolean"
      +    },
      +    "hasDeployment": {
      +      "description": "True when the stack is deployed.",
      +      "type": "boolean"
      +    },
      +    "hasFeatures": {
      +      "description": "True when the session has selected features.",
      +      "type": "boolean"
      +    },
      +    "hasPricing": {
      +      "description": "True when a cost estimate exists.",
      +      "type": "boolean"
      +    },
      +    "hasSelection": {
      +      "description": "True when the session has selected stack components.",
      +      "type": "boolean"
      +    },
      +    "hasTerraform": {
      +      "description": "True when Terraform has been generated (tfgenerate).",
      +      "type": "boolean"
      +    },
      +    "hints": {
      +      "description": "Guidance for the calling agent: what to do next and which tools relate to this result.",
      +      "properties": {
      +        "next_actions": {
      +          "description": "Suggested next steps, in order, often as ready-to-run tool calls.",
      +          "items": {
      +            "description": "One suggested next step.",
      +            "type": "string"
      +          },
      +          "type": [
      +            "null",
      +            "array"
      +          ]
      +        },
      +        "related_tools": {
      +          "description": "Names of tools that are useful after this result.",
      +          "items": {
      +            "description": "A tool name.",
      +            "type": "string"
      +          },
      +          "type": [
      +            "null",
      +            "array"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    },
      +    "persona": {
      +      "description": "What InsideOut knows about the user and their target cloud.",
      +      "properties": {
      +        "builderIds": {
      +          "description": "IDs of the stack builders selected for this session.",
      +          "items": {
      +            "description": "A builder ID.",
      +            "type": "string"
      +          },
      +          "type": [
      +            "null",
      +            "array"
      +          ]
      +        },
      +        "cloudProvider": {
      +          "description": "Target cloud provider ('aws' or 'gcp').",
      +          "type": "string"
      +        },
      +        "email": {
      +          "description": "User's email address.",
      +          "type": "string"
      +        },
      +        "githubUsername": {
      +          "description": "GitHub username used for deploy commit attribution.",
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "User's display name.",
      +          "type": "string"
      +        }
      +      },
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    },
      +    "pricing": {
      +      "description": "Cost estimate details per component.",
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    },
      +    "session_id": {
      +      "description": "Session ID this result belongs to (format sess_v2_*?token=*). Pass it back verbatim to later tools.",
      +      "type": "string"
      +    },
      +    "session_source": {
      +      "description": "IDE or tool that opened the session (for example 'claude-code').",
      +      "type": "string"
      +    },
      +    "versioning": {
      +      "description": "Stack version state, when the backend tracks versions.",
      +      "properties": {
      +        "change_summary": {
      +          "description": "Summary of the draft's changes.",
      +          "type": "string"
      +        },
      +        "changes": {
      +          "description": "Component changes in the draft.",
      +          "items": {
      +            "description": "One component change.",
      +            "type": [
      +              "null",
      +              "object"
      +            ]
      +          },
      +          "type": [
      +            "null",
      +            "array"
      +          ]
      +        },
      +        "current_version": {
      +          "description": "Latest committed stack version number.",
      +          "type": "integer"
      +        },
      +        "draft_version": {
      +          "description": "Draft version number, when a draft exists.",
      +          "type": "integer"
      +        },
      +        "has_pending_changes": {
      +          "description": "True when the draft differs from the current version.",
      +          "type": "boolean"
      +        },
      +        "pricing_changes": {
      +          "description": "Cost changes in the draft.",
      +          "items": {
      +            "description": "One cost change.",
      +            "type": [
      +              "null",
      +              "object"
      +            ]
      +          },
      +          "type": [
      +            "null",
      +            "array"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "null",
      +        "object"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed4 schema fields changed
    • removedInput schema / properties / include_code
      Removed value: -{
      -  "type": [
      -    "null",
      -    "boolean"
      -  ]
      -}
    • addedInput schema / properties / job_id
      Added value: +{
      +  "description": "Optional. Specific job ID to inspect. When omitted, returns the status of the latest job for the session.",
      +  "type": "string"
      +}
    • addedInput schema / properties / session_id / description
      Added value: +"Session ID from convoopen — pass back EXACTLY as returned, including the ?token=... suffix (format: sess_v2_*?token=*). The suffix is part of the session credential; never strip it when summarizing."
    • addedInput schema / properties / session_id / pattern
      Added value: +"^sess_v2_[0-9A-Za-z]+\\?token=[0-9a-f]+$"
  3. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: the session credential requirement ('session_id from convoopen response', never strip the ?token= suffix) and the meaning of each phase indicator. It does not disclose whether the tool is a pure snapshot or can mutate design state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the usage triggers are easy to find, which is good. However, the bulk of the text is a multi-level enumeration of return values — an output schema already exists, so this section is largely redundant and crowds out more decision-relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an existing output schema, the description carries the parts that matter: what the tool answers, when to call it, and the credential constraint on session_id. It is complete enough for correct invocation; the only soft spot is the absence of any disambiguation against the many sibling inspection tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description does not exceed it meaningfully — the format and token-preservation guidance it repeats is already spelled out in the schema. It does add one piece of information the schema lacks: that session_id originates from a convoopen response. The optional job_id and its 'latest job' fallback behavior are never mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — 'View the current infrastructure stack for a session' — and itemizes what that stack view contains (components, config, pricing, phase indicators). It is clear on its own, but it never distinguishes itself from near-neighbors like convoinspect, awsinspect, or gcpinspect, leaving the agent to guess which inspection tool applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit trigger phrases ('what is my current stack?', 'show my infrastructure', 'what have I selected?') that map directly to invocation conditions. It stops short of naming when NOT to use it or which sibling handles the adjacent cases, so no exclusions or alternatives are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources