@coldiq/mcp 0.3.11 → 0.3.13
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/client.d.ts.map +1 -1
- package/dist/client.js +4 -0
- package/dist/client.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/session-usage.d.ts +59 -0
- package/dist/session-usage.d.ts.map +1 -0
- package/dist/session-usage.js +96 -0
- package/dist/session-usage.js.map +1 -0
- package/dist/tools/enrich-company.d.ts +3 -9
- package/dist/tools/enrich-company.d.ts.map +1 -1
- package/dist/tools/enrich-company.js +3 -16
- package/dist/tools/enrich-company.js.map +1 -1
- package/dist/tools/enrich-person.d.ts +3 -9
- package/dist/tools/enrich-person.d.ts.map +1 -1
- package/dist/tools/enrich-person.js +3 -12
- package/dist/tools/enrich-person.js.map +1 -1
- package/dist/tools/fetch-page-content.d.ts +3 -9
- package/dist/tools/fetch-page-content.d.ts.map +1 -1
- package/dist/tools/fetch-page-content.js +3 -12
- package/dist/tools/fetch-page-content.js.map +1 -1
- package/dist/tools/find-email.d.ts +3 -9
- package/dist/tools/find-email.d.ts.map +1 -1
- package/dist/tools/find-email.js +3 -40
- package/dist/tools/find-email.js.map +1 -1
- package/dist/tools/find-emails.d.ts +3 -4
- package/dist/tools/find-emails.d.ts.map +1 -1
- package/dist/tools/find-emails.js +8 -423
- package/dist/tools/find-emails.js.map +1 -1
- package/dist/tools/find-influencers.d.ts +3 -9
- package/dist/tools/find-influencers.d.ts.map +1 -1
- package/dist/tools/find-influencers.js +3 -12
- package/dist/tools/find-influencers.js.map +1 -1
- package/dist/tools/find-people.d.ts +3 -8
- package/dist/tools/find-people.d.ts.map +1 -1
- package/dist/tools/find-people.js +3 -98
- package/dist/tools/find-people.js.map +1 -1
- package/dist/tools/find-phone.d.ts +3 -9
- package/dist/tools/find-phone.d.ts.map +1 -1
- package/dist/tools/find-phone.js +4 -41
- package/dist/tools/find-phone.js.map +1 -1
- package/dist/tools/find-signals.d.ts +3 -9
- package/dist/tools/find-signals.d.ts.map +1 -1
- package/dist/tools/find-signals.js +3 -83
- package/dist/tools/find-signals.js.map +1 -1
- package/dist/tools/get-place-reviews.d.ts +3 -9
- package/dist/tools/get-place-reviews.d.ts.map +1 -1
- package/dist/tools/get-place-reviews.js +3 -12
- package/dist/tools/get-place-reviews.js.map +1 -1
- package/dist/tools/get-session-usage.d.ts +10 -0
- package/dist/tools/get-session-usage.d.ts.map +1 -0
- package/dist/tools/get-session-usage.js +14 -0
- package/dist/tools/get-session-usage.js.map +1 -0
- package/dist/tools/search-ads.d.ts +3 -9
- package/dist/tools/search-ads.d.ts.map +1 -1
- package/dist/tools/search-ads.js +3 -12
- package/dist/tools/search-ads.js.map +1 -1
- package/dist/tools/search-companies.d.ts +3 -9
- package/dist/tools/search-companies.d.ts.map +1 -1
- package/dist/tools/search-companies.js +3 -24
- package/dist/tools/search-companies.js.map +1 -1
- package/dist/tools/search-jobs.d.ts +3 -9
- package/dist/tools/search-jobs.d.ts.map +1 -1
- package/dist/tools/search-jobs.js +3 -27
- package/dist/tools/search-jobs.js.map +1 -1
- package/dist/tools/search-places.d.ts +3 -15
- package/dist/tools/search-places.d.ts.map +1 -1
- package/dist/tools/search-places.js +5 -76
- package/dist/tools/search-places.js.map +1 -1
- package/dist/tools/search-reddit.d.ts +3 -9
- package/dist/tools/search-reddit.d.ts.map +1 -1
- package/dist/tools/search-reddit.js +3 -12
- package/dist/tools/search-reddit.js.map +1 -1
- package/dist/tools/search-seo.d.ts +3 -9
- package/dist/tools/search-seo.d.ts.map +1 -1
- package/dist/tools/search-seo.js +3 -12
- package/dist/tools/search-seo.js.map +1 -1
- package/dist/tools/search-web.d.ts +3 -9
- package/dist/tools/search-web.d.ts.map +1 -1
- package/dist/tools/search-web.js +3 -12
- package/dist/tools/search-web.js.map +1 -1
- package/dist/tools/verify-email.d.ts +3 -10
- package/dist/tools/verify-email.d.ts.map +1 -1
- package/dist/tools/verify-email.js +3 -68
- package/dist/tools/verify-email.js.map +1 -1
- package/dist/verb-client.d.ts +35 -0
- package/dist/verb-client.d.ts.map +1 -0
- package/dist/verb-client.js +57 -0
- package/dist/verb-client.js.map +1 -0
- package/package.json +1 -1
- package/src/client.ts +4 -0
- package/src/index.ts +8 -0
- package/src/session-usage.ts +130 -0
- package/src/tools/enrich-company.ts +3 -16
- package/src/tools/enrich-person.ts +3 -12
- package/src/tools/fetch-page-content.ts +3 -12
- package/src/tools/find-email.ts +3 -42
- package/src/tools/find-emails.ts +8 -506
- package/src/tools/find-influencers.ts +3 -12
- package/src/tools/find-people.ts +3 -107
- package/src/tools/find-phone.ts +4 -42
- package/src/tools/find-signals.ts +3 -88
- package/src/tools/get-place-reviews.ts +3 -12
- package/src/tools/get-session-usage.ts +18 -0
- package/src/tools/search-ads.ts +3 -12
- package/src/tools/search-companies.ts +3 -23
- package/src/tools/search-jobs.ts +3 -30
- package/src/tools/search-places.ts +5 -72
- package/src/tools/search-reddit.ts +3 -12
- package/src/tools/search-seo.ts +3 -12
- package/src/tools/search-web.ts +3 -12
- package/src/tools/verify-email.ts +3 -76
- package/src/verb-client.ts +93 -0
- package/tests/executor.test.ts +69 -0
- package/tests/session-usage.test.ts +130 -0
- package/tests/tools/get-session-usage.test.ts +44 -0
- package/tests/verb-client.test.ts +152 -0
- package/tests/tools/enrich-company.test.ts +0 -92
- package/tests/tools/enrich-person.test.ts +0 -140
- package/tests/tools/fetch-page-content.test.ts +0 -108
- package/tests/tools/find-email.test.ts +0 -137
- package/tests/tools/find-emails.test.ts +0 -818
- package/tests/tools/find-influencers.test.ts +0 -91
- package/tests/tools/find-people.test.ts +0 -621
- package/tests/tools/find-phone.test.ts +0 -100
- package/tests/tools/find-signals.test.ts +0 -175
- package/tests/tools/get-place-reviews.test.ts +0 -73
- package/tests/tools/search-ads.test.ts +0 -182
- package/tests/tools/search-companies.test.ts +0 -192
- package/tests/tools/search-jobs.test.ts +0 -210
- package/tests/tools/search-places.test.ts +0 -210
- package/tests/tools/search-reddit.test.ts +0 -194
- package/tests/tools/search-seo.test.ts +0 -183
- package/tests/tools/search-web.test.ts +0 -79
- package/tests/tools/verify-email.test.ts +0 -142
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
|
|
2
|
-
import { initClient } from '../../src/client.js'
|
|
3
|
-
import { findInfluencersHandler } from '../../src/tools/find-influencers.js'
|
|
4
|
-
|
|
5
|
-
describe('find_influencers handler', () => {
|
|
6
|
-
const originalFetch = globalThis.fetch
|
|
7
|
-
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
initClient('http://test-api.local', 'test-key')
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
afterEach(() => {
|
|
13
|
-
globalThis.fetch = originalFetch
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
it('handle set — influencers_similar fires first (lookalike route)', async () => {
|
|
17
|
-
let discoveryCalled = false
|
|
18
|
-
|
|
19
|
-
globalThis.fetch = vi.fn(async (url: string | URL | Request) => {
|
|
20
|
-
const u = url.toString()
|
|
21
|
-
if (u.includes('/influencers-club/discovery') && !u.includes('/creators/similar')) {
|
|
22
|
-
discoveryCalled = true
|
|
23
|
-
}
|
|
24
|
-
if (u.includes('/influencers-club/discovery/creators/similar')) {
|
|
25
|
-
return new Response(JSON.stringify({
|
|
26
|
-
creators: [{ handle: 'garyvee', platform: 'instagram', followers: 8_500_000 }],
|
|
27
|
-
}), { status: 200 })
|
|
28
|
-
}
|
|
29
|
-
return new Response(JSON.stringify({ error: 'unexpected' }), { status: 500 })
|
|
30
|
-
}) as typeof fetch
|
|
31
|
-
|
|
32
|
-
const result = await findInfluencersHandler({ platform: 'instagram', handle: 'hubspot', limit: 5 })
|
|
33
|
-
|
|
34
|
-
expect(result.isError).toBeFalsy()
|
|
35
|
-
const parsed = JSON.parse(result.content[0].text)
|
|
36
|
-
expect(parsed._meta.provider).toBe('influencers_similar')
|
|
37
|
-
expect(parsed.data.creators).toHaveLength(1)
|
|
38
|
-
expect(discoveryCalled).toBe(false)
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
it('no handle — influencers_similar skipped, influencers_discovery fires', async () => {
|
|
42
|
-
globalThis.fetch = vi.fn(async (url: string | URL | Request) => {
|
|
43
|
-
const u = url.toString()
|
|
44
|
-
if (u.includes('/influencers-club/discovery') && !u.includes('/creators/similar')) {
|
|
45
|
-
return new Response(JSON.stringify({
|
|
46
|
-
accounts: [{ handle: 'salesforce', platform: 'linkedin', followers: 1_200_000 }],
|
|
47
|
-
}), { status: 200 })
|
|
48
|
-
}
|
|
49
|
-
return new Response(JSON.stringify({ error: 'unexpected' }), { status: 500 })
|
|
50
|
-
}) as typeof fetch
|
|
51
|
-
|
|
52
|
-
const result = await findInfluencersHandler({ platform: 'linkedin', ai_search: 'B2B SaaS founders', limit: 5 })
|
|
53
|
-
|
|
54
|
-
expect(result.isError).toBeFalsy()
|
|
55
|
-
const parsed = JSON.parse(result.content[0].text)
|
|
56
|
-
expect(parsed._meta.provider).toBe('influencers_discovery')
|
|
57
|
-
expect(parsed.data.accounts).toHaveLength(1)
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
it('handle set but similar returns empty — falls back to influencers_discovery', async () => {
|
|
61
|
-
globalThis.fetch = vi.fn(async (url: string | URL | Request) => {
|
|
62
|
-
const u = url.toString()
|
|
63
|
-
if (u.includes('/influencers-club/discovery/creators/similar')) {
|
|
64
|
-
// hasResult fails: no creators/accounts array
|
|
65
|
-
return new Response(JSON.stringify({ creators: [] }), { status: 200 })
|
|
66
|
-
}
|
|
67
|
-
if (u.includes('/influencers-club/discovery') && !u.includes('/creators/similar')) {
|
|
68
|
-
return new Response(JSON.stringify({ accounts: [{ handle: 'techinfluencer' }] }), { status: 200 })
|
|
69
|
-
}
|
|
70
|
-
return new Response(JSON.stringify({ error: 'unexpected' }), { status: 500 })
|
|
71
|
-
}) as typeof fetch
|
|
72
|
-
|
|
73
|
-
const result = await findInfluencersHandler({ platform: 'instagram', handle: 'unknown_handle', limit: 5 })
|
|
74
|
-
|
|
75
|
-
expect(result.isError).toBeFalsy()
|
|
76
|
-
const parsed = JSON.parse(result.content[0].text)
|
|
77
|
-
expect(parsed._meta.provider).toBe('influencers_discovery')
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
it('all providers fail — returns isError', async () => {
|
|
81
|
-
globalThis.fetch = vi.fn(async () => {
|
|
82
|
-
return new Response(JSON.stringify({ error: 'down' }), { status: 503 })
|
|
83
|
-
}) as typeof fetch
|
|
84
|
-
|
|
85
|
-
const result = await findInfluencersHandler({ platform: 'instagram', limit: 5 })
|
|
86
|
-
|
|
87
|
-
expect(result.isError).toBe(true)
|
|
88
|
-
const parsed = JSON.parse(result.content[0].text)
|
|
89
|
-
expect(parsed.error).toBeTruthy()
|
|
90
|
-
})
|
|
91
|
-
})
|