@channel47/dataforseo-mcp-server 1.0.0

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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +155 -0
  3. package/dist/api/ai-optimization/index.d.ts +3 -0
  4. package/dist/api/ai-optimization/index.js +178 -0
  5. package/dist/api/ai-optimization/index.js.map +1 -0
  6. package/dist/api/app-data/index.d.ts +3 -0
  7. package/dist/api/app-data/index.js +115 -0
  8. package/dist/api/app-data/index.js.map +1 -0
  9. package/dist/api/backlinks/index.d.ts +3 -0
  10. package/dist/api/backlinks/index.js +186 -0
  11. package/dist/api/backlinks/index.js.map +1 -0
  12. package/dist/api/business-data/index.d.ts +3 -0
  13. package/dist/api/business-data/index.js +235 -0
  14. package/dist/api/business-data/index.js.map +1 -0
  15. package/dist/api/client.d.ts +10 -0
  16. package/dist/api/client.js +54 -0
  17. package/dist/api/client.js.map +1 -0
  18. package/dist/api/content-analysis/index.d.ts +3 -0
  19. package/dist/api/content-analysis/index.js +64 -0
  20. package/dist/api/content-analysis/index.js.map +1 -0
  21. package/dist/api/content-generation/index.d.ts +3 -0
  22. package/dist/api/content-generation/index.js +75 -0
  23. package/dist/api/content-generation/index.js.map +1 -0
  24. package/dist/api/domain-analytics/index.d.ts +3 -0
  25. package/dist/api/domain-analytics/index.js +69 -0
  26. package/dist/api/domain-analytics/index.js.map +1 -0
  27. package/dist/api/keywords/index.d.ts +3 -0
  28. package/dist/api/keywords/index.js +73 -0
  29. package/dist/api/keywords/index.js.map +1 -0
  30. package/dist/api/labs/index.d.ts +3 -0
  31. package/dist/api/labs/index.js +315 -0
  32. package/dist/api/labs/index.js.map +1 -0
  33. package/dist/api/localfalcon/index.d.ts +7 -0
  34. package/dist/api/localfalcon/index.js +109 -0
  35. package/dist/api/localfalcon/index.js.map +1 -0
  36. package/dist/api/merchant/index.d.ts +3 -0
  37. package/dist/api/merchant/index.js +133 -0
  38. package/dist/api/merchant/index.js.map +1 -0
  39. package/dist/api/onpage/index.d.ts +3 -0
  40. package/dist/api/onpage/index.js +68 -0
  41. package/dist/api/onpage/index.js.map +1 -0
  42. package/dist/api/serp/index.d.ts +3 -0
  43. package/dist/api/serp/index.js +99 -0
  44. package/dist/api/serp/index.js.map +1 -0
  45. package/dist/api/tools.d.ts +11 -0
  46. package/dist/api/tools.js +61 -0
  47. package/dist/api/tools.js.map +1 -0
  48. package/dist/api/types.d.ts +89 -0
  49. package/dist/api/types.js +19 -0
  50. package/dist/api/types.js.map +1 -0
  51. package/dist/index.d.ts +2 -0
  52. package/dist/index.js +34 -0
  53. package/dist/index.js.map +1 -0
  54. package/package.json +54 -0
