@sellable/mcp 0.1.42 → 0.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -70,9 +70,8 @@ instruction loading, file lookup, plugin cache versions, missing linked files,
70
70
  or tool discovery. Start in product language:
71
71
 
72
72
  ```text
73
- I’ll help you launch this as a Sellable campaign. First I’ll confirm who we’re
74
- sending from and which company this is for, then I’ll turn that into a campaign
75
- brief before anything is created.
73
+ I’ll help you launch this as a Sellable campaign. First I’ll confirm the sender
74
+ and company, then draft the campaign brief for your approval.
76
75
  ```
77
76
 
78
77
  If a linked/local skill file is stale or missing, silently use the installed
@@ -134,11 +133,17 @@ approval:
134
133
  installer enables this in Default mode with
135
134
  `[features].default_mode_request_user_input = true`.
136
135
 
137
- Use the structured question gate only for crisp identity confirmations and
138
- approval gates. Never use it to collect open text input like LinkedIn URLs,
139
- company domains, notes, pasted context, campaign ideas, buyer strategy,
140
- offer/CTA, proof, lead source, or feedback. For open text, ask in normal chat
141
- and wait for the user to type an answer and press Enter.
136
+ Use the structured question gate for crisp identity confirmations, compact setup
137
+ intake, and approval gates. Never use it to collect raw open text like LinkedIn
138
+ URLs, company domains, pasted notes, long campaign ideas, or detailed feedback.
139
+ For buyer strategy, offer/CTA, proof, and lead source, use the structured gate
140
+ when it is exposed, but treat the visible choices as shortcuts, not a rigid
141
+ multiple-choice survey. Every setup question must allow a custom typed answer.
142
+ In Codex, `request_user_input` adds a freeform Other path; in Claude, include an
143
+ `Other / custom` option. Keep setup intake to two panels because Codex supports
144
+ at most three questions per panel: target/offer/proof first, lead source second.
145
+ Do not use checkbox/radio multi-select language like "pick one",
146
+ "multi-select", or "choose all that apply" for these setup questions.
142
147
 
143
148
  Use "quick question panel" only when explaining a missing Codex/Claude setup
144
149
  capability for approvals. Do not tell customers about `request_user_input`,
@@ -181,7 +186,9 @@ senders. If there is any likely connected sender, use
181
186
  recent company, then ask a structured confirmation question:
182
187
 
183
188
  ```text
184
- I’m ready to build this in {workspace}. I found {matched sender} connected here.
189
+ Workspace: {workspace}
190
+
191
+ I found {matched sender} connected here.
185
192
 
186
193
  Is that you, and is this campaign for {company}?
187
194
  ```
@@ -212,11 +219,11 @@ with the structured question tool. Ask in normal chat for the user's LinkedIn
212
219
  URL or the company they want to send on behalf of so you can research context:
213
220
 
214
221
  ```text
215
- I’m ready to build this in {workspace}.
222
+ Workspace: {workspace}
216
223
 
217
- First, paste your LinkedIn URL or the company website you want to send on
218
- behalf of. I’ll use that to understand the company before we pick the target,
219
- offer, proof, and lead source.
224
+ First, paste your LinkedIn URL or the company website. I’ll use it to confirm
225
+ the sender and company, then we’ll choose the target, offer, proof, and lead
226
+ source.
220
227
  ```
221
228
 
222
229
  If there is no strong sender match, do not show a structured choice that says
@@ -226,7 +233,7 @@ current or most recent company, and then confirm who we are sending from. The
226
233
  customer-facing shape should be:
227
234
 
228
235
  ```text
229
- I’m ready to build this in {workspace}.
236
+ Workspace: {workspace}
230
237
 
231
238
  First, what’s your LinkedIn URL? If you’d rather start from the company, paste
232
239
  the company website instead.
@@ -236,6 +243,8 @@ After the user pastes a URL/domain, do the lightweight lookup. For a LinkedIn pr
236
243
  `mcp__sellable__fetch_linkedin_profile` and infer the user's current or most
237
244
  recent company from the profile. For a company website, call
238
245
  `mcp__sellable__fetch_company` when possible, otherwise one web lookup.
246
+ Before the lookup, use concise progress copy:
247
+ `Got it — I’ll look it up and confirm the sender + company.`
239
248
 
240
249
  If `mcp__sellable__list_senders` did not already run, call it once after the
241
250
  lookup to see whether the fetched user appears to match a connected sender. If
@@ -270,20 +279,18 @@ second context read so the four setup questions feel specific.
270
279
  Before the identity gate, use this customer-facing shape:
271
280
 
272
281
  ```text
