Skip to main content
Glama

seo_keyword_ideas

Generate targeted keyword ideas for SEO optimization using ReviewWeb.site API. Specify a keyword, country, and search engine to refine results and enhance content strategy.

Instructions

Get keyword ideas for a keyword using ReviewWeb.site API.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyNoYour ReviewWebsite API key
countryNoCountry code (default: us)
keywordYesThe keyword to get ideas for
searchEngineNoSearch engine to use (default: Google)

Implementation Reference

  • MCP handler function that executes the seo_keyword_ideas tool logic by calling the controller and formatting the MCP response.
    async function handleGetKeywordIdeas(args: SeoKeywordIdeasToolArgsType) {
    	const methodLogger = Logger.forContext(
    		'tools/reviewwebsite.tool.ts',
    		'handleGetKeywordIdeas',
    	);
    	methodLogger.debug(`Getting keyword ideas:`, {
    		...args,
    		api_key: args.api_key ? '[REDACTED]' : undefined,
    	});
    
    	try {
    		const result = await reviewWebsiteController.getKeywordIdeas(
    			args.keyword,
    			{
    				country: args.country,
    				searchEngine: args.searchEngine,
    			},
    			{
    				api_key: args.api_key,
    			},
    		);
    
    		return {
    			content: [
    				{
    					type: 'text' as const,
    					text: result.content,
    				},
    			],
    		};
    	} catch (error) {
    		methodLogger.error(`Error getting keyword ideas`, error);
    		return formatErrorForMcpTool(error);
    	}
    }
  • Registration of the seo_keyword_ideas tool with the MCP server, specifying name, description, input schema, and handler.
    server.tool(
    	'seo_keyword_ideas',
    	`Get keyword ideas for a keyword using ReviewWeb.site API.`,
    	SeoKeywordIdeasToolArgs.shape,
    	handleGetKeywordIdeas,
    );
  • Zod schema defining input arguments for the seo_keyword_ideas tool.
    export const SeoKeywordIdeasToolArgs = z.object({
    	keyword: z.string().describe('The keyword to get ideas for'),
    	country: z.string().optional().describe('Country code (default: us)'),
    	searchEngine: z
    		.string()
    		.optional()
    		.describe('Search engine to use (default: Google)'),
    	api_key: z.string().optional().describe('Your ReviewWebsite API key'),
    });
  • Service function that performs the actual HTTP POST request to the ReviewWeb.site API endpoint for generating SEO keyword ideas.
    async function getKeywordIdeas(
    	keyword: string,
    	options?: SeoKeywordIdeasOptions,
    	apiKey?: string,
    ): Promise<any> {
    	const methodLogger = Logger.forContext(
    		'services/vendor.reviewwebsite.service.ts',
    		'getKeywordIdeas',
    	);
    
    	try {
    		methodLogger.debug('Getting keyword ideas', { keyword, options });
    
    		const response = await axios.post(
    			`${API_BASE}/seo-insights/keyword-ideas`,
    			{
    				keyword,
    				country: options?.country,
    				searchEngine: options?.searchEngine,
    			},
    			{
    				headers: getHeaders(apiKey),
    			},
    		);
    
    		methodLogger.debug('Successfully got keyword ideas');
    		return response.data;
    	} catch (error) {
    		return handleApiError(error, 'getKeywordIdeas');
    	}
    }

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/mrgoonie/reviewwebsite-mcp-server'

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