@@ -0,0 +1,186 @@
1
+ import { z } from "zod";
2
+ import { registerTool } from "../tools.js";
3
+ // Backlinks API schemas
4
+ const targetSchema = z.object({
5
+ target: z.string().describe("Target domain, subdomain or URL to analyze"),
6
+ limit: z.number().optional().describe("Maximum number of results to return"),
7
+ offset: z.number().optional().describe("Offset for pagination"),
8
+ filters: z.array(z.any()).optional().describe("Array of filter objects")
9
+ });
10
+ export function registerBacklinksTools(server, apiClient) {
11
+ // Backlinks Summary
12
+ registerTool(server, "backlinks_summary", targetSchema, async (params, client) => {
13
+ const response = await client.post("/backlinks/summary/live", [params]);
14
+ return response;
15
+ }, apiClient);
16
+ // Backlinks List
17
+ registerTool(server, "backlinks_backlinks", targetSchema.extend({
18
+ mode: z.enum(["as_is", "as_csv"]).optional().describe("Data presentation mode"),
19
+ }), async (params, client) => {
20
+ const response = await client.post("/backlinks/backlinks/live", [params]);
21
+ return response;
22
+ }, apiClient);
23
+ // Anchors
24
+ registerTool(server, "backlinks_anchors", targetSchema, async (params, client) => {
25
+ const response = await client.post("/backlinks/anchors/live", [params]);
26
+ return response;
27
+ }, apiClient);
28
+ // Backlinks Domain Pages
29
+ registerTool(server, "backlinks_domain_pages", targetSchema, async (params, client) => {
30
+ const response = await client.post("/backlinks/domain_pages/live", [params]);
31
+ return response;
32
+ }, apiClient);
33
+ // Domain Pages Summary
34
+ registerTool(server, "backlinks_domain_pages_summary", targetSchema, async (params, client) => {
35
+ const response = await client.post("/backlinks/domain_pages_summary/live", [params]);
36
+ return response;
37
+ }, apiClient);
38
+ // Referring Domains
39
+ registerTool(server, "backlinks_referring_domains", targetSchema, async (params, client) => {
40
+ const response = await client.post("/backlinks/referring_domains/live", [params]);
41
+ return response;
42
+ }, apiClient);
43
+ // Referring Networks
44
+ registerTool(server, "backlinks_referring_networks", targetSchema, async (params, client) => {
45
+ const response = await client.post("/backlinks/referring_networks/live", [params]);
46
+ return response;
47
+ }, apiClient);
48
+ // Bulk Backlinks
49
+ registerTool(server, "backlinks_bulk_backlinks", z.object({
50
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)"),
51
+ limit: z.number().optional().describe("Maximum number of results to return per target"),
52
+ offset: z.number().optional().describe("Offset for pagination"),
53
+ internal_list_limit: z.number().optional().describe("Maximum number of items in internal lists per target")
54
+ }), async (params, client) => {
55
+ const response = await client.post("/backlinks/bulk_backlinks/live", [params]);
56
+ return response;
57
+ }, apiClient);
58
+ // Bulk Referring Domains
59
+ registerTool(server, "backlinks_bulk_referring_domains", z.object({
60
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)"),
61
+ limit: z.number().optional().describe("Maximum number of results to return per target"),
62
+ offset: z.number().optional().describe("Offset for pagination"),
63
+ internal_list_limit: z.number().optional().describe("Maximum number of items in internal lists per target")
64
+ }), async (params, client) => {
65
+ const response = await client.post("/backlinks/bulk_referring_domains/live", [params]);
66
+ return response;
67
+ }, apiClient);
68
+ // Bulk Spam Score
69
+ registerTool(server, "backlinks_bulk_spam_score", z.object({
70
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)")
71
+ }), async (params, client) => {
72
+ const response = await client.post("/backlinks/bulk_spam_score/live", [params]);
73
+ return response;
74
+ }, apiClient);
75
+ // Bulk Rank Overview
76
+ registerTool(server, "backlinks_bulk_ranks", z.object({
77
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)")
78
+ }), async (params, client) => {
79
+ const response = await client.post("/backlinks/bulk_ranks/live", [params]);
80
+ return response;
81
+ }, apiClient);
82
+ // Domain Competitors
83
+ registerTool(server, "backlinks_competitors", targetSchema, async (params, client) => {
84
+ const response = await client.post("/backlinks/competitors/live", [params]);
85
+ return response;
86
+ }, apiClient);
87
+ // Domain Intersection
88
+ registerTool(server, "backlinks_domain_intersection", z.object({
89
+ targets: z.array(z.string()).min(2).max(20).describe("List of domains to compare"),
90
+ limit: z.number().optional().describe("Maximum number of results to return"),
91
+ offset: z.number().optional().describe("Offset for pagination"),
92
+ exclude_targets: z.boolean().optional().describe("Whether to exclude the target domains from the results")
93
+ }), async (params, client) => {
94
+ const response = await client.post("/backlinks/domain_intersection/live", [params]);
95
+ return response;
96
+ }, apiClient);
97
+ // Page Intersection
98
+ registerTool(server, "backlinks_page_intersection", z.object({
99
+ targets: z.array(z.string()).min(2).max(20).describe("List of URLs to compare"),
100
+ limit: z.number().optional().describe("Maximum number of results to return"),
101
+ offset: z.number().optional().describe("Offset for pagination"),
102
+ exclude_targets: z.boolean().optional().describe("Whether to exclude the target URLs from the results")
103
+ }), async (params, client) => {
104
+ const response = await client.post("/backlinks/page_intersection/live", [params]);
105
+ return response;
106
+ }, apiClient);
107
+ // Timeseries New Lost Summary
108
+ registerTool(server, "backlinks_timeseries_new_lost_summary", targetSchema.extend({
109
+ date_from: z.string().describe("Start date in YYYY-MM-DD format"),
110
+ date_to: z.string().describe("End date in YYYY-MM-DD format")
111
+ }), async (params, client) => {
112
+ const response = await client.post("/backlinks/timeseries_new_lost_summary/live", [params]);
113
+ return response;
114
+ }, apiClient);
115
+ // Backlinks Index
116
+ registerTool(server, "backlinks_index", {}, async (_params, client) => {
117
+ const response = await client.get("/backlinks/index");
118
+ return response;
119
+ }, apiClient);
120
+ // Backlinks Status
121
+ registerTool(server, "backlinks_errors", {}, async (_params, client) => {
122
+ const response = await client.get("/backlinks/errors");
123
+ return response;
124
+ }, apiClient);
125
+ // Available Filters
126
+ registerTool(server, "backlinks_available_filters", {}, async (_params, client) => {
127
+ const response = await client.get("/backlinks/available_filters");
128
+ return response;
129
+ }, apiClient);
130
+ // ID List
131
+ registerTool(server, "backlinks_id_list", {}, async (_params, client) => {
132
+ const response = await client.get("/backlinks/id_list");
133
+ return response;
134
+ }, apiClient);
135
+ // Backlinks History
136
+ registerTool(server, "backlinks_history", targetSchema.extend({
137
+ date_from: z.string().optional().describe("Start date in YYYY-MM-DD format"),
138
+ date_to: z.string().optional().describe("End date in YYYY-MM-DD format")
139
+ }), async (params, client) => {
140
+ const response = await client.post("/backlinks/history/live", [params]);
141
+ return response;
142
+ }, apiClient);
143
+ // Timeseries Summary
144
+ registerTool(server, "backlinks_timeseries_summary", targetSchema.extend({
145
+ date_from: z.string().describe("Start date in YYYY-MM-DD format"),
146
+ date_to: z.string().describe("End date in YYYY-MM-DD format")
147
+ }), async (params, client) => {
148
+ const response = await client.post("/backlinks/timeseries_summary/live", [params]);
149
+ return response;
150
+ }, apiClient);
151
+ // Bulk New Lost Backlinks
152
+ registerTool(server, "backlinks_bulk_new_lost_backlinks", z.object({
153
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)"),
154
+ date_from: z.string().describe("Start date in YYYY-MM-DD format"),
155
+ date_to: z.string().describe("End date in YYYY-MM-DD format"),
156
+ limit: z.number().optional().describe("Maximum number of results to return per target"),
157
+ offset: z.number().optional().describe("Offset for pagination"),
158
+ internal_list_limit: z.number().optional().describe("Maximum number of items in internal lists per target")
159
+ }), async (params, client) => {
160
+ const response = await client.post("/backlinks/bulk_new_lost_backlinks/live", [params]);
161
+ return response;
162
+ }, apiClient);
163
+ // Bulk New Lost Referring Domains
164
+ registerTool(server, "backlinks_bulk_new_lost_referring_domains", z.object({
165
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)"),
166
+ date_from: z.string().describe("Start date in YYYY-MM-DD format"),
167
+ date_to: z.string().describe("End date in YYYY-MM-DD format"),
168
+ limit: z.number().optional().describe("Maximum number of results to return per target"),
169
+ offset: z.number().optional().describe("Offset for pagination"),
170
+ internal_list_limit: z.number().optional().describe("Maximum number of items in internal lists per target")
171
+ }), async (params, client) => {
172
+ const response = await client.post("/backlinks/bulk_new_lost_referring_domains/live", [params]);
173
+ return response;
174
+ }, apiClient);
175
+ // Bulk Pages Summary
176
+ registerTool(server, "backlinks_bulk_pages_summary", z.object({
177
+ targets: z.array(z.string()).describe("List of targets to analyze (domains, subdomains, URLs)"),
178
+ limit: z.number().optional().describe("Maximum number of results to return per target"),
179
+ offset: z.number().optional().describe("Offset for pagination"),
180
+ internal_list_limit: z.number().optional().describe("Maximum number of items in internal lists per target")
181
+ }), async (params, client) => {
182
+ const response = await client.post("/backlinks/bulk_pages_summary/live", [params]);
183
+ return response;
184
+ }, apiClient);
185
+ }
186
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/backlinks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { DataForSeoClient } from "../client.js";
3
+ export declare function registerBusinessDataTools(server: McpServer, apiClient: DataForSeoClient): void;
@@ -0,0 +1,235 @@
1
+ import { z } from "zod";
2
+ import { registerTool } from "../tools.js";
3
+ export function registerBusinessDataTools(server, apiClient) {
4
+ // Business Data Google My Business Info
5
+ registerTool(server, "business_data_google_my_business_info", z.object({
6
+ keyword: z.string().describe("Business name or related keyword"),
7
+ location_name: z.string().optional().describe("Location name"),
8
+ location_code: z.number().optional().describe("Location code"),
9
+ language_name: z.string().optional().describe("Language name"),
10
+ language_code: z.string().optional().describe("Language code")
11
+ }), async (params, client) => {
12
+ const response = await client.post("/business_data/google/my_business_info/live", [params]);
13
+ return response;
14
+ }, apiClient);
15
+ // Business Data Google Reviews
16
+ registerTool(server, "business_data_google_reviews", z.object({
17
+ keyword: z.string().optional().describe("Business name or related keyword"),
18
+ place_id: z.string().optional().describe("Google Place ID"),
19
+ depth: z.number().optional().describe("Number of reviews to retrieve"),
20
+ sort_by: z.enum(["relevance", "newest"]).optional().describe("Sorting method"),
21
+ language_name: z.string().optional().describe("Language name"),
22
+ language_code: z.string().optional().describe("Language code")
23
+ }), async (params, client) => {
24
+ const response = await client.post("/business_data/google/reviews/live", [params]);
25
+ return response;
26
+ }, apiClient);
27
+ // Business Data Google Locations
28
+ registerTool(server, "business_data_google_locations", z.object({
29
+ country: z.string().optional().describe("Filter locations by country name")
30
+ }), async (params, client) => {
31
+ const url = params.country
32
+ ? `/business_data/google/locations?country=${encodeURIComponent(params.country)}`
33
+ : "/business_data/google/locations";
34
+ const response = await client.get(url);
35
+ return response;
36
+ }, apiClient);
37
+ // Business Data Google Languages
38
+ registerTool(server, "business_data_google_languages", {}, async (_params, client) => {
39
+ const response = await client.get("/business_data/google/languages");
40
+ return response;
41
+ }, apiClient);
42
+ // Business Data TripAdvisor Search
43
+ registerTool(server, "business_data_tripadvisor_search", z.object({
44
+ keyword: z.string().describe("Business name or related keyword"),
45
+ location_name: z.string().optional().describe("Location name"),
46
+ priority: z.number().min(1).max(2).optional().describe("Priority: 1 (normal) or 2 (high)"),
47
+ depth: z.number().optional().describe("Number of results to return"),
48
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
49
+ offset: z.number().optional().describe("Offset for pagination")
50
+ }), async (params, client) => {
51
+ const response = await client.post("/business_data/tripadvisor/search/live", [params]);
52
+ return response;
53
+ }, apiClient);
54
+ // Business Data TripAdvisor Reviews
55
+ registerTool(server, "business_data_tripadvisor_reviews", z.object({
56
+ location_id: z.string().describe("TripAdvisor location ID"),
57
+ depth: z.number().optional().describe("Number of reviews to retrieve"),
58
+ offset: z.number().optional().describe("Offset for pagination"),
59
+ sort_by: z.enum(["relevance", "date_of_visit"]).optional().describe("Sorting method"),
60
+ language_name: z.string().optional().describe("Language name"),
61
+ language_code: z.string().optional().describe("Language code")
62
+ }), async (params, client) => {
63
+ const response = await client.post("/business_data/tripadvisor/reviews/live", [params]);
64
+ return response;
65
+ }, apiClient);
66
+ // Business Data Trustpilot Search
67
+ registerTool(server, "business_data_trustpilot_search", z.object({
68
+ keyword: z.string().describe("Business name or related keyword"),
69
+ location_name: z.string().optional().describe("Location name"),
70
+ depth: z.number().optional().describe("Number of results to return"),
71
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
72
+ offset: z.number().optional().describe("Offset for pagination"),
73
+ language_name: z.string().optional().describe("Language name"),
74
+ language_code: z.string().optional().describe("Language code")
75
+ }), async (params, client) => {
76
+ const response = await client.post("/business_data/trustpilot/search/live", [params]);
77
+ return response;
78
+ }, apiClient);
79
+ // Business Data Trustpilot Reviews
80
+ registerTool(server, "business_data_trustpilot_reviews", z.object({
81
+ domain: z.string().describe("Business domain"),
82
+ depth: z.number().optional().describe("Number of reviews to retrieve"),
83
+ offset: z.number().optional().describe("Offset for pagination"),
84
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
85
+ sort_by: z.enum(["recency", "relevance"]).optional().describe("Sorting method"),
86
+ language_name: z.string().optional().describe("Language name"),
87
+ language_code: z.string().optional().describe("Language code")
88
+ }), async (params, client) => {
89
+ const response = await client.post("/business_data/trustpilot/reviews/live", [params]);
90
+ return response;
91
+ }, apiClient);
92
+ // === ADDED SOCIAL MEDIA ENDPOINTS ===
93
+ // Business Data Facebook Search
94
+ registerTool(server, "business_data_facebook_search", z.object({
95
+ keyword: z.string().describe("Business name or related keyword"),
96
+ location_name: z.string().optional().describe("Location name"),
97
+ depth: z.number().optional().describe("Number of results to return"),
98
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
99
+ offset: z.number().optional().describe("Offset for pagination")
100
+ }), async (params, client) => {
101
+ const response = await client.post("/business_data/facebook/search/live", [params]);
102
+ return response;
103
+ }, apiClient);
104
+ // Business Data Facebook Overview
105
+ registerTool(server, "business_data_facebook_overview", z.object({
106
+ id: z.string().describe("Facebook business ID"),
107
+ language_name: z.string().optional().describe("Language name"),
108
+ language_code: z.string().optional().describe("Language code")
109
+ }), async (params, client) => {
110
+ const response = await client.post("/business_data/facebook/overview/live", [params]);
111
+ return response;
112
+ }, apiClient);
113
+ // Business Data Pinterest Search
114
+ registerTool(server, "business_data_pinterest_search", z.object({
115
+ keyword: z.string().describe("Business name or related keyword"),
116
+ depth: z.number().optional().describe("Number of results to return"),
117
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
118
+ offset: z.number().optional().describe("Offset for pagination")
119
+ }), async (params, client) => {
120
+ const response = await client.post("/business_data/pinterest/search/live", [params]);
121
+ return response;
122
+ }, apiClient);
123
+ // Business Data Pinterest Info
124
+ registerTool(server, "business_data_pinterest_info", z.object({
125
+ url: z.string().describe("Pinterest business URL"),
126
+ language_name: z.string().optional().describe("Language name"),
127
+ language_code: z.string().optional().describe("Language code")
128
+ }), async (params, client) => {
129
+ const response = await client.post("/business_data/pinterest/info/live", [params]);
130
+ return response;
131
+ }, apiClient);
132
+ // Business Data Reddit Search
133
+ registerTool(server, "business_data_reddit_search", z.object({
134
+ keyword: z.string().describe("Keyword to search on Reddit"),
135
+ depth: z.number().optional().describe("Number of results to return"),
136
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
137
+ offset: z.number().optional().describe("Offset for pagination"),
138
+ sort_by: z.enum(["relevance", "hot", "top", "new"]).optional().describe("Sorting method"),
139
+ search_type: z.enum(["communities", "posts"]).optional().describe("Type of search to perform")
140
+ }), async (params, client) => {
141
+ const response = await client.post("/business_data/reddit/search/live", [params]);
142
+ return response;
143
+ }, apiClient);
144
+ // Business Data Reddit Info
145
+ registerTool(server, "business_data_reddit_info", z.object({
146
+ url: z.string().describe("Reddit URL (subreddit, post, etc.)"),
147
+ language_name: z.string().optional().describe("Language name"),
148
+ language_code: z.string().optional().describe("Language code")
149
+ }), async (params, client) => {
150
+ const response = await client.post("/business_data/reddit/info/live", [params]);
151
+ return response;
152
+ }, apiClient);
153
+ // === GOOGLE HOTELS ENDPOINTS ===
154
+ // Business Data Google Hotels Search
155
+ registerTool(server, "business_data_google_hotels_search", z.object({
156
+ keyword: z.string().describe("Hotel name or related keyword"),
157
+ location_name: z.string().optional().describe("Location name"),
158
+ location_code: z.number().optional().describe("Location code"),
159
+ check_in: z.string().optional().describe("Check-in date in YYYY-MM-DD format"),
160
+ check_out: z.string().optional().describe("Check-out date in YYYY-MM-DD format"),
161
+ guests: z.number().optional().describe("Number of guests"),
162
+ currency: z.string().optional().describe("Currency code"),
163
+ depth: z.number().optional().describe("Number of results to return"),
164
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
165
+ offset: z.number().optional().describe("Offset for pagination"),
166
+ language_name: z.string().optional().describe("Language name"),
167
+ language_code: z.string().optional().describe("Language code")
168
+ }), async (params, client) => {
169
+ const response = await client.post("/business_data/google/hotels/search/live", [params]);
170
+ return response;
171
+ }, apiClient);
172
+ // Business Data Google Hotels Info
173
+ registerTool(server, "business_data_google_hotels_info", z.object({
174
+ hotel_id: z.string().describe("Google hotel ID"),
175
+ location_name: z.string().optional().describe("Location name"),
176
+ location_code: z.number().optional().describe("Location code"),
177
+ check_in: z.string().optional().describe("Check-in date in YYYY-MM-DD format"),
178
+ check_out: z.string().optional().describe("Check-out date in YYYY-MM-DD format"),
179
+ guests: z.number().optional().describe("Number of guests"),
180
+ currency: z.string().optional().describe("Currency code"),
181
+ language_name: z.string().optional().describe("Language name"),
182
+ language_code: z.string().optional().describe("Language code")
183
+ }), async (params, client) => {
184
+ const response = await client.post("/business_data/google/hotels/info/live", [params]);
185
+ return response;
186
+ }, apiClient);
187
+ // Business Data Google Hotels Reviews
188
+ registerTool(server, "business_data_google_hotels_reviews", z.object({
189
+ hotel_id: z.string().describe("Google hotel ID"),
190
+ depth: z.number().optional().describe("Number of reviews to retrieve"),
191
+ offset: z.number().optional().describe("Offset for pagination"),
192
+ sort_by: z.enum(["relevance", "newest"]).optional().describe("Sorting method"),
193
+ language_name: z.string().optional().describe("Language name"),
194
+ language_code: z.string().optional().describe("Language code")
195
+ }), async (params, client) => {
196
+ const response = await client.post("/business_data/google/hotels/reviews/live", [params]);
197
+ return response;
198
+ }, apiClient);
199
+ // === BUSINESS LISTINGS ENDPOINTS ===
200
+ // Business Data Business Listings Search
201
+ registerTool(server, "business_data_business_listings_search", z.object({
202
+ keyword: z.string().describe("Business name or related keyword"),
203
+ location_name: z.string().optional().describe("Location name"),
204
+ location_code: z.number().optional().describe("Location code"),
205
+ depth: z.number().optional().describe("Number of results to return"),
206
+ limit: z.number().optional().describe("Maximum number of results to return per page"),
207
+ offset: z.number().optional().describe("Offset for pagination"),
208
+ language_name: z.string().optional().describe("Language name"),
209
+ language_code: z.string().optional().describe("Language code")
210
+ }), async (params, client) => {
211
+ const response = await client.post("/business_data/business_listings/search/live", [params]);
212
+ return response;
213
+ }, apiClient);
214
+ // Business Data Business Listings Categories
215
+ registerTool(server, "business_data_business_listings_categories", z.object({
216
+ country: z.string().optional().describe("Filter categories by country")
217
+ }), async (params, client) => {
218
+ const url = params.country
219
+ ? `/business_data/business_listings/categories?country=${encodeURIComponent(params.country)}`
220
+ : "/business_data/business_listings/categories";
221
+ const response = await client.get(url);
222
+ return response;
223
+ }, apiClient);
224
+ // Business Data Business Listings Locations
225
+ registerTool(server, "business_data_business_listings_locations", z.object({
226
+ country: z.string().optional().describe("Filter locations by country name")
227
+ }), async (params, client) => {
228
+ const url = params.country
229
+ ? `/business_data/business_listings/locations?country=${encodeURIComponent(params.country)}`
230
+ : "/business_data/business_listings/locations";
231
+ const response = await client.get(url);
232
+ return response;
233
+ }, apiClient);
234
+ }
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/business-data/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,SAA2B;IACtF,wCAAwC;IACxC,YAAY,CACV,MAAM,EACN,uCAAuC,EACvC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,6CAA6C,EAC7C,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,+BAA+B;IAC/B,YAAY,CACV,MAAM,EACN,8BAA8B,EAC9B,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC9E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,oCAAoC,EACpC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,iCAAiC;IACjC,YAAY,CACV,MAAM,EACN,gCAAgC,EAChC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC5E,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;YACxB,CAAC,CAAC,2CAA2C,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACjF,CAAC,CAAC,iCAAiC,CAAC;QAEtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAC;QAEhE,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,iCAAiC;IACjC,YAAY,CACV,MAAM,EACN,gCAAgC,EAChC,EAAE,EACF,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,iCAAiC,CAAC,CAAC;QAE9F,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,YAAY,CACV,MAAM,EACN,kCAAkC,EAClC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC1F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAChE,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,wCAAwC,EACxC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,oCAAoC;IACpC,YAAY,CACV,MAAM,EACN,mCAAmC,EACnC,CAAC,CAAC,MAAM,CAAC;QACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACrF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,yCAAyC,EACzC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,kCAAkC;IAClC,YAAY,CACV,MAAM,EACN,iCAAiC,EACjC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,uCAAuC,EACvC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,YAAY,CACV,MAAM,EACN,kCAAkC,EAClC,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,wCAAwC,EACxC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,uCAAuC;IAEvC,gCAAgC;IAChC,YAAY,CACV,MAAM,EACN,+BAA+B,EAC/B,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAChE,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,qCAAqC,EACrC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,kCAAkC;IAClC,YAAY,CACV,MAAM,EACN,iCAAiC,EACjC,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC/C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,uCAAuC,EACvC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,iCAAiC;IACjC,YAAY,CACV,MAAM,EACN,gCAAgC,EAChC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAChE,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,sCAAsC,EACtC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,+BAA+B;IAC/B,YAAY,CACV,MAAM,EACN,8BAA8B,EAC9B,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAClD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,oCAAoC,EACpC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,8BAA8B;IAC9B,YAAY,CACV,MAAM,EACN,6BAA6B,EAC7B,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC3D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACzF,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KAC/F,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,mCAAmC,EACnC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,4BAA4B;IAC5B,YAAY,CACV,MAAM,EACN,2BAA2B,EAC3B,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,iCAAiC,EACjC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,kCAAkC;IAElC,qCAAqC;IACrC,YAAY,CACV,MAAM,EACN,oCAAoC,EACpC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC7D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,0CAA0C,EAC1C,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,mCAAmC;IACnC,YAAY,CACV,MAAM,EACN,kCAAkC,EAClC,CAAC,CAAC,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,wCAAwC,EACxC,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,sCAAsC;IACtC,YAAY,CACV,MAAM,EACN,qCAAqC,EACrC,CAAC,CAAC,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC9E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,2CAA2C,EAC3C,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,sCAAsC;IAEtC,yCAAyC;IACzC,YAAY,CACV,MAAM,EACN,wCAAwC,EACxC,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,8CAA8C,EAC9C,CAAC,MAAM,CAAC,CACT,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,6CAA6C;IAC7C,YAAY,CACV,MAAM,EACN,4CAA4C,EAC5C,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;KACxE,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;YACxB,CAAC,CAAC,uDAAuD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC7F,CAAC,CAAC,6CAA6C,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAC;QAEhE,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;IAEF,4CAA4C;IAC5C,YAAY,CACV,MAAM,EACN,2CAA2C,EAC3C,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC5E,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;YACxB,CAAC,CAAC,sDAAsD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC5F,CAAC,CAAC,4CAA4C,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAC;QAEhE,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AxiosInstance } from 'axios';
2
+ export interface DataForSeoClient {
3
+ login: string;
4
+ password: string;
5
+ baseUrl: string;
6
+ httpClient: AxiosInstance;
7
+ get: <T>(url: string) => Promise<T>;
8
+ post: <T>(url: string, data: any) => Promise<T>;
9
+ }
10
+ export declare function setupApiClient(login: string, password: string): DataForSeoClient;
@@ -0,0 +1,54 @@
1
+ import axios from 'axios';
2
+ export function setupApiClient(login, password) {
3
+ const baseUrl = 'https://api.dataforseo.com/v3';
4
+ // Create an Axios instance with authentication
5
+ const httpClient = axios.create({
6
+ baseURL: baseUrl,
7
+ auth: {
8
+ username: login,
9
+ password: password
10
+ },
11
+ headers: {
12
+ 'Content-Type': 'application/json'
13
+ }
14
+ });
15
+ // Create the client interface
16
+ const client = {
17
+ login,
18
+ password,
19
+ baseUrl,
20
+ httpClient,
21
+ async get(url) {
22
+ try {
23
+ const response = await httpClient.get(url);
24
+ return response.data;
25
+ }
26
+ catch (error) {
27
+ if (axios.isAxiosError(error)) {
28
+ console.error(`DataForSEO API GET error (${url}):`, error.response?.data || error.message);
29
+ }
30
+ else {
31
+ console.error(`DataForSEO API GET error (${url}):`, error);
32
+ }
33
+ throw error;
34
+ }
35
+ },
36
+ async post(url, data) {
37
+ try {
38
+ const response = await httpClient.post(url, data);
39
+ return response.data;
40
+ }
41
+ catch (error) {
42
+ if (axios.isAxiosError(error)) {
43
+ console.error(`DataForSEO API POST error (${url}):`, error.response?.data || error.message);
44
+ }
45
+ else {
46
+ console.error(`DataForSEO API POST error (${url}):`, error);
47
+ }
48
+ throw error;
49
+ }
50
+ }
51
+ };
52
+ return client;
53
+ }
54
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAW7C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,QAAgB;IAC5D,MAAM,OAAO,GAAG,+BAA+B,CAAC;IAEhD,+CAA+C;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,QAAQ;SACnB;QACD,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,MAAM,GAAqB;QAC/B,KAAK;QACL,QAAQ;QACR,OAAO;QACP,UAAU;QAEV,KAAK,CAAC,GAAG,CAAI,GAAW;YACtB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3C,OAAO,QAAQ,CAAC,IAAS,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAS;YAClC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClD,OAAO,QAAQ,CAAC,IAAS,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9F,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { DataForSeoClient } from "../client.js";
3
+ export declare function registerContentAnalysisTools(server: McpServer, apiClient: DataForSeoClient): void;
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+ import { registerTool } from "../tools.js";
3
+ export function registerContentAnalysisTools(server, apiClient) {
4
+ // Content Analysis Summary
5
+ registerTool(server, "content_analysis_summary", z.object({
6
+ url: z.string().describe("URL to analyze"),
7
+ language_name: z.string().optional().describe("Language name"),
8
+ language_code: z.string().optional().describe("Language code"),
9
+ calculate_sentiment: z.boolean().optional().describe("Calculate sentiment"),
10
+ calculate_toxicity: z.boolean().optional().describe("Calculate toxicity"),
11
+ calculate_readability: z.boolean().optional().describe("Calculate readability"),
12
+ calculate_keyword_density: z.boolean().optional().describe("Calculate keyword density"),
13
+ calculate_information_score: z.boolean().optional().describe("Calculate information score"),
14
+ calculate_adult_score: z.boolean().optional().describe("Calculate adult score")
15
+ }), async (params, client) => {
16
+ const response = await client.post("/content_analysis/summary/live", [params]);
17
+ return response;
18
+ }, apiClient);
19
+ // Content Analysis Search
20
+ registerTool(server, "content_analysis_search", z.object({
21
+ query: z.string().describe("Search query"),
22
+ language_name: z.string().optional().describe("Language name"),
23
+ language_code: z.string().optional().describe("Language code"),
24
+ search_mode: z.enum(["web", "news"]).optional().describe("Search mode"),
25
+ calculate_sentiment: z.boolean().optional().describe("Calculate sentiment"),
26
+ calculate_toxicity: z.boolean().optional().describe("Calculate toxicity"),
27
+ calculate_readability: z.boolean().optional().describe("Calculate readability"),
28
+ calculate_information_score: z.boolean().optional().describe("Calculate information score"),
29
+ calculate_keyword_density: z.boolean().optional().describe("Calculate keyword density"),
30
+ calculate_adult_score: z.boolean().optional().describe("Calculate adult score"),
31
+ limit: z.number().optional().describe("Maximum number of results to return"),
32
+ offset: z.number().optional().describe("Offset for pagination")
33
+ }), async (params, client) => {
34
+ const response = await client.post("/content_analysis/search/live", [params]);
35
+ return response;
36
+ }, apiClient);
37
+ // Content Analysis Category
38
+ registerTool(server, "content_analysis_category", z.object({
39
+ url: z.string().describe("URL to categorize"),
40
+ language_name: z.string().optional().describe("Language name"),
41
+ language_code: z.string().optional().describe("Language code")
42
+ }), async (params, client) => {
43
+ const response = await client.post("/content_analysis/category/live", [params]);
44
+ return response;
45
+ }, apiClient);
46
+ // Content Analysis Sentiment Analysis
47
+ registerTool(server, "content_analysis_sentiment_analysis", z.object({
48
+ text: z.string().describe("Text to analyze"),
49
+ language_name: z.string().optional().describe("Language name"),
50
+ language_code: z.string().optional().describe("Language code")
51
+ }), async (params, client) => {
52
+ const response = await client.post("/content_analysis/sentiment_analysis/live", [params]);
53
+ return response;
54
+ }, apiClient);
55
+ // Content Analysis Rating Distribution
56
+ registerTool(server, "content_analysis_rating_distribution", z.object({
57
+ rating_values: z.array(z.number()).describe("Array of rating values"),
58
+ algo: z.enum(["percentile", "linear", "exponential"]).optional().describe("Algorithm for distribution calculation")
59
+ }), async (params, client) => {
60
+ const response = await client.post("/content_analysis/rating_distribution/live", [params]);
61
+ return response;
62
+ }, apiClient);
63
+ }
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/content-analysis/index.ts"],"names":[],"mappings":"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"}