Workspace Management
Manage workspace settings, team members, and invitations.
Tools (8)
Section titled “Tools (8)”get_workspace
Section titled “get_workspace”Full name: campaignstack_get_workspace
Get workspace details including name, company info, industry, and settings. The workspaceId is returned by campaignstack_whoami.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
update_workspace
Section titled “update_workspace”Full name: campaignstack_update_workspace
Update workspace settings. Only provided fields are updated. offerContext is the factual company/offer grounding injected into every AI craft (pass an empty string to clear it). capabilities describes what the SYSTEM behind this workspace can detect and do (signal detection, automated actions, integrations), as opposed to what it sells: it is injected into AI reply crafts only, so the agent can recognise when a lead describes a problem the product solves. Keep it short and factual; it is never used as a pitch list. Pass an empty string to clear it. playbookSections is the playbook itself, one field per section, each with its own hard character cap: a write over a cap is rejected, so shorten rather than retry. Read all current values via campaignstack_get_playbook.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
name | string | No | — | (min length: 1) |
companyName | string | No | — | |
companyWebsiteUrl | string | No | — | |
industry | string | No | — | |
offerContext | string | No | — | |
capabilities | string | No | — | |
outreachIntents | object[] | No | — | Acceptable outcomes for this outreach, most preferred FIRST. Answers ‘why are we writing to these people’: a message with no stated purpose reads as a compliment plus an open question. Resolution is workspace then campaign then workflow, and the narrowest non-empty list REPLACES the wider ones rather than merging, so setting it here overrides the level above. Pass an empty array to clear this level and fall back. The craft picks the highest outcome the individual reader could plausibly give, so listing several is how a non-buyer still gets a relevant message. |
playbookSections | object | No | — | The workspace playbook, one field per section. Only the fields you pass are changed. Each field has a HARD character cap and a write over it is REJECTED, not truncated: identity (max 1200, sent on every message): who we are, positioning, what makes us different; voice (max 1200, sent on every message): tone, formality, words to use and avoid; boundaries (max 1500, sent on every message): topics to avoid, claims never to make; angles (max 3000, sent on messages we send first): reasons to reach out that land, and the levers that persuade; objections (max 6000, sent on replies, after they have written back): what people push back with, and the real answers. Sections are selected per message, so a long objections list costs a first message nothing. Do NOT restate the offer, the personas or the campaign goal here: all three already reach the prompt from structured data, and a second copy can only contradict the first. |
list_members
Section titled “list_members”Full name: campaignstack_list_members
List all members of a workspace with their roles (owner, admin, member), names, and emails.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
update_member_role
Section titled “update_member_role”Full name: campaignstack_update_member_role
Update a member’s role. Via MCP, roles can only be set to ‘member’. Granting admin or transferring ownership requires the workspace settings UI. Use campaignstack_list_members to find member IDs.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
memberId | string | Yes | — | (min length: 1) |
role | member | Yes | — | Only “member” can be set via MCP |
remove_member
Section titled “remove_member”Full name: campaignstack_remove_member
Remove a member from the workspace. Cannot remove the workspace owner or admins (admin removal requires the workspace settings UI). This action is irreversible.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
memberId | string | Yes | — | (min length: 1) |
list_invitations
Section titled “list_invitations”Full name: campaignstack_list_invitations
List pending invitations for a workspace. Returns email, role, and invitation date.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
invite_member
Section titled “invite_member”Full name: campaignstack_invite_member
Invite a user to the workspace by email (role ‘member’ only; admin invitations require the workspace settings UI; the inviter is the workspace owner). An invitation email is sent automatically. The invitation expires after 7 days. Use campaignstack_list_invitations to check pending invitations.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
email | string | Yes | — | |
role | member | Yes | — | Only “member” invitations can be created via MCP |
revoke_invitation
Section titled “revoke_invitation”Full name: campaignstack_revoke_invitation
Revoke a pending invitation. The invitation link becomes invalid immediately.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | Yes | — | (min length: 1) |
invitationId | string | Yes | — | (min length: 1) |