Skip to main content
Glama
zizzfizzix

Bing Webmaster Tools MCP Server

by zizzfizzix

mcp-server-bwt

MCP server for Bing Webmaster Tools

This MCP (Model Context Protocol) server provides a bridge between supported AI assistants like Claude or Cursor and the Bing Webmaster Tools API. It exposes all Bing Webmaster Tools functionality available via bing-webmaster-tools as MCP tools that can be used by AI assistants to interact with your Bing Webmaster Tools account.

Example Usage with Claude

Once configured, you can use the MCP server with Claude to interact with your Bing Webmaster Tools account. Here are some example prompts:

  • "List all my verified sites in Bing Webmaster Tools"

  • "Submit my homepage for indexing"

  • "Get traffic statistics for my website"

  • "Check for any crawling issues on my site"

  • "Get keyword statistics for 'my product'"

Claude will use the appropriate MCP tools to fulfill your requests.

Related MCP server: mcp-server-bing-webmaster

Requirements

Installation

When using uvx no specific installation is needed. We will use it to directly run mcp_server_bwt from the client app.

Add to Claude desktop with uvx

In your Claude config specify:

"mcpServers": {
  "mcp_server_bwt": {
    "command": "uvx",
    "args": [
      "--from",
      "git+https://github.com/zizzfizzix/mcp-server-bwt",
      "mcp_server_bwt"
    ]
  }
}

Add to Zed with uvx

In your Zed settings.json add:

"context_servers": [
  "bwtServer": {
    "command": "uvx",
    "args": [
      "--from",
      "git+https://github.com/zizzfizzix/mcp-server-bwt",
      "mcp_server_bwt"
    ]
  }
]

Using make

Alternatively you can install mcp_server_bwt using make:

make install

Add to Claude desktop with make

In your Claude config specify:

"mcpServers": {
  "bwtServer": {
    "command": "/PATH/TO/mcp-server-bwt/.venv/bin/python",
    "args": ["/PATH/TO/mcp-server-bwt/mcp_server_bwt/main.py"],
    "env": {
      "BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
    }
  }
}

Add to Zed with make

In your Zed settings.json add:

"context_servers": {
  "bwtServer": {
    "command": "/PATH/TO/mcp-server-bwt/.venv/bin/python",
    "args": ["/PATH/TO/mcp-server-bwt/mcp_server_bwt/main.py"],
    "env": {
      "BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
    }
  }
}

Available Tools

The server provides the following Bing Webmaster Tools API functionality (more info in the API docs):

Site Management

  • get_sites: List all verified sites in your Bing Webmaster Tools account

  • add_site: Add a new site to your account

  • verify_site: Verify ownership of a site

  • remove_site: Remove a site from your account

  • get_site_roles: Get roles for a specific site

  • add_site_roles: Add roles to a site

  • remove_site_role: Remove a role from a site

  • get_site_moves: Get information about site moves

  • submit_site_move: Submit a site move request

URL Submission

  • submit_url: Submit a single URL for indexing

  • submit_url_batch: Submit multiple URLs for indexing in a batch

  • submit_content: Submit content for indexing

  • submit_feed: Submit a feed for indexing

  • get_feeds: Get all submitted feeds

  • get_feed_details: Get details about a specific feed

  • remove_feed: Remove a feed from your account

  • get_url_submission_quota: Check your URL submission quota

  • get_content_submission_quota: Check your content submission quota

  • fetch_url: Fetch a URL for indexing

  • get_fetched_urls: Get all fetched URLs

  • get_fetched_url_details: Get details about a specific fetched URL

Traffic Analysis

  • get_query_stats: Get statistics for search queries

  • get_query_traffic_stats: Get traffic statistics for search queries

  • get_query_page_stats: Get page statistics for search queries

  • get_query_page_detail_stats: Get detailed page statistics for search queries

  • get_page_stats: Get statistics for pages

  • get_page_query_stats: Get query statistics for pages

  • get_rank_and_traffic_stats: Get rank and traffic statistics

Crawling

  • get_crawl_stats: Get crawling statistics

  • get_crawl_settings: Get crawling settings

  • save_crawl_settings: Save crawling settings

  • get_crawl_issues: Get crawling issues

Keyword Analysis

  • get_keyword: Get information about a keyword

  • get_keyword_stats: Get statistics for a keyword

  • get_related_keywords: Get related keywords

  • get_link_counts: Get link counts

  • get_url_links: Get links for a URL

  • get_deep_link: Get deep link information

  • get_deep_link_blocks: Get deep link blocks

  • add_deep_link_block: Add a deep link block

  • remove_deep_link_block: Remove a deep link block

  • update_deep_link: Update a deep link

  • get_deep_link_algo_urls: Get deep link algorithm URLs

  • get_connected_pages: Get connected pages

  • add_connected_page: Add a connected page

Content Management

  • get_url_info: Get information about a URL

  • get_url_traffic_info: Get traffic information for a URL

  • get_children_url_info: Get information about child URLs

  • get_children_url_traffic_info: Get traffic information for child URLs

Content Blocking

  • get_blocked_urls: Get blocked URLs

  • add_blocked_url: Add a URL to the blocked list

  • remove_blocked_url: Remove a URL from the blocked list

  • get_active_page_preview_blocks: Get active page preview blocks

  • add_page_preview_block: Add a page preview block

  • remove_page_preview_block: Remove a page preview block

Regional Settings

  • get_country_region_settings: Get country/region settings

  • add_country_region_settings: Add country/region settings

  • remove_country_region_settings: Remove country/region settings

URL Management

  • get_query_parameters: Get query parameters

  • add_query_parameter: Add a query parameter

  • remove_query_parameter: Remove a query parameter

  • enable_disable_query_parameter: Enable or disable a query parameter

Development

To run all tests:

make test

To build the app:

make build

To lint the project:

make lint

To format the project:

make format

Environment Variables

The following environment variables are required:

  • BING_WEBMASTER_API_KEY: Your Bing Webmaster Tools API key

Starting the Server

To start the MCP server:

make start

MCP Inspector

You can use the MCP inspector to test the server:

make mcp_inspector

Creating from Template

This MCP server was created from a cookiecutter template. To create a similar one, run:

uvx cookiecutter gh:zizzfizzix/python-base-mcp-server

License

mcp-server-bwt is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

62 tools
add_blocked_urlA

Add a blocked URL to a site.

Args: site_url: The URL of the site blocked_url: The URL to be blocked entity_type: The type of entity to block (Page or Directory) request_type: The type of request (CacheOnly or FullRemoval) date: The date the URL was blocked (default: minimum datetime)

Raises: BingWebmasterError: If URL cannot be blocked

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
blocked_urlYes
entity_typeNo
request_typeNo
dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the action and parameter defaults, but does not mention side effects, permissions, idempotency, or behavior when URL already blocked. The raise condition is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact docstring with a one-line summary, parameter list, and raise section. It is front-loaded and every sentence serves a purpose, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 6-parameter complexity and presence of an output schema, the description covers purpose, parameters, and one error condition. However, it omits success output, prerequisites (e.g., site existence), and potential additional errors, making it slightly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the schema for most parameters (e.g., entity_type and request_type map integers to human-readable options, date default described). However, the required 'self' parameter is not explained, leaving a gap despite 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add a blocked URL to a site', which is a specific verb+resource pair. It distinguishes from siblings like 'remove_blocked_url' and 'get_blocked_urls'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates when to use this tool (to block a URL) but lacks explicit guidance on when not to use or alternatives. The mention of a raise condition provides some context but no comparative advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_connected_pageB

Add a page which has a link to your website.

Args: site_url: The URL of your site master_url: The URL of the page to be connected

Raises: BingWebmasterError: If page cannot be connected

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
master_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions that a BingWebmasterError is raised if the page cannot be connected, but it does not specify whether the operation is idempotent, what happens if the connection already exists, or any side effects. The agent is left uninformed about critical behavioral traits beyond the error case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a one-line purpose followed by clear parameter and error documentation. The structure is logical, though the Args and Raises sections could be integrated more naturally. No superfluous text is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema (so return values are covered) and the parameter count, the description covers purpose and two of three parameters. However, it lacks usage guidelines and behavioral transparency, leaving the tool only partially documented. More context on when to use and what to expect would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides explicit explanations for site_url and master_url in the Args section, adding meaning beyond the schema (which has 0% description coverage). However, the 'self' parameter is left undocumented. With 3 params and 2 described, the coverage is partial but helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add a page') and the resource ('which has a link to your website'). It distinguishes this tool from siblings like add_site (which adds a site) and get_connected_pages (which retrieves). The verb 'add' and resource 'connected page' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. For example, it does not mention prerequisites (e.g., the site must already exist), nor does it contrast with similar tools like add_site or get_connected_pages. The absence of usage context leaves the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_country_region_settingsC

Add country/region settings for a specific site.

Args: site_url: The URL of the site settings: The country/region settings to add

Raises: BingWebmasterError: If settings cannot be added

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
settingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must carry the full burden. It only states that settings are added and raises a generic error if unsuccessful. It does not disclose whether adding overwrites existing settings, requires specific permissions, or what side effects occur. This is insufficient for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the purpose, but the Args section duplicates the schema without adding useful detail. It does not violate conciseness but could be more efficient by integrating parameter descriptions into a single paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 required parameters (including 'self' which is undocumented), a nested input object, and an output schema (not shown), the description is notably incomplete. It omits one parameter, provides no behavioral notes, and does not explain return values. For a tool of moderate complexity, this falls short.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. However, it only lists 'site_url' and 'settings' with one-line descriptions, omitting the required 'self' parameter entirely. It provides no guidance on the structure of 'settings' despite a complex schema (including CountryRegionSettings with multiple typed fields). The description adds minimal value over the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Add country/region settings for a specific site,' which is a specific verb+resource combination. It distinguishes from sibling tools like 'get_country_region_settings' and 'remove_country_region_settings' by being additive, but does not elaborate on what 'settings' entails beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., 'get_country_region_settings' for retrieval or 'remove_country_region_settings' for deletion). The description only states the basic action without context or prerequisites, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_page_preview_blockC

Add a page preview block.

Args: site_url: The URL of the site url: The URL to block from page preview reason: The reason for blocking the page preview

Raises: BingWebmasterError: If preview block cannot be added

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes
reasonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It mentions raising BingWebmasterError on failure, but lacks details about idempotency, permission requirements, or effects on existing blocks. The enum values for 'reason' are not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief with a clear structure: purpose, parameter list, and error info. However, it is not self-contained as it omits the 'self' parameter, forcing the agent to infer from the schema. Still, it is efficient for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 required params and no annotations, the description should fully enable correct invocation. It misses the 'self' parameter and does not explain the enum for reason. An output schema exists but is not referenced, leaving the agent uninformed about return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage, so the description must compensate. It describes site_url, url, and reason, but omits the required 'self' parameter entirely. The reason parameter is described vaguely ('The reason for blocking the page preview') without explaining the enum integer meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add a page preview block' clearly states the action (add) and the resource (page preview block), distinguishing it from siblings like add_blocked_url or remove_page_preview_block. The verb is specific and the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., get_active_page_preview_blocks). It only lists arguments and errors, offering no context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_query_parameterC

Add a URL normalization parameter for a site.

Args: site_url: The URL of the site query_parameter: The query parameter to add

Raises: BingWebmasterError: If parameter cannot be added

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
query_parameterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should carry the full burden. It mentions that a BingWebmasterError is raised if the parameter cannot be added, but does not disclose whether parameters are overwritten, if idempotency applies, or any other side effects of the addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two clear sentences, an Args section, and a Raises note. Every sentence serves a purpose without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero annotations, three required parameters with poor schema coverage, and an output schema that exists but is not described, the description fails to provide enough context for correct invocation. The 'self' parameter is ignored, and the return behavior is omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description only adds minimal meaning for site_url and query_parameter, repeating their names. The required 'self' parameter is completely undocumented, leaving the agent uninformed about its purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (add) and the resource (URL normalization parameter for a site). It distinguishes from sibling tools like remove_query_parameter and enable_disable_query_parameter by implying addition as a distinct operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as enable_disable_query_parameter or remove_query_parameter. The description lacks context for typical use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_siteC