273
- I’m ready to build the campaign in {workspace}.
274
-
275
- First I’ll check whether you already have a connected LinkedIn account here. If
276
- I can’t confirm it, I’ll ask for your LinkedIn URL or company website and use
277
- that to understand the company before we choose the target, offer, proof, and
278
- lead source.
282
+ Workspace: {workspace}
279
283
 
280
- Then I’ll turn that into a campaign brief for you to approve before anything is created.
284
+ First I’ll check for a connected LinkedIn sender. If I can’t confirm one, I’ll
285
+ ask for your LinkedIn URL or company website before we choose the target, offer,
286
+ proof, and lead source.
281
287
  ```
282
288
 
283
289
  Do not silently ask approval questions as plain chat when `request_user_input` is
284
- unavailable in an interactive session. Normal setup strategy questions are
285
- free-text chat and do not need `request_user_input`. Stop only when an approval
286
- gate needs the quick question panel:
290
+ unavailable in an interactive session. Setup strategy questions should use the
291
+ quick question panel when available, but may fall back to normal chat if the host
292
+ does not expose structured setup input. Stop only when an approval gate needs the
293
+ quick question panel:
287
294
 
288
295
  ```text
289
296
  I need Codex’s quick question panel for campaign approvals.
@@ -79,12 +79,19 @@ Validated draft directory:
79
79
  `request_user_input` (enabled in Default mode by
80
80
  `[features].default_mode_request_user_input = true`, not available in
81
81
  `codex exec`). Treat them as equivalent approval gates and persist the same
82
- draft artifacts after the user answers. Use this structured gate only for
83
- crisp identity confirmations and approval gates. Never use it to collect open
84
- text input like LinkedIn URLs, company domains, notes, pasted context,
85
- campaign ideas, buyer strategy, offer/CTA, proof, lead source, or feedback.
86
- For open text, ask in normal chat and wait for the user to type an answer and
87
- press Enter. If an interactive
82
+ draft artifacts after the user answers. Use this structured gate for crisp
83
+ identity confirmations, compact setup intake, and approval gates. Never use it
84
+ to collect raw open text like LinkedIn URLs, company domains, pasted notes,
85
+ long campaign ideas, or detailed feedback. For buyer strategy, offer/CTA,
86
+ proof, and lead source, use the structured gate when it is exposed, but treat
87
+ the visible choices as shortcuts, not a rigid multiple-choice survey. Every
88
+ setup question must allow a custom typed answer. In Codex,
89
+ `request_user_input` adds a freeform Other path; in Claude, include an
90
+ `Other / custom` option. Keep setup intake to two panels because Codex
91
+ supports at most three questions per panel: target/offer/proof first, lead
92
+ source second. Do not use checkbox/radio multi-select language like "pick
93
+ one", "multi-select", or "choose all that apply" for these setup questions.
94
+ If an interactive
88
95
  Codex session does not expose `request_user_input`, do not silently degrade to
89
96
  a plain chat question; stop and tell the user:
90
97
 
@@ -154,7 +161,9 @@ Validated draft directory:
154
161
  or most recent company, then ask a structured confirmation question:
155
162
 
156
163
  ```text
157
- I’m ready to build this in {workspace}. I found {matched sender} connected here.
164
+ Workspace: {workspace}
165
+
166
+ I found {matched sender} connected here.
158
167
 
159
168
  Is that you, and is this campaign for {company}?
160
169
  ```
@@ -185,11 +194,11 @@ Validated draft directory:
185
194
  company they want to send on behalf of so you can research context:
186
195
 
187
196
  ```text
188
- I’m ready to build this in {workspace}.
197
+ Workspace: {workspace}
189
198
 
190
- First, paste your LinkedIn URL or the company website you want to send on
191
- behalf of. I’ll use that to understand the company before we pick the target,
192
- offer, proof, and lead source.
199
+ First, paste your LinkedIn URL or the company website. I’ll use it to confirm
200
+ the sender and company, then we’ll choose the target, offer, proof, and lead
201
+ source.
193
202
  ```
194
203
 
195
204
  If there is no strong sender match, do not show a structured choice that says
@@ -199,7 +208,7 @@ Validated draft directory:
199
208
  customer-facing shape should be:
200
209
 
