Skip to main content
Glama
zwitbaum

mcp-devops-onpremise

by zwitbaum

MCP DevOps On-Premise

Model Context Protocol MCP server for on-premises Azure DevOps that lets AI assistants browse repositories, review pull requests, manage work items, and interact with wikis.

License: MIT PyPI - Version

Overview

Many organizations use on-premise DevOps solutions such as TFS or Azure DevOps Server in their projects. Integrating these systems with modern agentic AI tools and LLMs can be difficult. The official Microsoft Azure DevOps MCP server does not support these environments and is unlikely to support them in the future.

This MCP server closes that gap and enables smooth integration with on-premise DevOps systems.

This project is under active development, with features continuously added to meet current requirements. Community needs are highly valued — if you miss any features, please submit an Issue. User-requested features are fast-tracked and will be prioritized and added as soon as possible.

Related MCP server: Azure DevOps MCP Server

Key Advantages

One of the most important features of this MCP server is NTLM authentication support. NTLM is required by many on-premises and enterprise environments where users authenticate with Windows domain credentials, either directly or over VPN. Most MCP servers for Azure DevOps target only cloud-hosted Azure DevOps Services with token-based auth and cannot connect to these environments.

  • NTLM authentication (Windows domain credentials) for on-prem and VPN-based setups where no other auth method works.

  • PAT and OAuth bearer token authentication as alternatives when available.

  • Enables secure access to on-prem DevOps systems from MCP-compatible AI tools such as GitHub Copilot, Claude Desktop, Cursor, Windsurf, and others.

  • Works in restricted or offline environments without exposing sensitive data to external services.

  • Retrieves commit diffs with clear added/removed lines, similar to the DevOps UI.

  • Helps keep and track project documentation alongside code changes.

  • Automates common tasks such as work item management and code review processes.

Getting Started

Prerequisites

Python 3.10+ and uv are required. If not yet installed, see installation guide.

Quick Install

Click one of the buttons below to install directly in your IDE. You will be prompted for credentials:

Install in VS Code Install in VS Code Insiders Install in Cursor

For other platforms, see Manual Installation in the Getting Started guide.

Manual Installation

The MCP server can be installed manually in the following AI tools: VS Code, Visual Studio, Cursor, Goose, LM Studio, Amp, Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, Qodo Gen, Warp, Windsurf, GitHub Copilot CLI, GitHub Copilot Coding Agent, and others.

For step-by-step instructions, see Manual Installation in the Getting Started guide.

Configuration

The DEVOPS_API_URL must point to your full project URL:

https://<your-devops-server>/<organization>/<project>

The server supports three authentication methods. If you are unsure which one to use, start with NTLM because it is the most common for on-prem/VPN setups.

Method

Description

NTLM (username + password)

Most common for on-prem/VPN. Usually the simplest first setup and best fallback if other options fail.

PAT (Personal Access Token)

Use when PAT is enabled and allowed. Tokens can expire, and token-based auth may be blocked by policy. Advantage: you do not store your account password in config.

OAuth Bearer Token

Advanced option for CI/CD pipelines. Requires OAuth 2.0 configured on your DevOps Server and a token source defined by your administrators.

For detailed setup instructions for each method, see Authentication in the Getting Started guide.

With NTLM (username + password)

{
  "mcpServers": {
    "devops-onprem": {
      "command": "uvx",
      "args": ["mcp-devops-onpremise@latest"],
      "env": {
        "DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",
        "DEVOPS_USERNAME": "DOMAIN\\your-username",
        "DEVOPS_PASSWORD": "your-password"
      }
    }
  }
}

With PAT

{
  "mcpServers": {
    "devops-onprem": {
      "command": "uvx",
      "args": ["mcp-devops-onpremise@latest"],
      "env": {
        "DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",
        "DEVOPS_PAT": "your-personal-access-token"
      }
    }
  }
}

If you used a permanent install, replace "command": "uvx" with "command": "mcp-devops-onpremise" and remove the "args" line.

Updating

All configuration examples use mcp-devops-onpremise@latest, which instructs uvx to fetch the latest version automatically on every run.

For permanent installs and release notes, see Updating in the Getting Started guide.

Available Tools

Pull Requests

Tool

Description

Read-only

devops_pull_request_get

Retrieve a pull request by ID, including linked work items and commit SHAs for diffing

devops_pull_request_list_threads

Returns a hierarchical list of non-deleted comment threads and their text comments

devops_pull_request_list_thread_comments

List non-deleted text comments in a specific thread

devops_pull_request_create_comment

Create a new thread with an initial comment (general or inline on a file/line)

devops_pull_request_reply_comment

Reply to an existing comment thread

devops_pull_request_update_thread

Update the status of a comment thread

devops_pull_request_update_comment

Update the text of an existing comment

devops_pull_request_delete_comment

Delete a comment from a pull request thread

Repositories

Tool

Description

Read-only

devops_repository_list

List all repositories in the project

devops_repository_get

Retrieve repository details by name or ID

devops_repository_commit_changes

List files changed in a specific commit

devops_repository_diffs_commits

Get the difference between two commits (changed file paths)

devops_repository_item_content

Get raw file content at a specific commit or branch

devops_get_item_content_diff

Get line-level textual diff of a file between two commits (added lines prefixed +, removed -)

Work Items

Tool

Description

Read-only

devops_work_item_get

Retrieve a work item (PBI, bug, task) by numeric ID. Returns a compact object with key fields, attachments (files and inline images), and linked items (work items, pull requests, commits)

devops_work_item_attachment_get

