Skip to main content
Glama
ravinwebsurgeon

DataForSEO MCP Server

dataforseo_labs_google_keyword_overview

Analyze Google keyword performance with CPC, competition, search volume, and intent data. Use this endpoint to retrieve insights for up to 700 keywords, tailored by location and language, for informed SEO and ad strategies.

Instructions

This endpoint provides Google keyword data for specified keywords. For each keyword, you will receive current cost-per-click, competition values for paid search, search volume, search intent, monthly searches

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result
keywordsYeskeywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn't contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results
language_codeNolanguage code required field example: enen
location_nameNofull name of the location required field in format "Country" example: United KingdomUnited States

Implementation Reference

  • The handle method executes the tool's core logic by making a POST request to the DataForSEO Labs Google Keyword Overview API endpoint with the provided keywords and location parameters, then validates and formats the response.
    async handle(params: any): Promise<any> { try { const response = await this.client.makeRequest('/v3/dataforseo_labs/google/keyword_overview/live', 'POST', [{ keywords: params.keywords, location_name: params.location_name, language_code: params.language_code, include_clickstream_data: params.include_clickstream_data }]); return this.validateAndFormatResponse(response); } catch (error) { return this.formatErrorResponse(error); } }
  • Defines the Zod input schema for the tool parameters: keywords (array of strings), location_name, language_code, and optional include_clickstream_data.
    getParams(): z.ZodRawShape { return { keywords: z.array(z.string()).describe(`keywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn't contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results`), location_name: z.string().default("United States").describe(`full name of the location required field in format "Country" example: United Kingdom`), language_code: z.string().default("en").describe( `language code required field example: en`), include_clickstream_data: z.boolean().optional().default(false).describe( `Include or exclude data from clickstream-based metrics in the result`) }; }
  • Registers the GoogleKeywordOverviewTool (instantiated at line 41 within the tools array) by mapping its name, description, params, and handler into the tools record in the DataForSEOLabsApi module.
    getTools(): Record<string, ToolDefinition> { const tools = [ new GoogleRankedKeywordsTool(this.dataForSEOClient), new GoogleDomainCompetitorsTool(this.dataForSEOClient), new GoogleDomainRankOverviewTool(this.dataForSEOClient), new GoogleKeywordsIdeasTool(this.dataForSEOClient), new GoogleRelatedKeywordsTool(this.dataForSEOClient), new GoogleKeywordsSuggestionsTool(this.dataForSEOClient), new GoogleHistoricalSERP(this.dataForSEOClient), new GoogleSERPCompetitorsTool(this.dataForSEOClient), new GoogleBulkKeywordDifficultyTool(this.dataForSEOClient), new GoogleSubdomainsTool(this.dataForSEOClient), new GoogleKeywordOverviewTool(this.dataForSEOClient), new GoogleTopSearchesTool(this.dataForSEOClient), new GoogleSearchIntentTool(this.dataForSEOClient), new GoogleKeywordsForSiteTool(this.dataForSEOClient), new GoogleDomainIntersectionsTool(this.dataForSEOClient), new GoogleHistoricalDomainRankOverviewTool(this.dataForSEOClient), new GooglePageIntersectionsTool(this.dataForSEOClient), new GoogleBulkTrafficEstimationTool(this.dataForSEOClient), new DataForSeoLabsFilterTool(this.dataForSEOClient), new GoogleHistoricalKeywordDataTool(this.dataForSEOClient), // Add more tools here ]; return tools.reduce((acc, tool) => ({ ...acc, [tool.getName()]: { description: tool.getDescription(), params: tool.getParams(), handler: (params: any) => tool.handle(params), }, }), {}); }

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ravinwebsurgeon/seo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server