201
210
  ```text
202
- I’m ready to build this in {workspace}.
211
+ Workspace: {workspace}
203
212
 
204
213
  First, what’s your LinkedIn URL? If you’d rather start from the company, paste
205
214
  the company website instead.
@@ -209,6 +218,8 @@ Validated draft directory:
209
218
  `fetch_linkedin_profile` and infer the user's current or most recent company
210
219
  from the profile. For a company website, call `fetch_company` when possible,
211
220
  otherwise one web lookup.
221
+ Before the lookup, use concise progress copy:
222
+ `Got it — I’ll look it up and confirm the sender + company.`
212
223
 
213
224
  If `list_senders` did not already run, call it once after the lookup to see
214
225
  whether the fetched user appears to match a connected sender. If there is a
@@ -245,14 +256,11 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
245
256
  - Before the identity gate, use this customer-facing shape:
246
257
 
247
258
  ```text
248
- I’m ready to build the campaign in {workspace}.
259
+ Workspace: {workspace}
249
260
 
250
- First I’ll check whether you already have a connected LinkedIn account here.
251
- If I can’t confirm it, I’ll ask for your LinkedIn URL or company website and
252
- use that to understand the company before we choose the target, offer, proof,
253
- and lead source.
254
-
255
- Then I’ll turn that into a campaign brief for you to approve before anything is created.
261
+ First I’ll check for a connected LinkedIn sender. If I can’t confirm one, I’ll
262
+ ask for your LinkedIn URL or company website before we choose the target,
263
+ offer, proof, and lead source.
256
264
  ```
257
265
 
258
266
  - Fast Intake Mode is mandatory for hosted/rehearsal net-new runs. Ask the
@@ -276,10 +284,12 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
276
284
  first identity gate as a quiet token/sender inference shortcut, and once means
277
285
  once: do not call it again after a LinkedIn lookup if it already ran. Do
278
286
  draft-directory setup only after the founder answers. After launch identity is
279
- confirmed, ask buyer, offer/CTA, proof, and lead source in normal chat. Do not
280
- present those four setup questions as checkbox/radio multiple-choice gates.
281
- You may include short example answers to reduce blank-page anxiety, but the
282
- default action must be: type a nuanced answer and press Enter.
287
+ confirmed, ask buyer, offer/CTA, proof, and lead source through the structured
288
+ question gate when available. Split the setup intake into two panels:
289
+ target/offer/proof first, then lead source. Do not present these as
290
+ checkbox/radio multi-select gates. Use 2-3 context-specific suggested answers
291
+ per question as fast-start shortcuts, and rely on the freeform custom path for
292
+ nuanced answers.
283
293
  - After the founder answers the first strategy/source packet, explain the next
284
294
  stage only: campaign brief creation and brief approval. Use this shape:
285
295
 
@@ -476,21 +486,22 @@ Ask the user only when one of these is true:
476
486
  packet so the founder can approve or revise the message deliberately.
477
487
 
478
488
  When asking subjective strategy questions (buyer scope, first ask, proof
479
- emphasis, tone, lead-source preference), ask in normal chat, not as a
480
- multiple-choice structured gate. Suggested directions are allowed only as
481
- examples, not as the UI control. Always make the freeform path explicit:
482
- `Type your answer in your own words and press Enter.` Do not add custom options
483
- to the final six-choice commit gate.
489
+ emphasis, tone, lead-source preference), use the structured quick question panel
490
+ when available. Do not make it feel like a rigid multiple-choice survey:
491
+ suggested directions are shortcuts, and the user must be able to type a custom
492
+ answer in their own words. Ask target, offer, and proof in the first panel; ask
493
+ lead source in a second panel. Do not add custom options to the final six-choice
494
+ commit gate.
484
495
  Use customer-facing question wording:
485
496
 
486
- - target prospects: `Who should be the target prospects for this campaign? Type the buyer you want, or describe a blend.`
487
- - main CTA / offer: `What should the main CTA or offer be? Type what you want the prospect to do next.`
488
- - proof emphasis: `Which proof point would most increase this buyer's confidence in {{company}}? Type the proof you want to lean on.`
489
- - lead source: `How should we get the people for this campaign? Type "find people for me", describe the source, or paste a CSV/list path.`
497
+ - target prospects: `Who should this campaign target?`
498
+ - main CTA / offer: `What should {{sender_or_company}} offer them?`
499
+ - proof emphasis: `What proof should we lean on?`
500
+ - lead source: `How should we get the people for this campaign?`
490
501
 
491
502
  Ask the lead-source question as the last question in the first strategy batch,
492
503
  after buyer, offer/ask, and proof/safety are understood. Frame supplied lists as
493
- optional, not required. Mention examples inline, not as selectable options:
504
+ optional, not required. Suggested lead-source shortcuts should include:
494
505
  `I can find people for you, use a CSV of LinkedIn profiles, use a CSV of company
495
506
  domains, use an existing Sellable lead list, or follow another source idea.`
496
507
  If the user pastes up to 100 LinkedIn profile URLs or company domains, normalize