Bing Webmaster Tools MCP Server
mcp-서버-bwt
Bing 웹마스터 도구용 MCP 서버
이 MCP( 모델 컨텍스트 프로토콜 ) 서버는 Claude 또는 Cursor와 같은 지원되는 AI 어시스턴트 와 Bing 웹마스터 도구 API를 연결하는 역할을 합니다. bing-webmaster-tools 통해 제공되는 모든 Bing 웹마스터 도구 기능을 MCP 도구로 노출하여 AI 어시스턴트가 Bing 웹마스터 도구 계정과 상호 작용하는 데 사용할 수 있도록 합니다.
Claude를 사용한 예시 사용
구성이 완료되면 Claude와 함께 MCP 서버를 사용하여 Bing 웹마스터 도구 계정과 상호 작용할 수 있습니다. 다음은 몇 가지 프롬프트 예시입니다.
"Bing 웹마스터 도구에서 내가 검증한 모든 사이트를 나열합니다"
"내 홈페이지를 인덱싱에 제출하세요"
"내 웹사이트의 트래픽 통계를 받으세요"
"내 사이트에 크롤링 문제가 있는지 확인하세요"
"내 제품"에 대한 키워드 통계를 받으세요
클로드는 귀하의 요청을 이행하기 위해 적절한 MCP 도구를 사용할 것입니다.
Related MCP server: mcp-server-bing-webmaster
요구 사항
파이썬 3.13 이상
설치
프로젝트 종속성을 설치하려면 다음 명령을 실행하세요.
지엑스피1
MCP 클라이언트 구성 예(Claude, Cursor 등)
Claude 또는 다른 MCP 클라이언트의 경우 설정에서 서버를 구성 할 수 있습니다.
{
"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"
}
}
}
}사용 가능한 도구
이 서버는 다음과 같은 Bing 웹마스터 도구 API 기능을 제공합니다(자세한 내용은 API 문서 참조):
사이트 관리
get_sites: Bing 웹마스터 도구 계정에서 확인된 모든 사이트를 나열합니다.add_site: 계정에 새 사이트를 추가합니다verify_site: 사이트 소유권 확인remove_site: 계정에서 사이트를 제거합니다.get_site_roles: 특정 사이트에 대한 역할을 가져옵니다.add_site_roles: 사이트에 역할 추가remove_site_role: 사이트에서 역할을 제거합니다.get_site_moves: 사이트 이전에 대한 정보를 가져옵니다.submit_site_move: 사이트 이동 요청 제출
URL 제출
submit_url: 인덱싱을 위해 단일 URL을 제출합니다.submit_url_batch: 일괄적으로 인덱싱을 위해 여러 URL을 제출합니다.submit_content: 인덱싱을 위해 콘텐츠 제출submit_feed: 인덱싱을 위해 피드 제출get_feeds: 제출된 모든 피드를 가져옵니다.get_feed_details: 특정 피드에 대한 세부 정보를 가져옵니다.remove_feed: 계정에서 피드를 제거합니다.get_url_submission_quota: URL 제출 할당량 확인get_content_submission_quota: 콘텐츠 제출 할당량을 확인하세요fetch_url: 인덱싱을 위한 URL 가져오기get_fetched_urls: 가져온 모든 URL을 가져옵니다.get_fetched_url_details: 특정 페치된 URL에 대한 세부 정보를 가져옵니다.
트래픽 분석
get_query_stats: 검색 쿼리에 대한 통계를 가져옵니다.get_query_traffic_stats: 검색어에 대한 트래픽 통계를 가져옵니다.get_query_page_stats: 검색 쿼리에 대한 페이지 통계를 가져옵니다.get_query_page_detail_stats: 검색 쿼리에 대한 자세한 페이지 통계를 가져옵니다.get_page_stats: 페이지 통계 가져오기get_page_query_stats: 페이지에 대한 쿼리 통계를 가져옵니다.get_rank_and_traffic_stats: 순위 및 트래픽 통계를 가져옵니다.
크롤링
get_crawl_stats: 크롤링 통계 가져오기get_crawl_settings: 크롤링 설정 가져오기save_crawl_settings: 크롤링 설정 저장get_crawl_issues: 크롤링 문제 가져오기
키워드 분석
get_keyword: 키워드에 대한 정보를 가져옵니다get_keyword_stats: 키워드에 대한 통계를 가져옵니다.get_related_keywords: 관련 키워드 가져오기
링크 분석
get_link_counts: 링크 수 가져오기get_url_links: URL에 대한 링크 가져오기get_deep_link: 딥링크 정보 가져오기get_deep_link_blocks: 딥 링크 블록을 가져옵니다.add_deep_link_block: 딥 링크 블록을 추가합니다.remove_deep_link_block: 딥 링크 블록을 제거합니다.update_deep_link: 딥링크 업데이트get_deep_link_algo_urls: 딥 링크 알고리즘 URL 가져오기get_connected_pages: 연결된 페이지 가져오기add_connected_page: 연결된 페이지 추가
콘텐츠 관리
get_url_info: URL에 대한 정보를 가져옵니다get_url_traffic_info: URL에 대한 트래픽 정보를 가져옵니다.get_children_url_info: 자식 URL에 대한 정보를 가져옵니다.get_children_url_traffic_info: 자식 URL에 대한 트래픽 정보를 가져옵니다.
콘텐츠 차단
get_blocked_urls: 차단된 URL 가져오기add_blocked_url: 차단 목록에 URL을 추가합니다.remove_blocked_url: 차단 목록에서 URL을 제거합니다.get_active_page_preview_blocks: 활성 페이지 미리보기 블록 가져오기add_page_preview_block: 페이지 미리보기 블록 추가remove_page_preview_block: 페이지 미리보기 블록을 제거합니다.
지역 설정
get_country_region_settings: 국가/지역 설정 가져오기add_country_region_settings: 국가/지역 설정 추가remove_country_region_settings: 국가/지역 설정 제거
URL 관리
get_query_parameters: 쿼리 매개변수 가져오기add_query_parameter: 쿼리 매개변수 추가remove_query_parameter: 쿼리 매개변수 제거enable_disable_query_parameter: 쿼리 매개변수를 활성화하거나 비활성화합니다.
개발
모든 테스트를 실행하려면:
make test앱을 빌드하려면:
make build프로젝트를 린트하려면:
make lint프로젝트를 포맷하려면:
make format환경 변수
다음 환경 변수가 필요합니다.
BING_WEBMASTER_API_KEY: Bing 웹마스터 도구 API 키
서버 시작
MCP 서버를 시작하려면:
make startMCP 검사관
MCP 검사기를 사용하여 서버를 테스트할 수 있습니다.
make mcp_inspector특허
MIT
Available Tools
62 toolsadd_blocked_urlB
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
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| site_url | Yes | ||
| blocked_url | Yes | ||
| entity_type | No | ||
| request_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. For a mutation tool it only offers a minimal Raises clause (BingWebmasterError on failure) and omits what happens on success, reversibility, or permission requirements. With zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring format front-loads a one-line purpose followed by an informative Args list and a compact Raises note. It is well-structured with no filler; the only low-value element is the minimal Raises clause, but it does not bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required. Parameters are thoroughly covered, but the description omits usage context and behavioral detail that a write operation with no annotations should supply, leaving the agent without guidance on when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fully compensates by documenting all 5 parameters, including the enum semantics (Page or Directory for entity_type, CacheOnly or FullRemoval for request_type) and the date default (minimum datetime). This adds meaning the schema itself does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Add a blocked URL to a site" states a specific verb and resource, and the parameter list clarifies the domain (Bing Webmaster URL blocking). It is distinguishable from sibling tools remove_blocked_url and get_blocked_urls by its operation, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no prerequisites, and no mention of alternatives. The description is purely declarative and leaves the agent to infer when blocking a URL is appropriate versus using remove_blocked_url.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_connected_pageC
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| master_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 discloses that the operation adds a page and raises BingWebmasterError on failure, but doesn't mention whether the operation is idempotent, whether it requires prior site verification, or what happens if the page is already connected. The error mention is useful but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The Args and Raises sections are standard and efficient. No wasted words, though the Raises section is somewhat generic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema details, the description is thin. It doesn't explain return values, idempotency, prerequisites, or failure modes beyond a generic exception. An agent would need to infer a lot about how to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 lists both parameters with brief definitions ('The URL of your site', 'The URL of the page to be connected'), which adds some meaning beyond the bare schema. However, it doesn't clarify URL formats, whether master_url must be on the same domain, or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a page which has a link to your website.' This clearly identifies the action and target. It doesn't explicitly distinguish from siblings like add_deep_link_block or add_page_preview_block, but the resource (connected page) is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites like verifying the site first, or contrast with get_connected_pages or other add tools. The context is implied by the name and description but not explicit.
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
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it raises BingWebmasterError on failure (useful), but does not mention potential side effects, idempotency, whether it overwrites existing settings, or required permissions. As an add operation, the mutating nature is inferred but not explicitly stated, and no response format is described despite having an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-line purpose and a short Args section. Each sentence earns its place; no fluff. However, it could be improved by adding brief value mentions of key fields, but it's not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (nested settings object, required fields, enum), the description is under-specified. No example, no return value explanation (though output schema exists, the description doesn't confirm what to expect), no error handling details beyond naming the error type. For a mutating operation with no annotations, more context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only repeats parameter names: 'site_url: The URL of the site' and 'settings: The country/region settings to add'. This adds no meaning beyond the schema's parameter titles. The nested CountryRegionSettings object is not explained; the agent must infer its required fields from the schema, which does provide them, but the description doesn't help interpret the enum values of 'Type' or the meaning of 'TwoLetterIsoCountryCode'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Add') and resource ('country/region settings') for a specific site. Distinguishes from siblings like get_country_region_settings and remove_country_region_settings by naming the operation explicitly, though it doesn't name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention that get_country_region_settings is for retrieval or remove_country_region_settings for deletion, nor does it specify prerequisites like verifying site ownership first. The description implies usage via 'Add' but doesn't provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_deep_link_blockD
Add a deep link block.
Args: site_url: The URL of the site market: The market code search_url: The search URL deep_link_url: The deep link URL to block
Raises: BingWebmasterError: If block cannot be added
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| site_url | Yes | ||
| search_url | Yes | ||
| deep_link_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 only mentions that a BingWebmasterError may be raised, which is minor. It does not disclose side effects, idempotency, permissions, or what happens on success. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and avoids fluff, but it is under-specified. The docstring-style structure with Args and Raises is reasonable, but it lacks front-loaded context or any explanation of the tool's purpose beyond the first line. It is not conciseness that aids the agent; it is just too sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four required parameters, no annotations, no parameter descriptions, and no explanation of the return value or behavior, the description is highly incomplete. An agent cannot correctly construct a call without guessing at the meaning of the parameters. The presence of an output schema is not mentioned, and no indication of what the response contains is given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema lists four string parameters with no descriptions, and the description merely repeats their names without adding meaning. With schema description coverage at 0%, the description should compensate but does not explain the purpose, format, or constraints of site_url, market, search_url, or deep_link_url.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Add a deep link block,' which is a clear verb+resource, but it does not explain what a deep link block is or what the action entails. It does not differentiate from siblings like add_page_preview_block or remove_deep_link_block. It is not a tautology, but it is too vague to guide an agent that lacks domain-specific knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of prerequisites, scenarios, or exclusions. The agent is left to infer that this tool is for adding deep link blocks, but there is no comparison to remove_deep_link_block or other add tools.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| reason | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It only mentions raising BingWebmasterError on failure, but doesn't disclose side effects, idempotency, reversibility, or what happens if the block already exists. For a mutation tool, this is insufficient behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with an Args/Raises format. It is easy to parse and front-loads the action. However, the brevity contributes to missing details in other dimensions; conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters with an enum, no annotations, and a minimal description. It lacks usage context, enum semantics, return value details, and any mention of prerequisites like site verification. Given the complexity of the Bing Webmaster domain, this description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides one-line meanings for each parameter: site_url, url, and reason. However, it doesn't explain the enum values for reason (1-4) as defined in the schema. Since schema description coverage is 0%, the description partially compensates but leaves the enum semantics ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add a page preview block' with a clear verb and resource. It lists the three parameters with brief meanings, making the action specific. However, it doesn't explicitly differentiate from sibling tools like add_blocked_url or add_deep_link_block, and could clarify what a page preview block actually does in the Bing Webmaster context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 add_blocked_url or add_deep_link_block. The description simply states the action without context, exclusions, or mention of scenarios where this tool is preferred. An agent would need to infer based on tool names alone.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| query_parameter | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 states that a BingWebmasterError is raised if the parameter cannot be added, which is useful, but it does not disclose side effects, idempotency, authorization needs, or how the normalization parameter is applied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is a concise, front-loaded description. The Args and Raises sections add useful information without marketing fluff. The format is slightly verbose due to headings and blank lines, but it remains short and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutating tool with no annotations and no output schema, yet the description does not explain prerequisites, effects on existing normalization rules, idempotency, or what happens when the parameter already exists. It only names the inputs and a generic failure condition, so an agent lacks enough context to predict the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section largely restates the parameter names: 'site_url: The URL of the site' and 'query_parameter: The query parameter to add.' It adds almost no meaning beyond the input schema, which already requires those values and constrains query_parameter with a regex pattern. There is no example, no format clarification, and no relation to URL normalization behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and object: 'Add a URL normalization parameter for a site.' This states exactly what the tool does and is specific enough to distinguish it from obvious siblings like remove_query_parameter or get_query_parameters. It does not explicitly contrast with other parameter-related tools such as enable_disable_query_parameter, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like enable_disable_query_parameter or remove_query_parameter. The description provides no context about prerequisites, such as whether the site must already exist or be verified, and does not mention any exclusions.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that a BingWebmasterError is raised if the site cannot be added, but it does not describe side effects, duplicate behavior, verification requirements, authentication needs, or whether the site is immediately usable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main action. The Args and Raises sections are clear, though the Args line is somewhat redundant with the schema. Overall, it is concise without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter and an output schema, so the core usage is conveyed. However, important context is missing, such as whether verification is needed after adding a site and what happens if the site already exists. The error clause helps but does not fully compensate for the absent behavioral and usage details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats 'The URL of the site to add,' which adds little beyond the schema's 'Site Url' title. It lacks URL format guidance, examples, or constraints such as protocol requirements or trailing-slash normalization.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Add a new site to Bing Webmaster Tools.' It clearly identifies the tool's function and distinguishes it from remove_site and verify_site, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like verify_site or remove_site. There is no mention of prerequisites, ordering, or exclusions, so the agent must infer usage solely from the verb 'Add.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_site_rolesC
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| user_email | Yes | ||
| is_read_only | Yes | ||
| delegated_url | Yes | ||
| is_administrator | Yes | ||
| authentication_code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects. It only mentions that a BingWebmasterError is raised on failure knthu and that it delegates access. It fails to explain whether existing roles are overwritten, whether both admin and read-only can be true, or what happens on partial failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring is compact, front-loads the purpose, and separates parameter definitions from a Raises section. It earns a solid score for brevity and readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action, all six parameters, and the error type. However, it omits context about the semantics of delegating (e.g., whether roles are additive, how the delegated_url relates to site_url, and whether both boolean flags can be true). An output schema exists, so return values need not be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Arg list gives a one-line gloss for each parameter (e.g., 'user_email: The email of the user to delegate access to'), but these largely restate the parameter names and don't clarify ambiguous fields like delegated_url or the relationship between is_administrator and is_read_only. Schema descriptions are absent, so the description partially compensates but remains shallow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line, 'Delegate site access to a user,' clearly identifies the action and target. It is specific enough to convey the tool's primary function, though it does not distinguish it from related tools like remove_site_roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling tools (e.g., get_site_roles, remove_site_roles). The description does not explain prerequisites, typical scenarios, or how roles interact.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_disable_query_parameterA
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| is_enabled | Yes | ||
| query_parameter | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutating operation ('enable or disable') and mentions a Raises clause for BingWebmasterError on failure. However, it does not disclose side effects, reversibility, idempotency, permissions, or prerequisites. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It opens with a single, front-loaded purpose sentence, then lists the arguments with clear definitions, and ends with a raises clause. There is no redundant or verbose text; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three primitive parameters and an output schema, the description covers the core action, arguments, and error condition. However, it lacks usage context (when to prefer this over siblings), does not explain the concept of 'URL normalization parameter', and omits any prerequisites like site verification. This is adequate but not complete given the wide range of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 defines each argument: site_url as 'The URL of the site', query_parameter as 'The query parameter to enable/disable', and is_enabled as 'True to enable, False to disable'. This adds meaning beyond the bare schema types and titles, though it could include format hints or domain-specific explanations (e.g., what qualifies as a query parameter).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a URL normalization parameter for a site.' This specifies the verb (enable/disable), the resource (URL normalization parameter), and the scope (for a site). It distinguishes itself from sibling tools like add_query_parameter, remove_query_parameter, and get_query_parameters by focusing on toggling state rather than creation, removal, or retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 that this should be used for existing parameters or that add/remove are for adding/removing. There are no exclusions or explicit context for selecting this over siblings like get_query_parameters or add_query_parameter.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 only states that it fetches a URL and raises an error if it cannot be fetched. It does not disclose side effects (e.g., triggering a crawl), authentication requirements, rate limits, or whether it's a write operation. This is minimal disclosure for an action tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear sections for purpose, arguments, and exceptions. It avoids fluff and front-loads the action. However, it is extremely terse and omits useful context, which affects other dimensions, but for pure conciseness it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and minimal description, the information is incomplete for safe and correct use. It lacks details about prerequisites (e.g., site must be verified), potential side effects, return behavior (though output schema exists, it's not referenced), and how it differs from submit_url. An agent would not know when to invoke this tool with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 lists 'site_url: The URL of the site' and 'url: The URL to fetch', which adds a basic distinction but does not clarify the relationship (e.g., site_url is the verified site root, url is the specific page). No format, constraints, or examples are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Request Bing to fetch a specific URL immediately.' It identifies the resource (URL) and the operation (fetch). It doesn't differentiate from sibling tools like submit_url or get_fetched_urls, but the purpose is unambiguous on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention conditions, exclusions, or refer to any sibling tool. The agent is left to infer that it's for immediate fetching, but no explicit context is given.
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_blocksB
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It discloses pagination behavior (limit, offset, next_offset) and error behavior (BingWebmasterError), which is useful. However, it does not mention whether this is a read-only operation, rate limits, or what 'active' means in terms of filtering. The pagination and error details add value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The Args/Returns/Raises structure is clear and scannable. The pagination note is placed at the end, which is appropriate. No wasted words, though the format could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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[PagePreview]) and 3 parameters, so the description doesn't need to explain return values in detail. However, with no annotations, the description should disclose more about the operation's safety (read-only vs. mutating) and any prerequisites. The pagination and error details are good, but the lack of usage context relative to siblings leaves a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with limit and offset already described in the schema. The description adds the site_url parameter context ('The URL of the site') but that is minimal. The pagination explanation in the description adds meaning to limit and offset beyond the schema's basic descriptions, but it doesn't fully compensate for the missing site_url schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get active page preview blocks for a site.' This clearly identifies the operation and the resource. It is distinguishable from siblings like add_page_preview_block and remove_page_preview_block, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating it retrieves active page preview blocks for a site, and the pagination instructions provide context for repeated calls. However, it does not explicitly state when to use this tool versus alternatives like get_deep_link_blocks or add_page_preview_block, nor does it mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blocked_urlsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 discloses pagination behavior ('Returns at most limit rows... call again with offset=next_offset') and the error type (BingWebmasterError), but does not mention permissions, rate limits, or side effects. As a read operation, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into Args, Returns, Raises, and a pagination note, with no redundant text. It is front-loaded with the primary purpose and uses clear formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, parameters, return type, error, and pagination, which is sufficient for a read-only list tool with an output schema. It doesn't mention prerequisites like site ownership or verification, but these are likely common to all site tools and not critical for a basic call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers limit and offset with descriptions, but site_url lacks a schema description. The description's Args section defines site_url as 'The URL of the site', and the pagination note clarifies offset usage, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get a list of blocked pages/directories for a site' with a specific verb and resource, clearly distinguishing it from sibling tools like add_blocked_url and remove_blocked_url. The return type is also specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for retrieving blocked URLs but does not explicitly contrast with add_blocked_url or remove_blocked_url. No when-to-use or when-not-to-use guidance is provided, leaving the agent to infer from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_children_url_infoA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| page | No | ||
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes | ||
| filter_properties | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses pagination behavior ('Returns at most limit rows... call again with offset=next_offset') and error handling (BingWebmasterError). It does not mention auth, rate limits, or other side effects, but given this is a read operation, the disclosed behavior is sufficient for basic use. It adds value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: a one-line purpose, a compact Args list, Returns and Raises sections, and a crucial pagination note. It is front-loaded and every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 6-parameter surface, a nested filter object, and an output schema, the description covers the essential purpose, parameter meanings, pagination, and error. The output schema defines return structure, and the filter details are in the schema. It only lacks usage-selection context, which is already scored under usage_guidelines, so for the tool's calling mechanics it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (limit and offset have descriptions). The description explicitly explains site_url, url, page, and filter_properties in an Args block, compensating for the undocumented parameters. It gives concise meanings for each, though filter_properties is only described at a high level without detailing the nested structure. This is valuable addition beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific verb+resource: 'Retrieve information for child URLs of a specific URL.' This differentiates it from siblings like get_url_info (single URL) and get_children_url_traffic_info (traffic-specific) by focusing on child URLs and general info. It does not explicitly name alternatives, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_url_info or get_children_url_traffic_info. It only explains how to paginate once called, not the selection criteria for choosing this tool. This omission leaves the agent to infer from the name and siblings.
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_infoA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| page | No | ||
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses pagination behavior (limit, offset, next_offset), return type, and error conditions (BingWebmasterError). It does not mention rate limits, authentication, or that it is read-only, but the core behavioral aspects are covered. The absence of annotation contradictions supports this score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns, Raises) and front-loads the primary purpose. It includes necessary details about pagination and errors without excessive verbosity. The only minor redundancy is repeating 'Returns' twice, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and an output schema (though not shown), the description covers purpose, all parameters, pagination, and error handling. It does not mention authentication or rate limits, but these may be implicit for the API. It is complete enough for an agent to invoke correctly, with minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40% (limit and offset have descriptions), but the description compensates fully. The Args section explains site_url, url, and page, while the later text explains limit and offset with defaults and max values. Every parameter is meaningfully described, adding significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence clearly states the specific action ('Get traffic details') and resource ('child URLs of a directory'). This distinguishes it from sibling tools like get_url_traffic_info (single URL) and get_children_url_info (likely without traffic) by explicitly mentioning 'traffic'. The purpose is unambiguous and action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains pagination usage ('call again with offset=next_offset') but does not explicitly state when to use this tool versus alternatives such as get_url_traffic_info or get_children_url_info. It provides context that it is for a directory's children, but does not name alternatives or exclusions. This is a clear gap for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connected_pagesA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the limit behavior, default/max limits, the next_offset continuation pattern, and that BingWebmasterError is raised on failure. This goes beyond a bare getter, though it does not cover prerequisite or authentication conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-sentence summary, a concise args/returns/raises docstring, and a short pagination note. Every sentence contributes, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated read operation, the description gives the required site_url, optional limit/offset, pagination pattern, and error behavior, while the output schema covers the return shape. It is slightly incomplete about what 'connected pages' means and what makes a site eligible, but the core calling contract is fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description compensates by defining the otherwise undocumented site_url parameter ('The URL of the site'). It also explains how offset relates to pagination, adding meaning beyond the schema's 'Index of the first row.' The limit default/max is redundant with the schema, but the missing parameter is covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific operation and resource: 'Get a list of pages connected to the site.' It clearly signals a read operation and is distinguishable from write-oriented siblings like add_connected_page. However, it does not explicitly differentiate itself from similar getters, and the return type 'List[ConnectedSite]' introduces minor pages-vs-sites ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use whenever connected pages are needed and gives clear pagination guidance ('call again with offset=next_offset'). However, it provides no when-not-to-use conditions or alternatives, so usage is mostly implied rather than explicitly scoped against sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_content_submission_quotaC
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| __type | Yes | |
| DailyQuota | Yes | |
| MonthlyQuota | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only repeats the action ('Get information') without stating that it is read-only, idempotent, or requires specific authentication/permissions. It does not mention any side effects or rate limits, which is a gap for a getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a clear purpose statement and well-organized Args, Returns, and Raises sections. Every line is functional and there is no filler, earning high marks for structure and economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter and an output schema that presumably defines ContentSubmissionQuota, so return structure is covered. However, the description does not clarify the relationship to get_url_submission_quota or the exact meaning of 'content submission', leaving a potential ambiguity for an agent selecting among similar quota tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning to the site_url parameter. It provides only 'The URL of the site' – a generic phrase that doesn't clarify format (e.g., full URL vs. domain), required scheme, or whether the site must already be verified. The description does not compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and a specific resource ('content submission quota and usage'). It distinguishes from the sibling get_url_submission_quota by naming the resource type, but it doesn't explicitly contrast the two, so an agent might wonder how they differ.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the very similar get_url_submission_quota. There is no mention of typical invocation context, prerequisites, or exclusions, leaving the agent 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_country_region_settingsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it performs well: it documents pagination mechanics (next_offset, offset-based continuation), default/max limits, the returned type, and raises BingWebmasterError on failure. It stops short of disclosing auth requirements or what specific setting fields are returned, but coverage is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Organized docstring with Args/Returns/Raises sections plus a focused pagination note. Each line earns its place and the most behaviorally important constraint (limit/pagination) is front-loaded. Slightly verbose only in restating site_url in Args.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a list-retrieval tool: output schema exists (List[CountryRegionSettings]), error behavior is stated, and pagination instructions are explicit. The only minor gap is not describing what fields each CountryRegionSettings entry contains, which the output schema likely handles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description compensates by explaining the pagination contract referencing limit and offset explicitly, including defaults (50) and cap (500). site_url is only restated as 'URL of the site', but the pagination detail adds real meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retrieve') and resource ('country/region settings for a specific site'), clearly distinguishing it from the add_ and remove_ sibling variants. The purpose is unambiguous, though it doesn't explicitly name its siblings like some top-tier descriptions do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives context that it operates 'for a specific site' and implies a read-only contrast to the add/remove counterparts in the sibling list, but never explicitly states when to use this tool versus add_country_region_settings or remove_country_region_settings. No exclusions or alternative routing is provided.
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses pagination behavior ('Returns at most limit rows... call again with offset=next_offset'), the default and maximum limit, and the error type raised. This goes beyond a simple description and helps the agent anticipate response handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. Each section (Args, Returns, Raises, pagination note) earns its place and adds useful information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a tool of this complexity: it identifies the required parameter, explains pagination, notes the error type, and describes the return concept. With an output schema present, the description does not need to fully detail return fields, and nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents limit and offset with descriptions, but site_url lacks a schema description. The description compensates by specifying 'site_url: The URL of the site.' It also explains the relationship between limit, offset, and next_offset, adding meaning beyond the raw schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get a list of URLs with crawl issues for a specific site.' It explains what the tool identifies (pages Bing's crawler had trouble accessing or processing), and this is distinct from sibling tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool: to identify pages that Bing's crawler had trouble accessing or processing. It does not explicitly name alternative tools or state when not to use it, but the use case is clear enough for an agent to select it appropriately among siblings.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| __type | No | |
| CrawlRate | Yes | |
| CrawlBoostEnabled | Yes | |
| CrawlBoostAvailable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description makes the read-only nature clear via 'Retrieve' and 'current crawl settings,' and it discloses that failures surface as BingWebmasterError. It stops short of explaining side effects, ownership/prerequisite checks, or response details, but those are less critical for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main action appears in the first sentence with no filler. The Args/Returns/Raises sections are compact and front-loaded, making it easy for an agent to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, the description covers purpose, the parameter, the return type, and a failure mode, which is sufficient for most invocation scenarios. It is only missing optional context like site verification requirements or how this relates to save_crawl_settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section defines site_url as 'the URL of the site,' which clarifies the single parameter despite the schema having no descriptions. It still largely paraphrases the parameter name and adds no format, scope, or validation details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Retrieve crawl settings for a specific site,' providing a clear verb, object, and scope. It distinguishes itself from the read/write sibling save_crawl_settings by the explicit retrieval framing, though it does not directly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to prefer this tool over related settings tools or what conditions must be true before calling it. The name and verb imply a read operation, but no context, prerequisites, or typical workflow is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crawl_statsB
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must carry behavioral disclosure. It does disclose return type, the BingWebmasterError, and the next_offset pagination loop, which are valuable. However, it claims the tool retrieves stats 'within a date range' while the schema provides no date-range parameters, so the agent is misled about an apparently core capability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and uses a conventional Args/Returns/Raises structure. The pagination sentence is useful, though it partially repeats schema-provided default/max values; overall it's tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and error/pagination disclosures cover much of the return behavior, but the date-range capability promised in the first line has no corresponding parameters, leaving a critical gap in how to invoke the tool for that stated scope. There is also no guidance on how site_url is validated or whether any auth is needed, despite annotations being absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes limit and offset (67% coverage), so the description doesn't need to re-explain them; it adds value by spelling out the next_offset pagination pattern. But site_url only gets a trivial gloss ('The URL of the site') and the unsupported date-range assertion adds confusion rather than semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Retrieve') and resource ('crawl statistics') for a specific site, and the resource name distinguishes it from sibling tools like get_crawl_settings and get_crawl_issues. However, the clause 'within a date range' is unsupported by the input schema, which lacks date parameters, adding ambiguity to the actual scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear operational guidance about pagination (limit/offset/next_offset), but it does not state when to choose this over sibling tools or any exclusions. Usage context is implied ('crawl statistics' vs settings/issues) rather than explicitly routing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deep_linkB
Get deep links for a specific algo URL. (Deprecated)
Args: site_url: The URL of the site url: The specific URL to get deep links for
Returns: List[DeepLink]: List of deep links
Raises: BingWebmasterError: If deep links cannot be retrieved
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It does mention deprecation, pagination (limit/offset/next_offset), and a specific exception (BingWebmasterError). However, it omits other behavioral traits like whether it's read-only, authentication requirements, or rate limits. The pagination and deprecation are valuable, but the picture 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and logically ordered: purpose, deprecation, args, returns, raises, and pagination note. It front-loads the key action and deprecation. No wasted words, though the Args section could be considered redundant with the schema, but it's acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with pagination, the description covers the mechanics well, but it fails to guide the agent on the deprecation—no alternative tool is suggested, and 'algo URL' remains undefined. The output schema exists, so return details aren't required, but the missing deprecation guidance and unclear terminology leave the agent without full context for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only limit and offset have descriptions). The description adds brief meanings for site_url and url, which the schema lacks, and explains the pagination interaction. However, it doesn't clarify what 'algo URL' means or expand on the parameters beyond what schema states, so it partially compensates for the gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Get deep links') and the resource ('a specific algo URL'), which is clear enough to identify the core function. However, the term 'algo URL' is jargon and not defined, and it doesn't differentiate from sibling tools like get_deep_link_algo_urls or get_deep_link_blocks. It is more specific than a tautology, so a 4 is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, despite being marked 'Deprecated'. It doesn't name a replacement or suggest conditions for use, leaving the agent to guess whether this should be preferred or avoided. The pagination note is about how to use, not when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deep_link_algo_urlsB
Get algo URLs with deep links. (Deprecated)
Args: site_url: The URL of the site
Returns: List[DeepLinkAlgoUrl]: List of algo URLs with deep links
Raises: BingWebmasterError: If algo URLs cannot be retrieved
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the error type (BingWebmasterError), mentions the deprecation, and documents pagination behavior. It does not specify auth requirements, whether it is read-only, or any side effects. It offers moderate transparency but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear one-line summary followed by Args/Returns/Raises and pagination notes. Information is front-loaded and each line serves a purpose. Slightly verbose with the docstring format, but appropriate for a deprecated tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return format is covered elsewhere. The description includes error handling and pagination. The main gap is the lack of a replacement reference given the deprecation, and no mention of typical use cases or constraints beyond pagination. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema already documents 'limit' and 'offset' clearly. The description only restates site_url as 'The URL of the site' which adds little. It does reference offset in the pagination context, which adds practical meaning. Overall it neither fully compensates for the uncovered site_url nor adds substantial new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The one-liner 'Get algo URLs with deep links.' states a specific verb and resource. The deprecation marker adds clarity about its current status. It does not explicitly distinguish from sibling deep-link tools like get_deep_link or get_deep_link_blocks, but the 'algo URLs' qualifier is reasonably specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete pagination instructions ('call again with offset=next_offset'), which is practical usage guidance. However, it does not explain when to prefer this tool over alternatives, nor does it mention a replacement given the deprecation. No when-not guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deep_link_blocksA
Get deep link blocks for a site.
Args: site_url: The URL of the site
Returns: List[DeepLinkBlock]: List of deep link blocks
Raises: BingWebmasterError: If blocks cannot be retrieved
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states the return type (List[DeepLinkBlock]), potential error (BingWebmasterError), and explains pagination via limit, offset, and next_offset. It does not explicitly state that the operation is read-only, but the 'get' verb implies this, and the pagination detail is beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with Args/Returns/Raises sections and includes a brief pagination note. It is not overly long, but the formatting adds some verbosity. The core purpose is front-loaded, and each sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema (List[DeepLinkBlock]) and the description covering error handling and pagination, the tool is adequately documented for an agent to call it correctly. It lacks explicit mention of authentication prerequisites or whether the operation is read-only, but these are common and implied by the 'get' prefix.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers limit and offset with descriptions, but site_url has no description; the description fills that gap with 'The URL of the site.' Additionally, the description explains how limit and offset relate to pagination (next_offset), adding semantic value beyond the schema's simple type constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get deep link blocks for a site.' It clearly distinguishes from sibling tools like get_deep_link (singular) and add_deep_link_block by focusing on retrieval of blocks for a site, and the mention of returning a list reinforces the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not mention when to use this tool versus alternatives such as get_deep_link, add_deep_link_block, or remove_deep_link_block. It provides no conditions for selection, exclusions, or comparisons to sibling tools, leaving the agent 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_feed_detailsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| feed_url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses pagination behavior (limit, offset, next_offset), the return type, and the error type. It does not mention side effects, but the operation is clearly a read, and the pagination detail adds meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear Args, Returns, Raises, and pagination sections. It is concise and avoids filler, though the Args section partially duplicates schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no annotations, the description covers purpose, arguments, return type, error behavior, and pagination. It lacks explicit usage guidance and details about the Feed object, but the presence of an output schema reduces the need to explain return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, so the description must compensate for site_url and feed_url, but it only restates their names ('The URL of the site' and 'The URL of the feed'). It does add useful pagination semantics for offset via the next_offset note, but the core parameters remain under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get detailed information about a specific feed.' This clearly distinguishes it from list-style siblings like get_feeds by emphasizing 'specific feed,' though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for retrieving details about a single feed rather than listing feeds, but it gives no explicit guidance on when to prefer this tool over get_feeds or other feed-related tools. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feedsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly explains pagination behavior (next_offset, offset), limits, and error raising, which goes beyond the schema. It does not mention read-only status, but 'get' implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose up front and concise Args/Returns/Raises sections. The pagination note is direct and useful, though the Args section for site_url adds little beyond the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description covers the essential call sequence, pagination, and error handling. It lacks ordering/filtering details, but these are not critical for a basic list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes limit and offset, but site_url has no schema description. The description's mention of site_url as 'The URL of the site' is trivial and does not add meaningful constraints. With 67% schema coverage, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get all sitemap feeds') and the resource scope ('for a site'). It is distinct from sibling tools like get_feed_details or submit_feed, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful context on pagination and limits, but does not explicitly state when to use this tool versus alternatives like get_feed_details for a single feed. No when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fetched_url_detailsB
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| Url | Yes | |
| Date | Yes | |
| Status | Yes | |
| __type | Yes | |
| Headers | Yes | |
| Document | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states what the tool returns (FetchedUrlDetails) and that it raises BingWebmasterError, adding some behavioral transparency. However, with no annotations, it does not disclose side effects, permission requirements, rate limits, or what 'fetched' status implies. It is a read operation by name 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one summary sentence, then Args, Returns, and Raises sections, each with a single line. No filler or repetition beyond the weak site_url text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema absent and many sibling tools present, the description does not explain how this relates to fetch_url or get_fetched_urls, nor what conditions must hold (e.g., URL must have been fetched). It gives the essentials but leaves relationship and return-structure details unsaid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 lists both args but site_url's description ('The URL of the site') is nearly tautological jew and url's ('The specific URL to get details for') merely restates the tool's purpose. Basic placeholder semantics, not enough to resolve ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed information about a specific fetched URL' gives a clear verb and resource. It is distinct from siblings like fetch_url and get_fetched_urls, though it does not explicitly call out that distinction. Overall purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus related siblings (fetch_url, get_fetched_urls). There is no mention of prerequisites, such as the URL needing to have been previously fetched or being associated with the given site_url.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fetched_urlsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the pagination contract (limit, max, next_offset), the return type with status, and a Raises clause for error conditions. It does not explicitly state read-only behavior, but the verb 'Get' makes non-mutation reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-sentence purpose, compact Args/Returns/Raises sections, and a crucial pagination note. The Args section redundantly lists only one of three parameters, which is a minor inconsistency, but overall every element earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return-value structure, and the description covers pagination and error behavior, so agents have what they need to invoke and iterate. The main gaps are that it doesn't mention that site_url must be a verified site or explicitly route users to get_fetched_url_details for single-URL details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; limit and offset already have clear schema descriptions, so the description adds little there. For site_url, it only says 'The URL of the site,' which is minimally more than the schema's title. The next_offset/offset interplay is behavioral guidance rather than new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb-resource pair: 'Get a list of URLs that have been submitted for fetching.' This is specific enough to convey the tool's core function. It doesn't explicitly name or distinguish from the sibling get_fetched_url_details, but 'list' versus 'details' creates reasonable separation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage guidance for pagination: 'call again with offset=next_offset to get more rows.' However, it does not state when to choose this tool over alternatives like get_fetched_url_details or submit_url, leaving the selection context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keywordB
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| country | Yes | ||
| end_date | Yes | ||
| language | Yes | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It does disclose return behavior ('Optional[Keyword]' and 'None if no data available') and the BingWebmasterTools exception, which is useful. However, it does not mention whether this operation has side effects, requires special permissions, or any peculiarities of the returned keyword impression data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with a one-sentence summary followed by clearly separated Args/Returns/Raises sections. It avoids redundancy and is easy to parse, though it could be more concise in the parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the inputs, return type, and failure behavior, which is adequate for a simple lookup tool. However, it does not explain when to prefer this over similar keyword/query tools, nor does it clarify any prerequisites or expected input formats beyond the schema, leaving some contextual ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions, so the Args section carries the burden. It explains each of the five parameters, but only superficially: 'The country code' and 'The language code' add some meaning, while 'query' and the date parameters are near-tautological and lack format or constraint details such as expected date formats or language code standards.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states the operation ('Get keyword impressions') and the primary scope ('for a selected period'). It is clear enough on its own but does not distinguish itself from the many sibling tools like get_keyword_stats or get_related_keywords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_keyword_stats, get_related_keywords, or get_query_stats. The description simply restates the function rather than explaining its specific use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_statsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| query | Yes | ||
| offset | No | Index of the first row. | |
| country | Yes | ||
| language | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses pagination semantics (limit default 50, max 500, next_offset/offset loop) and the BingWebmasterError raise. It does not mention auth or rate limits, which prevents a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, Raises, and pagination note. It is concise and front-loads the core purpose, though the Args block somewhat overlaps with the input schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is usable for a simple read operation with an output schema, covering pagination and errors. However, it does not distinguish this tool from the many sibling keyword/query statistics tools, leaving the agent without enough selection context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, but the description compensates by explaining query, country (example 'gb'), and language (example 'en-GB'). Limit and offset are already documented in the schema, and the pagination note adds contextual meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: 'Retrieve keyword statistics for a specific query.' However, it doesn't clarify how this differs from sibling tools like get_query_stats or get_keyword, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use guidance or alternatives. While 'for a specific query' implies a use case, the many sibling statistics tools make the lack of routing guidance a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_link_countsB
Retrieve link counts for a specific site.
Args: site_url: The URL of the site page: The page number of results to retrieve
Returns: LinkCounts: Summary of link counts
Raises: BingWebmasterError: If link counts cannot be retrieved
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| Links | Yes | |
| TotalPages | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It states it 'Retrieve's data and raises a BingWebmasterError on failure, implying a read-only operation and an error condition. However, it does not mention rate limits, authentication requirements, or any side effects. The description covers basic behavior but lacks depth, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, then clearly labeled Args, Returns, and Raises sections. Every sentence adds value, and the structure front-loads the core action. There is no redundancy or unnecessary prose, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with an output schema available, the description covers the essential aspects: the parameters, the return type, and the error case. However, it omits details such as pagination semantics (e.g., what page 0 means, page size) and does not mention any constraints on site_url format. The presence of an output schema reduces the need to explain return structure, but the description still leaves some operational details unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries the full burden for parameter meaning. It provides clear explanations for both site_url ('The URL of the site') and page ('The page number of results to retrieve'). While not extremely detailed, it adds meaningful context beyond the schema's bare types and constraints, warranting a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (link counts for a specific site), which is specific enough to understand the core purpose. It does not explicitly differentiate from sibling tools like get_url_links, but the wording is unambiguous. The verb and resource are distinct, earning a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as get_url_links or get_children_url_info. It does not state prerequisites, exclusions, or conditions that would select this tool. The only usage hint is the parameter description, which is not explicit enough for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_query_statsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | ||
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the pagination contract (limit default/max, offset continuation via next_offset), the return type, and a raised error. It doesn't cover auth, data freshness, or exact URL requirements, but the core call behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the docstring is compact with clear Args/Returns/Raises sections. The Args section partly duplicates the schema, but the pagination note earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated read tool with an output schema, the description covers required params, pagination, and error behavior. It is slightly incomplete on sibling differentiation and on what 'detailed traffic statistics' concretely contain, but the output schema fills the return-shape gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for the two required params that lack schema descriptions (site_url, page), and explains how limit/offset interact with next_offset. Schema already describes limit/offset, so the incremental value is moderate but real.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('detailed traffic statistics for a specific page'), and the return type clarifies it returns query-level stats for one page. It doesn't explicitly distinguish itself from sibling tools like get_query_page_stats or get_page_stats, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage from the tool name and one-line purpose, and provides concrete pagination instructions (use offset=next_offset when next_offset is reported). It gives no guidance on when to choose this over sibling stats tools or any exclusions, so it stops at implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_statsB
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses pagination behavior (limit, offset, next_offset) and the BingWebmasterError exception, which is useful. However, it does not mention potential rate limits, permission requirements, or any side effects, and it does not clarify what 'top pages' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args/Returns/Raises sections and a clear one-line purpose. It includes necessary pagination details without unnecessary elaboration, though the formatting is a bit formal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema, and three parameters, the description covers the essential usage: pagination, error handling, and parameter semantics. It is sufficient to call the tool correctly, though it could mention what constitutes 'top pages' or any prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes limit and offset, but the description adds meaning by explaining how offset works with next_offset for pagination and the default/max limits. It also provides a description for site_url, which is missing from the schema, thus compensating for the 67% coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 traffic statistics for top pages'. It is specific enough to distinguish from many sibling tools that focus on query-level or crawl stats, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as get_query_stats or get_rank_and_traffic_stats. No conditions, exclusions, or alternative references are provided, leaving the selection entirely to the agent's inference.
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_statsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | ||
| limit | No | Maximum number of rows to return. | |
| query | Yes | ||
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly explains the pagination loop with `limit`, `offset`, and `next_offset`, and documents that a `BingWebmasterError` can be raised. This adds useful behavioral context beyond the raw schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with Args, Returns, and Raises sections, and the pagination behavior is front-loaded after the initial purpose. It is a bit longer than strictly necessary but each sentence contributes meaningful operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential call patterns, pagination, and error behavior. With output schema present, return-field details are not required. However, given the large set of closely named statistics siblings, the definition would be stronger if it explained how this tool differs from `get_query_page_stats` or when to prefer one over the other.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description must compensate. It clarifies that `page` is a page URL and explains the pagination behavior for `limit` and `offset`. However, `site_url` and `query` are only restated with minimal elaboration, so the gap is only partially filled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get detailed statistics for a specific query and page combination.' This clearly identifies what the tool does, though it does not explicitly distinguish it from the similar sibling tools like get_query_page_stats or get_page_query_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving detailed stats for a specific query and page URL, but it gives no explicit guidance about when to choose this over the many similar query/page statistic tools in the sibling list. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_query_page_statsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| query | Yes | ||
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the return type (List[QueryStats]), the raised exception (BingWebmasterError), row limits (default 50, max 500), and pagination via next_offset/offset. It does not state explicit read-only semantics or define 'detailed traffic statistics,' but key operational behaviors are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary followed by Args/Returns/Raises sections and a concise pagination note. Every sentence contributes useful information, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Invocation details such as parameters, return type, error behavior, and pagination are reasonably complete, and an output schema likely covers the return structure. However, the dense cluster of sibling tools and absence of selection guidance leaves the agent at risk of confusing this tool with similar ones, especially with no annotations to fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with site_url and query lacking schema descriptions. The description adds short glosses ('The URL of the site', 'The search query to get statistics for'), but these are largely obvious from the parameter names and add limited semantic detail. Optional limit and offset are already described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Get detailed traffic statistics for pages matching a specific query.' This distinguishes it as a page-level stats tool for a query, but it does not explicitly differentiate it from close siblings like get_query_page_detail_stats or get_page_query_stats, so it misses the full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many similar siblings (get_query_stats, get_query_traffic_stats, get_page_stats, get_query_page_detail_stats). The description only provides pagination instructions, not selection criteria or alternatives, so an agent has no help choosing among overlapping tools.
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the failure mode via 'Raises: BingWebmasterError' and the pagination contract with 'next_offset', which goes beyond the input schema. It does not explicitly state read-only or authentication requirements, but 'Get' plus a Returns section make the non-mutating nature clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with a front-loaded purpose, an Args/Returns/Raises section, and a pagination note. The middle explanation about URL parameters is slightly repetitive with the first sentence ('URL parameters' twice), but overall every major section contributes useful information without excessive fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low-to-moderate complexity, an output schema, and schema descriptions for limit/offset, the description is largely complete: it covers return type, failure behavior, and pagination. It lacks explicit guidance about when to choose the modifying siblings instead, but for a simple read operation this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents limit and offset, and the description adds value by explaining that offset should be set from a returned next_offset when paginating, and by restating site_url in Args. The site_url parameter lacks a schema description, so the description at least minimally fills that gap, though it does not specify URL format requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get a list of URL normalization parameters for a site.' This clearly distinguishes it from mutation siblings like add_query_parameter, remove_query_parameter, and enable_disable_query_parameter. The additional sentence about sorting/filtering parameters clarifies what the resource represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is the read/retrieval operation for URL normalization parameters, and it gives practical pagination instructions for handling large result sets. It does not explicitly name the modifying sibling tools as alternatives, but the get-versus-mutate contrast is strongly implied by the description and tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_query_statsB
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does add useful behavior: pagination via next_offset/offset, a default and maximum limit, and error type. However, it does not describe data scope, permissions, or what 'top queries' specifically means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, and Raises sections, plus a concise pagination note. There is minimal redundancy; the only slight overlap is between the opening sentence and the Returns line. Overall, every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter paginated query tool, the description covers the call pattern, return type, error raising, and pagination. The presence of an output schema likely covers return value details. It lacks tool-selection context and permission prerequisites, but is otherwise reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents limit and offset well. The description adds slightly to site_url by calling it 'The URL of the site' and explains how offset relates to next_offset. With 67% schema coverage, the description partially compensates but still does not clarify site_url format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Get detailed traffic statistics for top queries.' This is unambiguous as a verb+resource statement, but it does not explicitly differentiate itself from similar siblings like get_query_traffic_stats or get_query_page_stats, so it loses a point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_query_traffic_stats or get_keyword_stats. It mentions how pagination works, but that is an invocation detail, not a selection criterion or context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_query_traffic_statsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| query | Yes | ||
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the return type, raises BingWebmasterError on failure, and explains limit/offset pagination semantics including the next_offset pattern. It does not mention rate limits or authentication, but for a read-only statistics tool the disclosed behavior is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and compact: a clear purpose sentence, an Args section, a Returns section, a Raises section, and a pagination note. Every sentence adds meaningful information without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is largely complete for invoking the tool: required inputs, return type, error behavior, and pagination are all covered. An output schema exists, so return field details are not required. The main gap is the lack of explicit routing guidance among the many query-stats sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, so the description must compensate. It provides minimal semantics for site_url and query ('URL of the site', 'search query'), and it adds useful pagination semantics for limit and offset via the next_offset explanation. However, the required parameters lack deeper format or usage detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Get detailed traffic statistics for a specific query.' It is specific about needing site_url and query. However, it does not explicitly differentiate itself from siblings like get_query_stats or get_rank_and_traffic_stats, which also appear relevant based on their names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over the many sibling tools, such as get_query_stats, get_query_page_stats, or get_rank_and_traffic_stats. It does explain pagination usage, but that is operational guidance rather than tool-selection guidance.
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_statsA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it returns a list, supports pagination with limit and offset, and raises an error. This covers key behaviors, but it does not mention whether it is a read-only operation or any side effects, though none are indicated. Still, it provides useful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, starting with a clear one-sentence summary followed by parameter and return details. It front-loads the core action and includes only essential information. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (pagination, return list), the description covers the essential usage. It explains the pagination workflow clearly. However, it does not elaborate on the return object structure, but the output schema exists. It also lacks differentiation from siblings, but that is a usage guideline issue. Overall, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (limit and offset are documented, site_url is not). The description adds minimal detail on site_url (just 'The URL of the site'), which adds little beyond the parameter name. For a tool where site_url is the key input, more context (e.g., format or examples) would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get ranking and traffic statistics for a site.' It identifies the site as the subject and mentions the type of data. However, it does not differentiate from several similar sibling tools like get_query_traffic_stats, get_page_stats, or get_url_traffic_info, which could confuse an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by asking for a site URL and explaining pagination, but it does not explicitly state when to use this tool over the many related sibling tools (e.g., 'for site-level stats, use this; for page-level, use that'). There is no exclusionary guidance.
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the return type (List[SiteMoveSettings]), the error raised (BingWebmasterError), and pagination semantics (next_offset to continue), which is solid for a retrieval tool. However, it never explicitly states this is a read-only, non-destructive operation, and provides no detail about what a 'site move' entails or behavior on invalid site_url.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is compact and front-loaded: purpose first, then Args/Returns/Raises, with the high-value pagination note last. Every sentence earns its place with little waste. The Docstring-style Args/Returns sections are slightly verbose but defensible. It is efficient without being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool with an output schema and moderate schema coverage, the description is nearly complete: it covers purpose, the required parameter, return type, error type, and pagination. The main missing piece is usage guidance relative to siblings and an explicit statement of read-only behavior, but nothing an agent needs to invoke the call correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (limit and offset are described in the schema; site_url is not). The description adds minimal meaning for site_url ('The URL of the site') and, more valuably, explains the limit/offset relationship via next_offset — genuinely beyond the schema's standalone param descriptions. Since coverage is moderate, the description compensates reasonably but does not fully document site_url semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') plus a resource ('site move information') and a clear scope ('for a specific site' via site_url). This is unambiguous and distinct from the actual write counterpart among siblings (submit_site_move). However, it does not explicitly name or disambiguate against siblings such as get_sites or submit_site_move, so it stops short of the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It never distinguishes itself from get_sites, submit_site_move, or other retrieval tools, and offers no exclusions or conditions. The pagination note is operational behavior, not usage-vs-alternative direction, so an agent gets no help choosing this over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_rolesA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. | |
| site_url | Yes | ||
| include_all_subdomains | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses pagination semantics (limit default/max, next_offset loop), the error type (BingWebmasterError), and the return type. This goes beyond the schema and provides useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections for purpose, args, returns, raises, and pagination. Each sentence earns its place, though the return type is also present in the output schema, making that part slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, the description covers the tool's purpose, all parameters (via Args and the pagination note), return type, error behavior, and the pagination loop. An agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% and only covers limit/offset. The description's Args section adds meaning to site_url and include_all_subdomains, compensating for the gap. It also adds pagination context to limit/offset, which the schema does not fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (roles), and scope (specific site). Clearly distinguishes from sibling add_site_roles/remove_site_role as a read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly state when to use this tool vs alternatives. The read-only nature is implied by the verb, but there is no mention of sibling add_site_roles/remove_site_role or any exclusion context. For a simple getter the context is reasonable, but guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sitesA
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
Returns at most limit rows (default 50, max 500). When the result reports
a next_offset, call again with offset=next_offset to get more rows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of rows to return. | |
| offset | No | Index of the first row. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses pagination limits (default 50, max 500), the next_offset continuation pattern, and the error type raised on API failure. This gives an agent a clear contract for iterating over the full site list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then return/error behavior, then pagination. Every sentence earns its place and there is no redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, error behavior, and pagination details provided, the description is complete for this tool. The only non-obvious operational detail, the next_offset loop, is explicitly explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the pagination protocol: 'call again with offset=next_offset to get more rows', which goes beyond the schema's basic descriptions of 'limit' and 'offset'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Retrieve all sites in the user's Bing Webmaster Tools account' names a specific verb and resource and defines the account scope. This is distinct from sibling tools like add_site, remove_site, and get_site_roles, none of which list all sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool to retrieve all sites in the account, with explicit pagination guidance for getting more rows. It does not explicitly name alternatives or state when not to use it, but no sibling directly competes with this listing operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_infoB
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| Url | Yes | |
| IsPage | Yes | |
| __type | Yes | |
| HttpStatus | Yes | |
| AnchorCount | Yes | |
| DocumentSize | Yes | |
| DiscoveryDate | Yes | |
| LastCrawledDate | Yes | |
| TotalChildUrlCount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It does disclose the return type (UrlInfo) and a failure mode (BingWebmasterError), and the verb 'Retrieve' implies a read-only operation. However, it provides no context about permissions, rate limits, or what specific aspects of the URL are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear Args/Returns/Raises sections. Every section adds necessary information, and there is no redundant or filler content. The format makes the tool easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, so the description does not need to restate those. However, the description lacks guidance on when to use this tool over alternatives and does not clarify the difference between 'detailed information' and the more specific sibling tools, leaving some ambiguity for agents in a large toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 brief glosses for both parameters, distinguishing site_url from url, but lacks format details, examples, or clarification of how the two parameters interact. This is minimal but sufficient for basic invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Retrieve detailed information') applied to a specific resource ('a specific URL'). This distinguishes it from broader site-level tools, but it does not explicitly differentiate it from closely related siblings like get_url_traffic_info or get_children_url_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 only explains what the tool does and its parameters, leaving an agent to infer appropriate usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_url_linksA
Retrieve inbound links for a specific URL.
Args: site_url: The URL of the site link: The specific URL to get inbound links for page: The page number of results to retrieve
Returns: LinkDetails: Details about inbound links
Raises: BingWebmasterError: If link details cannot be retrieved
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | ||
| page | No | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| Details | Yes | |
| TotalPages | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to lean on, the description carries the full burden. It does disclose read-only retrieval semantics, pagination through the page argument, and a possible error via 'Raises: BingWebmasterError', which adds some behavioral context, but it does not mention permissions, rate limits, or result-page behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, clearly organized into Args, Returns, and Raises sections, and contains no filler. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with an output schema and no nested objects, the description covers the essential invocation details: parameters, return type, and error condition. It is complete enough for an agent to call it correctly, though it lacks usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The Args section provides a meaningful one-line explanation for each parameter, especially clarifying that 'link' is the URL whose inbound links are being retrieved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Retrieve inbound links for a specific URL.' It is distinct enough from most siblings, though it does not explicitly contrast itself with similar tools like get_link_counts or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_link_counts or get_url_info. The description gives the operation but not the decision context.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| __type | Yes | |
| DailyQuota | Yes | |
| MonthlyQuota | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries the burden of behavioral disclosure. It implies a read-only operation ('Get information'), and it mentions an error type ('Raises: BingWebmasterError') which adds some transparency. However, it does not explicitly state that it is non-destructive, does not describe any side effects, rate limits, or failure conditions beyond the generic error. This is minimal but provides basic clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the main purpose, and uses a clear Args/Returns/Raises structure. Every section is relevant and there is no fluff. It earns a high score for efficiency, though it could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the basic return and error. However, it does not mention when to use this quota tool versus the sibling 'get_content_submission_quota', and it does not explain the meaning of the returned quota in context. Given the simplicity of the tool, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the parameter 'site_url'. The description only states 'The URL of the site', which is essentially a restatement of the parameter name and lacks details such as required format (e.g., protocol, domain), validation rules, or examples. For a single parameter with no schema guidance, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Get information about URL submission quota and usage.' The verb 'Get' and the resource 'URL submission quota' are specific and unambiguous. It distinguishes from broader site management tools but does not explicitly differentiate from the sibling 'get_content_submission_quota', which is a similar quota-retrieval tool for content, so a small deduction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention any context, prerequisites, or tell the agent when to pick this over 'get_content_submission_quota' or other quota-related tools. It merely states the function, 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.
get_url_traffic_infoC
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| Url | Yes | |
| Clicks | Yes | |
| IsPage | Yes | |
| __type | Yes | |
| Impressions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation via 'Get', but does not explicitly state that it has no side effects, does not mention authentication requirements, rate limits, or what happens when the URL is invalid or not found. The Raises clause only mentions error handling, not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear Args/Returns/Raises sections, which is good. However, the content within those sections is repetitive with the schema and provides little additional value. It is not overlong, but it does not use its brevity effectively to convey essential distinctions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the existence of an output schema, the description still lacks crucial context. It does not specify what traffic metrics are returned (e.g., clicks, impressions, position), whether a date range is involved, or how this differs from get_page_stats and get_rank_and_traffic_stats. Without this, an agent cannot confidently select or correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The Args section provides brief explanations ('site_url: The URL of the site', 'url: The specific URL to get traffic info for'), but these are largely tautological, restating the parameter names without adding format constraints, required patterns, or relationships. The description adds minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get traffic details for a single page' which is a clear verb+resource. It identifies the tool as fetching traffic information for one URL. However, it does not differentiate from many siblings like get_page_stats, get_rank_and_traffic_stats, or get_url_info, which also target single pages, so it lacks the specificity needed to distinguish it in this crowded space.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its many siblings. It does not mention alternatives, exclusions, or context for selection. The description only restates the purpose without indicating scenarios where this tool is preferred, leaving an agent to guess among dozens of similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_blocked_urlA
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
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| site_url | Yes | ||
| blocked_url | Yes | ||
| entity_type | No | ||
| request_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that a BingWebmasterError is raised if the URL cannot be unblocked, which is useful. However, it does not mention the destructive nature explicitly, success behavior, or any side effects beyond removal. It is partially transparent but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose, a clear argument list, and a Raises section. It is front-loaded and each element earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is an output schema (not shown) and the tool is relatively simple, the description covers the arguments and errors. However, it does not explain the practical differences between CacheOnly and FullRemoval, nor any prerequisites like site verification. For correct invocation, an agent might need more context, so completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameters. It does: site_url and blocked_url are straightforward, and entity_type and request_type are given labels (Page/Directory, CacheOnly/FullRemoval) that the schema lacks (only integer enums). date is described but its role is ambiguous. This meaningfully adds to the schema, though not exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Remove a blocked URL from a site.' This is a specific verb+resource combination that immediately distinguishes it from sibling tools like add_blocked_url and get_blocked_urls. The list of arguments further clarifies the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (remove instead of add), but it does not explicitly state when to use this tool versus alternatives. There is no mention of prerequisites, such as the URL must already be blocked, or when to use a different removal method. The guidance is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_country_region_settingsB
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
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions `Raises: BingWebmasterError` but does not disclose other behavioral aspects: whether removal is permanent, if there are side effects, rate limits, or required permissions. It also doesn't describe the return value, which is crucial 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a docstring format, listing parameters and exceptions. It's appropriately sized for the tool's complexity. However, the parameter descriptions are minimal, and the Raises section could be more informative, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a nested object parameter (`settings` with a defined schema) and no annotations, the description is incomplete. It doesn't explain the structure of `settings` or how to construct it for removal, nor does it describe the return value or side effects. The output schema exists but is not referenced. It's adequate but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description lists the two parameters (site_url, settings) but provides no additional detail beyond their names. The schema defines `settings` as a complex object with a required structure, but the description does not explain how to specify the settings to remove, such as whether partial objects are accepted or which fields are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Remove' and the resource 'country/region settings from a specific site', which is clear. It is distinguishable from siblings like 'add_country_region_settings' and 'get_country_region_settings' by the verb. However, it does not explicitly differentiate from other 'remove_' tools, but the resource is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is used to remove settings, but provides no explicit guidance on when to use this tool versus alternatives like 'add_country_region_settings' or 'get_country_region_settings'. It lacks context on prerequisites, such as whether the site must be verified or settings must exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_deep_link_blockB
Remove a deep link block.
Args: site_url: The URL of the site market: The market code search_url: The search URL deep_link_url: The deep link URL to unblock
Raises: BingWebmasterError: If block cannot be removed
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | ||
| site_url | Yes | ||
| search_url | Yes | ||
| deep_link_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add one useful behavioral detail: it raises BingWebmasterError if the block cannot be removed. However, it does not disclose whether removal is permanent, what authorization is required, or any side effects, so the transparency is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, organized into Args and Raises sections, and avoids unnecessary prose. It is appropriately sized for the tool, though the brevity contributes to some under-specification that is penalized elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with four required parameters, no annotations, and 0% schema description coverage, the description leaves too much unstated. It does not explain the success/return behavior, prerequisite conditions, parameter formats, or how this relates to get/add_deep_link_block, making it incomplete for an agent to call confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but it mostly restates the parameter names: 'site_url: The URL of the site' and 'search_url: The search URL' add little meaning. Only 'deep_link_url: The deep link URL to unblock' and 'market: The market code' provide slight extra context, with no format or acceptable-value details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'Remove a deep link block' is a specific verb+resource statement, and the Args section clarifies that the deep_link_url is the URL to unblock. This distinguishes it from sibling tools like add_deep_link_block, get_deep_link_blocks, and update_deep_link by the removal action alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as the block existing or being discoverable via get_deep_link_blocks. The only contextual signal is the 'to unblock' wording, which implies but does not state the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_feedC
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
| Name | Required | Description | Default |
|---|---|---|---|
| feed_url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It only states the action and that an error is raised on failure, but does not mention side effects, idempotency, permission requirements, or impact on other data. This is insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with an Args and Raises section. It front-loads the purpose and includes only relevant information. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema details, the description is incomplete. It omits prerequisites (site must be verified, feed must exist), potential side effects, and return behavior. An agent would lack information needed to call it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero description coverage, so the description must define the parameters. It does give one-line definitions for both site_url and feed_url, which clarifies their purpose, but lacks detail on format or validation. It adds some meaning but does not fully compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and the resource ('previously submitted sitemap feed'), making the purpose unambiguous. It does not explicitly differentiate from sibling tools like remove_site or remove_blocked_url, but the resource is specific enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor any prerequisites (e.g., the site must be verified, the feed must have been submitted via submit_feed). It simply states 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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It acknowledges the destructive 'Remove' action and mentions a BingWebmasterError, but it does not disclose prerequisites such as site ownership, whether the block must already exist, or whether removal is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with a one-sentence summary followed directly by the Args and Raises sections. There is no redundant or filler content; every line serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives the operation, both required arguments, and an error condition, which is adequate for a simple two-parameter removal call. However, it omits usage context, permissions, and any connection to related preview-block tools, so an agent must infer operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the parameter descriptions in the tool description are the only source of meaning. They distinguish site_url as 'the URL of the site' and url as the page from which to remove the preview block, but they provide no format, examples, or URL conventions, which leaves some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and explicit resource ('page preview block'), so the core operation is unambiguous. It does not explicitly differentiate itself from sibling tools like remove_deep_link_block or add_page_preview_block, but the resource name and arguments make the intent clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when a page preview block should be removed, but it provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, leaving the agent to infer the appropriate selection from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_query_parameterC
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| query_parameter | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry disclosure. It mentions a Raises condition but doesn't cover whether removal is permanent, whether the parameter must first exist, or any side effects. For a mutating operation this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single-sentence purpose then Args/Raises blocks. No fluff; the action sentence is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Two required parameters, no output schema, no annotations. The description doesn't state what counts as a valid site_url or what 'remove' does to existing crawl data, and the Raises line lacks conditions beyond failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section just restates the parameter names with trivial glosses; with 0% schema coverage the description was expected to compensate with concrete formats or examples, and it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Remove') and resource ('a URL normalization parameter from a site'), making the core purpose unambiguous. It doesn't explicitly differentiate from the sibling enable_disable_query_parameter, but the verb 'remove' distinguishes it well enough in most contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use removal versus toggling via enable_disable_query_parameter, or what prerequisites exist (e.g., site must be added/verified). The usage context is only implied by the verb 'remove'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_siteA
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does disclose that a BingWebmasterError is raised if removal fails, which adds behavioral context. However, it does not mention whether removal is irreversible, whether site verification is required, or what associated data (e.g., roles, feeds, blocks) might be affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, followed by parameter and error details in clean sections. No superfluous text exists; every line adds needed information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter removal operation with an output schema present, the description covers the purpose, parameter, and error condition. It does not mention preconditions like site existence/verification or consequences of removal, but the operation is simple enough that an agent can call it correctly with the given information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description's 'Args' section is essential. It clearly defines site_url as 'The URL of the site to remove,' giving the single parameter meaningful semantics beyond the schema's bare 'Site Url' title. It lacks format or example values, but for a simple URL string this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and a specific resource ('a site from Bing Webmaster Tools'), making the tool's core purpose unambiguous. It also differentiates from siblings like remove_site_role, remove_feed, and remove_blocked_url by referring to the site-level resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied from 'Remove a site from Bing Webmaster Tools,' but there is no explicit guidance on when to choose this over alternatives, no prerequisites, and no mention of when not to use it. The sibling list suggests many removal/role tools, yet no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_site_roleB
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| site_role | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden for surfacing side effectscor. It discloses only that a BingWebmasterError is raised when removal fails. It does not state whether removal is destructive/permanent, whether the role object must match an existing role exactly, or how the user is identified (e.g., by Email in the site_role object).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence followed by compact docstring fields. There is no redundancy or fluff; all lines serve a purpose (summary, args, raised error).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits essential context for a destructive operation: how to construct/pass site_role, whether to fetch it first via get_site_roles, what success/failure responses look like, and whether this permanently removes the user's access. With no output schema and no annotations, an agent is left with an under-specified call contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'Args' section merely restates the parameter names: 'site_url: The URL of the site' and 'site_role: The site role to remove'. It does not explain the required shape of the SiteRole object (fields like Email, Role, Site), which is especially confusing since site_role is typed as a complex object in the schema. The description adds almost no meaning beyond what an agent can infer from names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and object: 'Remove a user's site role.' This clearly distinguishes the tool from its sibling tools get_site_roles and add_site_roles without needing to read further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this operation versus alternatives like add_site_roles, nor any prerequisites (e.g., fetching the role via get_site_roles first). The only implied usage is the action word 'remove', which is not enough for an agent to safely choose and invoke this tool.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| crawl_settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It only says settings are saved and that a BingWebmasterError may be raised; it does not state whether existing settings are overwritten, whether the site must already exist, or any authorization prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured as a docstring with Args and Raises sections, with the purpose front-loaded and no filler. It loses a point only because the Args lines add little beyond the parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested parameter object and no annotations, this description is incomplete. It lacks usage context, an explanation of the crawl_settings structure, and behavioral caveats; the output schema does not compensate for these selection and invocation gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but it only restates the parameter names ('The URL of the site', 'The new crawl settings to apply'). It fails to explain the required CrawlSettings shape, such as the 24-element CrawlRate integer array or the boolean flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States precisely that it saves crawl settings for a specific site, with a clear verb (save) and resource (crawl settings). It naturally distinguishes itself from sibling get_crawl_settings as the write counterpart, and no other sibling shares the 'save' verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool instead of alternatives like get_crawl_settings, nor any preconditions such as site verification. An agent must infer its role purely from the name, since the description only restates the purpose and arguments.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes | ||
| http_message | Yes | ||
| dynamic_serving | Yes | ||
| structured_data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 that a BingWebmasterError is raised on failure, which is useful, but it does not disclose whether the operation is destructive, whether it overwrites existing content, whether it requires special permissions, or what the response contains. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. The parameter list is organized and the dynamic_serving mapping is clearly formatted. The Raises section adds useful error information. It is slightly verbose with the full parameter list repeated from the schema, but overall it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 required parameters, no annotations, and an output schema exists but the description does not explain return values. The description covers the action, parameters, and error behavior, but lacks guidance on when to use it, what the response looks like, and any side effects. For a content submission tool with no annotations, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does add meaning for dynamic_serving by listing the enum-like mapping (0-5 with device names), which is valuable. However, http_message and structured_data are only described as 'base64 encoded' with no further context on format or required structure, and site_url/url are only given examples. The description partially compensates but leaves several parameters under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Submit content for a specific URL.' This distinguishes it from sibling tools like submit_url and submit_feed, which submit URLs or feeds rather than content payloads. However, it doesn't explicitly contrast with those siblings, so it loses a point for not naming the differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing required parameters and the action, but it does not state when to use this tool versus alternatives like submit_url or submit_feed. There is no explicit when/when-not guidance, so an agent must infer that this is for content submission rather than URL-only submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedB
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
| Name | Required | Description | Default |
|---|---|---|---|
| feed_url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the error condition via the Raises section (BingWebmasterError if feed cannot be submitted), which is useful. However, it omits side effects (e.g., whether submitting an existing feed replaces it), idempotency, rate limits, or auth requirements. The Raises note adds some value but the mutation's side-effect profile is unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-sentence purpose up front, followed by an Args block and a Raises block. The front-loaded purpose sentence makes the tool's role immediately clear, and each section (args, error) earns its place. Some brevity comes at the cost of missing guidance, but structurally it is efficient and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation-style tool with no annotations, 0% schema coverage, and an output schema present but not described. For an agent to invoke it correctly it would benefit from knowing side effects, idempotency, prerequisites (site ownership/verification), and whether re-submission overwrites an existing feed. None of this is covered. The two parameters are documented at a basic level, but the broader behavioral context is missing, making this incomplete for a mutation tool with zero annotation support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The Args section adds basic meaning beyond the bare schema: site_url is 'The URL of the site' and feed_url is 'The URL of the sitemap feed.' This is minimal but genuinely clarifies the role of each parameter versus the schema alone. It doesn't specify URL formats, whether site_url must be a verified/owned site, or feed format constraints, so it's adequate but not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Submit a sitemap feed for indexing' — a specific verb (submit) plus resource (sitemap feed) plus purpose (for indexing). This distinguishes it from sibling retrieval tools (get_feeds, get_feed_details) and deletion tools (remove_feed), and the resource type separates it from submit_url and submit_content. It doesn't explicitly name any sibling, but the action+resource is specific enough to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Among siblings there are several submission tools (submit_url, submit_url_batch, submit_content) and feed-management tools (get_feeds, remove_feed) that an agent could confuse it with, but the description offers no selection criteria, prerequisites (e.g., site must be verified/owned), or conditions that would make this the right choice.
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
| Name | Required | Description | Default |
|---|---|---|---|
| settings | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 disclose that a BingWebmasterError is raised on failure, but it does not reveal the mutating nature of a site move, potential side effects, or any ownership/authorization requirements. This is a significant transparency gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and uses a clean Args/Raises structure. Every line is brief, though some content is not especially informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a complex nested settings object and opaque enum values, the description is incomplete. An agent would need the schema to discover required fields, and even then the enum semantics are unexplained. The Raises clause adds a small amount of context but does not fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to compensate, but it mostly restates the parameter names: 'The URL of the site' and 'The site move settings containing move configuration' add little beyond the schema titles. It fails to document the required fields inside SiteMoveSettings or the meaning of the numeric MoveType/MoveScope enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Submit a site move request.' This distinguishes it from read-style siblings like get_site_moves, though it does not explain any context beyond the bare operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, when not to use it, or what prerequisites exist (e.g., site verification, valid move scope). Usage is only implied by the name and verb, so the agent must infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_urlA
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure responsibility. It does disclose the limited-quota behavior and documents a Raises case for BingWebmasterError. However, it does not explain whether submission is asynchronous, whether duplicate/resubmission is allowed, or what a successful submission implies beyond the return value covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and logically ordered: purpose, quota prerequisite, args, and exceptions. The purpose sentence is front-loaded and effective. Minor grammar issues like 'limited number of url' and 'how much urls' slightly reduce polish but do not hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter submission tool, the description covers the essential action, the quota check, parameter roles, and the error path. The output schema presumably documents the return value, so that is not a gap. It could be more complete by naming the bulk alternative explicitly or giving URL examples, but nothing essential for invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides zero parameter descriptions (0% coverage), so the description must compensate. The Args section gives each parameter a basic role: site_url is the URL of the site and url is the specific URL to submit. This adds minimal meaning beyond the schema, but it omits format details, URL format expectations, and the exact relationship between the two required URLs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Submit a single URL for indexing.' This clearly defines both the action and the resource. The word 'single' also distinguishes it from the sibling tool submit_url_batch, so an agent can tell them apart immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear, actionable prerequisite: call get_url_submission_quota to determine how many URLs can be submitted. It does not explicitly name alternatives like submit_url_batch for bulk submissions or state when not to use this tool, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_url_batchB
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | ||
| url_list | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the 500 URL max, the quota check, and an error case, but does not disclose whether the batch is atomic, how partial failures are handled, or any side effects. This is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the primary purpose, then adding the limit, quota note, args, and error. It avoids unnecessary detail and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, batch limit, quota dependency, and error behavior. However, it omits prerequisites like site verification, whether the operation is synchronous, and any success response semantics (though output schema exists, so return format is not required). 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description is the only source for parameter meaning. It provides only trivial descriptions ('The URL of the site' and 'List of URLs to submit') that essentially restate the parameter names without adding constraints, URL format, or prerequisites.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it submits multiple URLs for indexing in a single request, which directly distinguishes it from the single-URL submit_url sibling. The verb and resource are specific, though it doesn't explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage guideline by advising to call get_url_submission_quota to determine the allowable number of URLs, which is a concrete step. However, it does not explicitly state when to prefer this over submit_url or other submission tools, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_deep_linkB
Update deep link weight. (Deprecated)
Args: site_url: The URL of the site algo_url: The algo URL deep_link: The deep link URL weight: The new weight for the deep link
Raises: BingWebmasterError: If deep link cannot be updated
| Name | Required | Description | Default |
|---|---|---|---|
| weight | Yes | ||
| algo_url | Yes | ||
| site_url | Yes | ||
| deep_link | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure, and it does provide two concrete facts: the tool is deprecated and it raises BingWebmasterError on failure. However, it does not describe success behavior, side effects, reversibility, or what changing the weight actually affects. The deprecation and error clauses justify a 3, but the mutation's consequences remain largely unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring is compact and well-ordered: a one-line summary with the deprecation note front-loaded, followed by a terse argument list and an error clause. There is no redundant prose or preamble. It loses a point because several parameter lines are filler that merely restate the parameter names rather than adding meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated four-parameter tool with no annotations and 0% schema coverage, key facts are missing: the semantics of the weight enum, a pointer to the replacement tool, and any guidance on when it is still appropriate to call it despite deprecation. The output schema covers return shape, so that absence is not penalized, but the deprecation and enum gaps leave the description materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but three of the four parameter lines are nearly circular ('algo_url: The algo URL', 'deep_link: The deep link URL'). Most critically, the weight parameter's enum values (0-3) are never explained, so an agent cannot know whether higher or lower weights are heavier or what semantic each value carries. This fails to compensate for the schema's complete lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Update deep link weight' names a specific verb, resource, and attribute, so an agent knows exactly what operation is performed. The '(Deprecated)' marker adds useful lifecycle context, and the tool is distinguishable from siblings like get_deep_link or remove_deep_link_block because none of them target the weight attribute. It stops short of 5 because it doesn't explicitly contrast itself with any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is '(Deprecated)', which implicitly tells the agent this tool is not the recommended path, but no alternative or when-to-use condition is provided. With roughly 60 sibling tools, an agent cannot determine what to call instead without external investigation. The deprecation marker is implied usage guidance at best, so it earns a 3 rather than 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_siteB
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
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It mentions the return type (bool) and that it raises BingWebmasterError, but does not state whether the operation is read-only, whether it has side effects, or whether it is idempotent. For a verification tool, it should clarify that it does not modify state, which is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with Args, Returns, and Raises sections. The opening sentence is clear and front-loaded. There is no fluff, and each line serves a purpose. A minor deduction for not including usage guidance, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (bool return) and a single parameter, the description is minimal. It does not mention prerequisites, such as the site needing to be added first, nor does it explain what 'verification' entails in the broader site-management workflow. This leaves gaps for an agent to call it incorrectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, so the description must compensate. It provides an Args section with a brief explanation for site_url: 'The URL of the site to verify.' This adds a little context beyond the schema's 'Site Url' title, but does not specify format, validation, or examples. It meets a baseline but does not fully enrich the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Attempt to verify ownership of a site.' This specifies a verb (verify), a resource (ownership of a site), and distinguishes it from sibling tools like add_site or get_sites. The 'Attempt' nuance adds appropriate uncertainty without clouding the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention that verification likely follows adding a site, nor does it contrast with any sibling. The description gives no context about the typical workflow 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
62 tool updates
v0.2.0- Changed
add_blocked_url2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "blocked_url" -]New value: +[ + "site_url", + "blocked_url" +]
- Changed
add_connected_page2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "master_url" -]New value: +[ + "site_url", + "master_url" +]
- Changed
add_country_region_settings2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "settings" -]New value: +[ + "site_url", + "settings" +]
- Changed
add_deep_link_block2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "market", - "search_url", - "deep_link_url" -]New value: +[ + "site_url", + "market", + "search_url", + "deep_link_url" +]
- Changed
add_page_preview_block2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url", - "reason" -]New value: +[ + "site_url", + "url", + "reason" +]
- Changed
add_query_parameter2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "query_parameter" -]New value: +[ + "site_url", + "query_parameter" +]
- Changed
add_site2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
add_site_roles2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "delegated_url", - "user_email", - "authentication_code", - "is_administrator", - "is_read_only" -]New value: +[ + "site_url", + "delegated_url", + "user_email", + "authentication_code", + "is_administrator", + "is_read_only" +]
- Changed
enable_disable_query_parameter2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "query_parameter", - "is_enabled" -]New value: +[ + "site_url", + "query_parameter", + "is_enabled" +]
- Changed
fetch_url2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
get_active_page_preview_blocks4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_blocked_urls4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_children_url_info4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
get_children_url_traffic_info4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
get_connected_pages4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_content_submission_quota2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_country_region_settings4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_crawl_issues4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_crawl_settings2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_crawl_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_deep_link4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
get_deep_link_algo_urls4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_deep_link_blocks4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_feed_details4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "feed_url" -]New value: +[ + "site_url", + "feed_url" +]
- Changed
get_feeds4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_fetched_url_details2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
get_fetched_urls4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_keyword2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "query", - "country", - "language", - "start_date", - "end_date" -]New value: +[ + "query", + "country", + "language", + "start_date", + "end_date" +]
- Changed
get_keyword_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "query", - "country", - "language" -]New value: +[ + "query", + "country", + "language" +]
- Changed
get_link_counts2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_page_query_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "page" -]New value: +[ + "site_url", + "page" +]
- Changed
get_page_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_query_page_detail_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "query", - "page" -]New value: +[ + "site_url", + "query", + "page" +]
- Changed
get_query_page_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "query" -]New value: +[ + "site_url", + "query" +]
- Changed
get_query_parameters4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_query_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_query_traffic_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "query" -]New value: +[ + "site_url", + "query" +]
- Changed
get_rank_and_traffic_stats4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_related_keywords4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "query", - "country", - "language", - "start_date", - "end_date" -]New value: +[ + "query", + "country", + "language", + "start_date", + "end_date" +]
- Changed
get_site_moves4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_site_roles4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_sites4 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 50, + "description": "Maximum number of rows to return.", + "maximum": 500, + "minimum": 1, + "title": "Limit", + "type": "integer" +} - added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Index of the first row.", + "minimum": 0, + "title": "Offset", + "type": "integer" +} - removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "self" -]
- Changed
get_url_info2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
get_url_links2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "link" -]New value: +[ + "site_url", + "link" +]
- Changed
get_url_submission_quota2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
get_url_traffic_info2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
remove_blocked_url2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "blocked_url" -]New value: +[ + "site_url", + "blocked_url" +]
- Changed
remove_country_region_settings2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "settings" -]New value: +[ + "site_url", + "settings" +]
- Changed
remove_deep_link_block2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "market", - "search_url", - "deep_link_url" -]New value: +[ + "site_url", + "market", + "search_url", + "deep_link_url" +]
- Changed
remove_feed2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "feed_url" -]New value: +[ + "site_url", + "feed_url" +]
- Changed
remove_page_preview_block2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
remove_query_parameter2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "query_parameter" -]New value: +[ + "site_url", + "query_parameter" +]
- Changed
remove_site2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
- Changed
remove_site_role2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "site_role" -]New value: +[ + "site_url", + "site_role" +]
- Changed
save_crawl_settings2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "crawl_settings" -]New value: +[ + "site_url", + "crawl_settings" +]
- Changed
submit_content2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url", - "http_message", - "structured_data", - "dynamic_serving" -]New value: +[ + "site_url", + "url", + "http_message", + "structured_data", + "dynamic_serving" +]
- Changed
submit_feed2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "feed_url" -]New value: +[ + "site_url", + "feed_url" +]
- Changed
submit_site_move2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "settings" -]New value: +[ + "site_url", + "settings" +]
- Changed
submit_url2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url" -]New value: +[ + "site_url", + "url" +]
- Changed
submit_url_batch2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "url_list" -]New value: +[ + "site_url", + "url_list" +]
- Changed
update_deep_link2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url", - "algo_url", - "deep_link", - "weight" -]New value: +[ + "site_url", + "algo_url", + "deep_link", + "weight" +]
- Changed
verify_site2 fields changed- removed
Input schema / properties / selfRemoved value: -{ - "title": "self", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "self", - "site_url" -]New value: +[ + "site_url" +]
62 tool updates
v1.0.0- Changed
add_blocked_url3 fields changed- added
Input schema / $defs / BlockedUrlRequestTypeAdded value: +{ + "enum": [ + 0, + 1 + ], + "title": "BlockedUrlRequestType", + "type": "integer" +} - added
Input schema / properties / request_typeAdded value: +{ + "$ref": "#/$defs/BlockedUrlRequestType", + "default": 0 +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_blocked_urlOutput", + "type": "object" +}
- Changed
add_connected_page1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_connected_pageOutput", + "type": "object" +}
- Changed
add_country_region_settings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_country_region_settingsOutput", + "type": "object" +}
- Changed
add_deep_link_block1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_deep_link_blockOutput", + "type": "object" +}
- Changed
add_page_preview_block1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_page_preview_blockOutput", + "type": "object" +}
- Changed
add_query_parameter1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_query_parameterOutput", + "type": "object" +}
- Changed
add_site1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_siteOutput", + "type": "object" +}
- Changed
add_site_roles1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "add_site_rolesOutput", + "type": "object" +}
- Changed
enable_disable_query_parameter1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "enable_disable_query_parameterOutput", + "type": "object" +}
- Changed
fetch_url1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "fetch_urlOutput", + "type": "object" +}
- Changed
get_active_page_preview_blocks1 field changed- changed
Output 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" +}
- Changed
get_blocked_urls1 field changed- changed
Output 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" +}
- Changed
get_children_url_info1 field changed- changed
Output 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" +}
- Changed
get_children_url_traffic_info1 field changed- changed
Output 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" +}
- Changed
get_connected_pages1 field changed- changed
Output 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" +}
- Changed
get_content_submission_quota1 field changed- changed
Output 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" +}
- Changed
get_country_region_settings1 field changed- changed
Output 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" +}
- Changed
get_crawl_issues1 field changed- changed
Output 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" +}
- Changed
get_crawl_settings1 field changed- changed
Output 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" +}
- Changed
get_crawl_stats1 field changed- changed
Output 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" +}
- Changed
get_deep_link1 field changed- changed
Output 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" +}
- Changed
get_deep_link_algo_urls1 field changed- changed
Output 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" +}
- Changed
get_deep_link_blocks1 field changed- changed
Output 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" +}
- Changed
get_feed_details1 field changed- changed
Output 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" +}
- Changed
get_feeds1 field changed- changed
Output 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" +}
- Changed
get_fetched_url_details1 field changed- changed
Output 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" +}
- Changed
get_fetched_urls1 field changed- changed
Output 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" +}
- Changed
get_keyword1 field changed- changed
Output 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" +}
- Changed
get_keyword_stats1 field changed- changed
Output 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" +}
- Changed
get_link_counts1 field changed- changed
Output 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" +}
- Changed
get_page_query_stats1 field changed- changed
Output 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" +}
- Changed
get_page_stats1 field changed- changed
Output 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" +}
- Changed
get_query_page_detail_stats1 field changed- changed
Output 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" +}
- Changed
get_query_page_stats1 field changed- changed
Output 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" +}
- Changed
get_query_parameters1 field changed- changed
Output 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" +}
- Changed
get_query_stats1 field changed- changed
Output 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" +}
- Changed
get_query_traffic_stats1 field changed- changed
Output 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" +}
- Changed
get_rank_and_traffic_stats1 field changed- changed
Output 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" +}
- Changed
get_related_keywords1 field changed- changed
Output 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" +}
- Changed
get_site_moves1 field changed- changed
Output 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" +}
- Changed
get_site_roles1 field changed- changed
Output 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" +}
- Changed
get_sites1 field changed- changed
Output 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" +}
- Changed
get_url_info1 field changed- changed
Output 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" +}
- Changed
get_url_links1 field changed- changed
Output 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" +}
- Changed
get_url_submission_quota1 field changed- changed
Output 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" +}
- Changed
get_url_traffic_info1 field changed- changed
Output 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" +}
- Changed
remove_blocked_url3 fields changed- added
Input schema / $defs / BlockedUrlRequestTypeAdded value: +{ + "enum": [ + 0, + 1 + ], + "title": "BlockedUrlRequestType", + "type": "integer" +} - added
Input schema / properties / request_typeAdded value: +{ + "$ref": "#/$defs/BlockedUrlRequestType", + "default": 1 +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_blocked_urlOutput", + "type": "object" +}
- Changed
remove_country_region_settings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_country_region_settingsOutput", + "type": "object" +}
- Changed
remove_deep_link_block1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_deep_link_blockOutput", + "type": "object" +}
- Changed
remove_feed1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_feedOutput", + "type": "object" +}
- Changed
remove_page_preview_block1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_page_preview_blockOutput", + "type": "object" +}
- Changed
remove_query_parameter1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_query_parameterOutput", + "type": "object" +}
- Changed
remove_site1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_siteOutput", + "type": "object" +}
- Changed
remove_site_role1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "remove_site_roleOutput", + "type": "object" +}
- Changed
save_crawl_settings1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "save_crawl_settingsOutput", + "type": "object" +}
- Changed
submit_content1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "submit_contentOutput", + "type": "object" +}
- Changed
submit_feed1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "submit_feedOutput", + "type": "object" +}
- Changed
submit_site_move1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "submit_site_moveOutput", + "type": "object" +}
- Changed
submit_url1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "submit_urlOutput", + "type": "object" +}
- Changed
submit_url_batch1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "submit_url_batchOutput", + "type": "object" +}
- Changed
update_deep_link1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "null" + } + }, + "required": [ + "result" + ], + "title": "update_deep_linkOutput", + "type": "object" +}
- Changed
verify_site1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "title": "Result", + "type": "boolean" + } + }, + "required": [ + "result" + ], + "title": "verify_siteOutput", + "type": "object" +}
62 tool updates
- First observed
add_blocked_url - First observed
add_connected_page - First observed
add_country_region_settings - First observed
add_deep_link_block - First observed
add_page_preview_block - First observed
add_query_parameter - First observed
add_site - First observed
add_site_roles - First observed
enable_disable_query_parameter - First observed
fetch_url - First observed
get_active_page_preview_blocks - First observed
get_blocked_urls - First observed
get_children_url_info - First observed
get_children_url_traffic_info - First observed
get_connected_pages - First observed
get_content_submission_quota - First observed
get_country_region_settings - First observed
get_crawl_issues - First observed
get_crawl_settings - First observed
get_crawl_stats - First observed
get_deep_link - First observed
get_deep_link_algo_urls - First observed
get_deep_link_blocks - First observed
get_feed_details - First observed
get_feeds - First observed
get_fetched_url_details - First observed
get_fetched_urls - First observed
get_keyword - First observed
get_keyword_stats - First observed
get_link_counts - First observed
get_page_query_stats - First observed
get_page_stats - First observed
get_query_page_detail_stats - First observed
get_query_page_stats - First observed
get_query_parameters - First observed
get_query_stats - First observed
get_query_traffic_stats - First observed
get_rank_and_traffic_stats - First observed
get_related_keywords - First observed
get_site_moves - First observed
get_site_roles - First observed
get_sites - First observed
get_url_info - First observed
get_url_links - First observed
get_url_submission_quota - First observed
get_url_traffic_info - First observed
remove_blocked_url - First observed
remove_country_region_settings - First observed
remove_deep_link_block - First observed
remove_feed - First observed
remove_page_preview_block - First observed
remove_query_parameter - First observed
remove_site - First observed
remove_site_role - First observed
save_crawl_settings - First observed
submit_content - First observed
submit_feed - First observed
submit_site_move - First observed
submit_url - First observed
submit_url_batch - First observed
update_deep_link - First observed
verify_site
TDQS
Scored across 62 tools
There are many near-identical analytics tools (get_query_stats, get_query_traffic_stats, get_query_page_stats, get_page_query_stats, get_page_stats, get_url_traffic_info) whose boundaries are subtle and likely to be confused. The CRUD groups are mostly clear, but the overlapping stats getters make tool selection hazardous.
Almost all tools follow a clear verb_noun snake_case pattern (get_*, add_*, remove_*, submit_*). Minor inconsistencies like add_site_roles vs remove_site_role, get_query_page_stats vs get_page_query_stats, and get_deep_link_algo_urls keep it from being perfectly uniform.
62 tools is far too many for a coherent MCP surface, even for a broad API; many analytics getters could be consolidated. The count heavily outweighs the typical 3-15 well-scoped set and will impose a large selection burden on agents.
The tool surface covers most Webmaster Tools workflows: site verification, roles, feed/URL submission, crawl stats/issues, traffic stats, blocks, and settings. Minor gaps like no remove_connected_page and some deprecated deep-link endpoints prevent a perfect score.
Maintenance
Related MCP Connectors
Read-only Google Search Console MCP server for AI assistants.
1A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol server that integrates with Microsoft Bing Search API, allowing AI assistants to perform web, news, and image searches.380MIT
- AlicenseCqualityDmaintenanceAn MCP (Model Context Protocol) server that provides access to Bing Webmaster Tools functionality60353 npm27MIT
- AlicenseBqualityAmaintenanceModel Context Protocol (MCP) server that provides AI agents with access to Google Search Console data.25927 npm297MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA 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.-