Skip to main content
Glama
ravinwebsurgeon

DataForSEO MCP Server

dataforseo_labs_bulk_keyword_difficulty

Analyze keyword ranking difficulty for up to 1,000 keywords in one request to assess SEO competition and prioritize content strategy.

Instructions

This endpoint will provide you with the Keyword Difficulty metric for a maximum of 1,000 keywords in one API request. Keyword Difficulty stands for the relative difficulty of ranking in the first top-10 organic results for the related keyword. Keyword Difficulty in DataForSEO API responses indicates the chance of getting in top-10 organic results for a keyword on a logarithmic scale from 0 to 100.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keywordsYestarget keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000
location_nameNofull name of the location required field only in format "Country" (not "City" or "Region") example: 'United Kingdom', 'United States', 'Canada'United States
language_codeNolanguage code required field example: enen

Implementation Reference

  • The async handle method executes the core tool logic by sending a POST request to the DataForSEO Labs API endpoint for bulk keyword difficulty with the input parameters and handles the response or error.
    async handle(params: any): Promise<any> { try { const response = await this.client.makeRequest('/v3/dataforseo_labs/google/bulk_keyword_difficulty/live', 'POST', [{ keywords: params.keywords, location_name: params.location_name, language_code: params.language_code }]); return this.validateAndFormatResponse(response); } catch (error) { return this.formatErrorResponse(error); } }
  • Zod schema defining the input parameters for the tool: keywords (array of strings, up to 1000), location_name (string, default 'United States'), language_code (string, default 'en').
    getParams(): z.ZodRawShape { return { keywords: z.array(z.string()).describe(`target keywords required field UTF-8 encoding maximum number of keywords you can specify in this array: 1000`), 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`), }; }
  • Instantiation of the GoogleBulkKeywordDifficultyTool within the tools array in DataForSEOLabsApi.getTools(), which registers the tool using its getName() into the module's tools map for higher-level registration.
    new GoogleHistoricalSERP(this.dataForSEOClient), new GoogleSERPCompetitorsTool(this.dataForSEOClient), new GoogleBulkKeywordDifficultyTool(this.dataForSEOClient), new GoogleSubdomainsTool(this.dataForSEOClient),

Other 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