Download a work item attachment by its GUID, either saving locally or returning base64-encoded content

devops_work_item_type_get

Get the definition of a work item type by name (e.g. Bug, User Story)

devops_work_item_query_by_wiql

Execute a WIQL (Work Item Query Language) query and return matching work items

devops_work_item_create

Create a new work item with typed fields; Html is the default format

devops_work_item_update

Update fields on a work item using JSON Patch (add / replace / remove)

devops_work_item_delete

Delete a work item, moves to Recycle Bin by default; use destroy=True for permanent deletion (requires project permission)

devops_work_item_undelete

Restore a soft-deleted work item from the Recycle Bin

devops_work_item_link_update

Add or remove a relation link between two work items (parent, child, related, successor, predecessor, etc.)

devops_work_item_artifact_link_update

Add or remove an artifact link (Pull Request, Build, Commit, Branch, Changeset) on a work item

devops_work_item_comment_list

List comments on a work item with configurable page size and format

devops_work_item_comment_add

Add a comment to a work item

devops_work_item_comment_update

Update an existing comment on a work item

devops_work_item_comment_delete

Delete a comment from a work item

Tool

Description

Read-only

devops_code_search

Search source code with optional repository, path, and branch filters

devops_work_item_search

Search work items with optional area, type, state, and assigned-to filters

devops_wiki_search

Search wiki pages with an optional wiki filter

Wiki

Tool

Description

Read-only

devops_wiki_page_get

Get wiki page metadata and optional content by wiki ID and page ID

devops_wiki_page_create_or_update

Create or update a wiki page under a specified parent page

devops_wiki_page_update

Update an existing wiki page by ID

devops_wiki_page_delete

Delete an existing wiki page by ID

Development

# Install dev dependencies
uv sync --group dev

# Run linting
uv run ruff check src/
uv run black --check src/

# Run tests
uv run pytest tests/

Available Tools

35 tools
devops_get_item_content_diffA
Read-only

Get textual diff between two versions of a file (changed hunks only). Lines are numbered; added lines are prefixed with '+', and removed with '-'. For full content of specific file, use item content tool with target version .

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the file to diff, e.g. src/foo.cs
base_versionYesBase commit ID, e.g. lastMergeTargetCommit.
repository_idYesRepository name or ID.
target_versionYesTarget commit ID, e.g. lastMergeSourceCommit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Describes output format (lines numbered, + and - prefixes). Annotations already declare readOnlyHint=true, so no contradiction. Adds value beyond annotations by detailing behavioral traits.

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

Conciseness5/5

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

Two concise sentences with no redundancy. First sentence states purpose and behavior, second provides clear alternative.

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

Completeness5/5

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

Given 4 required parameters, output schema, and annotations, the description is complete. It explains the tool's behavior, output format, and provides an alternative.

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

Parameters3/5

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

Schema description coverage is 100% with detailed parameter descriptions. Description does not add additional meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

Description specifies verb 'Get', resource 'textual diff', and scope 'changed hunks only'. It distinguishes from sibling tool devops_repository_diffs_commits by clarifying output format and contrasting with item content tool for full content.

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

Usage Guidelines4/5

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

Explicitly mentions when to use alternative tool for full content, but does not address when to use this diff tool versus other diff tools like devops_repository_diffs_commits.

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

devops_pull_request_create_commentA

Create a new thread with initial comment in the specified pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoFile path relative to the root of the repository.
line_numberNoOptional 1-based line number for an inline comment.
repository_idYesRepository name or ID.
comment_contentYesThe text content or markdown of the comment.
pull_request_idYesPull request ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

While the description indicates a write operation ('create') and annotations confirm non-read-only, it does not disclose additional behavioral details such as side effects, required permissions, or response characteristics. An output schema exists but is not referenced.

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

Conciseness5/5

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

The description is a single sentence of 11 words, conveying the essential purpose without any fluff. Every word earns its place.

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

Completeness4/5

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

Given the comprehensive schema descriptions and existence of an output schema, the description covers the core purpose adequately. It could mention the response or side effects, but for a mutation tool, it is sufficiently complete.

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

Parameters3/5

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

The input schema provides descriptions for all 5 parameters (100% coverage), so the description adds little beyond clarifying that the comment is 'initial' for a new thread. The baseline of 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the action (create), resource (a new thread with initial comment), and context (in specified pull request). It effectively distinguishes from sibling tools like reply or update comments.

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

Usage Guidelines3/5

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

The description implies usage for creating a new comment thread but does not provide explicit guidance on when to use this tool versus replying to an existing thread or other alternatives. No exclusions or context are given.

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

devops_pull_request_delete_commentB

Delete a comment from the specified pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesThread ID.
comment_idYesComment ID to delete.
repository_idYesRepository name or ID.
pull_request_idYesPull request ID.

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate write operation (readOnlyHint=false). Description adds no extra details on side effects, irreversibility, or required permissions.

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

Conciseness5/5

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

Single sentence, no waste, perfectly front-loaded and efficient.

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

Completeness3/5

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

Simple delete operation is adequately specified by schema and description, but lacks mention of success/failure behavior since there is no output schema.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds no additional meaning beyond the schema's parameter descriptions.

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

Purpose5/5

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

The description clearly states the action (delete) and the target resource (comment from a pull request), distinguishing it from sibling tools like create, update, or reply comment.

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

Usage Guidelines2/5

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

No guidance on when to use this tool over alternatives (e.g., updating or replying), nor prerequisites like permissions or comment existence.

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

devops_pull_request_getA
Read-only