Add a new site to Bing Webmaster Tools.

Args: site_url: The URL of the site to add

Raises: BingWebmasterError: If the site cannot be added

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only mentions raising BingWebmasterError, but lacks details on mutation effects, idempotency, authorization, or side effects. Inadequate for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Fairly concise but includes redundant 'Args:' section that duplicates schema information. Could be trimmed to a single sentence without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists but description does not mention return value. Missing details like idempotency, prerequisites (e.g., account verification), rate limits, and error handling beyond the generic exception.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description explains site_url but ignores the 'self' parameter entirely. Even the Args section only covers one of two parameters, leaving meaning of 'self' ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add a new site to Bing Webmaster Tools' clearly specifies the verb (add), resource (site), and platform. It distinguishes itself from sibling tools like add_blocked_url or add_connected_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no prerequisites, and no mention of preconditions like site ownership or verification. The only hint is an error condition, but no contextual help for choosing this over other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_site_rolesB

Delegate site access to a user.

Args: site_url: The URL of your site delegated_url: The URL being delegated user_email: The email of the user to delegate access to authentication_code: The authentication code is_administrator: Whether the user should have administrator privileges is_read_only: Whether the user should have read-only access

Raises: BingWebmasterError: If the role assignment fails

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
delegated_urlYes
user_emailYes
authentication_codeYes
is_administratorYes
is_read_onlyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the full burden falls on the description. It does not disclose side effects (e.g., whether it overwrites existing roles), idempotency, rate limits, or authentication needs beyond listing parameters. The Raises section is generic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear upfront action and a bulleted parameter list. The Raises section adds minimal value but is not verbose. Could be more efficient by integrating parameter descriptions into the main text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 required parameters and no annotations, the description lacks critical context. It does not explain the 'self' field, the interaction between access levels, or the tool's behavior on failure. The existence of an output schema is not utilized.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides basic explanations for most parameters (e.g., 'The URL of your site'), but lacks depth and does not clarify the 'self' parameter or relationships between flags like is_administrator and is_read_only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delegate site access to a user', using a specific verb and resource. Among siblings like get_site_roles and remove_site_role, this tool is distinct as the creation/delegation operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., when to use get_site_roles or remove_site_role). There are no prerequisites, conditions, or usage scenarios mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_disable_query_parameterB

Enable or disable a URL normalization parameter for a site.

Args: site_url: The URL of the site query_parameter: The query parameter to enable/disable is_enabled: True to enable, False to disable

Raises: BingWebmasterError: If parameter state cannot be updated

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
query_parameterYes
is_enabledYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should disclose behavioral traits like idempotency, side effects, or permission requirements. It only mentions that an error is raised if the update fails, leaving many behavioral aspects undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise, using a structured Args/Raises format. Every sentence adds value with no redundancy, and the key action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of related sibling tools and the existence of an output schema, the description fails to contextualize when to use this tool (e.g., vs. add_query_parameter) and does not describe the return value. Behavioral completeness is low, especially with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains three of the four required parameters (site_url, query_parameter, is_enabled) with basic semantics. However, the `self` parameter is completely omitted, and details like the format of query_parameter (e.g., without '?') are missing. With 0% schema coverage, this partial explanation improves understanding but has notable gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (enable or disable) and the resource (a URL normalization parameter for a site). It distinguishes from siblings like add_query_parameter and remove_query_parameter by implying modification of an existing parameter's state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as add_query_parameter or remove_query_parameter. It does not mention prerequisites (e.g., the parameter must already exist) or contextual conditions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_urlC

Request Bing to fetch a specific URL immediately.

Args: site_url: The URL of the site url: The URL to fetch

Raises: BingWebmasterError: If URL cannot be fetched

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only mentions that a BingWebmasterError is raised if the URL cannot be fetched. With no annotations, the agent lacks information on side effects, whether the operation is read-only, rate limits, or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear action and error note. It is front-loaded with the purpose, though the inclusion of 'self' in the args list without explanation slightly reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not mention the output of the fetch (despite an output schema existing), nor does it cover prerequisites, permissions, or the scope of the operation. The agent is left to assume the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description explains 'site_url' and 'url' but not the required 'self' parameter. The agent cannot understand the role of 'self', and URL format or restrictions are omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool requests Bing to fetch a specific URL immediately. While it does not explicitly differentiate from similar tools like 'submit_url' or 'get_fetched_url_details', the intent is clear for a fetch operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as submitting a URL for crawling or retrieving previously fetched results. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_page_preview_blocksC

Get active page preview blocks for a site.

Args: site_url: The URL of the site

Returns: List[PagePreview]: List of active page preview blocks

Raises: BingWebmasterError: If preview blocks cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It mentions it returns a list and raises an error, but does not state whether the operation is read-only, safe, or requires specific permissions. The description lacks important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short but includes non-standard sections like 'Args:', 'Returns:', 'Raises:' which are verbose for a tool description. It could be more concise and front-loaded. The unexplained 'self' parameter adds unnecessary confusion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description does not need to detail return values. However, it omits explanation for the 'self' parameter and provides no filtering or pagination context. The tool is simple, but the missing parameter documentation reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, meaning the description adds no explanation for the two required parameters. It lists 'site_url' in Args but provides no additional meaning. The parameter 'self' is unexplained entirely, leaving the agent with no semantic guidance beyond the schema's type information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Get active page preview blocks for a site.' It specifies the action (get) and the resource (active page preview blocks). The mention of 'site_url' as input further clarifies the scope. This distinguishes it from sibling tools like add_page_preview_block or remove_page_preview_block.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description merely states what it does, without mentioning prerequisites, exclusions, or when not to use it. Given the many sibling tools, this is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_blocked_urlsB

Get a list of blocked pages/directories for a site.

Args: site_url: The URL of the site

Returns: List[BlockedUrl]: List of blocked URLs and their settings

Raises: BingWebmasterError: If blocked URLs cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states it returns a list and can raise an error. It does not mention if it's read-only, requires authentication, or any side effects, leaving the behavior under-specified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but incomplete: it documents only one of two parameters. The structure with Args, Returns, Raises is good but the missing 'self' parameter is a notable gap.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has two required parameters and an output schema, but the description adds little beyond the schema. It does not explain what blocked URLs are, the format of settings, or how pagination works (if any). For a retrieval tool, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two parameters (self, site_url), but the description only documents site_url. With 0% schema description coverage, the description should add meaning to the undocumented 'self' parameter, but it does not. This fails to help the agent understand parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of blocked pages/directories for a site, using a specific verb+resource pattern. This distinguishes it from siblings like add_blocked_url, remove_blocked_url, and get_connected_pages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides the required argument 'site_url' and indicates it returns a list of BlockedUrl objects. While it doesn't explicitly state when to use this tool versus alternatives, the context of retrieving blocked URLs is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_children_url_infoC

Retrieve information for child URLs of a specific URL.

Args: site_url: The URL of the site url: The parent URL to get child URL information for page: The page number of results to retrieve filter_properties: Properties to filter the results

Returns: List[UrlInfo]: List of URL information for child URLs

Raises: BingWebmasterError: If child URL information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes
pageNo
filter_propertiesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It mentions the BingWebmasterError exception and return type, but lacks details on permissions, rate limits, side effects, or pagination behavior beyond the page parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The docstring format is organized and concise, but the missing 'self' parameter and incomplete filter_properties description reduce effectiveness. It is not too wordy, but incompleteness harms conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, no annotations, output schema exists), the description is incomplete. It fails to explain the required 'self' parameter, offers no guidance on filter usage, and does not differentiate from similar siblings like get_children_url_traffic_info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It describes four of five parameters (missing 'self') with brief explanations. The filter_properties parameter is vague despite being a complex object with enums. The omission of 'self' is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves information for child URLs of a specific URL using specific verbs and resource. It effectively distinguishes from siblings like get_children_url_traffic_info and get_url_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description only states what the tool does, leaving the agent to infer usage from context. Given many sibling tools, this is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_children_url_traffic_infoC

Get traffic details for child URLs of a directory.

Args: site_url: The URL of the site url: The URL of the directory page: The page number of results to retrieve

Returns: List[UrlTrafficInfo]: List of traffic information for child URLs

Raises: BingWebmasterError: If child traffic information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It mentions 'Get' implying read, but lacks disclosure on permissions, rate limits, pagination mechanics, or data staleness. The page parameter suggests pagination but is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with two lines of text plus structured Args/Returns/Raises sections. However, it wastes space by not documenting the 'self' parameter and could be more efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters (3 required) and an output schema, the description minimally covers returns (List[UrlTrafficInfo]) and raises. However, parameter documentation is sparse, and important context like what traffic details are included is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning. The Args section lists site_url, url, and page but provides no details beyond names. The 'self' parameter is completely undocumented. No formats, constraints, or examples are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get traffic details for child URLs of a directory.' This specific verb-resource combination distinguishes it from siblings like get_url_traffic_info (single URL) and get_children_url_info (info other than traffic).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any when-to-use or when-not-to-use guidance relative to sibling tools. It only implies usage for directory child URL traffic but lacks explicit exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connected_pagesC

Get a list of pages connected to the site.

Args: site_url: The URL of the site

Returns: List[ConnectedSite]: List of connected sites

Raises: BingWebmasterError: If connected pages cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must convey behavioral traits. It only states the basic action without mentioning side effects, permissions, rate limits, or any constraints. This is insufficient for a tool that may require authentication or have limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single sentence followed by structured Args/Returns/Raises sections. However, it could be more informative without adding bulk; the current structure is acceptable but not exceptional.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two required parameters and an output schema, the description should clarify the meaning of 'connected pages', the role of 'self', and any prerequisites. It lacks completeness, leaving ambiguity for an agent trying to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains 'site_url' in the Args section but fails to describe the 'self' parameter, which is also required. This leaves a gap in understanding for half the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of pages connected to a site, with a specific verb ('Get') and resource ('list of pages connected to the site'). It does not explicitly differentiate from siblings, but the purpose is distinct enough among many 'get_' tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. Given the large number of sibling tools, explicit usage context would be beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_content_submission_quotaB

Get information about content submission quota and usage.

Args: site_url: The URL of the site

Returns: ContentSubmissionQuota: Current quota information

Raises: BingWebmasterError: If quota information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
__typeYes
DailyQuotaYes
MonthlyQuotaYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only mentions return type and potential error. Does not disclose side effects, permissions, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with structured Args, Returns, Raises. Front-loaded with purpose. Could be slightly more compact, but overall good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists reducing need to explain returns, but missing explanation for 'self' parameter and context about when quota information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%; description only explains 'site_url' briefly. The 'self' parameter is undocumented, leaving confusion about its purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'get information' and the resource 'content submission quota and usage'. Differentiates from sibling tools like get_url_submission_quota by focusing on content submission specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like get_url_submission_quota. Does not mention prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_country_region_settingsB

Retrieve country/region settings for a specific site.

Args: site_url: The URL of the site to get settings for

Returns: List[CountryRegionSettings]: List of country/region settings

Raises: BingWebmasterError: If settings cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It includes return type and error info but does not explicitly state read-only nature, side effects, or rate limits. The verb 'Retrieve' implies safety, but transparency could be improved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear one-liner purpose and structured docstring (Args, Returns, Raises). No unnecessary information, though it could be more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, and output schema exists, so return value details are partially covered. However, the description omits semantics of 'self' parameter and does not mention edge cases or behavior when settings are unavailable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains 'site_url' but ignores 'self' parameter entirely. Only partial compensation for one of two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Retrieve', the resource 'country/region settings', and the scope 'for a specific site', clearly distinguishing it from sibling tools like add/remove_country_region_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, conditions, or exclusions. It only describes the action without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crawl_issuesA

