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 (campaignstack_link_account_to_workspace) or connected (campaignstack_request_connect_link). 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_workspace_setup. 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

A5/5.0
Behavior5/5

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

Annotations only mark it non-read-only and non-idempotent; the description adds crucial operational traits: async build tracked by generationId, one build at a time, free-account limit of two workspaces, and a workspace key cannot create another workspace. No contradiction with annotations.

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

Conciseness5/5

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

Long but tight: every sentence adds a decision rule or constraint, and the core purpose is front-loaded before the detailed edge cases. The structure moves from primary behavior to parameter conditions to auth and limits without waste.

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?

For a create-and-build operation with no required parameters, the description covers all input variants, auth prerequisites, async return behavior, follow-up tools, and account limits. An agent has what it needs to invoke and monitor the call correctly.

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

Parameters5/5

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

Even though the schema already covers each parameter, the description adds meaningful semantics: goal must be first-person and becomes the campaign goal verbatim; name defaults to the company name; websiteUrl alone suffices; profileUrl is read through the user's own connected LinkedIn account. These details materially improve correct invocation.

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 action and object ('Create a workspace and build it') and enumerates the concrete outputs (company context, playbook, first campaign, ICP, workflow, lead pool). This makes it clearly distinguishable from nearby create_* siblings like create_campaign or create_workflow.

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?

Provides explicit when-to-use conditions: supply websiteUrl, profileUrl, or both; pass goal only when the user gave it in first-person; omit name unless the user chose one. It also clarifies that a profile requires a connected LinkedIn account while a website alone does not, and names follow-up tools for linking/connecting an account and tracking setup progress.

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