Retrieve a pull request by ID. Use the 'lastMergeTargetCommit' and 'lastMergeSourceCommit' from the result to obtain changes with 'devops_repository_diffs_commits' tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
repository_idYesRepository name or ID.
pull_request_idYesThe ID of the pull request to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by explaining that the result contains 'lastMergeTargetCommit' and 'lastMergeSourceCommit' for obtaining diffs. No contradiction.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the core purpose, and the second provides a clear usage hint. No wasted words.

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

Completeness5/5

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

Given the presence of an output schema (not shown but stated), the description is complete for a retrieval tool. It explains the purpose and provides a forward reference for using the result.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters (repository_id and pull_request_id). The description adds no additional parameter semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the verb (Retrieve) and the resource (a pull request by ID). It distinguishes from sibling tools by focusing on retrieval, and the additional hint about using commit fields differentiates it from other PR-related tools.

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

Usage Guidelines4/5

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

The description provides a specific usage hint: using the commit fields from the result with another tool. While it doesn't explicitly state when not to use, it gives clear context for downstream usage.

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

devops_pull_request_list_thread_commentsA
Read-only

Retrieves a list of non-deleted text comments in a specific thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesThe ID of the thread to retrieve.
repository_idYesRepository name or ID.
pull_request_idYesThe ID of the pull request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description adds behavioral details beyond the annotations: it specifies that only non-deleted text comments are retrieved. Annotations already declare readOnlyHint=true, so the description's clarification about deleted comments and thread scope provides useful context without contradiction.

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

Conciseness5/5

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

The description is a single, clear sentence that front-loads the verb and resource. There is no extraneous information; every word is necessary and concise.

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

Completeness5/5

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

Given the tool has an output schema (mentioned in context) and only three required parameters with schema descriptions, the one-sentence description is sufficient for an agent to understand the scope and behavior. No additional explanation of return values is needed.

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

Parameters3/5

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

The input schema has 100% coverage, with basic descriptions for each parameter. The tool description does not add extra semantic meaning (e.g., data formats, constraints) beyond the schema, so it meets the baseline but does not enhance understanding.

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

Purpose5/5

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

The description clearly states the tool retrieves a list of non-deleted text comments in a specific thread, with a specific verb and resource. This distinguishes it from sibling tools like devops_pull_request_list_threads (lists threads) and devops_pull_request_reply_comment (creates replies).

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for retrieving comments in a thread, but lacks 'when-not-to-use' or alternative suggestions. The readOnlyHint annotation partially compensates but is not mentioned in the description.

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

devops_pull_request_list_threadsA
Read-only

Retrieve a hierarchical list of non-deleted comment threads and their text comments for a pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
repository_idYesRepository name or ID.
pull_request_idYesThe ID of the pull request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotation 'readOnlyHint: true', the description discloses that the tool returns only non-deleted threads, includes text comments, and organizes them hierarchically. This provides meaningful 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.

Conciseness5/5

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

A single sentence that front-loads the action and includes all essential qualifiers without superfluous text. Each phrase earns its place.

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

Completeness4/5

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

For a simple retrieval tool with two required parameters and an existing output schema, the description adequately covers purpose and key behaviors. Minor gaps exist (e.g., missing prerequisites or edge cases), but overall sufficient.

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

Parameters3/5

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

The input schema already documents both parameters (repository_id and pull_request_id) with descriptions. The tool description adds no additional meaning or constraints to these parameters.

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

Purpose5/5

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

The description clearly specifies the verb 'Retrieve', the resource 'comment threads and their text comments', and key qualifiers 'hierarchical list of non-deleted threads for a pull request'. It differentiates from siblings like 'devops_pull_request_list_thread_comments' by emphasizing hierarchy and inclusion of text comments.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives such as 'devops_pull_request_list_thread_comments'. The description implies use for a hierarchical view, but lacks explicit context or exclusions.

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

devops_pull_request_reply_commentC

Replies to a specific comment on a pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesThread ID to reply to.
repository_idYesRepository name or ID.
comment_contentYesThe text content or markdown of the reply comment.
pull_request_idYesPull request ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, so the tool is clearly a write operation. The description adds no additional behavioral context, such as whether replies are appended, if further actions are needed, or authentication requirements.

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

Conciseness3/5

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

One concise sentence that states the purpose. While no waste, it is too minimal, lacking any structural elements like separators or additional context that would improve clarity.

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

Completeness2/5

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

Given the complexity (4 required params, output schema present, many siblings), the description is insufficient. It does not mention how to obtain the thread_id or what the output contains, leaving the agent without necessary context.

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

Parameters2/5

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

Schema description coverage is 100%, each parameter already has a description. The tool description adds no extra meaning beyond the schema—e.g., does not explain that 'thread_id' refers to the comment thread ID. Baseline 3 is reduced because no value added.

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

Purpose5/5

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

The description 'Replies to a specific comment on a pull request' clearly identifies the action (reply) and resource (specific comment on a PR), effectively distinguishing it from sibling tools like create_comment (new thread) and update_comment (edit existing comment).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not specify that it replies to an existing thread, unlike create_comment which starts a new one. The sibling tools are listed but not referenced in the description.

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

devops_pull_request_update_commentB

Update an existing comment in the specified pull request.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesThread ID to update.
comment_idYesID of the comment to update.
repository_idYesRepository name or ID.
comment_contentYesUpdated text content.
pull_request_idYesPull request ID.
parent_comment_idYesParent comment id for replies.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Although annotations set readOnlyHint to false, the description adds no behavioral details beyond 'update'. It does not mention required permissions, idempotency, or side effects. The description fails to add value beyond what annotations already indicate.

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