Get a list of URLs with crawl issues for a specific site.

This helps identify pages that Bing's crawler had trouble accessing or processing.

Args: site_url: The URL of the site

Returns: List[UrlWithCrawlIssues]: List of URLs with their associated crawl issues

Raises: BingWebmasterError: If issues cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states that it returns a list of URLs with crawl issues and raises an error. However, it does not detail side effects or safety (though read-only is implied). It adds value by describing the purpose and return type.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the purpose, and includes structured sections for args, returns, and raises. Every sentence adds value, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 2 parameters (one undocumented), an output schema exists, and there are many sibling tools. The description partially covers the purpose but misses parameter documentation for 'self' and lacks differentiation from siblings. Sufficient but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two required parameters: 'self' and 'site_url'. The description only explains 'site_url' and completely omits 'self'. With 0% schema description coverage, the description must compensate but fails to explain the 'self' parameter, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a list of URLs with crawl issues for a specific site.' It uses a specific verb ('get') and resource ('crawl issues'), distinguishing it from siblings like get_crawl_stats or get_crawl_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says it helps identify pages with crawl issues, implying when to use it, but does not explicitly state when not to use it or compare with alternatives among the many get_* functions. No when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crawl_settingsB

Retrieve crawl settings for a specific site.

Args: site_url: The URL of the site to get crawl settings for

Returns: CrawlSettings: The current crawl settings for the site

Raises: BingWebmasterError: If settings cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
__typeNo
CrawlBoostAvailableYes
CrawlBoostEnabledYes
CrawlRateYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It implies read-only behavior through 'Retrieve', but does not disclose auth needs, rate limits, or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and structured into Args, Returns, Raises. It is efficient, though the Raises line is somewhat redundant but still useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is an output schema, return values are not needed in description. However, the missing explanation for 'self' parameter and lack of usage context (e.g., prerequisites) leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It explains 'site_url' as 'The URL of the site', but fails to describe the required 'self' parameter, which remains unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'crawl settings' for a specific site. It distinguishes from the sibling tool 'save_crawl_settings' which is the write counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading crawl settings via 'Retrieve', but does not explicitly state when to use this tool over alternatives, nor provides exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crawl_statsC

Retrieve crawl statistics for a specific site within a date range.

Args: site_url: The URL of the site

Returns: List[CrawlStats]: List of daily crawl statistics

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description does not disclose behavioral traits such as read-only nature, authentication needs, or rate limits. The only hint is the verb 'retrieve' implying read operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short description but includes unnecessary docstring format (Args, Returns, Raises). Omission of 'self' parameter reduces completeness, but overall length is acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, but description fails to explain the missing 'self' parameter, the implied date range, or how site_url should be formatted. Lacks sufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. Description only explains 'site_url' (URL of the site) but omits the required 'self' parameter entirely. Also mentions a date range not present in schema, causing confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States 'Retrieve crawl statistics for a specific site' which identifies verb and resource, but mentions 'within a date range' despite no date parameters, causing ambiguity. Sibling tools like get_crawl_issues exist but no clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over siblings like get_crawl_issues or get_crawl_settings. Does not specify prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_feed_detailsB

Get detailed information about a specific feed.

Args: site_url: The URL of the site feed_url: The URL of the feed

Returns: List[Feed]: Detailed feed information

Raises: BingWebmasterError: If feed details cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
feed_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states that the tool retrieves feed details and may raise a BingWebmasterError, but fails to mention any authorization needs, data mutation absence, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with a clear one-line purpose followed by Args, Returns, and Raises sections. Every sentence is necessary and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (List[Feed]) and the description mentions the return type, which is adequate. However, the unexplained 'self' parameter and lack of prerequisites (e.g., site must be added) leave gaps for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for 'site_url' and 'feed_url' (both explained in the docstring), but omits 'self', one of three required parameters. With 0% schema description coverage, the description partially compensates but leaves a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get detailed information about a specific feed,' using a specific verb and resource. It distinguishes from sibling tools like 'get_feeds' (which likely lists feeds) and other get_* tools focused on URLs or sites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_feeds' or 'get_url_info'. The description lacks any when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_feedsC

Get all sitemap feeds for a site.

Args: site_url: The URL of the site

Returns: List[Feed]: List of feed information

Raises: BingWebmasterError: If feeds cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only mentions returning a list and raising an error, omitting side effects, rate limits, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with Args, Returns, Raises sections, but is excessively terse, lacking necessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With many sibling tools and moderate complexity, the description fails to provide enough context about what the feed list contains or when to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%. Description explains 'site_url' but completely ignores the 'self' parameter, leaving it undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get all' and the resource 'sitemap feeds for a site', distinguishing it from siblings like 'get_feed_details' and 'submit_feed'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives among many sibling tools, such as 'get_feed_details' or 'submit_feed', which could be confused.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fetched_url_detailsC

Get detailed information about a specific fetched URL.

Args: site_url: The URL of the site url: The specific URL to get details for

Returns: FetchedUrlDetails: Detailed information about the fetch status

Raises: BingWebmasterError: If URL details cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
__typeYes
DateYes
DocumentYes
HeadersYes
StatusYes
UrlYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, permissions, or rate limits. The only behavioral info is the error type (BingWebmasterError) mentioned in the Raises section.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear purpose line followed by structured Args/Returns/Raises sections. It is front-loaded and efficient, though the docstring format adds some unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 required params, no param descriptions in schema, and an output schema exists, the description is moderately complete. It covers the operation and error, but misses the 'self' parameter, leaving a gap in parameter understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It describes site_url and url but omits the required 'self' parameter entirely. The provided descriptions are minimal ('The URL of the site', 'The specific URL to get details for'), adding little beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get detailed information about a specific fetched URL', providing a specific verb and resource. It differentiates from siblings like get_fetched_urls (list) and get_url_info (general info), though the distinction from get_url_info is not explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description implies usage for fetching URL details but does not state when not to use or suggest alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fetched_urlsC

Get a list of URLs that have been submitted for fetching.

Args: site_url: The URL of the site

Returns: List[FetchedUrl]: List of fetched URLs and their status

Raises: BingWebmasterError: If fetched URLs cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the full burden. It only states the return type and error, but does not disclose read-only nature, authentication needs, or rate limits, leaving behavioral traits unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but includes unnecessary docstring sections (Args, Returns, Raises) that are atypical for MCP. It could be more streamlined and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an implied output schema, the description does not explain return format or status fields, nor does it differentiate among many siblings. It lacks sufficient context for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It only explains 'site_url' as 'The URL of the site', omitting 'self' entirely. This partial coverage leaves ambiguity for one parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of URLs that have been submitted for fetching. It specifies the action (get) and resource (fetched URLs), effectively distinguishing it from siblings like get_fetched_url_details and fetch_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are prerequisites or exclusions mentioned. The description lacks context for an agent to decide between this and similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_keywordC

Get keyword impressions for a selected period.

Args: query: The 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: Optional[Keyword]: Keyword impression data, or None if no data available

Raises: BingWebmasterError: If keyword data cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
queryYes
countryYes
languageYes
start_dateYes
end_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry full burden. It states return type (Optional[Keyword]) and raises BingWebmasterError, but does not disclose behavioral traits like idempotency, permission requirements, or what 'keyword impression data' entails. The mutation vs. read nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise but uses a Python docstring format (Args, Returns, Raises) which may not be optimal for an AI agent. The 'self' parameter appears in the schema but is missing from the description's parameter list, causing inconsistency. Some sentences are unnecessary (e.g., 'Optional[Keyword]' could be in schema).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 required parameters and no schema descriptions, the description should provide more context. It does not explain the structure of the return type (Keyword), possible values for country/language, or date format. Among many sibling tools, this description does not help an agent differentiate or use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. The description lists parameter names in Args but provides no explanation beyond the names themselves (e.g., 'query: The keyword query' is just restating the name). The 'self' parameter is omitted from the Args list entirely, leaving it completely undocumented. No formats or constraints are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get keyword impressions for a selected period' which indicates the action and resource. It distinguishes from siblings like 'get_keyword_stats' by focusing on impressions. However, the inclusion of a mysterious 'self' parameter in the schema (not explained in description) slightly muddles the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_keyword_stats' or 'get_related_keywords'. The description does not mention prerequisites, data source, or context. The 'self' parameter is not explained, which could confuse an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_keyword_statsC

Retrieve keyword statistics for a specific query.

Args: query: The keyword query country: The country code (i.e. gb) language: The language and country code (i.e. en-GB)

Returns: List[KeywordStats]: List of keyword statistics

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
queryYes
countryYes
languageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavior. It only states it retrieves statistics and may raise BingWebmasterError, but fails to disclose any side effects, permission requirements, read-only nature, or result characteristics (e.g., pagination, limits).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise and structured with Args/Returns/Raises sections. However, it wastes space repeating parameter names already in the schema without adding much value for most, and the missing 'self' parameter undermines structural completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The Returns line and output schema hint at the return type, but the description lacks any broader context: no usage scenarios, error details beyond a generic exception, or explanation of what 'keyword statistics' contain. The omission of 'self' makes it incomplete for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains three parameters (query, country, language) with examples, but omits the 'self' parameter entirely. Given 0% schema coverage, the description should compensate, but it leaves a required parameter undocumented, severely hindering correct tool invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and the resource ('keyword statistics for a specific query'). However, it does not differentiate from siblings like get_keyword or get_query_stats, leaving ambiguity about what exactly 'keyword statistics' encompasses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it, which is critical given many similar sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_page_query_statsC

Get detailed traffic statistics for a specific page.

Args: site_url: The URL of the site page: The specific page URL to get statistics for

Returns: List[QueryStats]: List of query statistics for the specified page

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
pageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It mentions returns a list and can raise an error, but lacks details on rate limits, authentication, or any behavioral quirks beyond the basic docstring.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description follows a clear docstring format with Args, Returns, Raises. However, it is slightly verbose and could be more compact without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With many sibling tools and no output schema details, the description lacks context for an agent to understand how this tool fits in the broader set. It does not explain what 'detailed traffic statistics' means or how it differs from similar tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description only repeats parameter names with minimal context (e.g., 'The URL of the site'). It does not add meaningful semantics beyond the schema, and the 'self' parameter is unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets detailed traffic statistics for a specific page. However, it does not differentiate from sibling tools like get_page_stats or get_query_page_stats, which may have similar purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There are many sibling tools for statistics, but no context about when to prefer this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_page_statsC

Get detailed traffic statistics for top pages.

Args: site_url: The URL of the site

Returns: List[QueryStats]: List of query statistics for top pages

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description should disclose behavioral traits. It mentions the return type and raises BingWebmasterError, but does not specify side effects, permissions, or limits. The tool likely performs a read operation, but this is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and follows a clear docstring format. It is not verbose, but it sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fails to fully document the input schema (missing 'self' parameter) and does not elaborate on the output structure despite having an output schema. For a tool with 2 required parameters and no sibling differentiation, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters. The description documents 'site_url' but completely omits the 'self' parameter, which is also required. This is a significant gap for parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'detailed traffic statistics for top pages' with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like get_page_query_stats or get_query_page_stats, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Sibling tools include many similar get_* functions, but the description lacks any selection criteria or context for choosing this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_query_page_detail_statsB

Get detailed statistics for a specific query and page combination.

Args: site_url: The URL of the site query: The search query page: The specific page URL

