Skip to main content
Glama
zizzfizzix

Bing Webmaster Tools MCP Server

by zizzfizzix

get_related_keywords

Find related keywords and their search impression data from Bing Webmaster Tools to expand content topics and improve SEO targeting.

Instructions

Get keyword impressions for related keywords in the selected period.

Args: query: The base keyword query country: The country code language: The language code start_date: The start date of the period end_date: The end date of the period

Returns: List[Keyword]: List of related keywords and their impression data

Raises: BingWebmasterError: If related keywords cannot be retrieved

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
selfYes
queryYes
countryYes
languageYes
start_dateYes
end_dateYes

Implementation Reference

  • Registers the get_related_keywords MCP tool by calling wrap_service_method, which decorates a handler function with @mcp.tool() and registers it.
    get_related_keywords = wrap_service_method( # noqa: F841 mcp, service, "keywords", "get_related_keywords" )
  • The handler function logic executed for the get_related_keywords tool (and all similar tools), which enters the service context, retrieves the keywords service, calls its get_related_keywords method, and returns the result.
    @mcp.tool() @wraps(original_method) async def wrapper(*args: Any, **kwargs: Any) -> Any: # Filter out any 'self' arguments that might be passed by the MCP client kwargs = {k: v for k, v in kwargs.items() if k != "self"} async with service as s: service_obj = getattr(s, service_attr) # Get the method from the instance method = getattr(service_obj, method_name) # Call the method directly - it's already bound to the instance return await method(*args, **kwargs) # Copy signature and docstring wrapper.__signature__ = new_sig # type: ignore wrapper.__doc__ = original_method.__doc__
  • Helper function that generates the handler for get_related_keywords and all other Bing Webmaster service methods, handling signature preservation, MCP tool decoration, and service method delegation.
    def wrap_service_method( mcp: FastMCP, service: BingWebmasterService, service_attr: str, method_name: str ) -> Callable[..., Any]: """Helper function to wrap a service method with mcp.tool() while preserving its signature and docstring. Args: mcp: The MCP server instance service: The BingWebmasterService instance service_attr: The service attribute name (e.g., 'sites', 'submission') method_name: The method name to wrap Returns: The wrapped method as an MCP tool """ # Get the service class from our mapping service_class = SERVICE_CLASSES[service_attr] # Get the original method original_method = getattr(service_class, method_name) # Get the signature sig = inspect.signature(original_method) # Remove 'self' parameter from signature parameters = list(sig.parameters.values())[1:] # Skip 'self' # Create new signature without 'self' new_sig = sig.replace(parameters=parameters) # Create wrapper function with same signature @mcp.tool() @wraps(original_method) async def wrapper(*args: Any, **kwargs: Any) -> Any: # Filter out any 'self' arguments that might be passed by the MCP client kwargs = {k: v for k, v in kwargs.items() if k != "self"} async with service as s: service_obj = getattr(s, service_attr) # Get the method from the instance method = getattr(service_obj, method_name) # Call the method directly - it's already bound to the instance return await method(*args, **kwargs) # Copy signature and docstring wrapper.__signature__ = new_sig # type: ignore wrapper.__doc__ = original_method.__doc__ return wrapper
  • Instantiates and attaches the KeywordAnalysisService (which contains the underlying get_related_keywords implementation) to the main BingWebmasterService.
    self.keywords = keyword_analysis.KeywordAnalysisService(self.client)
  • Invokes the tool registration function that creates and registers the get_related_keywords handler among all Bing Webmaster tools.
    add_bing_webmaster_tools(mcp, bing_service)

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/zizzfizzix/mcp-server-bwt'

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