Conciseness5/5

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

The description is a single clear sentence with no redundant information. It is concise and directly to the point.

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

Completeness3/5

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

Given that output schema exists and parameters are well-documented, the description is minimally adequate. However, it lacks context such as prerequisites (e.g., comment must exist) or the scope of the update. Could be improved with brief usage hints.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for each parameter. The tool description does not add any additional meaning beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('update') and the resource ('existing comment in the specified pull request'). It effectively distinguishes from sibling tools like create, delete, and reply comments.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as creating, deleting, or replying to comments. It only states the basic function, leaving the agent without context for tool selection.

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

devops_pull_request_update_threadC

Update the status of a comment thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesNew thread status (1=Active, 2=Fixed or Resolved, 3=WontFix, 4=Closed, 6=Pending).
thread_idYesThread ID to update.
repository_idYesRepository name or ID.
pull_request_idYesPull request ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, consistent with the 'Update' verb. However, the description adds no additional behavioral context—e.g., whether updating status triggers notifications, affects other comments, or requires specific permissions. The agent is left to infer behavior from the schema alone.

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

Conciseness4/5

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

The description is extremely concise—one sentence of seven words. It is front-loaded and clear, but arguably too sparse for a tool that modifies state; a slightly more informative description would be optimal.

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

Completeness2/5

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

Despite having an output schema and full parameter coverage, the description lacks context about what updating a thread status entails (e.g., effect on the pull request, whether comments are impacted). An agent cannot fully understand the tool's role in the PR workflow from this description alone.

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

Parameters3/5

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

Schema description coverage is 100%; all four parameters are already described in the input schema (e.g., status values explained). The description adds no extra semantics, so the baseline score of 3 applies.

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

Purpose4/5

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

The description 'Update the status of a comment thread' clearly identifies the verb and resource. However, it does not differentiate itself from sibling tools like devops_pull_request_update_comment (which updates comment content) or devops_pull_request_reply_comment; an agent might confuse which tool to use for updating thread status vs individual comments.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool over alternatives. For example, there is no mention that this tool should be used to change the overall thread status (resolved, closed, etc.) rather than editing comment content, which is handled by devops_pull_request_update_comment.

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

devops_repository_commit_changesA
Read-only

Retrieve a list of files changed in the specified commit, including the type of change for each file (e.g., add, edit, remove).

ParametersJSON Schema
NameRequiredDescriptionDefault
commit_idYesFull 40-character commit SHA (hex string).
repository_idYesRepository name or ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. The description adds that output includes type of change, which aligns with the likely output schema. However, it does not disclose additional behavioral traits like rate limits, error handling, or authorization needs. The value beyond annotations is minimal.

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

Conciseness5/5

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

Single sentence, under 20 words, front-loaded with the main action. No unnecessary words. Efficient and clear.

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

Completeness5/5

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

Given the simple tool with two parameters, read-only annotation, and existing output schema, the description is sufficient. It captures the essential functionality without gaps.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions. The description does not add meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves a list of files changed in a specified commit, with change types. The verb 'retrieve' and resource 'files changed in commit' are specific, and it distinguishes from siblings like devops_repository_diffs_commits and devops_get_item_content_diff.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, it does not mention when to prefer this over related tools (e.g., for summary vs. full diffs). Implicit usage: given a commit ID, but no exclusions.

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

devops_repository_diffs_commitsB
Read-only

Get the difference between the base and target commits.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_commitYesBase commit SHA — full 40-character hex (e.g. lastMergeTargetCommit).
repository_idYesRepository name or ID.
target_commitYesTarget commit SHA — full 40-character hex (e.g. lastMergeSourceCommit).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

The description only says 'Get the difference,' which is consistent with the readOnlyHint annotation, but it adds no additional behavioral details such as what the diff includes, error handling, or limits. The agent gains little beyond the annotation indicating safe read operation.

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

Conciseness5/5

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

A single sentence with no filler—very concise and front-loaded. Every word is necessary to convey the core purpose.

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

Completeness3/5

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

Given the low complexity (3 required params, read-only, output schema exists), the description is adequate but minimal. It does not explain what the diff contains or what format the result is in, though the output schema presumably fills that gap. It leaves the agent without guidance on the scope of 'difference.'

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

Parameters3/5

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

All three parameters are described in the schema with examples and full coverage (100%). The description adds no extra meaning about the parameters, so the baseline score of 3 applies as the schema already does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool gets a diff between two commits, using a specific verb and resource. However, it does not explicitly differentiate from sibling tools like devops_get_item_content_diff or devops_repository_commit_changes, leaving some ambiguity about when to use this vs others.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description simply states the action without any context about use cases, prerequisites, or when not to use it.

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

devops_repository_getA
Read-only

Retrieve repository details by repository name or ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
repository_idYesRepository name or ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The description is consistent with the 'readOnlyHint' annotation, indicating a read-only operation. However, it adds no additional behavioral context beyond what annotations provide (e.g., permissions, rate limits, or error scenarios), so it meets the minimum bar but does not exceed.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys the core purpose efficiently. Every word is meaningful, and the key identifier (by name or ID) is front-loaded. No unnecessary elaboration.

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

Completeness4/5

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

Given that an output schema exists (context signals indicate true), the description does not need to detail return values. The single parameter is fully described in both schema and description. For a simple retrieval tool, the description adequately covers the essential information, though it could optionally mention that the operation is immediate or idempotent.

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

Parameters3/5

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

