Skip to main content
Glama

campaignstack_create_workspace

Create a workspace and build it. Give a company website (acme.com), a LinkedIn profile URL, or both, and CampaignStack sets up what a new sign-up gets: the company context, the playbook, a first campaign with its ideal customer profile, a workflow, and a lead pool. Pass goal when the user told you what the workspace is for, in their words and in the first person: it becomes the campaign goal word for word, and without it one is written from the website and profile. Leave name out unless the user chose one; the company's name is used. A website alone is enough and needs no LinkedIn account: the workspace is whole and outreach waits until an account is linked with campaignstack_edit_workspace_accounts or connected under Accounts in the app. A profile URL is read through the user's own connected LinkedIn account, so it needs one. With neither URL you get a blank workspace and must name it. Returns the workspaceId at once and, when a build started, a generationId to follow with campaignstack_get_workspaces. Needs a user key or a signed-in connection: a workspace key is one workspace and cannot create another. One build runs at a time, and a free account owns at most two workspaces.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalNoWhat this workspace should get done, first person, as the user said it. Becomes the campaign goal verbatim.
nameNoOnly when the user chose a name. Otherwise the company name from the website is used.
profileUrlNolinkedin.com/in/... of the person the workspace writes as, when it is not the user's own profile (an agency setting up a client). Read through the user's own connected LinkedIn account.
websiteUrlNoThe company website this workspace sells for, e.g. acme.com. Enough on its own.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo
nextNo
workspaceIdNo
generationIdNo

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": {
      +    "generationId": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "mode": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "next": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "workspaceId": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "not": {}
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (which already declare the non-read-only, non-destructive, non-idempotent, open-world profile), the description discloses return behavior (workspaceId immediately, generationId to follow via campaignstack_get_workspaces), auth constraints (user key or signed-in connection; a workspace key cannot create another), and rate/limit rules (one build at a time, free accounts capped at two workspaces). This is substantive context the annotations cannot carry.

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?

Front-loaded with the core action and then organized by input, return, auth, and limits; nearly every sentence carries distinct information. It is dense and the account-linking sentence runs long, but the length is defensible for a tool with this many conditional behaviors.

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 four optional parameters, an output schema, and no annotations for safety beyond the hints, the description covers the remaining gaps an agent needs: which inputs are valid combinations, what happens with none, what is returned, what credentials are required, and the concurrency/quota limits.

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 baseline is 3, but the description adds real meaning beyond the schema by explaining parameter interactions and defaults: goal becomes the campaign goal verbatim, name is derived from the company when omitted, and the website/profile URL rules determine what the workspace contains. That interplay between parameters is not fully captured by the per-field schema text.

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?

States a specific verb and resource ('Create a workspace and build it') and then enumerates exactly what the build produces (company context, playbook, first campaign with ICP, workflow, lead pool), which cleanly separates it from sibling mutators like edit_workspace or onboard_workspace. An agent can tell what this tool does without opening the schema.

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?

Gives explicit when/when-not rules: pass goal only when the user stated the purpose, leave name out unless the user chose one, a website alone suffices, a profile URL requires the user's own connected LinkedIn account, and with neither URL you get a blank workspace that must be named. Alternatives and prerequisites are named rather than implied.

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