submit_url_batch
Submit up to 500 URLs at once for indexing using the Bing Webmaster Tools API. Verify available quota before submission to ensure successful processing.
Instructions
Submit multiple URLs for indexing in a single request.
The max number of urls that can be submitted in a batch is 500 unless it exceeds the available quota. get_url_submission_quota should be called to determine how much urls can be submitted.
Args: site_url: The URL of the site url_list: List of URLs to submit
Raises: BingWebmasterError: If URLs cannot be submitted
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| self | Yes | ||
| site_url | Yes | ||
| url_list | Yes |
Implementation Reference
- mcp_server_bwt/tools/bing_webmaster.py:97-99 (registration)Registration of the submit_url_batch MCP tool. Assigns a wrapped service method decorated as @mcp.tool().submit_url_batch = wrap_service_method( # noqa: F841 mcp, service, "submission", "submit_url_batch" )
- wrap_service_method helper: Dynamically creates the handler function for submit_url_batch (and all tools), registers it as an MCP tool with preserved signature/docstring from the service method, and executes by calling submission.SubmissionService.submit_url_batch via the service instance.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
- mcp_server_bwt/main.py:17-17 (registration)Top-level registration call that triggers addition of all Bing Webmaster tools, including submit_url_batch, to the MCP server.add_bing_webmaster_tools(mcp, bing_service)
- Initializes the submission service instance in BingWebmasterService, which provides the submit_url_batch method wrapped by the tool.self.submission = submission.SubmissionService(self.client)