With 100% schema description coverage, the parameter 'repository_id' is well-documented in the schema as 'Repository name or ID.' The description essentially repeats this without adding new meaning (e.g., format constraints, examples, or behavior for invalid IDs). Thus baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the verb 'Retrieve' and the resource 'repository details', and specifies the lookup key ('by repository name or ID'). It distinguishes from sibling 'devops_repository_list' which lists all repositories, but does not explicitly mention this distinction.

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

Usage Guidelines3/5

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

The description implies when to use (when you need details for one repository), but provides no explicit guidance on when not to use it (e.g., for listing all repositories) and no alternatives are mentioned. The agent must infer usage from context.

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

devops_repository_item_contentA
Read-only

Get raw file content for a repository path at a specific version.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the item, e.g. src/foo.cs
versionYesCommit ID to fetch the file from.
repository_idYesRepository name or ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds minimal extra context beyond what the annotations provide, such as 'raw file content' and 'at a specific version.' It does not disclose additional behaviors like encoding, size limits, or error handling.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action ('Get raw file content') and includes essential context. No unnecessary words or redundancy.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to detail return values. The tool is simple with three required parameters and read-only semantics. It adequately covers the purpose and basic usage, though it could mention potential prerequisites (e.g., repository existence) and error handling.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters (repository_id, path, version) described in the input schema. The description does not add significant new meaning beyond the schema definitions, simply restating the concept of version and path. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get raw file content for a repository path at a specific version.' It specifies the verb (Get), the resource (raw file content), and the constraints (repository path, specific version). This distinguishes it from sibling tools like devops_get_item_content_diff, which focuses on diffs.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool over alternatives. It implies usage for retrieving raw file content at a specific version, but lacks guidance on when not to use it (e.g., for diffs or other operations). No references to sibling tools or exclusions are provided.

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

devops_repository_listA
Read-only

Get the list of repositories.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to disclose that. It adds no further behavioral details, but is consistent with annotations.

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

Conciseness5/5

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

Single, front-loaded sentence with no wasted words. Appropriately concise for a simple list operation.

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

Completeness4/5

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

Given 0 parameters and the presence of an output schema, the description is mostly complete. However, it could hint at the return structure or mention there is no filtering, but not necessary.

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

Parameters3/5

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

No parameters exist, and schema description coverage is 100% (empty). Baseline of 3 applies; description does not need to add parameter info.

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

Purpose5/5

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

Description clearly states the action 'Get' and resource 'list of repositories', distinguishing it from sibling tools like devops_repository_get which gets a specific repository.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as devops_repository_get or other list tools; the description provides no context or exclusions.

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

devops_wiki_page_create_or_updateC

Create or update a wiki page under the specified parent page.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the new wiki page. If a page with the same title already exists under the parent, it will be updated.
contentNo
wiki_idYesWiki identifier (name or ID).
parent_pathYesRelative path of the parent wiki page, or '/' for root.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations, so description bears full burden. Only says 'create or update' without disclosing side effects like overwriting existing content, permission requirements, or destructive potential.

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

Conciseness3/5

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

Single sentence is concise but under-informative. Could be restructured with bullet points or additional context without significant length increase.

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

Completeness2/5

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

Given the presence of sibling tools and an output schema, the description fails to clarify return values or distinguish from similar tools. Missing key behavioral and usage details.

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

Parameters3/5

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

Schema description coverage is 75%, and the description adds no additional meaning beyond what's in the schema. The `content` parameter lacks description but defaults to empty. Baseline 3 is appropriate.

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

Purpose4/5

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

Description clearly states verb ('create or update') and resource ('wiki page'), and mentions location ('under specified parent page'). However, it does not differentiate from sibling `devops_wiki_page_update`, which may cause confusion.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance provided. Does not explain when to prefer this tool over `devops_wiki_page_update` or other wiki tools.

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

devops_wiki_page_deleteC

Delete an existing wiki page.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoOptional comment for deleting the wiki page.
page_idYesWiki page ID.
wiki_idYesWiki identifier (name or ID).

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate this is a write operation (readOnlyHint=false). The description adds no further behavioral context, such as whether deletion is permanent, cascading effects, or access requirements.

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

Conciseness4/5

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

The description is extremely concise—single sentence with no wasted words. However, it is front-loaded with the key action and resource, which is sufficient for this simple tool.

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

Completeness3/5

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

Given the tool's simplicity (3 parameters, no output schema, no nested objects), the description is minimally adequate. It does not cover edge cases or provide warnings, but for a straightforward delete, it might suffice.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully documented in the input schema. The description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.

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

Purpose4/5

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

The description clearly states the action (Delete) and the resource (existing wiki page). However, it does not differentiate from sibling tools like devops_wiki_page_create_or_update or devops_wiki_page_update, which could cause confusion for an AI agent.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., when to delete vs. update). Missing context about prerequisites or consequences, making it harder for the agent to decide correctly.

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

devops_wiki_page_getA

Retrieves metadata (path, isParentPage) and/or content of a wiki page. The wiki_id and page_id are found in the browser URL: https://.../_wiki/wikis/{wiki_id}/{page_id}/...

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesWiki page ID. Found in the page URL: .../_wiki/wikis/{wiki_id}/{page_id}/...
wiki_idYesWiki identifier (name or ID). Found in the page URL: .../_wiki/wikis/{wiki_id}/...
include_contentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of disclosure. It correctly describes read-only behavior (retrieve) and mentions optional content inclusion. It does not discuss authentication or errors but is adequate for a simple get operation.

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

