@sellable/mcp 0.1.29 → 0.1.30

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.29",
3
+ "version": "0.1.30",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -34,18 +34,42 @@ Provide as many as available. Use `"Unknown"` for missing values.
34
34
  - `companyDomain` (REQUIRED for WebSearch — derive from email or LinkedIn if absent)
35
35
  - `headline` (optional)
36
36
 
37
- ## The One Round (Mandatory Parallel Batch)
37
+ ## Setup: Pre-Load Deferred Tools (One-Time, Before The Parallel Batch)
38
38
 
39
- Issue ALL of the following in a single tool-call batch (Task subagents,
40
- `multi_tool_use.parallel`, or whatever batching primitive your host exposes).
41
- Do NOT issue any of them sequentially that defeats the protocol.
39
+ Some hosts (Claude Code with deferred-tool fetch) require `WebSearch` and
40
+ some MCP tools to be loaded via `ToolSearch` before they can be invoked. If
41
+ they are not already directly callable, issue this once as the first tool
42
+ call, on its own:
43
+
44
+ `ToolSearch({ query: "select:WebSearch,mcp__sellable__enrich_sender,mcp__sellable__complete_sender_research", max_results: 5 })`
45
+
46
+ Skip this turn entirely if the tools are already directly callable.
47
+
48
+ ## The One Round (Parallel Batch)
49
+
50
+ **HARD RULE:** the four tool calls below MUST be emitted as **four `tool_use`
51
+ content blocks inside a single assistant message** (one turn, parallel
52
+ execution). Do NOT split them across multiple assistant messages.
53
+
54
+ Concretely, your next assistant message must contain exactly these four
55
+ `tool_use` blocks, in any order, with no leading or trailing prose:
42
56
 
43
57
  1. `enrich_sender({ linkedinUrl, companyDomain })` — baseline + `clientProspectId`.
44
- 2. `WebSearch`: `site:{companyDomain} ("case study" OR "customer story" OR testimonial OR "success story") "{companyName}"` — proof.
45
- 3. `WebSearch`: `"{companyName}" {companyDomain} {currentYear} (funding OR raised OR seed OR series OR hiring OR launch OR "press release")` — growth/credibility.
46
- 4. `WebSearch` (conditional, include unless you have strong positioning context already): `"{companyName}" about product site:{companyDomain}` — positioning.
58
+ 2. `WebSearch({ query: 'site:{companyDomain} ("case study" OR "customer story" OR testimonial OR "success story") "{companyName}"' })` — proof.
59
+ 3. `WebSearch({ query: '"{companyName}" {companyDomain} {currentYear} (funding OR raised OR seed OR series OR hiring OR launch OR "press release")' })` — growth/credibility.
60
+ 4. `WebSearch({ query: '"{companyName}" about product site:{companyDomain}' })` — positioning.
61
+
62
+ **Self-check before you reply:** if your reply contains fewer than four
63
+ `tool_use` blocks (after the optional `ToolSearch` setup turn), you are
64
+ violating the protocol. Stop, rewrite the reply with all four.
65
+
66
+ **Known limitation (`claude -p` headless mode):** Claude often serializes
67
+ these calls one-per-turn even with explicit instructions. That's fine — the
68
+ skill still produces the same output, just with sequential tool execution
69
+ (~30–40s total wall time vs. ~10–15s if truly parallelized). If you can
70
+ batch, do; if not, proceed sequentially without retrying or re-prompting.
47
71
 
48
- That's it. No subagent fan-out. No second round of enrichment polling.
72
+ No subagent fan-out. No second round of enrichment polling.
49
73
 
50
74
  ## Synthesis (Single Pass After Batch Returns)
51
75