@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.
- package/LICENSE +21 -0
- package/README.md +155 -0
- package/dist/api/ai-optimization/index.d.ts +3 -0
- package/dist/api/ai-optimization/index.js +178 -0
- package/dist/api/ai-optimization/index.js.map +1 -0
- package/dist/api/app-data/index.d.ts +3 -0
- package/dist/api/app-data/index.js +115 -0
- package/dist/api/app-data/index.js.map +1 -0
- package/dist/api/backlinks/index.d.ts +3 -0
- package/dist/api/backlinks/index.js +186 -0
- package/dist/api/backlinks/index.js.map +1 -0
- package/dist/api/business-data/index.d.ts +3 -0
- package/dist/api/business-data/index.js +235 -0
- package/dist/api/business-data/index.js.map +1 -0
- package/dist/api/client.d.ts +10 -0
- package/dist/api/client.js +54 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/content-analysis/index.d.ts +3 -0
- package/dist/api/content-analysis/index.js +64 -0
- package/dist/api/content-analysis/index.js.map +1 -0
- package/dist/api/content-generation/index.d.ts +3 -0
- package/dist/api/content-generation/index.js +75 -0
- package/dist/api/content-generation/index.js.map +1 -0
- package/dist/api/domain-analytics/index.d.ts +3 -0
- package/dist/api/domain-analytics/index.js +69 -0
- package/dist/api/domain-analytics/index.js.map +1 -0
- package/dist/api/keywords/index.d.ts +3 -0
- package/dist/api/keywords/index.js +73 -0
- package/dist/api/keywords/index.js.map +1 -0
- package/dist/api/labs/index.d.ts +3 -0
- package/dist/api/labs/index.js +315 -0
- package/dist/api/labs/index.js.map +1 -0
- package/dist/api/localfalcon/index.d.ts +7 -0
- package/dist/api/localfalcon/index.js +109 -0
- package/dist/api/localfalcon/index.js.map +1 -0
- package/dist/api/merchant/index.d.ts +3 -0
- package/dist/api/merchant/index.js +133 -0
- package/dist/api/merchant/index.js.map +1 -0
- package/dist/api/onpage/index.d.ts +3 -0
- package/dist/api/onpage/index.js +68 -0
- package/dist/api/onpage/index.js.map +1 -0
- package/dist/api/serp/index.d.ts +3 -0
- package/dist/api/serp/index.js +99 -0
- package/dist/api/serp/index.js.map +1 -0
- package/dist/api/tools.d.ts +11 -0
- package/dist/api/tools.js +61 -0
- package/dist/api/tools.js.map +1 -0
- package/dist/api/types.d.ts +89 -0
- package/dist/api/types.js +19 -0
- package/dist/api/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Skobyn
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# DataForSEO Keywords MCP Server
|
|
2
|
+
|
|
3
|
+
[](https://mseep.ai/app/skobyn-dataforseo-mcp-server)
|
|
4
|
+
|
|
5
|
+
A focused MCP (Model Context Protocol) server for keyword research and analysis via the DataForSEO API. Built specifically for **search and shopping media buyers** working with Google Ads and Bing Ads campaigns.
|
|
6
|
+
|
|
7
|
+
<a href="https://glama.ai/mcp/servers/@Skobyn/dataforseo-mcp-server">
|
|
8
|
+
<img width="380" height="200" src="https://glama.ai/mcp/servers/@Skobyn/dataforseo-mcp-server/badge" alt="DataForSEO Keywords MCP server" />
|
|
9
|
+
</a>
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
This MCP server enables LLMs like Claude to perform keyword research, analyze search volumes, explore trends, and gather competitive intelligence—all through natural language interactions. It's designed for media buyers who need quick access to keyword data for Google and Bing advertising campaigns.
|
|
14
|
+
|
|
15
|
+
The server uses stdio transport for easy integration with Claude Code, Claude Desktop, and other MCP-compatible platforms.
|
|
16
|
+
|
|
17
|
+
## Features
|
|
18
|
+
|
|
19
|
+
- **Google Ads keyword data** - Search volumes, keyword suggestions, and competition metrics
|
|
20
|
+
- **Bing Ads keyword data** - Keyword research for Microsoft Advertising campaigns
|
|
21
|
+
- **Google Trends integration** - Explore keyword trends over time
|
|
22
|
+
- **Location and language targeting** - Filter data by geographic region and language
|
|
23
|
+
- Stdio transport for seamless LLM integration
|
|
24
|
+
- Type-safe tool definitions with Zod schemas
|
|
25
|
+
- Clear error reporting
|
|
26
|
+
|
|
27
|
+
## Sign Up for DataForSEO
|
|
28
|
+
|
|
29
|
+
https://dataforseo.com/?aff=200885
|
|
30
|
+
|
|
31
|
+
## Available Tools
|
|
32
|
+
|
|
33
|
+
### Google Ads Keywords
|
|
34
|
+
| Tool | Description |
|
|
35
|
+
|------|-------------|
|
|
36
|
+
| `keywords_google_ads_keywords_for_keyword` | Get keyword suggestions based on a seed keyword |
|
|
37
|
+
| `keywords_google_ads_keywords_for_site` | Get keyword suggestions based on a domain or URL |
|
|
38
|
+
| `keywords_google_ads_search_volume` | Get search volume data for a list of keywords |
|
|
39
|
+
| `keywords_google_ads_locations` | List available geographic locations for targeting |
|
|
40
|
+
| `keywords_google_ads_languages` | List available languages for keyword data |
|
|
41
|
+
| `keywords_google_ads_categories` | List Google Ads keyword categories |
|
|
42
|
+
|
|
43
|
+
### Google Trends
|
|
44
|
+
| Tool | Description |
|
|
45
|
+
|------|-------------|
|
|
46
|
+
| `keywords_google_trends_explore` | Explore keyword interest over time with date ranges and categories |
|
|
47
|
+
|
|
48
|
+
### Bing Ads Keywords
|
|
49
|
+
| Tool | Description |
|
|
50
|
+
|------|-------------|
|
|
51
|
+
| `keywords_bing_keywords_for_keywords` | Get keyword suggestions from Bing Ads |
|
|
52
|
+
|
|
53
|
+
## Installation
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Clone the repository
|
|
57
|
+
git clone https://github.com/Skobyn/dataforseo-mcp-server.git
|
|
58
|
+
|
|
59
|
+
# Change to the project directory
|
|
60
|
+
cd dataforseo-mcp-server
|
|
61
|
+
|
|
62
|
+
# Install dependencies
|
|
63
|
+
npm install
|
|
64
|
+
|
|
65
|
+
# Build the project
|
|
66
|
+
npm run build
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Configuration
|
|
70
|
+
|
|
71
|
+
### Environment Variables
|
|
72
|
+
|
|
73
|
+
Set your DataForSEO API credentials:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
export DATAFORSEO_LOGIN="your_login"
|
|
77
|
+
export DATAFORSEO_PASSWORD="your_password"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Running the Server
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm start
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Claude Desktop Configuration
|
|
87
|
+
|
|
88
|
+
Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"mcpServers": {
|
|
93
|
+
"dataforseo-keywords": {
|
|
94
|
+
"command": "node",
|
|
95
|
+
"args": ["/path/to/dataforseo-mcp-server/dist/index.js"],
|
|
96
|
+
"env": {
|
|
97
|
+
"DATAFORSEO_LOGIN": "your_login",
|
|
98
|
+
"DATAFORSEO_PASSWORD": "your_password"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Usage Examples
|
|
106
|
+
|
|
107
|
+
### Get search volume for keywords
|
|
108
|
+
|
|
109
|
+
Ask Claude: *"What's the search volume for 'running shoes' and 'athletic footwear' in the US?"*
|
|
110
|
+
|
|
111
|
+
The LLM will call `keywords_google_ads_search_volume` with:
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"keywords": ["running shoes", "athletic footwear"],
|
|
115
|
+
"location_code": 2840,
|
|
116
|
+
"language_code": "en"
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Find keyword ideas for a competitor
|
|
121
|
+
|
|
122
|
+
Ask Claude: *"What keywords is nike.com ranking for?"*
|
|
123
|
+
|
|
124
|
+
The LLM will call `keywords_google_ads_keywords_for_site` with:
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"target": "nike.com",
|
|
128
|
+
"location_code": 2840
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Explore keyword trends
|
|
133
|
+
|
|
134
|
+
Ask Claude: *"Show me the trend for 'black friday deals' over the past year"*
|
|
135
|
+
|
|
136
|
+
The LLM will call `keywords_google_trends_explore` with date range parameters.
|
|
137
|
+
|
|
138
|
+
## Development
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Run in development mode
|
|
142
|
+
npm run dev
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Use Cases for Media Buyers
|
|
146
|
+
|
|
147
|
+
- **Campaign keyword research** - Find high-volume, relevant keywords for Google/Bing campaigns
|
|
148
|
+
- **Competitor analysis** - Discover what keywords competitors are targeting
|
|
149
|
+
- **Seasonal trend analysis** - Identify trending keywords for timely campaigns
|
|
150
|
+
- **Geographic targeting** - Get keyword data filtered by location and language
|
|
151
|
+
- **Shopping campaign optimization** - Research product-related keywords for shopping ads
|
|
152
|
+
|
|
153
|
+
## License
|
|
154
|
+
|
|
155
|
+
MIT
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { registerTool, registerTaskTool } from "../tools.js";
|
|
3
|
+
// Common schemas
|
|
4
|
+
const messageChainItemSchema = z.object({
|
|
5
|
+
role: z.enum(["user", "ai"]).describe("Role in the conversation"),
|
|
6
|
+
message: z.string().max(500).describe("Message content")
|
|
7
|
+
});
|
|
8
|
+
const llmResponseBaseSchema = z.object({
|
|
9
|
+
user_prompt: z.string().max(500).describe("Prompt for the AI model"),
|
|
10
|
+
model_name: z.string().describe("Name of the AI model"),
|
|
11
|
+
max_output_tokens: z.number().min(16).max(4096).optional().describe("Maximum number of tokens in the AI response"),
|
|
12
|
+
temperature: z.number().min(0).max(2).optional().describe("Randomness of the AI response (0-2, default: 0.94)"),
|
|
13
|
+
top_p: z.number().min(0).max(1).optional().describe("Diversity of the AI response (0-1, default: 0.92)"),
|
|
14
|
+
web_search: z.boolean().optional().describe("Enable web search"),
|
|
15
|
+
force_web_search: z.boolean().optional().describe("Force AI to use web search"),
|
|
16
|
+
web_search_country_iso_code: z.string().optional().describe("ISO country code for web search"),
|
|
17
|
+
web_search_city: z.string().optional().describe("City name for web search"),
|
|
18
|
+
system_message: z.string().max(500).optional().describe("Instructions for AI behavior"),
|
|
19
|
+
message_chain: z.array(messageChainItemSchema).max(10).optional().describe("Conversation history"),
|
|
20
|
+
tag: z.string().max(255).optional().describe("User-defined task identifier")
|
|
21
|
+
});
|
|
22
|
+
const llmResponseTaskSchema = llmResponseBaseSchema.extend({
|
|
23
|
+
priority: z.number().min(1).max(2).optional().describe("Task priority: 1 (normal) or 2 (high)"),
|
|
24
|
+
postback_url: z.string().optional().describe("URL to receive a callback when the task is completed"),
|
|
25
|
+
postback_data: z.string().optional().describe("Custom data to be passed in the callback")
|
|
26
|
+
});
|
|
27
|
+
const llmScraperTaskSchema = z.object({
|
|
28
|
+
keyword: z.string().max(512).describe("Search query or keyword"),
|
|
29
|
+
location_name: z.string().optional().describe("Full name of location"),
|
|
30
|
+
location_code: z.number().optional().describe("Unique location identifier"),
|
|
31
|
+
language_name: z.string().optional().describe("Full name of language"),
|
|
32
|
+
language_code: z.string().optional().describe("Language code"),
|
|
33
|
+
priority: z.number().min(1).max(2).optional().describe("Task priority: 1 (normal) or 2 (high)"),
|
|
34
|
+
tag: z.string().max(255).optional().describe("User-defined task identifier"),
|
|
35
|
+
postback_url: z.string().optional().describe("URL to receive a callback when the task is completed"),
|
|
36
|
+
postback_data: z.string().optional().describe("Custom data to be passed in the callback")
|
|
37
|
+
});
|
|
38
|
+
export function registerAiOptimizationTools(server, apiClient) {
|
|
39
|
+
// ============================================
|
|
40
|
+
// ChatGPT LLM Responses
|
|
41
|
+
// ============================================
|
|
42
|
+
// ChatGPT Models List
|
|
43
|
+
registerTool(server, "ai_chatgpt_models", {}, async (_params, client) => {
|
|
44
|
+
const response = await client.get("/ai_optimization/chat_gpt/llm_responses/models");
|
|
45
|
+
return response;
|
|
46
|
+
}, apiClient);
|
|
47
|
+
// ChatGPT LLM Responses Live
|
|
48
|
+
registerTool(server, "ai_chatgpt_llm_responses_live", llmResponseBaseSchema, async (params, client) => {
|
|
49
|
+
const response = await client.post("/ai_optimization/chat_gpt/llm_responses/live", [params]);
|
|
50
|
+
return response;
|
|
51
|
+
}, apiClient);
|
|
52
|
+
// ChatGPT LLM Responses Task-based (POST, READY, GET)
|
|
53
|
+
registerTaskTool(server, "ai_chatgpt_llm_responses_task", llmResponseTaskSchema, async (params, client) => {
|
|
54
|
+
const response = await client.post("/ai_optimization/chat_gpt/llm_responses/task_post", [params]);
|
|
55
|
+
return response;
|
|
56
|
+
}, async (client) => {
|
|
57
|
+
const response = await client.get("/ai_optimization/chat_gpt/llm_responses/tasks_ready");
|
|
58
|
+
return response;
|
|
59
|
+
}, async (id, client) => {
|
|
60
|
+
const response = await client.get(`/ai_optimization/chat_gpt/llm_responses/task_get/${id}`);
|
|
61
|
+
return response;
|
|
62
|
+
}, apiClient);
|
|
63
|
+
// ============================================
|
|
64
|
+
// ChatGPT LLM Scraper
|
|
65
|
+
// ============================================
|
|
66
|
+
// ChatGPT Scraper Locations
|
|
67
|
+
registerTool(server, "ai_chatgpt_scraper_locations", {}, async (_params, client) => {
|
|
68
|
+
const response = await client.get("/ai_optimization/chat_gpt/llm_scraper/locations");
|
|
69
|
+
return response;
|
|
70
|
+
}, apiClient);
|
|
71
|
+
// ChatGPT Scraper Locations by Country
|
|
72
|
+
registerTool(server, "ai_chatgpt_scraper_locations_country", z.object({
|
|
73
|
+
country: z.string().describe("Country code (e.g., 'us', 'uk', 'fr')")
|
|
74
|
+
}), async (params, client) => {
|
|
75
|
+
const response = await client.get(`/ai_optimization/chat_gpt/llm_scraper/locations/${params.country}`);
|
|
76
|
+
return response;
|
|
77
|
+
}, apiClient);
|
|
78
|
+
// ChatGPT Scraper Languages
|
|
79
|
+
registerTool(server, "ai_chatgpt_scraper_languages", {}, async (_params, client) => {
|
|
80
|
+
const response = await client.get("/ai_optimization/chat_gpt/llm_scraper/languages");
|
|
81
|
+
return response;
|
|
82
|
+
}, apiClient);
|
|
83
|
+
// ChatGPT Scraper Task-based (POST, READY, GET Advanced, GET HTML)
|
|
84
|
+
registerTaskTool(server, "ai_chatgpt_scraper_task", llmScraperTaskSchema, async (params, client) => {
|
|
85
|
+
const response = await client.post("/ai_optimization/chat_gpt/llm_scraper/task_post", [params]);
|
|
86
|
+
return response;
|
|
87
|
+
}, async (client) => {
|
|
88
|
+
const response = await client.get("/ai_optimization/chat_gpt/llm_scraper/tasks_ready");
|
|
89
|
+
return response;
|
|
90
|
+
}, async (id, client) => {
|
|
91
|
+
const response = await client.get(`/ai_optimization/chat_gpt/llm_scraper/task_get/advanced/${id}`);
|
|
92
|
+
return response;
|
|
93
|
+
}, apiClient);
|
|
94
|
+
// ChatGPT Scraper Task Get HTML
|
|
95
|
+
registerTool(server, "ai_chatgpt_scraper_task_get_html", z.object({
|
|
96
|
+
id: z.string().describe("Task identifier in UUID format")
|
|
97
|
+
}), async (params, client) => {
|
|
98
|
+
const response = await client.get(`/ai_optimization/chat_gpt/llm_scraper/task_get/html/${params.id}`);
|
|
99
|
+
return response;
|
|
100
|
+
}, apiClient);
|
|
101
|
+
// ============================================
|
|
102
|
+
// Claude LLM Responses
|
|
103
|
+
// ============================================
|
|
104
|
+
// Claude Models List
|
|
105
|
+
registerTool(server, "ai_claude_models", {}, async (_params, client) => {
|
|
106
|
+
const response = await client.get("/ai_optimization/claude/llm_responses/models");
|
|
107
|
+
return response;
|
|
108
|
+
}, apiClient);
|
|
109
|
+
// Claude LLM Responses Live
|
|
110
|
+
registerTool(server, "ai_claude_llm_responses_live", llmResponseBaseSchema, async (params, client) => {
|
|
111
|
+
const response = await client.post("/ai_optimization/claude/llm_responses/live", [params]);
|
|
112
|
+
return response;
|
|
113
|
+
}, apiClient);
|
|
114
|
+
// Claude LLM Responses Task-based (POST, READY, GET)
|
|
115
|
+
registerTaskTool(server, "ai_claude_llm_responses_task", llmResponseTaskSchema, async (params, client) => {
|
|
116
|
+
const response = await client.post("/ai_optimization/claude/llm_responses/task_post", [params]);
|
|
117
|
+
return response;
|
|
118
|
+
}, async (client) => {
|
|
119
|
+
const response = await client.get("/ai_optimization/claude/llm_responses/tasks_ready");
|
|
120
|
+
return response;
|
|
121
|
+
}, async (id, client) => {
|
|
122
|
+
const response = await client.get(`/ai_optimization/claude/llm_responses/task_get/${id}`);
|
|
123
|
+
return response;
|
|
124
|
+
}, apiClient);
|
|
125
|
+
// ============================================
|
|
126
|
+
// Gemini LLM Responses
|
|
127
|
+
// ============================================
|
|
128
|
+
// Gemini Models List
|
|
129
|
+
registerTool(server, "ai_gemini_models", {}, async (_params, client) => {
|
|
130
|
+
const response = await client.get("/ai_optimization/gemini/llm_responses/models");
|
|
131
|
+
return response;
|
|
132
|
+
}, apiClient);
|
|
133
|
+
// Gemini LLM Responses Live
|
|
134
|
+
registerTool(server, "ai_gemini_llm_responses_live", llmResponseBaseSchema, async (params, client) => {
|
|
135
|
+
const response = await client.post("/ai_optimization/gemini/llm_responses/live", [params]);
|
|
136
|
+
return response;
|
|
137
|
+
}, apiClient);
|
|
138
|
+
// ============================================
|
|
139
|
+
// Perplexity LLM Responses
|
|
140
|
+
// ============================================
|
|
141
|
+
// Perplexity Models List
|
|
142
|
+
registerTool(server, "ai_perplexity_models", {}, async (_params, client) => {
|
|
143
|
+
const response = await client.get("/ai_optimization/perplexity/llm_responses/models");
|
|
144
|
+
return response;
|
|
145
|
+
}, apiClient);
|
|
146
|
+
// Perplexity LLM Responses Live
|
|
147
|
+
registerTool(server, "ai_perplexity_llm_responses_live", llmResponseBaseSchema, async (params, client) => {
|
|
148
|
+
const response = await client.post("/ai_optimization/perplexity/llm_responses/live", [params]);
|
|
149
|
+
return response;
|
|
150
|
+
}, apiClient);
|
|
151
|
+
// ============================================
|
|
152
|
+
// AI Keyword Data
|
|
153
|
+
// ============================================
|
|
154
|
+
// AI Keyword Data Available Filters
|
|
155
|
+
registerTool(server, "ai_keyword_data_available_filters", {}, async (_params, client) => {
|
|
156
|
+
const response = await client.get("/ai_optimization/ai_keyword_data/available_filters");
|
|
157
|
+
return response;
|
|
158
|
+
}, apiClient);
|
|
159
|
+
// AI Keyword Data Locations and Languages
|
|
160
|
+
registerTool(server, "ai_keyword_data_locations_and_languages", {}, async (_params, client) => {
|
|
161
|
+
const response = await client.get("/ai_optimization/ai_keyword_data/locations_and_languages");
|
|
162
|
+
return response;
|
|
163
|
+
}, apiClient);
|
|
164
|
+
// AI Keyword Data Keywords Search Volume Live
|
|
165
|
+
registerTool(server, "ai_keyword_data_search_volume_live", z.object({
|
|
166
|
+
keywords: z.array(z.string()).min(1).max(1000).describe("Keywords to get search volume for"),
|
|
167
|
+
location_name: z.string().optional().describe("Full name of location"),
|
|
168
|
+
location_code: z.number().optional().describe("Unique location identifier"),
|
|
169
|
+
language_name: z.string().optional().describe("Full name of language"),
|
|
170
|
+
language_code: z.string().optional().describe("Language code"),
|
|
171
|
+
filters: z.array(z.any()).optional().describe("Array of filter objects"),
|
|
172
|
+
tag: z.string().max(255).optional().describe("User-defined task identifier")
|
|
173
|
+
}), async (params, client) => {
|
|
174
|
+
const response = await client.post("/ai_optimization/ai_keyword_data/keywords_search_volume/live", [params]);
|
|
175
|
+
return response;
|
|
176
|
+
}, apiClient);
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/ai-optimization/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { registerTool } from "../tools.js";
|
|
3
|
+
export function registerAppDataTools(server, apiClient) {
|
|
4
|
+
// App Data Google Play Search
|
|
5
|
+
registerTool(server, "app_data_google_play_search", z.object({
|
|
6
|
+
keyword: z.string().describe("App 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
|
+
depth: z.number().optional().describe("Number of results to return"),
|
|
12
|
+
limit: z.number().optional().describe("Maximum number of results to return per page"),
|
|
13
|
+
offset: z.number().optional().describe("Offset for pagination")
|
|
14
|
+
}), async (params, client) => {
|
|
15
|
+
const response = await client.post("/app_data/google_play/search/live", [params]);
|
|
16
|
+
return response;
|
|
17
|
+
}, apiClient);
|
|
18
|
+
// App Data Google Play App Info
|
|
19
|
+
registerTool(server, "app_data_google_play_app_info", z.object({
|
|
20
|
+
app_id: z.string().describe("Google Play App ID"),
|
|
21
|
+
location_name: z.string().optional().describe("Location name"),
|
|
22
|
+
location_code: z.number().optional().describe("Location code"),
|
|
23
|
+
language_name: z.string().optional().describe("Language name"),
|
|
24
|
+
language_code: z.string().optional().describe("Language code")
|
|
25
|
+
}), async (params, client) => {
|
|
26
|
+
const response = await client.post("/app_data/google_play/app_info/live", [params]);
|
|
27
|
+
return response;
|
|
28
|
+
}, apiClient);
|
|
29
|
+
// App Data Google Play Reviews
|
|
30
|
+
registerTool(server, "app_data_google_play_reviews", z.object({
|
|
31
|
+
app_id: z.string().describe("Google Play App ID"),
|
|
32
|
+
location_name: z.string().optional().describe("Location name"),
|
|
33
|
+
location_code: z.number().optional().describe("Location code"),
|
|
34
|
+
language_name: z.string().optional().describe("Language name"),
|
|
35
|
+
language_code: z.string().optional().describe("Language code"),
|
|
36
|
+
depth: z.number().optional().describe("Number of reviews to retrieve"),
|
|
37
|
+
sort_by: z.enum(["most_relevant", "newest"]).optional().describe("Sorting method"),
|
|
38
|
+
limit: z.number().optional().describe("Maximum number of results to return per page"),
|
|
39
|
+
offset: z.number().optional().describe("Offset for pagination")
|
|
40
|
+
}), async (params, client) => {
|
|
41
|
+
const response = await client.post("/app_data/google_play/reviews/live", [params]);
|
|
42
|
+
return response;
|
|
43
|
+
}, apiClient);
|
|
44
|
+
// App Data Google Play Locations
|
|
45
|
+
registerTool(server, "app_data_google_play_locations", z.object({
|
|
46
|
+
country: z.string().optional().describe("Filter locations by country name")
|
|
47
|
+
}), async (params, client) => {
|
|
48
|
+
const url = params.country
|
|
49
|
+
? `/app_data/google_play/locations?country=${encodeURIComponent(params.country)}`
|
|
50
|
+
: "/app_data/google_play/locations";
|
|
51
|
+
const response = await client.get(url);
|
|
52
|
+
return response;
|
|
53
|
+
}, apiClient);
|
|
54
|
+
// App Data Google Play Languages
|
|
55
|
+
registerTool(server, "app_data_google_play_languages", {}, async (_params, client) => {
|
|
56
|
+
const response = await client.get("/app_data/google_play/languages");
|
|
57
|
+
return response;
|
|
58
|
+
}, apiClient);
|
|
59
|
+
// App Data App Store Search
|
|
60
|
+
registerTool(server, "app_data_app_store_search", z.object({
|
|
61
|
+
keyword: z.string().describe("App name or related keyword"),
|
|
62
|
+
location_name: z.string().optional().describe("Location name"),
|
|
63
|
+
location_code: z.number().optional().describe("Location code"),
|
|
64
|
+
language_name: z.string().optional().describe("Language name"),
|
|
65
|
+
language_code: z.string().optional().describe("Language code"),
|
|
66
|
+
depth: z.number().optional().describe("Number of results to return"),
|
|
67
|
+
limit: z.number().optional().describe("Maximum number of results to return per page"),
|
|
68
|
+
offset: z.number().optional().describe("Offset for pagination")
|
|
69
|
+
}), async (params, client) => {
|
|
70
|
+
const response = await client.post("/app_data/apple/search/live", [params]);
|
|
71
|
+
return response;
|
|
72
|
+
}, apiClient);
|
|
73
|
+
// App Data App Store App Info
|
|
74
|
+
registerTool(server, "app_data_app_store_app_info", z.object({
|
|
75
|
+
app_id: z.string().describe("App Store App ID"),
|
|
76
|
+
location_name: z.string().optional().describe("Location name"),
|
|
77
|
+
location_code: z.number().optional().describe("Location code"),
|
|
78
|
+
language_name: z.string().optional().describe("Language name"),
|
|
79
|
+
language_code: z.string().optional().describe("Language code")
|
|
80
|
+
}), async (params, client) => {
|
|
81
|
+
const response = await client.post("/app_data/apple/app_info/live", [params]);
|
|
82
|
+
return response;
|
|
83
|
+
}, apiClient);
|
|
84
|
+
// App Data App Store Reviews
|
|
85
|
+
registerTool(server, "app_data_app_store_reviews", z.object({
|
|
86
|
+
app_id: z.string().describe("App Store App ID"),
|
|
87
|
+
location_name: z.string().optional().describe("Location name"),
|
|
88
|
+
location_code: z.number().optional().describe("Location code"),
|
|
89
|
+
language_name: z.string().optional().describe("Language name"),
|
|
90
|
+
language_code: z.string().optional().describe("Language code"),
|
|
91
|
+
depth: z.number().optional().describe("Number of reviews to retrieve"),
|
|
92
|
+
sort_by: z.enum(["most_relevant", "most_recent"]).optional().describe("Sorting method"),
|
|
93
|
+
limit: z.number().optional().describe("Maximum number of results to return per page"),
|
|
94
|
+
offset: z.number().optional().describe("Offset for pagination")
|
|
95
|
+
}), async (params, client) => {
|
|
96
|
+
const response = await client.post("/app_data/apple/reviews/live", [params]);
|
|
97
|
+
return response;
|
|
98
|
+
}, apiClient);
|
|
99
|
+
// App Data App Store Locations
|
|
100
|
+
registerTool(server, "app_data_app_store_locations", z.object({
|
|
101
|
+
country: z.string().optional().describe("Filter locations by country name")
|
|
102
|
+
}), async (params, client) => {
|
|
103
|
+
const url = params.country
|
|
104
|
+
? `/app_data/apple/locations?country=${encodeURIComponent(params.country)}`
|
|
105
|
+
: "/app_data/apple/locations";
|
|
106
|
+
const response = await client.get(url);
|
|
107
|
+
return response;
|
|
108
|
+
}, apiClient);
|
|
109
|
+
// App Data App Store Languages
|
|
110
|
+
registerTool(server, "app_data_app_store_languages", {}, async (_params, client) => {
|
|
111
|
+
const response = await client.get("/app_data/apple/languages");
|
|
112
|
+
return response;
|
|
113
|
+
}, apiClient);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/app-data/index.ts"],"names":[],"mappings":"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"}
|