Conciseness5/5

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

Two sentences, no fluff, front-loaded with the core action and a helpful URL example. Every sentence adds value.

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

Completeness4/5

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

Given the simple operation (get with optional content), the description covers the purpose, ID location, and return intent. It lacks explicit discussion of error handling or permissions, but output schema exists to detail return values.

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

Parameters3/5

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

Schema coverage is 67%, and the description adds context for the include_content parameter by mentioning content retrieval. It does not explicitly describe all parameters but indirectly covers the third. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the tool retrieves metadata (path, isParentPage) and/or content of a wiki page. It uses a specific verb and resource, and distinguishes from sibling tools like devops_wiki_page_delete or devops_wiki_search.

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

Usage Guidelines3/5

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

The description provides clear context for what the tool does but does not explicitly state when to use it vs alternatives like search or create. No when-not or exclusion guidance is given.

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

devops_wiki_page_updateC

Update an existing wiki page.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoNew content for the wiki page (optional).
page_idYesWiki page ID.
wiki_idYesWiki identifier (name or ID).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits (e.g., destructive, return value, side effects). It only says 'Update an existing wiki page' without explaining what changes occur or what is returned, despite an output schema being present.

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

Conciseness3/5

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

The description is a single sentence that is concise but overly brief. It front-loads the core action but lacks structural cues or additional context that would justify its length.

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

Completeness2/5

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

Given three parameters and an output schema, the description is too sparse. It does not explain the purpose of parameters beyond the schema, nor does it describe the return value, leaving gaps for an agent to resolve.

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

Parameters3/5

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

Schema description coverage is 100%, with all parameters described in the schema (e.g., 'New content for the wiki page (optional)'). The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'Update an existing wiki page' which is a specific verb+resource. It distinguishes from the sibling tool 'devops_wiki_page_create_or_update' by focusing solely on update, but does not elaborate on what aspects can be updated beyond the schema.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'create_or_update' or other wiki tools. No prerequisites (e.g., page must exist) are mentioned, 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.

devops_work_item_attachment_getA
Read-only

Download a work item attachment by specified ID. Returns base64-encoded content, or saves to a local directory if savePath is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYesThe file name of the attachment. Used to determine the MIME type. If save_path is provided, the file is saved under this name.
save_pathNoOptional directory path to save the file to. If omitted, returns the content as a base64-encoded resource. NOTE: relative paths are resolved against the MCP server's working directory; paths starting with '..' are not allowed.
attachment_idYesThe GUID of the attachment.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses the two output modes (base64-encoded content or file save). This adds behavioral context that annotations alone do not cover.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose. No redundant information, every sentence adds value.

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

Completeness4/5

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

For a simple download tool with an output schema, the description adequately covers the two modes. It could mention error handling or authentication, but is sufficiently complete for normal use.

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

Parameters4/5

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

Schema covers all parameters with descriptions (100% coverage). The description adds meaning by explaining the effect of savePath and how file_name is used for MIME type and file name when saving.

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

Purpose5/5

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

Clearly states the tool downloads a work item attachment by ID. The two behaviors (returning base64-encoded content or saving to a local directory) are explicitly described, distinguishing it from sibling tools that operate on pull requests, repositories, or wiki pages.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. However, sibling tools are all different operations, so the usage context is implied. Lacks when-not-to-use or alternative tool names.

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

devops_work_item_comment_addA

Add a comment to a work item.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe comment text (Html or Markdown depending on format).
formatNoFormat of the comment text: 'html' (default) or 'markdown'.html
work_item_idYesThe numeric work item ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate write operation. Description adds no extra behavioral context beyond that.

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

Conciseness4/5

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

Single sentence, no waste. Could benefit from slightly more context but efficient.

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

Completeness4/5

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

Simple tool; output schema covers return values. Description is adequate for the task.

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

Parameters3/5

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

Schema already describes all parameters (100% coverage). Description adds no additional meaning.

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

Purpose5/5

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

Description clearly states verb 'Add' and resource 'comment to a work item'. Distinguished from siblings like delete, update, list.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or alternatives. Implied use but no exclusions.

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

devops_work_item_comment_deleteB

Delete a comment from a work item.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesThe numeric ID of the comment to delete.
work_item_idYesThe numeric work item ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate it's not read-only (readOnlyHint=false). The description adds no behavioral details beyond 'delete', e.g., no mention of permanence, permissions, or side effects.

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

Conciseness5/5

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

Single, concise sentence front-loading the action and resource. No unnecessary words.

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

Completeness4/5

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

For a simple delete tool with 2 parameters and an output schema, the description is sufficient. Could mention permanence but not necessary.

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

Parameters3/5

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

Schema covers both parameters with descriptions, so baseline is 3. The description adds no additional parameter meaning.

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

Purpose4/5

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

The description clearly states the action ('delete') and resource ('comment from a work item'). It distinguishes itself from sibling tools that delete work items or pull request comments, though not explicitly stated.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like devops_work_item_comment_update or devops_work_item_delete. No when-not or context provided.

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

devops_work_item_comment_listA
Read-only

List comments on a work item. Returns up to top comments (default 50).

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMaximum number of comments to return. Defaults to 50.
formatNoResponse format: 'html' (default) or 'markdown'.html
work_item_idYesThe numeric work item ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotation already declares readOnlyHint=true. The description adds minimal behavioral context beyond this, only noting the default top value. It does not discuss ordering, pagination behavior, or error conditions. With annotations covering safety, 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.

Conciseness5/5

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

