@coldiq/mcp 0.3.35 → 0.3.38
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/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +71 -18
- package/dist/registry.js.map +1 -1
- package/dist/tools/find-email.d.ts +1 -0
- package/dist/tools/find-email.d.ts.map +1 -1
- package/dist/tools/find-email.js +1 -0
- package/dist/tools/find-email.js.map +1 -1
- package/dist/tools/find-emails-bulk.d.ts +1 -0
- package/dist/tools/find-emails-bulk.d.ts.map +1 -1
- package/dist/tools/find-emails-bulk.js +1 -0
- package/dist/tools/find-emails-bulk.js.map +1 -1
- package/dist/tools/find-emails.d.ts +1 -0
- package/dist/tools/find-emails.d.ts.map +1 -1
- package/dist/tools/find-emails.js +1 -0
- package/dist/tools/find-emails.js.map +1 -1
- package/dist/utils/provider-resolver.d.ts.map +1 -1
- package/dist/utils/provider-resolver.js +1 -0
- package/dist/utils/provider-resolver.js.map +1 -1
- package/dist/verb-client.d.ts.map +1 -1
- package/dist/verb-client.js +3 -1
- package/dist/verb-client.js.map +1 -1
- package/package.json +1 -1
- package/src/registry.ts +75 -18
- package/src/tools/find-email.ts +1 -0
- package/src/tools/find-emails-bulk.ts +1 -0
- package/src/tools/find-emails.ts +1 -0
- package/src/utils/provider-resolver.ts +1 -0
- package/src/verb-client.ts +2 -1
- package/tests/registry-linkupapi.test.ts +2 -2
- package/tests/registry.test.ts +13 -7
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACtD,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACtC,kDAAkD;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACvG,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACrC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;IAC1D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;CACxE;AAED,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AA4ExB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAIlG;AA0BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAgCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAclE;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAGpF;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACtD,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACtC,kDAAkD;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACvG,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACrC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;IAC1D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;CACxE;AAED,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AA4ExB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAIlG;AA0BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAgCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAclE;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAGpF;AAs1GD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAI3D;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CASpE;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,OAAO,GAAG,aAAa,EAAE,CAkB5E"}
|
package/dist/registry.js
CHANGED
|
@@ -1494,7 +1494,7 @@ const findEmailProviders = [
|
|
|
1494
1494
|
id: 'findymail',
|
|
1495
1495
|
endpoint: '/findymail/search/name',
|
|
1496
1496
|
method: 'POST',
|
|
1497
|
-
priority:
|
|
1497
|
+
priority: 7,
|
|
1498
1498
|
isApplicable: (input) => typeof input.first_name === 'string' && input.first_name.length > 0 &&
|
|
1499
1499
|
((typeof input.domain === 'string' && input.domain.length > 0) ||
|
|
1500
1500
|
(typeof input.company_name === 'string' && input.company_name.length > 0)),
|
|
@@ -1505,15 +1505,18 @@ const findEmailProviders = [
|
|
|
1505
1505
|
},
|
|
1506
1506
|
}),
|
|
1507
1507
|
hasResult: (data) => {
|
|
1508
|
+
// Findymail /search/name nests the email under `contact.email` (not top-level).
|
|
1508
1509
|
const d = data;
|
|
1509
|
-
|
|
1510
|
+
const contact = d.contact;
|
|
1511
|
+
const email = (typeof contact?.email === 'string' ? contact.email : undefined) ?? d.email;
|
|
1512
|
+
return typeof email === 'string' && email.includes('@');
|
|
1510
1513
|
},
|
|
1511
1514
|
},
|
|
1512
1515
|
{
|
|
1513
1516
|
id: 'icypeas',
|
|
1514
1517
|
endpoint: '/icypeas/email-search',
|
|
1515
1518
|
method: 'POST',
|
|
1516
|
-
priority:
|
|
1519
|
+
priority: 11,
|
|
1517
1520
|
mapParams: (input) => ({
|
|
1518
1521
|
body: {
|
|
1519
1522
|
firstname: input.first_name,
|
|
@@ -1531,7 +1534,7 @@ const findEmailProviders = [
|
|
|
1531
1534
|
id: 'limadata-work-email',
|
|
1532
1535
|
endpoint: '/coldiq/find/work-email',
|
|
1533
1536
|
method: 'POST',
|
|
1534
|
-
priority:
|
|
1537
|
+
priority: 1,
|
|
1535
1538
|
mapParams: (input) => {
|
|
1536
1539
|
const fullName = [input.first_name, input.last_name].filter(Boolean).join(' ');
|
|
1537
1540
|
return {
|
|
@@ -1561,7 +1564,7 @@ const findEmailProviders = [
|
|
|
1561
1564
|
id: 'prospeo',
|
|
1562
1565
|
endpoint: '/prospeo/enrich-person',
|
|
1563
1566
|
method: 'POST',
|
|
1564
|
-
priority:
|
|
1567
|
+
priority: 3,
|
|
1565
1568
|
mapParams: (input) => {
|
|
1566
1569
|
if (input.linkedin_url) {
|
|
1567
1570
|
return { body: { data: { linkedin_url: input.linkedin_url } } };
|
|
@@ -1587,7 +1590,7 @@ const findEmailProviders = [
|
|
|
1587
1590
|
id: 'blitzapi',
|
|
1588
1591
|
endpoint: '/blitzapi/enrichment/find-work-email',
|
|
1589
1592
|
method: 'POST',
|
|
1590
|
-
priority:
|
|
1593
|
+
priority: 4,
|
|
1591
1594
|
mapParams: (input) => ({
|
|
1592
1595
|
body: { person_linkedin_url: input.linkedin_url },
|
|
1593
1596
|
}),
|
|
@@ -1601,7 +1604,7 @@ const findEmailProviders = [
|
|
|
1601
1604
|
id: 'fullenrich',
|
|
1602
1605
|
endpoint: '/fullenrich/contact/enrich/bulk',
|
|
1603
1606
|
method: 'POST',
|
|
1604
|
-
priority:
|
|
1607
|
+
priority: 8,
|
|
1605
1608
|
mapParams: (input) => ({
|
|
1606
1609
|
body: {
|
|
1607
1610
|
name: 'mcp-enrich',
|
|
@@ -1642,7 +1645,7 @@ const findEmailProviders = [
|
|
|
1642
1645
|
id: 'limadata-work-email-linkedin',
|
|
1643
1646
|
endpoint: '/coldiq/find/work-email-linkedin',
|
|
1644
1647
|
method: 'POST',
|
|
1645
|
-
priority:
|
|
1648
|
+
priority: 5,
|
|
1646
1649
|
mapParams: (input) => ({
|
|
1647
1650
|
body: { linkedin_url: input.linkedin_url },
|
|
1648
1651
|
}),
|
|
@@ -1663,7 +1666,7 @@ const findEmailProviders = [
|
|
|
1663
1666
|
id: 'linkupapi',
|
|
1664
1667
|
endpoint: '/linkupapi/data/mail/finder',
|
|
1665
1668
|
method: 'POST',
|
|
1666
|
-
priority:
|
|
1669
|
+
priority: 10,
|
|
1667
1670
|
mapParams: (input) => ({
|
|
1668
1671
|
body: {
|
|
1669
1672
|
first_name: input.first_name,
|
|
@@ -1682,7 +1685,7 @@ const findEmailProviders = [
|
|
|
1682
1685
|
id: 'apollo-people-match',
|
|
1683
1686
|
endpoint: '/apollo/people/match',
|
|
1684
1687
|
method: 'POST',
|
|
1685
|
-
priority:
|
|
1688
|
+
priority: 6,
|
|
1686
1689
|
isApplicable: (input) => (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0) ||
|
|
1687
1690
|
(!!input.first_name && !!input.last_name && !!(input.domain || input.company_name)),
|
|
1688
1691
|
mapParams: (input) => ({
|
|
@@ -1708,7 +1711,7 @@ const findEmailProviders = [
|
|
|
1708
1711
|
id: 'pdl-person-enrich',
|
|
1709
1712
|
endpoint: '/pdl/person/enrich',
|
|
1710
1713
|
method: 'POST',
|
|
1711
|
-
priority:
|
|
1714
|
+
priority: 9,
|
|
1712
1715
|
isApplicable: (input) => (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0) ||
|
|
1713
1716
|
(!!input.first_name && !!input.last_name && !!(input.domain || input.company_name)),
|
|
1714
1717
|
mapParams: (input) => ({
|
|
@@ -1727,6 +1730,28 @@ const findEmailProviders = [
|
|
|
1727
1730
|
return !!rec && typeof rec.work_email === 'string' && rec.work_email.includes('@');
|
|
1728
1731
|
},
|
|
1729
1732
|
},
|
|
1733
|
+
{
|
|
1734
|
+
id: 'leadmagic',
|
|
1735
|
+
endpoint: '/leadmagic/people/email-finder',
|
|
1736
|
+
method: 'POST',
|
|
1737
|
+
priority: 2,
|
|
1738
|
+
isApplicable: (input) => typeof input.first_name === 'string' && input.first_name.length > 0 &&
|
|
1739
|
+
((typeof input.domain === 'string' && input.domain.length > 0) ||
|
|
1740
|
+
(typeof input.company_name === 'string' && input.company_name.length > 0)),
|
|
1741
|
+
mapParams: (input) => ({
|
|
1742
|
+
body: {
|
|
1743
|
+
first_name: input.first_name,
|
|
1744
|
+
last_name: input.last_name,
|
|
1745
|
+
domain: input.domain,
|
|
1746
|
+
company_name: input.company_name,
|
|
1747
|
+
},
|
|
1748
|
+
}),
|
|
1749
|
+
hasResult: (data) => {
|
|
1750
|
+
// A miss is HTTP 200 with a message string and no email field.
|
|
1751
|
+
const d = data;
|
|
1752
|
+
return typeof d.email === 'string' && d.email.includes('@');
|
|
1753
|
+
},
|
|
1754
|
+
},
|
|
1730
1755
|
];
|
|
1731
1756
|
// ---------------------------------------------------------------------------
|
|
1732
1757
|
// verify_email
|
|
@@ -1737,7 +1762,7 @@ const verifyEmailProviders = [
|
|
|
1737
1762
|
id: 'findymail',
|
|
1738
1763
|
endpoint: '/findymail/verify',
|
|
1739
1764
|
method: 'POST',
|
|
1740
|
-
priority:
|
|
1765
|
+
priority: 2,
|
|
1741
1766
|
mapParams: (input) => ({ body: { email: input.email } }),
|
|
1742
1767
|
hasResult: (data) => {
|
|
1743
1768
|
const d = data;
|
|
@@ -1749,7 +1774,7 @@ const verifyEmailProviders = [
|
|
|
1749
1774
|
id: 'icypeas',
|
|
1750
1775
|
endpoint: '/icypeas/email-verification',
|
|
1751
1776
|
method: 'POST',
|
|
1752
|
-
priority:
|
|
1777
|
+
priority: 3,
|
|
1753
1778
|
mapParams: (input) => ({ body: { email: input.email } }),
|
|
1754
1779
|
hasResult: (data) => {
|
|
1755
1780
|
const d = data;
|
|
@@ -1761,7 +1786,7 @@ const verifyEmailProviders = [
|
|
|
1761
1786
|
id: 'instantly',
|
|
1762
1787
|
endpoint: '/instantly/email-verification',
|
|
1763
1788
|
method: 'POST',
|
|
1764
|
-
priority:
|
|
1789
|
+
priority: 4,
|
|
1765
1790
|
mapParams: (input) => ({ body: { email: input.email } }),
|
|
1766
1791
|
hasResult: (data) => {
|
|
1767
1792
|
const d = data;
|
|
@@ -1789,13 +1814,24 @@ const verifyEmailProviders = [
|
|
|
1789
1814
|
id: 'linkupapi-validate',
|
|
1790
1815
|
endpoint: '/linkupapi/data/mail/validate',
|
|
1791
1816
|
method: 'POST',
|
|
1792
|
-
priority:
|
|
1817
|
+
priority: 5,
|
|
1793
1818
|
mapParams: (input) => ({ body: { email: input.email } }),
|
|
1794
1819
|
hasResult: (data) => {
|
|
1795
1820
|
const d = data;
|
|
1796
1821
|
return d.verified !== undefined || d.status !== undefined || d.result !== undefined || d.valid !== undefined;
|
|
1797
1822
|
},
|
|
1798
1823
|
},
|
|
1824
|
+
{
|
|
1825
|
+
id: 'leadmagic',
|
|
1826
|
+
endpoint: '/leadmagic/people/email-validation',
|
|
1827
|
+
method: 'POST',
|
|
1828
|
+
priority: 1,
|
|
1829
|
+
mapParams: (input) => ({ body: { email: input.email } }),
|
|
1830
|
+
hasResult: (data) => {
|
|
1831
|
+
const d = data;
|
|
1832
|
+
return d.email_status === 'valid' || d.email_status === 'invalid';
|
|
1833
|
+
},
|
|
1834
|
+
},
|
|
1799
1835
|
];
|
|
1800
1836
|
// ---------------------------------------------------------------------------
|
|
1801
1837
|
// find_phone
|
|
@@ -1805,7 +1841,7 @@ const findPhoneProviders = [
|
|
|
1805
1841
|
id: 'findymail',
|
|
1806
1842
|
endpoint: '/findymail/search/phone',
|
|
1807
1843
|
method: 'POST',
|
|
1808
|
-
priority:
|
|
1844
|
+
priority: 2,
|
|
1809
1845
|
isApplicable: (input) => typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0,
|
|
1810
1846
|
mapParams: (input) => ({ body: { linkedin_url: input.linkedin_url } }),
|
|
1811
1847
|
hasResult: (data) => {
|
|
@@ -1817,7 +1853,7 @@ const findPhoneProviders = [
|
|
|
1817
1853
|
id: 'limadata',
|
|
1818
1854
|
endpoint: '/coldiq/find/phone',
|
|
1819
1855
|
method: 'POST',
|
|
1820
|
-
priority:
|
|
1856
|
+
priority: 3,
|
|
1821
1857
|
isApplicable: (input) => {
|
|
1822
1858
|
if (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0)
|
|
1823
1859
|
return true;
|
|
@@ -1862,7 +1898,7 @@ const findPhoneProviders = [
|
|
|
1862
1898
|
id: 'ai-ark',
|
|
1863
1899
|
endpoint: '/ai-ark/people/mobile-phone-finder',
|
|
1864
1900
|
method: 'POST',
|
|
1865
|
-
priority:
|
|
1901
|
+
priority: 4,
|
|
1866
1902
|
isApplicable: (input) => {
|
|
1867
1903
|
if (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0)
|
|
1868
1904
|
return true;
|
|
@@ -1889,6 +1925,23 @@ const findPhoneProviders = [
|
|
|
1889
1925
|
d.data.some((arr) => Array.isArray(arr) && arr.length > 0 && typeof arr[0] === 'string');
|
|
1890
1926
|
},
|
|
1891
1927
|
},
|
|
1928
|
+
{
|
|
1929
|
+
id: 'leadmagic',
|
|
1930
|
+
endpoint: '/leadmagic/people/mobile-finder',
|
|
1931
|
+
method: 'POST',
|
|
1932
|
+
priority: 1,
|
|
1933
|
+
isApplicable: (input) => (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0) ||
|
|
1934
|
+
(typeof input.email === 'string' && input.email.length > 0),
|
|
1935
|
+
mapParams: (input) => ({
|
|
1936
|
+
body: input.linkedin_url
|
|
1937
|
+
? { profile_url: input.linkedin_url }
|
|
1938
|
+
: { work_email: input.email },
|
|
1939
|
+
}),
|
|
1940
|
+
hasResult: (data) => {
|
|
1941
|
+
const d = data;
|
|
1942
|
+
return typeof d.mobile_number === 'string' && d.mobile_number.length > 0;
|
|
1943
|
+
},
|
|
1944
|
+
},
|
|
1892
1945
|
];
|
|
1893
1946
|
// ---------------------------------------------------------------------------
|
|
1894
1947
|
// enrich_company
|