Returns: List[DetailedQueryStats]: List of detailed statistics

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
queryYes
pageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether the operation is read-only, destructive, requires authentication, or has rate limits. It only mentions that it returns statistics and raises BingWebmasterError, which is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args, Returns, and Raises sections. It is relatively concise, though the purpose sentence could be more explicit. The docstring format adds clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has four parameters, no annotations, and an output schema exists but is not shown, the description is incomplete. It lacks behavioral details (e.g., idempotency, permissions), error conditions beyond a generic exception, and any explanation of the 'self' parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It describes three of four parameters (site_url, query, page) in the Args section, but does not describe 'self,' which is a required parameter. The descriptions are minimal and add little beyond the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'detailed statistics for a specific query and page combination.' It distinguishes the tool from siblings like 'get_query_page_stats' by implying more detail, but does not explicitly differentiate, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving detailed statistics for a specific query and page but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_query_page_statsB

Get detailed traffic statistics for pages matching a specific query.

Args: site_url: The URL of the site query: The search query to get statistics for

Returns: List[QueryStats]: List of page statistics for the query

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions raising BingWebmasterError on failure but does not disclose authorization needs, rate limits, or what happens if the query returns no pages. Behavioral insights are minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with distinct sections for args, returns, and raises. It is efficient and well-structured, though it sacrifices some detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema likely documenting return types, the description adequately addresses returns. However, it lacks usage context and behavioral details, making it incomplete for full agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains two of the three parameters (site_url and query) with brief, clear meanings. However, the 'self' parameter is left unexplained, and the schema has 0% description coverage, so the description partially compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'detailed traffic statistics for pages matching a specific query', with a specific verb and resource. This distinguishes it from siblings like get_page_stats (likely all pages) and get_query_stats (maybe overall stats).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. With a long list of sibling tools, explicit differentiation would be helpful, but none is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_query_parametersA

Get a list of URL normalization parameters for a site.

URL parameters are used to identify which URL parameters should be considered for URL normalization (e.g., sorting, filtering parameters that don't change the content).

Args: site_url: The URL of the site

Returns: List[QueryParameter]: List of query parameters configuration

Raises: BingWebmasterError: If parameters cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the return type (List[QueryParameter]) and a possible exception (BingWebMasterError). However, it does not disclose any side effects, authentication needs, or rate limits. For a simple read operation this is acceptable, but more detail would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear front-loaded purpose and an Args section. It is not verbose and every sentence adds value, though it could be slightly more structured with a Returns section (though output schema exists).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (2 parameters, returns a list) and the presence of an output schema, the description is mostly complete. However, the omission of the 'self' parameter and lack of guidance on when to use this tool versus related siblings leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only explains the 'site_url' parameter as 'The URL of the site'. The 'self' parameter is not mentioned at all. With 0% schema description coverage, the description should compensate by explaining both parameters, but it fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a list of URL normalization parameters for a site.' It uses a specific verb ('get') and resource ('URL normalization parameters'), and distinguishes itself from sibling tools like add_query_parameter and remove_query_parameter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (retrieve existing URL parameters for normalization), but does not explicitly state when not to use it or mention alternative tools. The sibling tool names imply alternatives, but the description could be more direct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_query_statsC

Get detailed traffic statistics for top queries.

Args: site_url: The URL of the site

Returns: List[QueryStats]: List of statistics for top queries

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behaviors. It states returns and raises but omits details like what defines 'top queries', authentication needs, rate limits, or read-only status. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and structured with Args/Returns/Raises sections. Efficient but could be more clearly formatted for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has output schema and explains returns, but missing explanation of 'self' parameter and lacks usage context. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description only mentions site_url, ignoring the required 'self' parameter. Fails to explain semantics or usage of parameters beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Describes 'Get detailed traffic statistics for top queries' with a clear verb+resource. While it hints at aggregation for top queries, it does not explicitly differentiate from siblings like get_keyword_stats or get_query_traffic_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives (e.g., get_keyword_stats, get_page_query_stats). The description only lists parameters and returns, lacking context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_query_traffic_statsC

Get detailed traffic statistics for a specific query.

Args: site_url: The URL of the site query: The search query to get statistics for

Returns: List[RankAndTrafficStats]: List of traffic statistics for the query

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior, but it only mentions return type and possible exception. It does not cover side effects, permissions, rate limits, or the significance of the 'self' parameter, which is required but not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and follows a clear structure (Args, Returns, Raises). It is concise, though the omission of the 'self' parameter detracts slightly from completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of siblings and lack of annotations, the description is incomplete. It does not help distinguish from other query statistic tools, and fails to explain a required parameter. The presence of an output schema is noted but does not compensate for missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It describes 'site_url' and 'query' briefly but omits the required 'self' parameter entirely. No additional details on format, constraints, or usage are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'detailed traffic statistics for a specific query', providing a specific verb and resource. However, it does not differentiate from closely related siblings like 'get_rank_and_traffic_stats', which also deals with traffic statistics for queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'get_rank_and_traffic_stats' or 'get_query_stats'. There is no mention of prerequisites, context, or scenarios where this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rank_and_traffic_statsC

Get ranking and traffic statistics for a site.

Args: site_url: The URL of the site

Returns: List[RankAndTrafficStats]: List of ranking and traffic statistics

Raises: BingWebmasterError: If statistics cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description must disclose behavioral traits, but it only mentions basic functionality and error handling. No information is given about side effects, permissions, rate limits, or data freshness. The unexplained 'self' parameter also lacks context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and structured with Args/Returns/Raises sections. It is efficient but somewhat under-specified for a tool with two parameters and no annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the presence of an output schema (implied), the description lacks crucial context such as the format of the URL, interpretation of results, or any usage notes. For a tool with no annotations and 0% schema description coverage, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should clarify parameters beyond schema titles. It only repeats that 'site_url' is the site URL, adding no new meaning, and provides no explanation for the 'self' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get ranking and traffic statistics for a site,' specifying the verb and resource. However, it does not differentiate this tool from numerous sibling 'get_*' tools like get_page_stats or get_query_stats, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it state any prerequisites or exclusions. The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_site_movesB

Get site move information for a specific site.

Args: site_url: The URL of the site

Returns: List[SiteMoveSettings]: List of site move settings

Raises: BingWebmasterError: If the site move information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions that the tool returns a list of SiteMoveSettings and can raise BingWebmasterError, adding some behavioral context. However, without annotations, it lacks details on permissions, rate limits, or side effects. The read-only nature is implied but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly concise, using a structured docstring format with Args, Returns, Raises sections. The first sentence captures the purpose, but the structure is somewhat verbose for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 2 parameters and an output schema exists, so the description need not detail return values. However, the missing explanation for the 'self' parameter and lack of usage context leave gaps. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only explains 'site_url' as 'The URL of the site' – minimal value beyond the parameter name. The 'self' parameter is not described at all, leaving the user guessing its purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('site move information'), and the scope ('for a specific site'). This distinguishes it from sibling tools like 'submit_site_move' which handle submission.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that this should be used after submitting a site move, or that it's complementary to 'submit_site_move'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_site_rolesC

Get all roles assigned for a specific site.

Args: site_url: The URL of the site include_all_subdomains: Whether to include roles for all subdomains

Returns: List[SiteRole]: List of role assignments for the site

Raises: BingWebmasterError: If the roles cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
include_all_subdomainsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must reveal behavioral aspects. It mentions a 'Raises' clause for errors but does not disclose side effects, permissions, or performance implications. It implies a read operation but lacks explicit safe-read indication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise at 9 lines but uses a verbose Python docstring style. It could be more compact without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although it mentions return type (List[SiteRole]) and error, it does not explain what SiteRole objects contain or provide usage context. Given the existence of an output schema (unknown content), the description may be adequate, but without seeing it, there is a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains site_url and include_all_subdomains, but the 'self' parameter (required) is not mentioned. Schema description coverage is 0%, so the description should compensate but fails to cover all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get all roles assigned for a specific site' with specific verb and resource. It distinguishes itself from siblings like add_site_roles and remove_site_role as a read-only operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as get_sites or other role-related tools. The description does not provide any context for selection or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitesC

Retrieve all sites in the user's Bing Webmaster Tools account.

Returns: List[Site]: List of sites associated with the account

Raises: BingWebmasterError: If the API request fails

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full responsibility for behavioral disclosure. It only states that the tool retrieves sites and raises an error on API failure. It does not disclose authentication needs, rate limits, data freshness, or any side effects. For a read operation, this is minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences plus Returns and Raises sections). The structure is clear and front-loaded with the main purpose. However, the Returns and Raises sections are somewhat redundant given the output schema, but they do not detract from conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, output schema exists), the description is incomplete. It fails to explain the 'self' parameter or provide any usage context. For a tool with 0% schema description coverage, the description should compensate but does not. Additionally, no mention of pagination or limits, though the output schema may partially cover return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'self' with 0% description coverage, and the description does not explain its meaning or format. The tool description adds no value beyond the schema. An agent cannot infer how to correctly populate the required 'self' parameter, making invocation error-prone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Retrieve all sites in the user's Bing Webmaster Tools account.' The verb 'Retrieve' and resource 'sites' are specific, and the scope is clarified. However, it does not explicitly distinguish this tool from other get_* sibling tools like get_url_info or get_site_roles, which might cause confusion for an agent deciding between them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclusions. An agent would need to infer usage from the tool name alone, which is insufficient for optimal selection among many similar siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_url_infoC

Retrieve detailed information for a specific URL.

Args: site_url: The URL of the site url: The specific URL to get information for

Returns: UrlInfo: Detailed information about the URL

Raises: BingWebmasterError: If URL information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
__typeYes
AnchorCountYes
DiscoveryDateYes
DocumentSizeYes
HttpStatusYes
IsPageYes
LastCrawledDateYes
TotalChildUrlCountYes
UrlYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behaviors. It states it retrieves info and raises an error, but does not confirm read-only nature, required permissions, rate limits, or side effects. For a retrieval tool, this is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with clear sections for Args, Returns, and Raises. It avoids unnecessary detail and is well-structured, though the 'self' parameter omission reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return details are not required. However, the description lacks usage context, prerequisites, and fails to document all parameters. For a simple retrieval tool with three parameters, the description is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It briefly explains site_url and url, but the 'self' parameter is entirely undocumented. This leaves one of three required parameters undefined, which is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed information for a specific URL and names the two key parameters (site_url, url). However, it does not differentiate from sibling tools like get_url_traffic_info or get_url_links, leaving some ambiguity about what 'detailed information' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool instead of alternatives such as get_url_traffic_info, get_url_links, or other URL-focused tools. The description lacks context about prerequisites or scenarios best suited for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_url_submission_quotaB

Get information about URL submission quota and usage.

Args: site_url: The URL of the site

Returns: UrlSubmissionQuota: Current quota information

Raises: BingWebmasterError: If quota information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
__typeYes
DailyQuotaYes
MonthlyQuotaYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only states the operation is a 'get' (implied read-only) but does not mention authentication requirements, rate limits, or any side effects. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. The docstring format is structured but the omission of 'self' reduces efficiency. Still, no fluff present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and presence of an output schema, the description covers the return type and error handling. However, the unexplained 'self' parameter and lack of differentiation from siblings make it only adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters. It explains 'site_url' as 'The URL of the site' but completely omits 'self', which is required. This leaves a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get information about URL submission quota and usage', a specific verb and resource. The docstring details arguments and return type, distinguishing it from siblings like get_content_submission_quota.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., get_content_submission_quota, submit_url). The description only states the tool's function without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_url_traffic_infoB

Get traffic details for a single page.

Args: site_url: The URL of the site url: The specific URL to get traffic info for

Returns: UrlTrafficInfo: Traffic information for the URL