The description is extremely concise—two sentences front-loaded with the purpose. Every word earns its place, and there is no redundancy or unnecessary detail.

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

Completeness4/5

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

The tool is simple (list comments), and the description sufficiently covers its core behavior. An output schema exists to document return values. No critical gaps remain, though minor details like ordering are absent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description restates the default top value but adds no new meaning beyond what the schema provides.

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

Purpose5/5

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

The description explicitly states 'List comments on a work item,' which clearly identifies the verb (list), resource (comments), and context (on a work item). It distinguishes from sibling tools like add, delete, update, and pull request comment tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternative sibling tools (e.g., devops_work_item_comment_add for creating comments). No explicit when/when-not or exclusions are mentioned.

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

devops_work_item_comment_updateB

Update an existing comment on a work item.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe updated comment text.
formatNoFormat of the comment text: 'html' (default) or 'markdown'.html
comment_idYesThe numeric ID of the comment to update.
work_item_idYesThe numeric work item ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate non-read-only (write operation), but description provides no additional behavioral traits such as permissions, idempotency, or side effects. It is minimal.

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

Conciseness5/5

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

A single sentence, no unnecessary words. Front-loaded with purpose. Efficient.

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

Completeness3/5

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

Given output schema exists and sibling tools provide context, the description minimally satisfies completeness. But missing details like error conditions or preconditions reduce effectiveness.

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

Parameters3/5

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

All parameters have schema descriptions (100% coverage), so the description adds no extra meaning. Baseline score of 3. The description is adequate but doesn't enhance parameter understanding.

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

Purpose5/5

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

The description clearly states 'Update an existing comment on a work item', using a specific verb ('Update') and resource ('comment on a work item'). It distinguishes from sibling tools like devops_work_item_comment_add and devops_work_item_comment_delete.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., add, delete). The description does not specify prerequisites or context.

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

devops_work_item_createC

Create a new work item of the specified work item type.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesThe work item type to create, e.g. 'Task', 'Bug', 'User Story'.
fieldsYesList of field objects to set on the new work item. Each entry must have 'name' (field reference name, e.g. 'System.Title') and 'value'. An optional 'format' key accepts 'Html' or 'Markdown' (defaults to 'Html' when omitted; use 'Markdown' only if the project supports it).
validate_onlyNoIf True, validate the input against system rules without saving the work item (dry run).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, consistent with mutation. The description adds no additional behavioral context beyond stating creation. No mention of side effects, return values, or error conditions.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. However, it sacrifices necessary detail for brevity, which slightly reduces its utility.

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

Completeness2/5

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

Given the output schema exists, the description is partially complete. But it lacks guidance on field semantics, required fields beyond the schema, and typical usage patterns, making it insufficient for complex parameter objects.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what the schema provides. It does not explain the fields format or validate_only usage.

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

Purpose4/5

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

The description clearly states the action 'create a new work item' and specifies the resource 'work item type'. It distinguishes from sibling tools like devops_work_item_update and devops_work_item_delete, but could be more explicit about scope and alternatives.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings. The description does not mention alternatives or provide criteria for selection, leaving the agent to infer from context.

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

devops_work_item_deleteA

Delete a work item by ID. By default the item is sent to the Recycle Bin and can be restored. Set destroy=True to permanently destroy the item — WARNING: this is irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
destroyNoIf True, permanently destroys the work item (requires 'Permanently delete work items' permission in Project Settings → Security; if not enabled, the server returns 404). WARNING: permanent destruction cannot be undone. Defaults to False (moves to Recycle Bin).
work_item_idYesThe numeric ID of the work item to delete.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations indicate readOnlyHint=false, meaning a write operation. The description adds key behavioral details: default sends to Recycle Bin, destroy=True is irreversible, requires specific permissions. No contradictions.

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

Conciseness5/5

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

Two sentences with critical information front-loaded. No fluff or redundancy. Warnings and alternatives are clearly expressed.

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

Completeness5/5

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

Given the presence of an output schema (not shown but indicated) and 100% parameter coverage, the description fully explains the tool's behavior, permissions, and irreversible action. No gaps.

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

Parameters4/5

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

Schema coverage is 100%, but the description provides concise semantics for both parameters: work_item_id is the target, destroy controls behavior. The schema itself already details destroy's meaning, so the description adds moderate value.

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

Purpose5/5

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

The description explicitly states 'Delete a work item by ID', distinguishing between two behaviors (move to Recycle Bin vs. permanent destruction). This differentiates it from the sibling devops_work_item_undelete, which restores items.

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

Usage Guidelines4/5

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

The description explains when to use each mode (default recycle vs. permanent destroy) and mentions required permissions for destroy. It does not explicitly contrast with siblings, but the sibling context implies deletion vs. undeletion.

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

devops_work_item_getA
Read-only

Retrieve a single work item by numeric ID. Returns a compact object with key fields (title, state, type, assignee, description, acceptance criteria, tags, parent), plus attachments (files and inline images) and linked items (work items, pull requests, commits).

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_idYesThe numeric work item ID to fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint annotation by detailing the return fields, attachments, and linked items. It accurately reflects a read-only operation and provides context about the response structure.

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

Conciseness5/5

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

The description is two sentences long, front-loading the purpose and then detailing return content. Every sentence adds value with no redundancy.

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

Completeness5/5

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

Given that an output schema exists, the description adequately covers what the tool returns (key fields, attachments, linked items). For a simple retrieval tool, this is complete.

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

Parameters3/5

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

The input schema already describes the single parameter work_item_id with full coverage. The description only repeats 'by numeric ID' without adding new meaning or format details.

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

