Skip to main content
Glama

Edit account

campaignstack_edit_account
Destructive

Edit one connected LinkedIn account. Use operation=set_owner_workspace to change the workspace that pays for maintenance/watchers. Use operation=set_watcher to turn the account's connection watcher, message watcher, own-posts watcher or invitation hygiene on or off (state is in campaignstack_get_accounts include.maintenance): name the account and kind and get a yes first, because enabling a watcher starts drafting outbound messages for review. The first enable creates the watcher and its review-first workflow, later calls pause or resume it; one watcher per kind per account across all workspaces (DUPLICATE_*_EXTERNAL means another workspace runs it; it has to be turned off there first) and it needs a live session (AGENT_ACCOUNT_UNAVAILABLE). Use operation=delete only after naming the account and getting explicit confirmation: delete removes the account from every workspace and clears its CampaignStack session/proxy/budgets/credentials, unlike campaignstack_edit_workspace_accounts unlink which only removes workspace access.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
platformYes
accountIdYesConnected LinkedIn account id from campaignstack_get_accounts.
operationYes
workspaceIdNoWorkspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okNo
itemNo
resultsNo
warningNo
nextStepNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / operation / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "op": {
      -        "const": "set_owner_workspace",
      -        "type": "string"
      -      },
      -      "ownerWorkspaceId": {
      -        "description": "Workspace that pays for account maintenance watchers and inbox sends.",
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "op",
      -      "ownerWorkspaceId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "enabled": {
      -        "type": "boolean"
      -      },
      -      "kind": {
      -        "description": "connection_watcher welcomes new connections, message answers inbound DMs, own_posts_watcher follows up with people engaging with the account's posts, invitation_hygiene withdraws the account's oldest pending invitations.",
      -        "enum": [
      -          "connection_watcher",
      -          "message",
      -          "own_posts_watcher",
      -          "invitation_hygiene"
      -        ],
      -        "type": "string"
      -      },
      -      "op": {
      -        "const": "set_watcher",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "op",
      -      "kind",
      -      "enabled"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "confirm": {
      -        "description": "Required acknowledgement that the named account should be deleted from CampaignStack.",
      -        "type": "boolean"
      -      },
      -      "op": {
      -        "const": "delete",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "op",
      -      "confirm"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "op": {
      +        "const": "set_owner_workspace",
      +        "type": "string"
      +      },
      +      "ownerWorkspaceId": {
      +        "description": "Workspace that pays for account maintenance watchers and inbox sends.",
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "op",
      +      "ownerWorkspaceId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "enabled": {
      +        "type": "boolean"
      +      },
      +      "kind": {
      +        "description": "connection_watcher welcomes new connections, message answers inbound DMs, own_posts_watcher follows up with people engaging with the account's posts, invitation_hygiene withdraws the account's oldest pending invitations.",
      +        "enum": [
      +          "connection_watcher",
      +          "message",
      +          "own_posts_watcher",
      +          "invitation_hygiene"
      +        ],
      +        "type": "string"
      +      },
      +      "op": {
      +        "const": "set_watcher",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "op",
      +      "kind",
      +      "enabled"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "confirmed": {
      +        "const": true,
      +        "description": "Required acknowledgement that the named account should be deleted from CampaignStack.",
      +        "type": "boolean"
      +      },
      +      "op": {
      +        "const": "delete",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "op",
      +      "confirmed"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / operation / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "op": {
      -        "const": "set_owner_workspace",
      -        "type": "string"
      -      },
      -      "ownerWorkspaceId": {
      -        "description": "Workspace that pays for account maintenance watchers and inbox sends.",
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "op",
      -      "ownerWorkspaceId"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "confirm": {
      -        "description": "Required acknowledgement that the named account should be deleted from CampaignStack.",
      -        "type": "boolean"
      -      },
      -      "op": {
      -        "const": "delete",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "op",
      -      "confirm"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "op": {
      +        "const": "set_owner_workspace",
      +        "type": "string"
      +      },
      +      "ownerWorkspaceId": {
      +        "description": "Workspace that pays for account maintenance watchers and inbox sends.",
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "op",
      +      "ownerWorkspaceId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "enabled": {
      +        "type": "boolean"
      +      },
      +      "kind": {
      +        "description": "connection_watcher welcomes new connections, message answers inbound DMs, own_posts_watcher follows up with people engaging with the account's posts, invitation_hygiene withdraws the account's oldest pending invitations.",
      +        "enum": [
      +          "connection_watcher",
      +          "message",
      +          "own_posts_watcher",
      +          "invitation_hygiene"
      +        ],
      +        "type": "string"
      +      },
      +      "op": {
      +        "const": "set_watcher",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "op",
      +      "kind",
      +      "enabled"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "confirm": {
      +        "description": "Required acknowledgement that the named account should be deleted from CampaignStack.",
      +        "type": "boolean"
      +      },
      +      "op": {
      +        "const": "delete",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "op",
      +      "confirm"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / workspaceId / description
      Previous value: -"Workspace 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."New value: +"Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too."
  3. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already flag destructive/openWorld/non-idempotent, and the description adds substantial context beyond them: enabling a watcher starts drafting outbound messages, the first enable creates the review-first workflow, later calls pause/resume, one watcher per kind across all workspaces, and delete clears session/proxy/budgets/credentials. It even documents error codes (DUPLICATE_*_EXTERNAL, AGENT_ACCOUNT_UNAVAILABLE). Slightly dense but very informative; a 5 would need explicit reversibility/permission constraints.

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 purpose and then walks each operation, avoiding redundant restatement of annotations. It is a dense run-on paragraph that could be broken per operation, which keeps it from a 5.

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 an output schema exists (returns needn't be described) and annotations cover the destructive profile, the description supplies everything an agent needs: operation selection, confirmation requirements, cross-workspace watcher constraints, and error-code behavior.

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 coverage is 50%, and the description compensates by explaining the semantics of each operation's payload (ownerWorkspaceId as the payer, watcher kinds and their behaviors, the confirmation flag). It doesn't clarify the 'enabled' toggle semantics or workspaceId defaults beyond schema, so it's not a full 5.

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?

Opens with a specific verb+resource ('Edit one connected LinkedIn account') and then enumerates the three distinct operations (set_owner_workspace, set_watcher, delete) with what each does. It also names the sibling it differs from (edit_workspace_accounts unlink), so an agent can route correctly without opening schemas.

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?

Explicit when-to-use for every operation: set_owner_workspace for changing the paying workspace, set_watcher for toggling watcher kinds, delete only after naming the account and getting explicit confirmation. It even states the confirmation protocol ('get a yes first') and the alternative unlink path.

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