Raises: BingWebmasterError: If traffic information cannot be retrieved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
__typeYes
ClicksYes
ImpressionsYes
IsPageYes
UrlYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that a BingWebmasterError is raised if traffic information cannot be retrieved. However, it lacks details on whether the operation is read-only, required permissions, or any side effects. Annotations are absent, so the description carries the full burden but is incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and uses a clear Args/Returns/Raises structure. One sentence could be removed (the Returns line is redundant given the output schema), but overall it is well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers basic functionality and error handling, but the missing 'self' parameter is a gap. With an output schema present, the return type explanation is acceptable. However, for a tool with three required parameters and no annotations, more context on parameter usage and behavior would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains site_url and url parameters but omits the required 'self' parameter entirely. Schema description coverage is 0%, so the description should compensate, but it fails to cover all parameters and provides no additional semantics like format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves traffic details for a single page. The verb 'Get' and resource 'traffic_info' are specific. However, it does not differentiate from sibling tools like get_children_url_traffic_info or get_url_info, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparisons to sibling tools such as get_url_info or get_children_url_traffic_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_blocked_urlB

Remove a blocked URL from a site.

Args: site_url: The URL of the site blocked_url: The URL to be unblocked entity_type: The type of entity to unblock (Page or Directory) request_type: The type of request (CacheOnly or FullRemoval) date: The date the URL was blocked

Raises: BingWebmasterError: If URL cannot be unblocked

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
blocked_urlYes
entity_typeNo
request_typeNo
dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden of behavioral disclosure, but it only lists parameters and a raised exception, omitting side effects, reversibility, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and structured with an 'Args:' list, but it could be more compact and still include missing details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, six parameters, and an output schema, the description lacks behavioral context, prerequisites, and the 'self' parameter explanation, making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description adds human-readable names for enum fields (e.g., 'Page or Directory') but misses the 'self' parameter and does not map enum integer values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove a blocked URL from a site'), specifying the verb and resource, and distinguishes from sibling tools like 'add_blocked_url'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are prerequisites or conditions for use mentioned (e.g., the URL must already be blocked).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_country_region_settingsC

Remove country/region settings from a specific site.

Args: site_url: The URL of the site settings: The country/region settings to remove

Raises: BingWebmasterError: If settings cannot be removed

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
settingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions that an error is raised if settings cannot be removed, which is a behavioral trait. However, with no annotations provided, the description fails to disclose important details such as whether the operation is idempotent, what happens if settings do not exist, or any side effects on site configuration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with an Args section and a Raises section, which is concise. However, it is incomplete due to missing the 'self' parameter, and the content is very brief. It could be more informative without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 required parameters, nested object schema, output schema available) and the absence of annotations, the description is insufficient. It does not explain the output, nor does it provide usage context relative to sibling tools. The missing parameter and minimal semantics further reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists only two parameters (site_url and settings) but omits the 'self' parameter, which is required according to the input schema. The provided descriptions are minimal ('The URL of the site' and 'The country/region settings to remove') and do not clarify the structure or purpose of the complex 'settings' object. Schema description coverage is 0%, so the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Remove country/region settings from a specific site,' which is a specific verb-resource combination. It distinguishes from sibling tools like add_country_region_settings and get_country_region_settings by indicating removal rather than addition or retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as requiring the settings to exist, or when not to use it. The brief description lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_feedB

Remove a previously submitted sitemap feed.

Args: site_url: The URL of the site feed_url: The URL of the feed to remove

Raises: BingWebmasterError: If feed cannot be removed

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
feed_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should carry the full burden of behavioral disclosure. It only states it removes a feed and raises an error if removal fails, but lacks details on idempotency, permission requirements, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with separate Args and Raises sections, making it easy to parse. However, it could be more structured (e.g., using bullet points) and the self parameter could be included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple removal tool with no annotations and an output schema, the description is adequate but misses the self parameter and lacks behavioral details like idempotency or authentication requirements. It could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for two of three parameters (site_url and feed_url) with one-line explanations, but the required 'self' parameter is left undocumented. Since schema description coverage is 0%, the description partially compensates but is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Remove a previously submitted sitemap feed', which is a specific verb ('remove') and resource ('sitemap feed'). This distinguishes it from siblings like submit_feed and get_feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use or when not to use this tool versus alternatives. It does not mention prerequisites or scenarios where removal might fail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_page_preview_blockB

Remove a page preview block.

Args: site_url: The URL of the site url: The URL to remove the page preview block from

Raises: BingWebmasterError: If preview block cannot be removed

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states the action and raises an error if removal fails, but omits other behaviors like authentication needs, side effects, or what happens if the block is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence for the action plus a minimal args section. Every word serves a purpose with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks important context: output schema is present but not described, prerequisites are missing, and the 'self' parameter is unexplained. For a removal tool with a sibling that adds, more completeness is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description adds meaning for 'site_url' and 'url', clarifying their roles. However, the required parameter 'self' is not mentioned, leaving a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear action 'Remove a page preview block,' specifying exactly what the tool does. It clearly distinguishes from siblings like 'add_page_preview_block' and 'get_active_page_preview_blocks'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention prerequisites, idempotency, or scenarios like when the block does not exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_query_parameterB

Remove a URL normalization parameter from a site.

Args: site_url: The URL of the site query_parameter: The query parameter to remove

Raises: BingWebmasterError: If parameter cannot be removed

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
query_parameterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates the tool is destructive (removing a parameter) and can raise an error, but it does not disclose side effects, authentication needs, or any safety information. With no annotations, the burden was higher but unfulfilled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the primary action. However, the Args section could be better integrated into a narrative, and the Raises clause is minimal. The structure is acceptable but not optimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic action and two parameters, but misses 'self' and provides no output or behavioral context. Although an output schema exists, the description still feels incomplete for a 3-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only repeats parameter names for 'site_url' and 'query_parameter' without adding meaning beyond the schema. The 'self' parameter is entirely omitted, leaving it unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and resource ('URL normalization parameter') and context ('from a site'), effectively distinguishing this tool from siblings like 'add_query_parameter' and 'enable_disable_query_parameter'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or complementary tools. It lacks any explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_siteC

Remove a site from Bing Webmaster Tools.

Args: site_url: The URL of the site to remove

Raises: BingWebmasterError: If the site cannot be removed

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, but description only says 'Remove' and raises error. No side effects, prerequisites, or reversibility mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short with Args and Raises sections. Could be more informative, but not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Parameter explanation is incomplete, behavioral details minimal. Although output schema exists, description does not mention return value or compensate for missing param info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 0%. Description lists site_url but does not explain 'self' parameter, which is required. Not all parameters are documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Remove a site) and resource (site from Bing Webmaster Tools). It distinguishes from siblings like add_site and remove_site_role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., delete vs disable). Only basic exception mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_site_roleC

Remove a user's site access.

Args: site_url: The URL of the site site_role: The site role to remove

Raises: BingWebmasterError: If the role cannot be removed

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
site_roleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It only states the action and an error condition, lacking details on destructiveness, side effects, permissions, or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and to the point, with a single line and list of args. It is efficient, though it sacrifices informational depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 3 required parameters and no annotations, the description is incomplete: it does not explain the 'self' parameter, lacks return value details despite an output schema, and omits prerequisites or context about role removal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must clarify parameter meaning. It merely restates parameter names with trivial descriptions (e.g., 'The URL of the site'), adding no value over the schema; the complex site_role type is not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Remove a user's site access,' which is a clear verb+resource. It distinguishes from sibling tools like add_site_roles and get_site_roles, though it could be more precise by mentioning 'role' removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as add_site_roles or other role-related tools, and no conditions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_crawl_settingsC

Save new crawl settings for a specific site.

Args: site_url: The URL of the site crawl_settings: The new crawl settings to apply

Raises: BingWebmasterError: If settings cannot be saved

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
crawl_settingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must compensate. It mentions saving settings but lacks details on overwriting behavior, required permissions, or error conditions beyond a generic exception.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but includes an Args list that is not structured as clear schema documentation. It is concise but sacrifices completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters, no descriptions, no behavioral details, and annotations missing, the description fails to provide sufficient context for an AI agent to use the tool correctly, especially for a write operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description only lists site_url and crawl_settings without explaining their meaning or format. The 'self' parameter is omitted entirely, and the CrawlSettings type fields are not described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'save' and resource 'crawl settings' for a specific site, distinguishing it from sibling tools like get_crawl_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool, alternatives, or prerequisites (e.g., verifying the site first). Only a brief description of the action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_contentB

Submit content for a specific URL.

Args: site_url: Site url E.g.: http://example.com url: Url to submit E.g.: http://example.com/url1.html http_message: HTTP message (base64 encoded) structured_data: Structured Data (base64 encoded) dynamic_serving: Device targeting (0-5). {none = 0, PC-laptop = 1, mobile = 2, AMP = 3, tablet = 4, non-visual browser = 5}

Raises: BingWebmasterError: If content cannot be submitted

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes
http_messageYes
structured_dataYes
dynamic_servingYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits. It mentions an error case (BingWebmasterError) but does not describe side effects, whether the operation is destructive, rate limits, or what happens to existing content. The parameter descriptions are mechanical and lack behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with a clear first sentence and an Args list. It is efficient with no redundant text, though the Args section could be integrated with the schema for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 required parameters, no schema descriptions, output schema exists), the description covers parameter formats and error handling but lacks context about submission consequences, quota usage, or how it relates to other submission tools. The output schema exists but is not referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides examples and encoding details for most parameters (e.g., base64 for http_message, device targeting values for dynamic_serving). However, the required 'self' parameter is entirely omitted from the description, creating a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Submit content for a specific URL,' specifying the action and resource. The parameter list (http_message, structured_data, dynamic_serving) distinguishes it from sibling tools like submit_url and submit_url_batch, which likely handle URL-only submissions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention context, exclusions, or prerequisites, leaving the agent to infer usage without explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_feedA

Submit a sitemap feed for indexing.

Args: site_url: The URL of the site feed_url: The URL of the sitemap feed

Raises: BingWebmasterError: If feed cannot be submitted

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
feed_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions raising BingWebmasterError on failure, which adds transparency beyond the schema. However, with no annotations, it lacks disclosure of side effects, permissions, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with an efficient front-loaded purpose statement, followed by clear Args and Raises sections. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and sibling tools, the description covers purpose, parameters, and error behavior adequately but misses usage context and the 'self' parameter. An agent could invoke the tool but might lack full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains site_url and feed_url with brief definitions, adding value beyond the schema's titles and types. However, the required 'self' parameter is not explained, and schema coverage is 0%, so the description only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Submit a sitemap feed for indexing' with a specific verb and resource, distinguishing it from sibling tools like 'get_feeds' and 'remove_feed'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'submit_url' or 'submit_content', nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_site_moveC

Submit a site move request.

Args: site_url: The URL of the site settings: The site move settings containing move configuration

Raises: BingWebmasterError: If the site move submission fails

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
settingsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the tool submits a request and raises an error on failure, but lacks details on mutability, permissions, idempotency, or side effects. The 'self' parameter is not explained, further reducing transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single line for the action and structured arg list. However, it sacrifices necessary detail for brevity, making it merely adequate. It is front-loaded but incomplete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 required params, one with nested object and enums) and lack of annotations, the description is incomplete. It omits output behavior, prerequisites, and detailed parameter explanations, making it insufficient for reliable agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It briefly describes site_url as 'the URL of the site' and settings as 'move configuration', but fails to explain the structure of settings (Date, MoveScope, MoveType, SourceUrl, TargetUrl) or the self parameter. This superficial treatment is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Submit a site move request.' using a specific verb and resource. It effectively distinguishes from sibling tools like get_site_moves, which is a read operation, and other tools unrelated to site moves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as get_site_moves for retrieving existing moves. No conditions, prerequisites, or exclusions are mentioned, leaving the agent without contextual decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_urlB

Submit a single URL for indexing.

It is possible to submit only limited number of url. get_url_submission_quota should be called to determine how much urls can be submitted.

Args: site_url: The URL of the site url: The specific URL to submit

