@coldiq/mcp 0.2.8 → 0.3.1
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/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +102 -16
- package/dist/registry.js.map +1 -1
- package/dist/tools/extract-post-engagement.d.ts +21 -0
- package/dist/tools/extract-post-engagement.d.ts.map +1 -0
- package/dist/tools/extract-post-engagement.js +117 -0
- package/dist/tools/extract-post-engagement.js.map +1 -0
- package/dist/tools/find-influencers.d.ts +1 -1
- package/dist/tools/find-influencers.d.ts.map +1 -1
- package/dist/tools/find-influencers.js +2 -1
- package/dist/tools/find-influencers.js.map +1 -1
- package/dist/tools/find-signals.d.ts.map +1 -1
- package/dist/tools/find-signals.js +27 -10
- package/dist/tools/find-signals.js.map +1 -1
- package/dist/tools/get-place-reviews.d.ts +24 -0
- package/dist/tools/get-place-reviews.d.ts.map +1 -0
- package/dist/tools/get-place-reviews.js +46 -0
- package/dist/tools/get-place-reviews.js.map +1 -0
- package/dist/tools/search-ads.d.ts +1 -1
- package/dist/tools/search-ads.d.ts.map +1 -1
- package/dist/tools/search-ads.js +1 -1
- package/dist/tools/search-ads.js.map +1 -1
- package/dist/tools/search-companies.d.ts.map +1 -1
- package/dist/tools/search-companies.js +8 -1
- package/dist/tools/search-companies.js.map +1 -1
- package/dist/tools/search-places.d.ts +1 -1
- package/dist/tools/search-places.d.ts.map +1 -1
- package/dist/tools/search-places.js +23 -3
- package/dist/tools/search-places.js.map +1 -1
- package/dist/tools/search-reddit.js +1 -1
- package/dist/tools/search-reddit.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +16 -0
- package/src/registry.ts +93 -5
- package/src/tools/extract-post-engagement.ts +135 -0
- package/src/tools/find-influencers.ts +2 -1
- package/src/tools/find-signals.ts +28 -11
- package/src/tools/get-place-reviews.ts +50 -0
- package/src/tools/search-ads.ts +1 -1
- package/src/tools/search-companies.ts +7 -1
- package/src/tools/search-places.ts +22 -3
- package/src/tools/search-reddit.ts +1 -1
- package/tests/registry-find-signals.test.ts +66 -0
- package/tests/registry-search-companies.test.ts +16 -0
- package/tests/registry.test.ts +3 -3
- package/tests/tools/extract-post-engagement.test.ts +76 -0
- package/tests/tools/find-signals.test.ts +5 -2
- package/tests/tools/get-place-reviews.test.ts +73 -0
- package/tests/tools/search-companies.test.ts +19 -1
- package/tests/tools/search-reddit.test.ts +69 -0
package/dist/index.js
CHANGED
|
@@ -20,6 +20,8 @@ import { searchSeoName, searchSeoDescription, searchSeoSchema, searchSeoHandler,
|
|
|
20
20
|
import { findSignalsName, findSignalsDescription, findSignalsSchema, findSignalsHandler, } from './tools/find-signals.js';
|
|
21
21
|
import { fetchPageContentName, fetchPageContentDescription, fetchPageContentSchema, fetchPageContentHandler, } from './tools/fetch-page-content.js';
|
|
22
22
|
import { getCreditBalanceName, getCreditBalanceDescription, getCreditBalanceSchema, getCreditBalanceHandler, } from './tools/get-credit-balance.js';
|
|
23
|
+
import { extractPostEngagementName, extractPostEngagementDescription, extractPostEngagementSchema, extractPostEngagementHandler, } from './tools/extract-post-engagement.js';
|
|
24
|
+
import { getPlaceReviewsName, getPlaceReviewsDescription, getPlaceReviewsSchema, getPlaceReviewsHandler, } from './tools/get-place-reviews.js';
|
|
23
25
|
// Initialize HTTP client (reads env vars)
|
|
24
26
|
initClient();
|
|
25
27
|
const server = new McpServer({
|
|
@@ -45,6 +47,8 @@ server.tool(searchSeoName, searchSeoDescription, searchSeoSchema, searchSeoHandl
|
|
|
45
47
|
server.tool(findSignalsName, findSignalsDescription, findSignalsSchema, findSignalsHandler);
|
|
46
48
|
server.tool(fetchPageContentName, fetchPageContentDescription, fetchPageContentSchema, fetchPageContentHandler);
|
|
47
49
|
server.tool(getCreditBalanceName, getCreditBalanceDescription, getCreditBalanceSchema, getCreditBalanceHandler);
|
|
50
|
+
server.tool(extractPostEngagementName, extractPostEngagementDescription, extractPostEngagementSchema, extractPostEngagementHandler);
|
|
51
|
+
server.tool(getPlaceReviewsName, getPlaceReviewsDescription, getPlaceReviewsSchema, getPlaceReviewsHandler);
|
|
48
52
|
// Connect via stdio transport
|
|
49
53
|
const transport = new StdioServerTransport();
|
|
50
54
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export interface ProviderEntry {
|
|
|
39
39
|
*/
|
|
40
40
|
postFilter?: (data: unknown, input: Record<string, unknown>) => unknown;
|
|
41
41
|
}
|
|
42
|
-
export type Capability = 'search_companies' | 'find_people' | 'find_email' | 'verify_email' | 'find_phone' | 'enrich_company' | 'enrich_person' | 'search_web' | 'search_jobs' | 'search_ads' | 'search_places' | 'find_influencers' | 'search_reddit' | 'search_seo' | 'find_signals' | 'fetch_page_content';
|
|
42
|
+
export type Capability = 'search_companies' | 'find_people' | 'find_email' | 'verify_email' | 'find_phone' | 'enrich_company' | 'enrich_person' | 'search_web' | 'search_jobs' | 'search_ads' | 'search_places' | 'get_place_reviews' | 'find_influencers' | 'search_reddit' | 'search_seo' | 'find_signals' | 'fetch_page_content';
|
|
43
43
|
export declare function prospeoHeadcountBuckets(min: number | undefined, max: number | undefined): string[];
|
|
44
44
|
export declare function isoCountryToName(code: string): string;
|
|
45
45
|
export declare function nameToIsoCountry(input: string): string | undefined;
|
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,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AAkCxB,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;AAkCxB,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;AAqmGD;;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
|
@@ -300,7 +300,9 @@ const searchCompaniesProviders = [
|
|
|
300
300
|
organization_num_employees_ranges: input.min_employees || input.max_employees
|
|
301
301
|
? [`${input.min_employees ?? 0},${input.max_employees ?? 1000000}`]
|
|
302
302
|
: undefined,
|
|
303
|
-
|
|
303
|
+
// Backend auto-paginates `limit` over Apollo pages (100/page = 1 credit) and
|
|
304
|
+
// bills only the pages actually fetched.
|
|
305
|
+
limit: input.limit ?? 25,
|
|
304
306
|
},
|
|
305
307
|
};
|
|
306
308
|
},
|
|
@@ -2401,6 +2403,29 @@ const searchPlacesProviders = [
|
|
|
2401
2403
|
},
|
|
2402
2404
|
];
|
|
2403
2405
|
// ---------------------------------------------------------------------------
|
|
2406
|
+
// get_place_reviews
|
|
2407
|
+
// ---------------------------------------------------------------------------
|
|
2408
|
+
const getPlaceReviewsProviders = [
|
|
2409
|
+
{
|
|
2410
|
+
id: 'google_maps_reviews',
|
|
2411
|
+
endpoint: '/google-maps/reviews',
|
|
2412
|
+
method: 'POST',
|
|
2413
|
+
priority: 1,
|
|
2414
|
+
mapParams: (input) => ({
|
|
2415
|
+
body: {
|
|
2416
|
+
startUrls: input.place_urls.map((url) => ({ url })),
|
|
2417
|
+
maxReviews: input.max_reviews,
|
|
2418
|
+
reviewsSort: input.sort,
|
|
2419
|
+
language: input.language,
|
|
2420
|
+
},
|
|
2421
|
+
}),
|
|
2422
|
+
// A completed job is a valid result even with an empty reviews array (a place
|
|
2423
|
+
// may genuinely have no reviews) — only failed/timed_out should fall through.
|
|
2424
|
+
hasResult: (data) => data.status === 'done',
|
|
2425
|
+
async: { ..._placesSharedAsync, pollEndpoint: (id) => `/google-maps/reviews/${id}` },
|
|
2426
|
+
},
|
|
2427
|
+
];
|
|
2428
|
+
// ---------------------------------------------------------------------------
|
|
2404
2429
|
// find_influencers
|
|
2405
2430
|
// ---------------------------------------------------------------------------
|
|
2406
2431
|
const findInfluencersProviders = [
|
|
@@ -2471,6 +2496,23 @@ const _redditSharedAsync = {
|
|
|
2471
2496
|
return s === 'done' || s === 'failed' || s === 'timed_out';
|
|
2472
2497
|
},
|
|
2473
2498
|
};
|
|
2499
|
+
// A bare subreddit URL (e.g. https://www.reddit.com/r/sales or .../r/sales/)
|
|
2500
|
+
// makes the Apify actor ENUMERATE that subreddit's feed and ignore the search
|
|
2501
|
+
// keyword entirely. When the caller also passes a `query`, rewrite bare
|
|
2502
|
+
// subreddit URLs into in-subreddit search URLs so the keyword is actually
|
|
2503
|
+
// applied. Already-formed search/post URLs are left untouched.
|
|
2504
|
+
const _BARE_SUBREDDIT_RE = /^(https?:\/\/(?:www\.)?reddit\.com\/r\/[A-Za-z0-9_]+)\/?$/i;
|
|
2505
|
+
function _toRedditSearchUrl(url, query, opts) {
|
|
2506
|
+
const m = url.match(_BARE_SUBREDDIT_RE);
|
|
2507
|
+
if (!m)
|
|
2508
|
+
return url;
|
|
2509
|
+
const params = new URLSearchParams({ q: query, restrict_sr: '1' });
|
|
2510
|
+
if (typeof opts.sort === 'string' && opts.sort)
|
|
2511
|
+
params.set('sort', opts.sort);
|
|
2512
|
+
if (typeof opts.time === 'string' && opts.time)
|
|
2513
|
+
params.set('t', opts.time);
|
|
2514
|
+
return `${m[1]}/search/?${params.toString()}`;
|
|
2515
|
+
}
|
|
2474
2516
|
const searchRedditProviders = [
|
|
2475
2517
|
{
|
|
2476
2518
|
id: 'reddit',
|
|
@@ -2478,21 +2520,38 @@ const searchRedditProviders = [
|
|
|
2478
2520
|
method: 'POST',
|
|
2479
2521
|
priority: 1,
|
|
2480
2522
|
isApplicable: (input) => isNonEmptyArray(input.start_urls) || typeof input.query === 'string',
|
|
2481
|
-
mapParams: (input) =>
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2523
|
+
mapParams: (input) => {
|
|
2524
|
+
const query = typeof input.query === 'string' && input.query ? input.query : undefined;
|
|
2525
|
+
const rawStartUrls = input.start_urls;
|
|
2526
|
+
let startUrls = rawStartUrls?.map((url) => ({ url }));
|
|
2527
|
+
let searchQueries = query ? [query] : undefined;
|
|
2528
|
+
// If a query is provided alongside start_urls, embed it into any bare
|
|
2529
|
+
// subreddit URLs (which would otherwise ignore it). The keyword then lives
|
|
2530
|
+
// in the URL, so drop the top-level searchQueries to avoid a conflicting
|
|
2531
|
+
// global search.
|
|
2532
|
+
if (query && rawStartUrls && rawStartUrls.length > 0) {
|
|
2533
|
+
const rewritten = rawStartUrls.map((u) => _toRedditSearchUrl(u, query, { sort: input.sort, time: input.time }));
|
|
2534
|
+
if (rewritten.some((u, i) => u !== rawStartUrls[i])) {
|
|
2535
|
+
startUrls = rewritten.map((url) => ({ url }));
|
|
2536
|
+
searchQueries = undefined;
|
|
2537
|
+
}
|
|
2538
|
+
}
|
|
2539
|
+
return {
|
|
2540
|
+
body: {
|
|
2541
|
+
searchQueries,
|
|
2542
|
+
startUrls,
|
|
2543
|
+
searchType: input.search_type ?? 'posts',
|
|
2544
|
+
searchCommunityName: input.search_community_name,
|
|
2545
|
+
sort: input.sort,
|
|
2546
|
+
time: input.time,
|
|
2547
|
+
maxItems: Math.min(Math.max(input.limit ?? 10, 1), 200),
|
|
2548
|
+
maxComments: input.max_comments,
|
|
2549
|
+
includeComments: input.include_comments,
|
|
2550
|
+
postDateLimit: input.post_date_limit,
|
|
2551
|
+
commentDateLimit: input.comment_date_limit,
|
|
2552
|
+
},
|
|
2553
|
+
};
|
|
2554
|
+
},
|
|
2496
2555
|
hasResult: (data) => isNonEmptyArray(data.items),
|
|
2497
2556
|
async: {
|
|
2498
2557
|
..._redditSharedAsync,
|
|
@@ -3090,6 +3149,32 @@ const findSignalsProviders = [
|
|
|
3090
3149
|
hasResult: (data) => isNonEmptyArray(data.data),
|
|
3091
3150
|
},
|
|
3092
3151
|
{
|
|
3152
|
+
// Topic-based DISCOVERY: "which companies show intent on topic X" with no
|
|
3153
|
+
// company list known in advance. Routes to /theirstack/companies/search,
|
|
3154
|
+
// which returns a list of companies filtered by buying-intent keyword slugs.
|
|
3155
|
+
// This is the GTM-primary use case (find prospects by intent), distinct from
|
|
3156
|
+
// theirstack-buying-intents which verifies intent on companies you already have.
|
|
3157
|
+
id: 'theirstack-intent-discovery',
|
|
3158
|
+
endpoint: '/theirstack/companies/search',
|
|
3159
|
+
method: 'POST',
|
|
3160
|
+
priority: 5,
|
|
3161
|
+
isApplicable: (input) => input.signal_type === 'intent' &&
|
|
3162
|
+
isNonEmptyArray(input.topics) &&
|
|
3163
|
+
!isNonEmptyArray(input.companies) &&
|
|
3164
|
+
!isNonEmptyArray(input.domains),
|
|
3165
|
+
mapParams: (input) => ({
|
|
3166
|
+
body: {
|
|
3167
|
+
company_keyword_slug_or: input.topics,
|
|
3168
|
+
...(isNonEmptyArray(input.industries) && { industry_or: input.industries }),
|
|
3169
|
+
...(isNonEmptyArray(input.countries) && { company_country_code_or: input.countries }),
|
|
3170
|
+
limit: Math.min(input.limit ?? 25, 100),
|
|
3171
|
+
include_total_results: true,
|
|
3172
|
+
},
|
|
3173
|
+
}),
|
|
3174
|
+
hasResult: (data) => isNonEmptyArray(data.data),
|
|
3175
|
+
},
|
|
3176
|
+
{
|
|
3177
|
+
// Verify intent on KNOWN companies/domains.
|
|
3093
3178
|
id: 'theirstack-buying-intents',
|
|
3094
3179
|
endpoint: '/theirstack/companies/buying_intents',
|
|
3095
3180
|
method: 'POST',
|
|
@@ -3186,6 +3271,7 @@ const registry = {
|
|
|
3186
3271
|
search_jobs: searchJobsProviders,
|
|
3187
3272
|
search_ads: searchAdsProviders,
|
|
3188
3273
|
search_places: searchPlacesProviders,
|
|
3274
|
+
get_place_reviews: getPlaceReviewsProviders,
|
|
3189
3275
|
find_influencers: findInfluencersProviders,
|
|
3190
3276
|
search_reddit: searchRedditProviders,
|
|
3191
3277
|
search_seo: searchSeoProviders,
|