@sellable/mcp 0.1.221 → 0.1.223

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.
@@ -1613,6 +1613,7 @@ export declare const leadToolDefinitions: ({
1613
1613
  type: string;
1614
1614
  items: {
1615
1615
  type: string;
1616
+ enum: string[];
1616
1617
  };
1617
1618
  };
1618
1619
  other: {
@@ -1648,6 +1649,7 @@ export declare const leadToolDefinitions: ({
1648
1649
  };
1649
1650
  geographic_scope: {
1650
1651
  type: string;
1652
+ enum: string[];
1651
1653
  };
1652
1654
  };
1653
1655
  };
@@ -2751,6 +2753,7 @@ export declare const leadToolDefinitions: ({
2751
2753
  type: string;
2752
2754
  items: {
2753
2755
  type: string;
2756
+ enum: string[];
2754
2757
  };
2755
2758
  };
2756
2759
  other: {
@@ -2786,6 +2789,7 @@ export declare const leadToolDefinitions: ({
2786
2789
  };
2787
2790
  geographic_scope: {
2788
2791
  type: string;
2792
+ enum: string[];
2789
2793
  };
2790
2794
  };
2791
2795
  };
@@ -375,14 +375,36 @@ const prospeoCompanyHeadcountByLocationSchema = {
375
375
  };
376
376
  const prospeoCompanyIcpSchema = {
377
377
  type: "object",
378
- description: "Structured company ICP filter.",
378
+ description: "Structured company ICP filter. Product is not a company_icp.departments value; use titles_include for product roles. geographic_scope only accepts single_country or multi_country.",
379
379
  properties: {
380
380
  titles_include: { type: "array", items: { type: "string" } },
381
381
  titles_exclude: { type: "array", items: { type: "string" } },
382
382
  departments: {
383
383
  type: "object",
384
384
  properties: {
385
- include: { type: "array", items: { type: "string" } },
385
+ include: {
386
+ type: "array",
387
+ items: {
388
+ type: "string",
389
+ enum: [
390
+ "Consumers",
391
+ "Customer Success",
392
+ "Data",
393
+ "Design",
394
+ "Engineering",
395
+ "Finance",
396
+ "HR",
397
+ "IT",
398
+ "Legal",
399
+ "Marketing",
400
+ "Operations",
401
+ "Procurement",
402
+ "SMB Owners",
403
+ "Sales",
404
+ "Security",
405
+ ],
406
+ },
407
+ },
386
408
  other: { type: "array", items: { type: "string" } },
387
409
  match_mode: { type: "string", enum: ["ANY", "ALL"] },
388
410
  },
@@ -396,7 +418,10 @@ const prospeoCompanyIcpSchema = {
396
418
  },
397
419
  industries: { type: "array", items: { type: "string" } },
398
420
  geographic_markets: { type: "array", items: { type: "string" } },
399
- geographic_scope: { type: "string" },
421
+ geographic_scope: {
422
+ type: "string",
423
+ enum: ["single_country", "multi_country"],
424
+ },
400
425
  },
401
426
  };
402
427
  const prospeoCompanyWebsiteTrafficSchema = {
@@ -405,7 +430,10 @@ const prospeoCompanyWebsiteTrafficSchema = {
405
430
  properties: {
406
431
  min_monthly_visits: { type: "number" },
407
432
  max_monthly_visits: { type: "number" },
408
- visit_change: { type: "string", enum: ["increased", "decreased", "stable"] },
433
+ visit_change: {
434
+ type: "string",
435
+ enum: ["increased", "decreased", "stable"],
436
+ },
409
437
  top_countries: { type: "array", items: { type: "string" } },
410
438
  min_country_percentage: { type: "number" },
411
439
  max_country_percentage: { type: "number" },
@@ -439,7 +467,7 @@ const prospeoCompanyAccountWorkflowGuidance = `Company account workflow: search_
439
467
  search_prospeo_companies({
440
468
  "seedDomains": ["tryredrover.com"],
441
469
  "filters": {
442
- "company_lookalike": { "company_oids": ["cmp_red_rover"], "minimum_tier": "T1" },
470
+ "company_lookalike": { "minimum_tier": "T1" },
443
471
  "company_attributes": { "uses_ai": true, "has_api": true, "pricing": true },
444
472
  "company_website_search": {
445
473
  "include_keywords": ["pricing"],
@@ -448,12 +476,13 @@ search_prospeo_companies({
448
476
  }
449
477
  }
450
478
  })
479
+ Do not invent company_oids. When seedCompanies or seedDomains are present, omit company_oids and let the backend resolve real Prospeo company IDs.
451
480
  For accounts in the news: { "company_news": { "categories": ["Funding & Investment"], "timeframe_days": 90 } }.
452
481
  For awards: { "company_awards": { "include": ["G2"], "match_mode": "CONTAINS" } }.
453
482
  For website traffic: { "company_website_traffic": { "min_monthly_visits": 50000 } }.
454
483
  For products/services, integrations, key customers, and Google discovery use "company_products_services", "company_integrations", "company_key_customers", and "company_google_discovery".
455
484
  For headcount by location: { "company_headcount_by_location": { "entries": [{ "country": "United States", "city": "Austin", "min_headcount": 10 }] } }.
456
- For structured ICP: { "company_icp": { "titles_include": ["Head of RevOps"], "company_sizes": ["midmarket"], "departments": { "include": ["Sales"], "match_mode": "ANY" } } }.
485
+ For structured ICP: { "company_icp": { "titles_include": ["Head of RevOps"], "company_sizes": ["midmarket"], "departments": { "include": ["Sales"], "match_mode": "ANY" }, "geographic_scope": "multi_country", "geographic_markets": ["United States", "Canada"] }, "company_headcount_range": ["101-200", "201-500", "501-1000"] }. Pair company_icp.company_sizes with company_headcount_range or rely on MCP normalization that derives the range; inspect the account sample for size drift. Product is not a company_icp.departments value; use titles_include for product roles. geographic_scope only accepts single_country or multi_country.
457
486
  company_intent is unsupported; support-channel AI Attribute guesses like phone/email/chat/ticket/social are not exposed. public API rows do not include lookalike tier/score/reason.`;
458
487
  function loadSignalDiscoveryConfig() {
459
488
  if (!existsSync(signalProviderConfigPath)) {
@@ -1421,7 +1450,7 @@ export const leadToolDefinitions = [
1421
1450
  },
1422
1451
  {
1423
1452
  name: "search_prospeo_companies",
1424
- description: 'Search Prospeo for company/account results through the public /search-company lane. Requires get_provider_prompt({ provider: "prospeo" }) first. Use this first for company lookalike/account asks such as "find companies like Red Rover that use AI and have an API", "find founders at companies like our best customers", or "find accounts in the news about funding or partnerships". Results are accounts, not finished people leads. Review the returned accounts with the user, then call confirm_prospeo_company_accounts with the companySearchToken to create a domainFilterId before using search_prospeo for people at those accounts. Supports company lookalike, confirmed AI Attributes including pricing, company news, awards, website search, products/services, integrations, key customers, operating languages, Google discovery, headcount by location, structured company ICP, and experimental website traffic/key executive filters. company_intent and support-channel guesses like phone/email/chat/ticket/social are unsupported. Public API rows do not include lookalike tier/score/reason. ' +
1453
+ description: 'Search Prospeo for company/account results through the public /search-company lane. Requires get_provider_prompt({ provider: "prospeo" }) first. Use this first for company lookalike/account asks such as "find companies like Red Rover that use AI and have an API", "find founders at companies like our best customers", or "find accounts in the news about funding or partnerships". Results are accounts, not finished people leads. Review the returned accounts with the user, then call confirm_prospeo_company_accounts with the companySearchToken to create a domainFilterId before using search_prospeo for people at those accounts. Supports company lookalike, confirmed AI Attributes including pricing, company news, awards, website search, products/services, integrations, key customers, operating languages, Google discovery, headcount by location, structured company ICP, and experimental website traffic/key executive filters. Do not invent company_oids; when seedCompanies or seedDomains are present, omit company_oids and let the backend resolve real Prospeo IDs. company_intent and support-channel guesses like phone/email/chat/ticket/social are unsupported. Public API rows do not include lookalike tier/score/reason. ' +
1425
1454
  prospeoCompanyAccountWorkflowGuidance,
1426
1455
  inputSchema: {
1427
1456
  type: "object",
@@ -1442,11 +1471,14 @@ export const leadToolDefinitions = [
1442
1471
  },
1443
1472
  filters: {
1444
1473
  type: "object",
1445
- description: 'Company/account filters. For lookalikes, use company_lookalike.company_oids when you already have Prospeo IDs; otherwise pass seedCompanies/seedDomains and the backend resolves IDs. minimum_tier must be "T1", "T2", or "T3". Do not use company_intent.',
1474
+ description: 'Company/account filters. For lookalikes, use company_lookalike.company_oids only when you already have real Prospeo IDs; otherwise pass seedCompanies/seedDomains and omit company_oids so the backend resolves IDs. minimum_tier must be "T1", "T2", or "T3". Do not invent company_oids. Do not use company_intent.',
1446
1475
  properties: {
1447
1476
  company_industry: prospeoFilterValueSchema,
1448
1477
  company_technology: prospeoFilterValueSchema,
1449
- company_email_provider: { type: "array", items: { type: "string" } },
1478
+ company_email_provider: {
1479
+ type: "array",
1480
+ items: { type: "string" },
1481
+ },
1450
1482
  company_naics: prospeoFilterValueSchema,
1451
1483
  company_sics: prospeoFilterValueSchema,
1452
1484
  company_headcount_range: {
@@ -2952,6 +2952,7 @@ export declare const allTools: ({
2952
2952
  type: string;
2953
2953
  items: {
2954
2954
  type: string;
2955
+ enum: string[];
2955
2956
  };
2956
2957
  };
2957
2958
  other: {
@@ -2987,6 +2988,7 @@ export declare const allTools: ({
2987
2988
  };
2988
2989
  geographic_scope: {
2989
2990
  type: string;
2991
+ enum: string[];
2990
2992
  };
2991
2993
  };
2992
2994
  };
@@ -4090,6 +4092,7 @@ export declare const allTools: ({
4090
4092
  type: string;
4091
4093
  items: {
4092
4094
  type: string;
4095
+ enum: string[];
4093
4096
  };
4094
4097
  };
4095
4098
  other: {
@@ -4125,6 +4128,7 @@ export declare const allTools: ({
4125
4128
  };
4126
4129
  geographic_scope: {
4127
4130
  type: string;
4131
+ enum: string[];
4128
4132
  };
4129
4133
  };
4130
4134
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.221",
3
+ "version": "0.1.223",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -218,6 +218,24 @@ reconstruct raw account rows or domains manually. Account rows are not people
218
218
  leads yet. The confirmation creates the `domainFilterId` that constrains the
219
219
  follow-on `search_prospeo` people search.
220
220
 
221
+ Prospeo company/account search is useful when the source plan depends on
222
+ website traffic (`company_website_traffic`), confirmed AI Attributes including
223
+ `pricing`, `uses_ai`, `has_api`, `has_chrome_extension`, `has_sso`,
224
+ `has_open_source`, `has_marketplace`, `has_blog`, `has_knowledge_base`,
225
+ `has_soc2`, `data_residency: "EU"`, news, awards, website pages, products,
226
+ integrations, key customers, Google discovery, location headcount, or
227
+ structured ICP. When using `company_icp.company_sizes` for micro/SMB/midmarket
228
+ or enterprise sizing, pair it with `company_headcount_range` or rely on the MCP
229
+ normalization that derives the range; inspect the sample for size drift. For
230
+ lookalike seeds passed as `seedCompanies` or `seedDomains`, omit `company_oids`;
231
+ the MCP backend resolves real Prospeo company IDs. Do not invent company_oids.
232
+ For company ICP geography, `geographic_scope` only accepts `single_country` or
233
+ `multi_country`; put North America style regions in `geographic_markets` as
234
+ specific markets such as United States and Canada. Product is not a
235
+ company_icp.departments value; use `titles_include` for product roles. Do not
236
+ use `company_intent`, and do not invent unsupported support-channel filters or
237
+ AI Attribute guesses like phone/email/chat/ticket/social.
238
+
221
239
  After scouting, ask for a second approval on Start Import. For
222
240
  LinkedIn engagement (`signal-discovery` internally), name how many
223
241
  recommended posts will be scraped and the target engager/source-candidate
@@ -391,6 +391,28 @@ Use first for broad persona expansion, ABM/domain targeting, hiring-led targetin
391
391
  - For companies like X, our best customers, lookalike accounts, companies that use AI, companies with API/SSO/Chrome extension, or
392
392
  news/award/integration/key-customer account filters, use
393
393
  `search_prospeo_companies` before people search.
394
+ - Use Prospeo company/account search when the ask depends on website traffic
395
+ (`company_website_traffic`), confirmed AI Attributes including `pricing`,
396
+ `uses_ai`, `has_api`, `has_chrome_extension`, `has_sso`, `has_open_source`,
397
+ `has_marketplace`, `has_blog`, `has_knowledge_base`, `has_soc2`,
398
+ `data_residency: "EU"`, website pages, products, integrations, key
399
+ customers, Google discovery, location headcount, or structured ICP.
400
+ - When using `company_icp.company_sizes` for micro/SMB/midmarket or enterprise
401
+ sizing, pair it with `company_headcount_range` or rely on MCP normalization
402
+ that derives the range; inspect the account sample for size drift before
403
+ approving accounts.
404
+ - For lookalike seeds passed as `seedCompanies` or `seedDomains`, omit
405
+ `company_oids`; the MCP backend resolves real Prospeo company IDs. Do not
406
+ invent company_oids.
407
+ - For company ICP geography, `geographic_scope` only accepts `single_country`
408
+ or `multi_country`; put North America style regions in `geographic_markets`
409
+ as specific markets such as United States and Canada.
410
+ - Product is not a company_icp.departments value; use `titles_include` for
411
+ product roles. Allowed company ICP departments include Consumers, Customer
412
+ Success, Data, Design, Engineering, Finance, HR, IT, Legal, Marketing,
413
+ Operations, Procurement, SMB Owners, Sales, and Security.
414
+ - Do not use `company_intent`. Do not invent unsupported support-channel filters
415
+ or AI Attribute guesses like phone/email/chat/ticket/social.
394
416
  - Company/account search returns an account sample only; account rows are not people leads yet. Ask the user to approve the account sample.
395
417
  - After approval, call `confirm_prospeo_company_accounts` with the
396
418
  `companySearchToken` and selected Prospeo company IDs from
@@ -25,7 +25,7 @@ Example account discovery:
25
25
  search_prospeo_companies({
26
26
  "seedDomains": ["tryredrover.com"],
27
27
  "filters": {
28
- "company_lookalike": { "company_oids": ["cmp_red_rover"], "minimum_tier": "T1" },
28
+ "company_lookalike": { "minimum_tier": "T1" },
29
29
  "company_attributes": {
30
30
  "uses_ai": true,
31
31
  "has_api": true,
@@ -56,8 +56,11 @@ search_prospeo_companies({
56
56
  "company_icp": {
57
57
  "titles_include": ["Head of RevOps"],
58
58
  "company_sizes": ["midmarket"],
59
- "departments": { "include": ["Sales"], "match_mode": "ANY" }
59
+ "departments": { "include": ["Sales"], "match_mode": "ANY" },
60
+ "geographic_scope": "multi_country",
61
+ "geographic_markets": ["United States", "Canada"]
60
62
  },
63
+ "company_headcount_range": ["101-200", "201-500", "501-1000"],
61
64
  "company_website_traffic": { "min_monthly_visits": 50000 },
62
65
  "company_key_execs": {
63
66
  "event_types": ["VP of Sales Appointed"],
@@ -79,6 +82,24 @@ confirm_prospeo_company_accounts({
79
82
 
80
83
  Use the returned `domainFilterId` in `search_prospeo` with people filters. Do not reconstruct raw account rows or domains manually as Prospeo-sourced provenance.
81
84
 
85
+ When `seedDomains` or `seedCompanies` are present, omit `company_oids`; the MCP
86
+ backend resolves real Prospeo company IDs. Do not invent company_oids such as
87
+ placeholder IDs from examples. Only send `company_lookalike.company_oids` when
88
+ they are real Prospeo company IDs returned by a prior tool/search.
89
+
90
+ For structured ICP sizing, pair `company_icp.company_sizes` with
91
+ `company_headcount_range` when possible. The MCP normalizer derives headcount
92
+ ranges for `micro`, `smb`, `midmarket`, `enterprise`, and `large_enterprise`
93
+ when no explicit headcount range is supplied, but the sample should still be
94
+ checked for size drift before accounts are approved.
95
+ For company ICP geography, `geographic_scope` only accepts `single_country` or
96
+ `multi_country`; put "North America" style regions in `geographic_markets` as
97
+ specific markets such as `United States` and `Canada`. Product is not a
98
+ company_icp.departments value; use `titles_include` for product roles. Allowed
99
+ company ICP departments include Consumers, Customer Success, Data, Design,
100
+ Engineering, Finance, HR, IT, Legal, Marketing, Operations, Procurement, SMB
101
+ Owners, Sales, and Security.
102
+
82
103
  Unsupported/caveats:
83
104
 
84
105
  - `company_intent` is unsupported by Prospeo public API.
@@ -86,7 +107,7 @@ Unsupported/caveats:
86
107
  - Public API account rows do not expose row-level lookalike tier/score/reason; do not fabricate them.
87
108
  - Website traffic and key executive filters are experimental and may fail by account/API policy.
88
109
 
89
- Confirmed AI Attribute keys:
110
+ The confirmed AI Attributes keys are:
90
111
 
91
112
  - `demo`
92
113
  - `freetrial`