Raises: BingWebmasterError: If URL cannot be submitted

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions potential errors (BingWebmasterError) and quota limitations, but does not indicate if the operation is destructive, what the return value is (despite an output schema existing), or whether it's idempotent. This is insufficient for a submission tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is clear but includes an 'Args' section that is partially redundant with the schema. It could be more concise and front-loaded, with the core action stated first. Overall adequate but not optimized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and an output schema, the description is incomplete. It does not explain the return value or the purpose of the 'self' parameter. The guidance about quota is helpful but insufficient for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, leaving parameters like 'self' undocumented. The description explains site_url and url, but fails to clarify the purpose of 'self', which is required. This partial coverage omits important semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Submit a single URL for indexing,' which is a specific verb+resource. It distinguishes from sibling tools like submit_url_batch (batch submission) and fetch_url (fetching), but could be more explicit about the indexing process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises calling get_url_submission_quota to check limits before submitting, providing clear usage context. However, it does not explicitly state when not to use this tool or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_url_batchA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes
url_listYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but description covers batching, quota constraints, and raises exception. Lacks details on side effects or idempotency, but sufficient for basic understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is clear and structured with args and raises. Could be more concise, but effectively communicates key points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description appropriately covers purpose, limitations, and suggests related tool. Adequate for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Explains site_url and url_list with brief descriptions, but the 'self' parameter is not described. Schema has titles, but overall coverage is minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action 'Submit multiple URLs for indexing' and the resource (URLs). It distinguishes from sibling 'submit_url' by specifying batch capability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions batch size limit of 500 and advises calling get_url_submission_quota to determine available quota. Provides clear context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_siteC

Attempt to verify ownership of a site.

Args: site_url: The URL of the site to verify

Returns: bool: True if verification was successful

Raises: BingWebmasterError: If verification fails

