Skip to main content
Glama

campaignstack_get_workspace_setup

Read-onlyIdempotent

How a workspace build is going, and what is still missing once it is done. Pass the generationId from campaignstack_create_workspace, or a workspaceId to read its latest build. Returns every step with its status (pending, running, completed, skipped, failed) and a one-line detail, the ids created so far (campaign, ICP, lead list, workflow) as each lands, the inputs the build ran from, and the setup checklist: the items a person still has to settle (a LinkedIn account, why they built the product, offer facts, what a reply should lead to, exclusions), each with the page where it is done. The workspaceId is usable from the first poll, so you can fill the playbook with campaignstack_onboard_workspace while later steps run. A skipped step is not a failure: lead search skips when no LinkedIn account is connected. Poll every 15 to 30 seconds; a build takes a few minutes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workspaceIdNoWorkspace ID. REQUIRED for a user key (csu_), which spans every workspace you belong to; omitted for a workspace key (cs_), which is bound to one and ignores this argument. campaignstack_whoami reports which kind of key you are holding and, for a user key, the workspaces it can reach. Reads the workspace's latest build when no generationId is given.
generationIdNoFrom campaignstack_create_workspace.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nextNo
errorNo
stepsNoEach step: name, status, detail, startedAt, completedAt
inputsNowebsiteUrl, profileUrl, goal the build ran from
statusNo
createdNoIds created so far: campaignId, icpId, leadListId, workflowId, etc.
checklistNo
createdAtNo
workspaceNo
totalStepsNo
completedAtNo
currentStepNo
workspaceIdNo
generationIdNo
completedStepsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "checklist": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": true,
      +                  "properties": {
      +                    "complete": {
      +                      "type": "boolean"
      +                    },
      +                    "dismissed": {
      +                      "type": "boolean"
      +                    },
      +                    "items": {
      +                      "items": {
      +                        "additionalProperties": true,
      +                        "properties": {
      +                          "agentField": {
      +                            "type": [
      +                              "string",
      +                              "null"
      +                            ]
      +                          },
      +                          "agentWritten": {
      +                            "type": [
      +                              "boolean",
      +                              "null"
      +                            ]
      +                          },
      +                          "done": {
      +                            "type": [
      +                              "boolean",
      +                              "null"
      +                            ]
      +                          },
      +                          "href": {
      +                            "type": [
      +                              "string",
      +                              "null"
      +                            ]
      +                          },
      +                          "key": {
      +                            "type": [
      +                              "string",
      +                              "null"
      +                            ]
      +                          }
      +                        },
      +                        "type": "object"
      +                      },
      +                      "type": "array"
      +                    }
      +                  },
      +                  "required": [
      +                    "items",
      +                    "complete",
      +                    "dismissed"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "completedAt": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "completedSteps": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "number"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "created": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {}
      +          ],
      +          "description": "Ids created so far: campaignId, icpId, leadListId, workflowId, etc."
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Ids created so far: campaignId, icpId, leadListId, workflowId, etc."
      +    },
      +    "createdAt": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "number"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "currentStep": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "error": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "generationId": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "inputs": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {}
      +          ],
      +          "description": "websiteUrl, profileUrl, goal the build ran from"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "websiteUrl, profileUrl, goal the build ran from"
      +    },
      +    "next": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "status": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "steps": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "items": {},
      +              "type": "array"
      +            }
      +          ],
      +          "description": "Each step: name, status, detail, startedAt, completedAt"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Each step: name, status, detail, startedAt, completedAt"
      +    },
      +    "totalSteps": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "number"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "workspace": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "anyOf": [
      +                {},
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "workspaceId": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the workspaceId is usable from the first poll, a skipped step is not a failure, and the build takes a few minutes. It also explains what the return payload contains (steps with statuses, ids created so far, inputs, checklist). This goes beyond the annotations without contradicting them.

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

Conciseness4/5

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

The description is dense but well-organized, front-loading the core purpose and then detailing the return payload and usage nuances. Every sentence adds information, though it is somewhat long. It earns a 4 because it is information-dense without being repetitive, but it could be slightly tighter.

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

Completeness5/5

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

Given the tool's complexity (build status, checklist, multiple IDs, polling), the description covers everything an agent needs: what to pass, what to expect back, how to handle skipped steps, and how often to poll. The output schema exists, so return values are further specified. The description is complete for correct invocation and interpretation.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents both parameters well. The description adds meaning by explaining the relationship between generationId and workspaceId, and by noting that workspaceId is usable from the first poll. It also clarifies the key-type behavior (user key vs workspace key) is in the schema, but the description reinforces the practical usage. This is above the baseline 3 because the description adds contextual value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: reading the status of a workspace build, what is still missing, and the setup checklist. It names the specific resource (workspace build) and the verb (get/read), and distinguishes itself from siblings like campaignstack_get_workspace and campaignstack_create_workspace by focusing on build progress and missing setup items.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when to use this tool: pass the generationId from campaignstack_create_workspace, or a workspaceId to read the latest build. It also provides polling guidance (every 15 to 30 seconds) and clarifies that a skipped step is not a failure, with an example (lead search skips when no LinkedIn account is connected). This is strong usage guidance.

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