Purpose5/5

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

The description clearly states the action (retrieve), the resource (work item), and how (by numeric ID). It also specifies the return content (key fields, attachments, linked items), which distinguishes it from other work item tools like create, update, or delete.

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

Usage Guidelines3/5

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

The description implies usage when you have a numeric ID and need a single work item, but it does not explicitly state when to use this tool versus alternatives (e.g., for listing, searching, or modifying). No exclusion criteria or prerequisites are mentioned.

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

devops_work_item_query_by_wiqlA
Read-only

Execute a WIQL (Work Item Query Language) query and return the matching work items.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMaximum number of results to return. Omit to use the server default.
queryYesThe WIQL query string. Example: "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] <> 'Closed' ORDER BY [System.CreatedDate] DESC"
time_precisionNoIf True, use time precision for date comparisons in the query.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the description's statement 'execute a WIQL query' is consistent. However, it adds no behavioral details beyond what the annotations provide, such as rate limits or pagination behavior.

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

Conciseness5/5

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

The description is a single 13-word sentence that is front-loaded with the action and resource. No unnecessary words.

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

Completeness4/5

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

Given the presence of an output schema (not shown) and the straightforward nature of a WIQL query tool, the description covers the core functionality adequately. It lacks information on potential errors or limits, but this is acceptable for a query tool.

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

Parameters3/5

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

Schema coverage is 100% and each parameter has a description (e.g., query has an example, top describes count, time_precision explains flag). The tool description does not add additional context beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'execute' and resource 'WIQL query', and specifies the outcome 'return the matching work items'. It distinguishes from sibling tools such as devops_work_item_get, which retrieves a single item by ID.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like devops_work_item_get or other retrieval tools. It does not mention contexts or exclusions.

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

devops_work_item_type_getA
Read-only

Get definition for the specified work item type.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesWork item type name (e.g. 'Bug', 'User Story').

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true. Description adds that it gets the 'definition', which is consistent but doesn't disclose additional behavioral traits like what the definition includes.

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

Conciseness5/5

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

Single sentence, no redundancy. Efficiently conveys the tool's action and resource.

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

Completeness4/5

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

With an output schema present, description need not cover return values. One parameter is well-documented. Could mention that this retrieves the type definition (fields, states) but overall complete for a simple read tool.

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

Parameters3/5

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

Input schema provides full coverage for the single parameter with a clear description. Description adds no extra meaning beyond 'specified work item type'.

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

Purpose5/5

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

Description clearly states verb 'Get', resource 'definition for work item type', and implies it's for a specific type. Distinguishes from siblings like devops_work_item_get which retrieves an actual work item.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. For example, it doesn't clarify that this is for retrieving the type schema rather than an instance.

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

devops_work_item_undeleteA

Restore a work item from the Recycle Bin by ID. Only works for items deleted without the destroy flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_idYesThe numeric ID of the deleted work item to restore.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate a mutating operation (readOnlyHint=false). The description adds the condition about the destroy flag but lacks details on permissions, error handling, or side effects beyond restoration.

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

Conciseness5/5

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

Two concise sentences. The first sentence front-loads the core action; the second adds a critical constraint. No wasted words.

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

Completeness4/5

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

The tool is simple with one required parameter and an output schema. The description covers the essential condition for use. It could mention the effect of restoration but is sufficient given the output schema.

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

Parameters3/5

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

Schema has 100% coverage with a clear description of work_item_id. The description mentions 'by ID' but adds no extra semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states the action (restore), the object (work item from Recycle Bin), and a key condition (only for items without destroy flag). It distinguishes from siblings like delete or get.

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

Usage Guidelines4/5

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

The description provides a condition for use (only works for items deleted without destroy flag), but does not explicitly state when not to use it or suggest alternatives for hard-deleted items.

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

devops_work_item_updateA

Update fields on a work item by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYesList of field updates to apply. Each entry must have: 'op' (one of 'add', 'replace', 'remove'; defaults to 'add'), 'name' (field reference name, e.g. 'System.Title'), and 'value' (required for 'add'/'replace', omit for 'remove').
work_item_idYesThe numeric work item ID to update.
validate_onlyNoIf True, validate the input against system rules without saving the work item (dry run).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, so the write nature is clear. The description adds no additional behavioral details, but given annotations present, the lack of extra context is acceptable. No contradiction.

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

Conciseness5/5

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

The description is a single, succinct sentence with no redundant information. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

For a straightforward update tool with an output schema, the description is largely adequate. However, it could mention that the work item must exist or that updates follow JSON Patch format, though the schema covers the latter.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described in detail. The description adds no new parameter information beyond what the schema provides, resulting in no extra value.

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

Purpose5/5

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

The description clearly states the action (update fields), the resource (work item), and the identifier (by ID). Among sibling tools, it distinguishes itself from creation, deletion, retrieval, and link updates, making its purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. While the sibling list implies context, explicit guidance is absent.

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

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes, but devops_wiki_page_update and devops_wiki_page_create_or_update overlap, and the difference between repository commit changes and diffs is subtle.

Naming Consistency3/5

The devops_{category}_{action} pattern is mostly followed, but devops_get_item_content_diff breaks it by starting with 'get', and devops_code_search lacks a category prefix.

Tool Count2/5

35 tools is excessive for a single MCP server, covering too many operations across domains and likely causing agent confusion.

Completeness3/5

Major operations are covered for work items and wiki, but pull request merge and repository creation/deletion are missing, leaving notable gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zwitbaum/mcp-devops-on-prem'

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