ParametersJSON Schema
NameRequiredDescriptionDefault
selfYes
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It states that the tool attempts verification and returns a boolean or raises an exception, but it does not disclose underlying behavior (e.g., network calls, idempotency, side effects). The 'self' parameter's role and potential authentication needs are not addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and uses a clear docstring format with Args, Returns, Raises. It is front-loaded with the main purpose. However, it could be slightly more streamlined by omitting unnecessary structural elements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks important context for a verification tool: it does not explain what verification entails, when it succeeds or fails, or relate it to other tools (e.g., add_site). With no annotations and limited parameter info, the description is insufficient for an agent to use the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage. The description only explains 'site_url' (the URL to verify) but not 'self', which remains opaque. Given the low coverage, the description partially compensates but is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Attempt to verify ownership of a site.' It uses a specific verb and resource, and it distinguishes itself from siblings like add_site and remove_site. The inclusion of Args, Returns, and Raises further clarifies the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., site must be added first), nor does it advise against use in certain scenarios. The required 'self' parameter is left unexplained, which could confuse an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 62 tool updatesv1.0.0
    • Changedadd_blocked_url3 fields changed
      • addedInput schema / $defs / BlockedUrlRequestType
        Added value: +{
        +  "enum": [
        +    0,
        +    1
        +  ],
        +  "title": "BlockedUrlRequestType",
        +  "type": "integer"
        +}
      • addedInput schema / properties / request_type
        Added value: +{
        +  "$ref": "#/$defs/BlockedUrlRequestType",
        +  "default": 0
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_blocked_urlOutput",
        +  "type": "object"
        +}
    • Changedadd_connected_page1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_connected_pageOutput",
        +  "type": "object"
        +}
    • Changedadd_country_region_settings1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_country_region_settingsOutput",
        +  "type": "object"
        +}
    • Changedadd_deep_link_block1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_deep_link_blockOutput",
        +  "type": "object"
        +}
    • Changedadd_page_preview_block1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_page_preview_blockOutput",
        +  "type": "object"
        +}
    • Changedadd_query_parameter1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_query_parameterOutput",
        +  "type": "object"
        +}
    • Changedadd_site1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_siteOutput",
        +  "type": "object"
        +}
    • Changedadd_site_roles1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "add_site_rolesOutput",
        +  "type": "object"
        +}
    • Changedenable_disable_query_parameter1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "enable_disable_query_parameterOutput",
        +  "type": "object"
        +}
    • Changedfetch_url1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "fetch_urlOutput",
        +  "type": "object"
        +}
    • Changedget_active_page_preview_blocks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "BlockReason": {
        +      "enum": [
        +        1,
        +        2,
        +        3,
        +        4
        +      ],
        +      "title": "BlockReason",
        +      "type": "integer"
        +    },
        +    "PagePreview": {
        +      "properties": {
        +        "BlockDate": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Blockdate"
        +        },
        +        "BlockReason": {
        +          "$ref": "#/$defs/BlockReason"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Url",
        +        "BlockReason"
        +      ],
        +      "title": "PagePreview",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/PagePreview"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_active_page_preview_blocksOutput",
        +  "type": "object"
        +}
    • Changedget_blocked_urls1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "BlockedUrl": {
        +      "properties": {
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "EntityType": {
        +          "$ref": "#/$defs/BlockedUrlEntityType"
        +        },
        +        "RequestType": {
        +          "$ref": "#/$defs/BlockedUrlRequestType"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "default": "BlockedUrl:#Microsoft.Bing.Webmaster.Api",
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "Date",
        +        "EntityType",
        +        "RequestType",
        +        "Url"
        +      ],
        +      "title": "BlockedUrl",
        +      "type": "object"
        +    },
        +    "BlockedUrlEntityType": {
        +      "enum": [
        +        0,
        +        1
        +      ],
        +      "title": "BlockedUrlEntityType",
        +      "type": "integer"
        +    },
        +    "BlockedUrlRequestType": {
        +      "enum": [
        +        0,
        +        1
        +      ],
        +      "title": "BlockedUrlRequestType",
        +      "type": "integer"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/BlockedUrl"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_blocked_urlsOutput",
        +  "type": "object"
        +}
    • Changedget_children_url_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "UrlInfo": {
        +      "properties": {
        +        "AnchorCount": {
        +          "title": "Anchorcount",
        +          "type": "integer"
        +        },
        +        "DiscoveryDate": {
        +          "format": "date-time",
        +          "title": "Discoverydate",
        +          "type": "string"
        +        },
        +        "DocumentSize": {
        +          "title": "Documentsize",
        +          "type": "integer"
        +        },
        +        "HttpStatus": {
        +          "title": "Httpstatus",
        +          "type": "integer"
        +        },
        +        "IsPage": {
        +          "title": "Ispage",
        +          "type": "boolean"
        +        },
        +        "LastCrawledDate": {
        +          "format": "date-time",
        +          "title": "Lastcrawleddate",
        +          "type": "string"
        +        },
        +        "TotalChildUrlCount": {
        +          "title": "Totalchildurlcount",
        +          "type": "integer"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AnchorCount",
        +        "DiscoveryDate",
        +        "DocumentSize",
        +        "HttpStatus",
        +        "IsPage",
        +        "LastCrawledDate",
        +        "TotalChildUrlCount",
        +        "Url"
        +      ],
        +      "title": "UrlInfo",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/UrlInfo"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_children_url_infoOutput",
        +  "type": "object"
        +}
    • Changedget_children_url_traffic_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "UrlTrafficInfo": {
        +      "properties": {
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "IsPage": {
        +          "title": "Ispage",
        +          "type": "boolean"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Clicks",
        +        "Impressions",
        +        "IsPage",
        +        "Url"
        +      ],
        +      "title": "UrlTrafficInfo",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/UrlTrafficInfo"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_children_url_traffic_infoOutput",
        +  "type": "object"
        +}
    • Changedget_connected_pages1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "ConnectedSite": {
        +      "properties": {
        +        "SubmissionDate": {
        +          "format": "date-time",
        +          "title": "Submissiondate",
        +          "type": "string"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "VerificationStatus": {
        +          "title": "Verificationstatus",
        +          "type": "string"
        +        },
        +        "VerificationStatusDetails": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Verificationstatusdetails"
        +        },
        +        "VerifiedDate": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "title": "Verifieddate"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Url",
        +        "VerificationStatus",
        +        "VerificationStatusDetails",
        +        "VerifiedDate",
        +        "SubmissionDate"
        +      ],
        +      "title": "ConnectedSite",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/ConnectedSite"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_connected_pagesOutput",
        +  "type": "object"
        +}
    • Changedget_content_submission_quota1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "DailyQuota": {
        +      "title": "Dailyquota",
        +      "type": "integer"
        +    },
        +    "MonthlyQuota": {
        +      "title": "Monthlyquota",
        +      "type": "integer"
        +    },
        +    "__type": {
        +      "title": "Type",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "__type",
        +    "DailyQuota",
        +    "MonthlyQuota"
        +  ],
        +  "title": "ContentSubmissionQuota",
        +  "type": "object"
        +}
    • Changedget_country_region_settings1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "CountryRegionSettings": {
        +      "properties": {
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "TwoLetterIsoCountryCode": {
        +          "maxLength": 2,
        +          "minLength": 2,
        +          "title": "Twoletterisocountrycode",
        +          "type": "string"
        +        },
        +        "Type": {
        +          "$ref": "#/$defs/CountryRegionSettingsType"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "default": "CountryRegionSettings:#Microsoft.Bing.Webmaster.Api",
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "Date",
        +        "TwoLetterIsoCountryCode",
        +        "Type",
        +        "Url"
        +      ],
        +      "title": "CountryRegionSettings",
        +      "type": "object"
        +    },
        +    "CountryRegionSettingsType": {
        +      "enum": [
        +        0,
        +        1,
        +        2,
        +        3
        +      ],
        +      "title": "CountryRegionSettingsType",
        +      "type": "integer"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/CountryRegionSettings"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_country_region_settingsOutput",
        +  "type": "object"
        +}
    • Changedget_crawl_issues1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "CrawlIssues": {
        +      "enum": [
        +        16,
        +        1,
        +        2,
        +        4,
        +        8,
        +        32,
        +        128,
        +        64,
        +        0,
        +        256
        +      ],
        +      "title": "CrawlIssues",
        +      "type": "integer"
        +    },
        +    "UrlWithCrawlIssues": {
        +      "properties": {
        +        "HttpCode": {
        +          "title": "Httpcode",
        +          "type": "integer"
        +        },
        +        "InLinks": {
        +          "title": "Inlinks",
        +          "type": "integer"
        +        },
        +        "Issues": {
        +          "$ref": "#/$defs/CrawlIssues"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "HttpCode",
        +        "Issues",
        +        "Url",
        +        "InLinks"
        +      ],
        +      "title": "UrlWithCrawlIssues",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/UrlWithCrawlIssues"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_crawl_issuesOutput",
        +  "type": "object"
        +}
    • Changedget_crawl_settings1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "CrawlBoostAvailable": {
        +      "title": "Crawlboostavailable",
        +      "type": "boolean"
        +    },
        +    "CrawlBoostEnabled": {
        +      "title": "Crawlboostenabled",
        +      "type": "boolean"
        +    },
        +    "CrawlRate": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "maxItems": 24,
        +      "minItems": 24,
        +      "title": "Crawlrate",
        +      "type": "array"
        +    },
        +    "__type": {
        +      "default": "CrawlSettings:#Microsoft.Bing.Webmaster.Api",
        +      "title": "Type",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "CrawlBoostAvailable",
        +    "CrawlBoostEnabled",
        +    "CrawlRate"
        +  ],
        +  "title": "CrawlSettings",
        +  "type": "object"
        +}
    • Changedget_crawl_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "CrawlStats": {
        +      "properties": {
        +        "AllOtherCodes": {
        +          "title": "Allothercodes",
        +          "type": "integer"
        +        },
        +        "BlockedByRobotsTxt": {
        +          "title": "Blockedbyrobotstxt",
        +          "type": "integer"
        +        },
        +        "Code2xx": {
        +          "title": "Code2Xx",
        +          "type": "integer"
        +        },
        +        "Code301": {
        +          "title": "Code301",
        +          "type": "integer"
        +        },
        +        "Code302": {
        +          "title": "Code302",
        +          "type": "integer"
        +        },
        +        "Code4xx": {
        +          "title": "Code4Xx",
        +          "type": "integer"
        +        },
        +        "Code5xx": {
        +          "title": "Code5Xx",
        +          "type": "integer"
        +        },
        +        "ContainsMalware": {
        +          "title": "Containsmalware",
        +          "type": "integer"
        +        },
        +        "CrawlErrors": {
        +          "title": "Crawlerrors",
        +          "type": "integer"
        +        },
        +        "CrawledPages": {
        +          "title": "Crawledpages",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "InIndex": {
        +          "title": "Inindex",
        +          "type": "integer"
        +        },
        +        "InLinks": {
        +          "title": "Inlinks",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AllOtherCodes",
        +        "BlockedByRobotsTxt",
        +        "Code2xx",
        +        "Code301",
        +        "Code302",
        +        "Code4xx",
        +        "Code5xx",
        +        "ContainsMalware",
        +        "CrawlErrors",
        +        "CrawledPages",
        +        "Date",
        +        "InIndex",
        +        "InLinks"
        +      ],
        +      "title": "CrawlStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/CrawlStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_crawl_statsOutput",
        +  "type": "object"
        +}
    • Changedget_deep_link1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "DeepLink": {
        +      "properties": {
        +        "Position": {
        +          "title": "Position",
        +          "type": "integer"
        +        },
        +        "Title": {
        +          "title": "Title",
        +          "type": "string"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "Weight": {
        +          "title": "Weight",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Position",
        +        "Title",
        +        "Url",
        +        "Weight"
        +      ],
        +      "title": "DeepLink",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/DeepLink"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_deep_linkOutput",
        +  "type": "object"
        +}
    • Changedget_deep_link_algo_urls1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "DeepLinkAlgoUrl": {
        +      "properties": {
        +        "DeepLinkCount": {
        +          "title": "Deeplinkcount",
        +          "type": "integer"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "DeepLinkCount",
        +        "Impressions",
        +        "Url"
        +      ],
        +      "title": "DeepLinkAlgoUrl",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/DeepLinkAlgoUrl"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_deep_link_algo_urlsOutput",
        +  "type": "object"
        +}
    • Changedget_deep_link_blocks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "DeepLinkBlock": {
        +      "properties": {
        +        "BlockDate": {
        +          "format": "date-time",
        +          "title": "Blockdate",
        +          "type": "string"
        +        },
        +        "DeepLinkUrl": {
        +          "title": "Deeplinkurl",
        +          "type": "string"
        +        },
        +        "Market": {
        +          "title": "Market",
        +          "type": "string"
        +        },
        +        "SearchUrl": {
        +          "title": "Searchurl",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Market",
        +        "SearchUrl",
        +        "DeepLinkUrl",
        +        "BlockDate"
        +      ],
        +      "title": "DeepLinkBlock",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/DeepLinkBlock"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_deep_link_blocksOutput",
        +  "type": "object"
        +}
    • Changedget_feed_details1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Feed": {
        +      "properties": {
        +        "Compressed": {
        +          "title": "Compressed",
        +          "type": "boolean"
        +        },
        +        "FileSize": {
        +          "title": "Filesize",
        +          "type": "integer"
        +        },
        +        "LastCrawled": {
        +          "format": "date-time",
        +          "title": "Lastcrawled",
        +          "type": "string"
        +        },
        +        "Status": {
        +          "title": "Status",
        +          "type": "string"
        +        },
        +        "Submitted": {
        +          "format": "date-time",
        +          "title": "Submitted",
        +          "type": "string"
        +        },
        +        "Type": {
        +          "title": "Type",
        +          "type": "string"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "UrlCount": {
        +          "title": "Urlcount",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Compressed",
        +        "FileSize",
        +        "LastCrawled",
        +        "Status",
        +        "Submitted",
        +        "Type",
        +        "Url",
        +        "UrlCount"
        +      ],
        +      "title": "Feed",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/Feed"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_feed_detailsOutput",
        +  "type": "object"
        +}
    • Changedget_feeds1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Feed": {
        +      "properties": {
        +        "Compressed": {
        +          "title": "Compressed",
        +          "type": "boolean"
        +        },
        +        "FileSize": {
        +          "title": "Filesize",
        +          "type": "integer"
        +        },
        +        "LastCrawled": {
        +          "format": "date-time",
        +          "title": "Lastcrawled",
        +          "type": "string"
        +        },
        +        "Status": {
        +          "title": "Status",
        +          "type": "string"
        +        },
        +        "Submitted": {
        +          "format": "date-time",
        +          "title": "Submitted",
        +          "type": "string"
        +        },
        +        "Type": {
        +          "title": "Type",
        +          "type": "string"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "UrlCount": {
        +          "title": "Urlcount",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Compressed",
        +        "FileSize",
        +        "LastCrawled",
        +        "Status",
        +        "Submitted",
        +        "Type",
        +        "Url",
        +        "UrlCount"
        +      ],
        +      "title": "Feed",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/Feed"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_feedsOutput",
        +  "type": "object"
        +}
    • Changedget_fetched_url_details1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "Date": {
        +      "format": "date-time",
        +      "title": "Date",
        +      "type": "string"
        +    },
        +    "Document": {
        +      "title": "Document",
        +      "type": "string"
        +    },
        +    "Headers": {
        +      "title": "Headers",
        +      "type": "string"
        +    },
        +    "Status": {
        +      "title": "Status",
        +      "type": "string"
        +    },
        +    "Url": {
        +      "title": "Url",
        +      "type": "string"
        +    },
        +    "__type": {
        +      "title": "Type",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "__type",
        +    "Date",
        +    "Document",
        +    "Headers",
        +    "Status",
        +    "Url"
        +  ],
        +  "title": "FetchedUrlDetails",
        +  "type": "object"
        +}
    • Changedget_fetched_urls1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "FetchedUrl": {
        +      "properties": {
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Expired": {
        +          "title": "Expired",
        +          "type": "boolean"
        +        },
        +        "Fetched": {
        +          "title": "Fetched",
        +          "type": "boolean"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Date",
        +        "Expired",
        +        "Fetched",
        +        "Url"
        +      ],
        +      "title": "FetchedUrl",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/FetchedUrl"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_fetched_urlsOutput",
        +  "type": "object"
        +}
    • Changedget_keyword1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Keyword": {
        +      "properties": {
        +        "BroadImpressions": {
        +          "title": "Broadimpressions",
        +          "type": "integer"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "BroadImpressions",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "Keyword",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "anyOf": [
        +        {
        +          "$ref": "#/$defs/Keyword"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_keywordOutput",
        +  "type": "object"
        +}
    • Changedget_keyword_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "KeywordStats": {
        +      "properties": {
        +        "BroadImpressions": {
        +          "title": "Broadimpressions",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "Date",
        +        "BroadImpressions",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "KeywordStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/KeywordStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_keyword_statsOutput",
        +  "type": "object"
        +}
    • Changedget_link_counts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "LinkCount": {
        +      "properties": {
        +        "Count": {
        +          "title": "Count",
        +          "type": "integer"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "Count",
        +        "Url"
        +      ],
        +      "title": "LinkCount",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "Links": {
        +      "items": {
        +        "$ref": "#/$defs/LinkCount"
        +      },
        +      "title": "Links",
        +      "type": "array"
        +    },
        +    "TotalPages": {
        +      "title": "Totalpages",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "Links",
        +    "TotalPages"
        +  ],
        +  "title": "LinkCounts",
        +  "type": "object"
        +}
    • Changedget_page_query_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "QueryStats": {
        +      "properties": {
        +        "AvgClickPosition": {
        +          "title": "Avgclickposition",
        +          "type": "integer"
        +        },
        +        "AvgImpressionPosition": {
        +          "title": "Avgimpressionposition",
        +          "type": "integer"
        +        },
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AvgClickPosition",
        +        "AvgImpressionPosition",
        +        "Clicks",
        +        "Date",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "QueryStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/QueryStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_page_query_statsOutput",
        +  "type": "object"
        +}
    • Changedget_page_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "QueryStats": {
        +      "properties": {
        +        "AvgClickPosition": {
        +          "title": "Avgclickposition",
        +          "type": "integer"
        +        },
        +        "AvgImpressionPosition": {
        +          "title": "Avgimpressionposition",
        +          "type": "integer"
        +        },
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AvgClickPosition",
        +        "AvgImpressionPosition",
        +        "Clicks",
        +        "Date",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "QueryStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/QueryStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_page_statsOutput",
        +  "type": "object"
        +}
    • Changedget_query_page_detail_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "DetailedQueryStats": {
        +      "properties": {
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Position": {
        +          "title": "Position",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Clicks",
        +        "Date",
        +        "Impressions",
        +        "Position"
        +      ],
        +      "title": "DetailedQueryStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/DetailedQueryStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_query_page_detail_statsOutput",
        +  "type": "object"
        +}
    • Changedget_query_page_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "QueryStats": {
        +      "properties": {
        +        "AvgClickPosition": {
        +          "title": "Avgclickposition",
        +          "type": "integer"
        +        },
        +        "AvgImpressionPosition": {
        +          "title": "Avgimpressionposition",
        +          "type": "integer"
        +        },
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AvgClickPosition",
        +        "AvgImpressionPosition",
        +        "Clicks",
        +        "Date",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "QueryStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/QueryStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_query_page_statsOutput",
        +  "type": "object"
        +}
    • Changedget_query_parameters1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "QueryParameter": {
        +      "properties": {
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "IsEnabled": {
        +          "title": "Isenabled",
        +          "type": "boolean"
        +        },
        +        "Parameter": {
        +          "title": "Parameter",
        +          "type": "string"
        +        },
        +        "Source": {
        +          "title": "Source",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Date",
        +        "IsEnabled",
        +        "Parameter",
        +        "Source"
        +      ],
        +      "title": "QueryParameter",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/QueryParameter"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_query_parametersOutput",
        +  "type": "object"
        +}
    • Changedget_query_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "QueryStats": {
        +      "properties": {
        +        "AvgClickPosition": {
        +          "title": "Avgclickposition",
        +          "type": "integer"
        +        },
        +        "AvgImpressionPosition": {
        +          "title": "Avgimpressionposition",
        +          "type": "integer"
        +        },
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AvgClickPosition",
        +        "AvgImpressionPosition",
        +        "Clicks",
        +        "Date",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "QueryStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/QueryStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_query_statsOutput",
        +  "type": "object"
        +}
    • Changedget_query_traffic_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "RankAndTrafficStats": {
        +      "properties": {
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Clicks",
        +        "Date",
        +        "Impressions"
        +      ],
        +      "title": "RankAndTrafficStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/RankAndTrafficStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_query_traffic_statsOutput",
        +  "type": "object"
        +}
    • Changedget_rank_and_traffic_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "RankAndTrafficStats": {
        +      "properties": {
        +        "Clicks": {
        +          "title": "Clicks",
        +          "type": "integer"
        +        },
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Clicks",
        +        "Date",
        +        "Impressions"
        +      ],
        +      "title": "RankAndTrafficStats",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/RankAndTrafficStats"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_rank_and_traffic_statsOutput",
        +  "type": "object"
        +}
    • Changedget_related_keywords1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Keyword": {
        +      "properties": {
        +        "BroadImpressions": {
        +          "title": "Broadimpressions",
        +          "type": "integer"
        +        },
        +        "Impressions": {
        +          "title": "Impressions",
        +          "type": "integer"
        +        },
        +        "Query": {
        +          "title": "Query",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "BroadImpressions",
        +        "Impressions",
        +        "Query"
        +      ],
        +      "title": "Keyword",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/Keyword"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_related_keywordsOutput",
        +  "type": "object"
        +}
    • Changedget_site_moves1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "SiteMoveScope": {
        +      "enum": [
        +        0,
        +        1,
        +        2
        +      ],
        +      "title": "SiteMoveScope",
        +      "type": "integer"
        +    },
        +    "SiteMoveSettings": {
        +      "properties": {
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "MoveScope": {
        +          "$ref": "#/$defs/SiteMoveScope"
        +        },
        +        "MoveType": {
        +          "$ref": "#/$defs/SiteMoveType"
        +        },
        +        "SourceUrl": {
        +          "pattern": "^https?://",
        +          "title": "Sourceurl",
        +          "type": "string"
        +        },
        +        "TargetUrl": {
        +          "pattern": "^https?://",
        +          "title": "Targeturl",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "default": "SiteMoveSettings:#Microsoft.Bing.Webmaster.Api",
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "Date",
        +        "MoveScope",
        +        "MoveType",
        +        "SourceUrl",
        +        "TargetUrl"
        +      ],
        +      "title": "SiteMoveSettings",
        +      "type": "object"
        +    },
        +    "SiteMoveType": {
        +      "enum": [
        +        0,
        +        1
        +      ],
        +      "title": "SiteMoveType",
        +      "type": "integer"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/SiteMoveSettings"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_site_movesOutput",
        +  "type": "object"
        +}
    • Changedget_site_roles1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "SiteRole": {
        +      "properties": {
        +        "Date": {
        +          "format": "date-time",
        +          "title": "Date",
        +          "type": "string"
        +        },
        +        "DelegatedCode": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Delegatedcode"
        +        },
        +        "DelegatedCodeOwnerEmail": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Delegatedcodeowneremail"
        +        },
        +        "DelegatorEmail": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ],
        +          "default": null,
        +          "title": "Delegatoremail"
        +        },
        +        "Email": {
        +          "title": "Email",
        +          "type": "string"
        +        },
        +        "Expired": {
        +          "title": "Expired",
        +          "type": "boolean"
        +        },
        +        "Role": {
        +          "$ref": "#/$defs/UserRole"
        +        },
        +        "Site": {
        +          "title": "Site",
        +          "type": "string"
        +        },
        +        "VerificationSite": {
        +          "title": "Verificationsite",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "Date",
        +        "Email",
        +        "Expired",
        +        "Role",
        +        "Site",
        +        "VerificationSite"
        +      ],
        +      "title": "SiteRole",
        +      "type": "object"
        +    },
        +    "UserRole": {
        +      "enum": [
        +        0,
        +        1,
        +        2
        +      ],
        +      "title": "UserRole",
        +      "type": "integer"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/SiteRole"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_site_rolesOutput",
        +  "type": "object"
        +}
    • Changedget_sites1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "Site": {
        +      "properties": {
        +        "AuthenticationCode": {
        +          "title": "Authenticationcode",
        +          "type": "string"
        +        },
        +        "DnsVerificationCode": {
        +          "title": "Dnsverificationcode",
        +          "type": "string"
        +        },
        +        "IsVerified": {
        +          "title": "Isverified",
        +          "type": "boolean"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        },
        +        "__type": {
        +          "title": "Type",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "__type",
        +        "AuthenticationCode",
        +        "DnsVerificationCode",
        +        "IsVerified",
        +        "Url"
        +      ],
        +      "title": "Site",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "result": {
        +      "items": {
        +        "$ref": "#/$defs/Site"
        +      },
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_sitesOutput",
        +  "type": "object"
        +}
    • Changedget_url_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "AnchorCount": {
        +      "title": "Anchorcount",
        +      "type": "integer"
        +    },
        +    "DiscoveryDate": {
        +      "format": "date-time",
        +      "title": "Discoverydate",
        +      "type": "string"
        +    },
        +    "DocumentSize": {
        +      "title": "Documentsize",
        +      "type": "integer"
        +    },
        +    "HttpStatus": {
        +      "title": "Httpstatus",
        +      "type": "integer"
        +    },
        +    "IsPage": {
        +      "title": "Ispage",
        +      "type": "boolean"
        +    },
        +    "LastCrawledDate": {
        +      "format": "date-time",
        +      "title": "Lastcrawleddate",
        +      "type": "string"
        +    },
        +    "TotalChildUrlCount": {
        +      "title": "Totalchildurlcount",
        +      "type": "integer"
        +    },
        +    "Url": {
        +      "title": "Url",
        +      "type": "string"
        +    },
        +    "__type": {
        +      "title": "Type",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "__type",
        +    "AnchorCount",
        +    "DiscoveryDate",
        +    "DocumentSize",
        +    "HttpStatus",
        +    "IsPage",
        +    "LastCrawledDate",
        +    "TotalChildUrlCount",
        +    "Url"
        +  ],
        +  "title": "UrlInfo",
        +  "type": "object"
        +}
    • Changedget_url_links1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "LinkDetail": {
        +      "properties": {
        +        "AnchorText": {
        +          "title": "Anchortext",
        +          "type": "string"
        +        },
        +        "Url": {
        +          "title": "Url",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "AnchorText",
        +        "Url"
        +      ],
        +      "title": "LinkDetail",
        +      "type": "object"
        +    }
        +  },
        +  "properties": {
        +    "Details": {
        +      "items": {
        +        "$ref": "#/$defs/LinkDetail"
        +      },
        +      "title": "Details",
        +      "type": "array"
        +    },
        +    "TotalPages": {
        +      "title": "Totalpages",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "Details",
        +    "TotalPages"
        +  ],
        +  "title": "LinkDetails",
        +  "type": "object"
        +}
    • Changedget_url_submission_quota1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "DailyQuota": {
        +      "title": "Dailyquota",
        +      "type": "integer"
        +    },
        +    "MonthlyQuota": {
        +      "title": "Monthlyquota",
        +      "type": "integer"
        +    },
        +    "__type": {
        +      "title": "Type",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "__type",
        +    "DailyQuota",
        +    "MonthlyQuota"
        +  ],
        +  "title": "UrlSubmissionQuota",
        +  "type": "object"
        +}
    • Changedget_url_traffic_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "Clicks": {
        +      "title": "Clicks",
        +      "type": "integer"
        +    },
        +    "Impressions": {
        +      "title": "Impressions",
        +      "type": "integer"
        +    },
        +    "IsPage": {
        +      "title": "Ispage",
        +      "type": "boolean"
        +    },
        +    "Url": {
        +      "title": "Url",
        +      "type": "string"
        +    },
        +    "__type": {
        +      "title": "Type",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "__type",
        +    "Clicks",
        +    "Impressions",
        +    "IsPage",
        +    "Url"
        +  ],
        +  "title": "UrlTrafficInfo",
        +  "type": "object"
        +}
    • Changedremove_blocked_url3 fields changed
      • addedInput schema / $defs / BlockedUrlRequestType
        Added value: +{
        +  "enum": [
        +    0,
        +    1
        +  ],
        +  "title": "BlockedUrlRequestType",
        +  "type": "integer"
        +}
      • addedInput schema / properties / request_type
        Added value: +{
        +  "$ref": "#/$defs/BlockedUrlRequestType",
        +  "default": 1
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_blocked_urlOutput",
        +  "type": "object"
        +}
    • Changedremove_country_region_settings1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_country_region_settingsOutput",
        +  "type": "object"
        +}
    • Changedremove_deep_link_block1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_deep_link_blockOutput",
        +  "type": "object"
        +}
    • Changedremove_feed1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_feedOutput",
        +  "type": "object"
        +}
    • Changedremove_page_preview_block1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_page_preview_blockOutput",
        +  "type": "object"
        +}
    • Changedremove_query_parameter1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_query_parameterOutput",
        +  "type": "object"
        +}
    • Changedremove_site1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_siteOutput",
        +  "type": "object"
        +}
    • Changedremove_site_role1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "remove_site_roleOutput",
        +  "type": "object"
        +}
    • Changedsave_crawl_settings1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "save_crawl_settingsOutput",
        +  "type": "object"
        +}
    • Changedsubmit_content1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "submit_contentOutput",
        +  "type": "object"
        +}
    • Changedsubmit_feed1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "submit_feedOutput",
        +  "type": "object"
        +}
    • Changedsubmit_site_move1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "submit_site_moveOutput",
        +  "type": "object"
        +}
    • Changedsubmit_url1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "submit_urlOutput",
        +  "type": "object"
        +}
    • Changedsubmit_url_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "submit_url_batchOutput",
        +  "type": "object"
        +}
    • Changedupdate_deep_link1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "null"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "update_deep_linkOutput",
        +  "type": "object"
        +}
    • Changedverify_site1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "verify_siteOutput",
        +  "type": "object"
        +}
  2. 62 tool updates
    • First observedadd_blocked_url
    • First observedadd_connected_page
    • First observedadd_country_region_settings
    • First observedadd_deep_link_block
    • First observedadd_page_preview_block
    • First observedadd_query_parameter
    • First observedadd_site
    • First observedadd_site_roles
    • First observedenable_disable_query_parameter
    • First observedfetch_url
    • First observedget_active_page_preview_blocks
    • First observedget_blocked_urls
    • First observedget_children_url_info
    • First observedget_children_url_traffic_info
    • First observedget_connected_pages
    • First observedget_content_submission_quota
    • First observedget_country_region_settings
    • First observedget_crawl_issues
    • First observedget_crawl_settings
    • First observedget_crawl_stats
    • First observedget_deep_link
    • First observedget_deep_link_algo_urls
    • First observedget_deep_link_blocks
    • First observedget_feed_details
    • First observedget_feeds
    • First observedget_fetched_url_details
    • First observedget_fetched_urls
    • First observedget_keyword
    • First observedget_keyword_stats
    • First observedget_link_counts
    • First observedget_page_query_stats
    • First observedget_page_stats
    • First observedget_query_page_detail_stats
    • First observedget_query_page_stats
    • First observedget_query_parameters
    • First observedget_query_stats
    • First observedget_query_traffic_stats
    • First observedget_rank_and_traffic_stats
    • First observedget_related_keywords
    • First observedget_site_moves
    • First observedget_site_roles
    • First observedget_sites
    • First observedget_url_info
    • First observedget_url_links
    • First observedget_url_submission_quota
    • First observedget_url_traffic_info
    • First observedremove_blocked_url
    • First observedremove_country_region_settings
    • First observedremove_deep_link_block
    • First observedremove_feed
    • First observedremove_page_preview_block
    • First observedremove_query_parameter
    • First observedremove_site
    • First observedremove_site_role
    • First observedsave_crawl_settings
    • First observedsubmit_content
    • First observedsubmit_feed
    • First observedsubmit_site_move
    • First observedsubmit_url
    • First observedsubmit_url_batch
    • First observedupdate_deep_link
    • First observedverify_site

TDQS

C2.9/5.0
Disambiguation2/5

Many tools have overlapping purposes, such as multiple get stats tools (get_query_stats, get_page_stats, get_query_page_stats, etc.) and multiple submission tools (submit_url, submit_url_batch, submit_feed). While descriptions are detailed, agents may struggle to select the correct tool for a given task.

Naming Consistency4/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_blocked_url, get_feed_details). Minor inconsistency exists with 'enable_disable_query_parameter' being verbose and 'submit' vs 'fetch' verbs, but overall predictable.

Tool Count2/5

62 tools is excessive for an MCP server. While Bing Webmaster Tools is feature-rich, many tools could be consolidated (e.g., multiple query stats tools into one parameterized tool). This number overwhelms the agent's selection surface.

Completeness4/5

The tool set covers the major functionalities of Bing Webmaster Tools: site CRUD, URL blocking, feed management, crawl settings, traffic stats, and link analysis. Minor gaps exist (e.g., no generic update_site), but overall it's comprehensive for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Model Context Protocol (MCP) server that provides AI agents with access to Google Search Console data.
    25
    2,926
    286
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol server that provides AI-grounded Bing search capabilities using the Azure AI Project Client. It enables intelligent web searches with automated citation tracking and URL extraction for seamless AI integration.
    -

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