Skip to main content
Glama
fetchSERP

FetchSERP MCP Server

Official
by fetchSERP

get_keywords_suggestions

Generate relevant keyword suggestions for SEO and content optimization by analyzing a URL or provided keywords. Optimize search performance and strategy with targeted data.

Instructions

Get keyword suggestions based on a url or a list of keywords

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countryNoThe country code to search for
keywordsNoThe keywords to search (optional if url provided)
urlNoThe url to search (optional if keywords provided)

Implementation Reference

  • Handler implementation for the 'get_keywords_suggestions' tool within the handleToolCall method's switch statement. It delegates the execution to the makeRequest helper with the specific API endpoint.
    case 'get_keywords_suggestions': return await this.makeRequest('/api/v1/keywords_suggestions', 'GET', args, null, token);
  • Input schema definition for the 'get_keywords_suggestions' tool, specifying parameters like url, keywords, and country.
    inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The url to search (optional if keywords provided)', }, keywords: { type: 'array', items: { type: 'string' }, description: 'The keywords to search (optional if url provided)', }, country: { type: 'string', description: 'The country code to search for', }, },
  • index.js:135-156 (registration)
    Registration of the 'get_keywords_suggestions' tool in the ListToolsRequestSchema handler's tools array, including name, description, and input schema.
    { name: 'get_keywords_suggestions', description: 'Get keyword suggestions based on a url or a list of keywords', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The url to search (optional if keywords provided)', }, keywords: { type: 'array', items: { type: 'string' }, description: 'The keywords to search (optional if url provided)', }, country: { type: 'string', description: 'The country code to search for', }, }, }, },
  • Shared helper function 'makeRequest' that handles the actual HTTP API call to FetchSERP endpoints, used by the tool handler.
    async makeRequest(endpoint, method = 'GET', params = {}, body = null, token = null) { const fetchserpToken = token || process.env.FETCHSERP_API_TOKEN; if (!fetchserpToken) { throw new McpError( ErrorCode.InvalidRequest, 'FETCHSERP_API_TOKEN is required' ); } const url = new URL(`${API_BASE_URL}${endpoint}`); // Add query parameters for GET requests if (method === 'GET' && Object.keys(params).length > 0) { Object.entries(params).forEach(([key, value]) => { if (value !== undefined && value !== null) { if (Array.isArray(value)) { value.forEach(v => url.searchParams.append(`${key}[]`, v)); } else { url.searchParams.append(key, value.toString()); } } }); } const fetchOptions = { method, headers: { 'Authorization': `Bearer ${fetchserpToken}`, 'Content-Type': 'application/json', }, }; if (body && method !== 'GET') { fetchOptions.body = JSON.stringify(body); } const response = await fetch(url.toString(), fetchOptions); if (!response.ok) { const errorText = await response.text(); throw new McpError( ErrorCode.InternalError, `API request failed: ${response.status} ${response.statusText} - ${errorText}` ); } return await response.json(); }

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/fetchSERP/fetchserp-mcp-server-node'

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