get_workspace_context
Read the VibeSell workspace
Read · mcpIdempotentThe first call of a conversation. It says which step of the journey the workspace is on and everything already on record: the offer, the target and its filters, the playbook, the sizing, the sending domains, the sequences, the campaign, the lead credits and the latest decisions.
Read where the user's VibeSell workspace stands: its journey step, the offer they sell, the ideal customer profile (ICP) and its lead filters, the playbook, the sending capacity, the chosen sending domains, the email sequences, the campaign, the lead credits and the latest decisions. Call it first, to know what is already on record.Example
Section titled “Example”The user says
Where am I with VibeSell?
{ "name": "get_workspace_context", "arguments": {}}Arguments
Section titled “Arguments”This tool takes no arguments. {}
Input schema
{ "type": "object", "properties": {}}Result
Section titled “Result”Result kindworkspace
kind"workspace"stagestringWhere the workspace stands, in words.
phasestringThe workspace phase code.
stepobjectThe journey step, as the VibeSell app numbers it.
indexinteger — 1-based, the step the VibeSell app shows.totalintegerlabelstring
subscriptionActivebooleanbriefobject | nullWhat the user sells, as saved in VibeSell. Null until written.
whatIsSoldstringproblemSolvedstringproofstringconstraintsstring
targetobject | nullThe ideal customer profile saved in VibeSell. Null until written.
segmentstringcompanyProfilestringchampionstringtriggerstringdisqualifiersstringfiltersobject[] — The lead filters saved for this target.
playbookobject | nullThe go-to-market playbook. Null until written.
anglesstring[]cadencestringtargetMeetingsPerMonthinteger
sizingobject | nullThe sending capacity computed for the campaign. Null until computed.
emailsPerDayintegermailboxesintegerdomainsintegeremailsPerMailboxPerDayintegerconfirmedboolean — True once the user said yes to THIS sizing.outdatedboolean — True when a later change made this sizing no longer apply.fleetInPlaceboolean — True when the domains and mailboxes already set up carry this sizing.
sendingDomainsobject[]The sending domains the user chose, bought or not yet.
namestringmailboxesinteger — The mailboxes asked for on it.preWarmedboolean — True for a domain taken from the warmed shelf.status"bought" | "being_bought" | "chosen" — bought: it is theirs and stays so. being_bought: the order holds it, not bought yet. chosen: kept, nothing ordered for it yet.
mailboxesobjectThe mailboxes set up for this workspace, removed ones left out.
totalintegerreadyinteger — Mailboxes ready to send, or sending in the campaign.byStateobject[] — The mailboxes counted under the words the VibeSell app shows.
sequencesobject[]namestringapprovedbooleanstepsobject[]
campaignobject | nullThe live campaign, or the last one when none is live. Null before any.
namestringstatestringstateLabelstringliveboolean — False once it completed or was stopped.statsobject | null — The last counters read from the provider. Null until a first reading.
leadsImportedintegerleadCreditsobjectremainingintegerlimitintegerperiodEndstring
decisionsobject[]The latest decisions on record, most recent first.
kindstringsummarystringatstring
recommendedPlanstring | nullappUrlstringWhere the user continues in VibeSell.
Output schema
{ "type": "object", "properties": { "kind": { "type": "string", "const": "workspace" }, "stage": { "type": "string", "description": "Where the workspace stands, in words." }, "phase": { "type": "string", "description": "The workspace phase code." }, "step": { "type": "object", "properties": { "index": { "type": "integer", "description": "1-based, the step the VibeSell app shows." }, "total": { "type": "integer" }, "label": { "type": "string" } }, "required": ["index", "total", "label"], "additionalProperties": false, "description": "The journey step, as the VibeSell app numbers it." }, "subscriptionActive": { "type": "boolean" }, "brief": { "anyOf": [ { "type": "object", "properties": { "whatIsSold": { "type": "string" }, "problemSolved": { "type": "string" }, "proof": { "type": "string" }, "constraints": { "type": "string" } }, "required": ["whatIsSold", "problemSolved", "proof", "constraints"], "additionalProperties": false }, { "type": "null" } ], "description": "What the user sells, as saved in VibeSell. Null until written." }, "target": { "anyOf": [ { "type": "object", "properties": { "segment": { "type": "string" }, "companyProfile": { "type": "string" }, "champion": { "type": "string" }, "trigger": { "type": "string" }, "disqualifiers": { "type": "string" }, "filters": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string", "description": "What the filter is about, e.g. 'Company based in'." }, "values": { "type": "array", "items": { "type": "string" }, "description": "The values, in words." } }, "required": ["label", "values"], "additionalProperties": false }, "description": "The lead filters saved for this target." } }, "required": [ "segment", "companyProfile", "champion", "trigger", "disqualifiers", "filters" ], "additionalProperties": false }, { "type": "null" } ], "description": "The ideal customer profile saved in VibeSell. Null until written." }, "playbook": { "anyOf": [ { "type": "object", "properties": { "angles": { "type": "array", "items": { "type": "string" } }, "cadence": { "type": "string" }, "targetMeetingsPerMonth": { "type": "integer" } }, "required": ["angles", "cadence", "targetMeetingsPerMonth"], "additionalProperties": false }, { "type": "null" } ], "description": "The go-to-market playbook. Null until written." }, "sizing": { "anyOf": [ { "type": "object", "properties": { "emailsPerDay": { "type": "integer" }, "mailboxes": { "type": "integer" }, "domains": { "type": "integer" }, "emailsPerMailboxPerDay": { "type": "integer" }, "confirmed": { "type": "boolean", "description": "True once the user said yes to THIS sizing." }, "outdated": { "type": "boolean", "description": "True when a later change made this sizing no longer apply." }, "fleetInPlace": { "type": "boolean", "description": "True when the domains and mailboxes already set up carry this sizing." } }, "required": [ "emailsPerDay", "mailboxes", "domains", "emailsPerMailboxPerDay", "confirmed", "outdated", "fleetInPlace" ], "additionalProperties": false }, { "type": "null" } ], "description": "The sending capacity computed for the campaign. Null until computed." }, "sendingDomains": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "mailboxes": { "type": "integer", "description": "The mailboxes asked for on it." }, "preWarmed": { "type": "boolean", "description": "True for a domain taken from the warmed shelf." }, "status": { "type": "string", "enum": ["bought", "being_bought", "chosen"], "description": "bought: it is theirs and stays so. being_bought: the order holds it, not bought yet. chosen: kept, nothing ordered for it yet." } }, "required": ["name", "mailboxes", "preWarmed", "status"], "additionalProperties": false }, "description": "The sending domains the user chose, bought or not yet." }, "mailboxes": { "type": "object", "properties": { "total": { "type": "integer" }, "ready": { "type": "integer", "description": "Mailboxes ready to send, or sending in the campaign." }, "byState": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "count": { "type": "integer" } }, "required": ["label", "count"], "additionalProperties": false }, "description": "The mailboxes counted under the words the VibeSell app shows." } }, "required": ["total", "ready", "byState"], "additionalProperties": false, "description": "The mailboxes set up for this workspace, removed ones left out." }, "sequences": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "approved": { "type": "boolean" }, "steps": { "type": "array", "items": { "type": "object", "properties": { "day": { "type": "integer", "description": "Days after the first email that this one leaves." }, "subject": { "type": "string" }, "body": { "type": "string" } }, "required": ["day", "subject", "body"], "additionalProperties": false } } }, "required": ["name", "approved", "steps"], "additionalProperties": false } }, "campaign": { "anyOf": [ { "type": "object", "properties": { "name": { "type": "string" }, "state": { "type": "string" }, "stateLabel": { "type": "string" }, "live": { "type": "boolean", "description": "False once it completed or was stopped." }, "stats": { "anyOf": [ { "type": "object", "properties": { "sent": { "type": "integer" }, "replies": { "type": "integer" }, "opens": { "type": "integer" }, "bounces": { "type": "integer" }, "measuredAt": { "type": "string", "description": "When the provider's counters were last read." } }, "required": ["sent", "replies", "opens", "bounces", "measuredAt"], "additionalProperties": false }, { "type": "null" } ], "description": "The last counters read from the provider. Null until a first reading." } }, "required": ["name", "state", "stateLabel", "live", "stats"], "additionalProperties": false }, { "type": "null" } ], "description": "The live campaign, or the last one when none is live. Null before any." }, "leadsImported": { "type": "integer" }, "leadCredits": { "type": "object", "properties": { "remaining": { "type": "integer" }, "limit": { "type": "integer" }, "periodEnd": { "type": "string" } }, "required": ["remaining", "limit", "periodEnd"], "additionalProperties": false }, "decisions": { "type": "array", "items": { "type": "object", "properties": { "kind": { "type": "string" }, "summary": { "type": "string" }, "at": { "type": "string" } }, "required": ["kind", "summary", "at"], "additionalProperties": false }, "description": "The latest decisions on record, most recent first." }, "recommendedPlan": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "appUrl": { "type": "string", "description": "Where the user continues in VibeSell." } }, "required": [ "kind", "stage", "phase", "step", "subscriptionActive", "brief", "target", "playbook", "sizing", "sendingDomains", "mailboxes", "sequences", "campaign", "leadsImported", "leadCredits", "decisions", "recommendedPlan", "appUrl" ], "additionalProperties": false}Good to know
Section titled “Good to know”- Free and read-only: nothing is charged and nothing changes.
- The live campaign line carries the campaign id that stop_campaign and resume_campaign take.