MCP Azure DevOps Server
The MCP Azure DevOps Server enables natural language interactions with Azure DevOps, providing capabilities for managing work items, projects, and teams.
Current capabilities:
Work Item Management
Query work items using WIQL
Get basic and detailed information about work items
Retrieve comments on work items
Project Management
List all accessible projects in the organization
Filter projects by state
Team Management
Get all teams and their members
Retrieve team area paths and iterations
Filter teams based on user membership
Note: Planned features including pipeline operations, pull request handling, sprint management, and branch policy administration are not currently available.
Enables repository operations for Azure DevOps Git repositories, supporting features like pull request management (planned).
Allows installation of the MCP server package from PyPI, making deployment easier through standard Python package management.
Built using Python SDK for MCP implementation, requiring Python 3.9+ for server installation and operation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Azure DevOps Servershow me all active bugs assigned to me in the current sprint"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Azure DevOps Server
⚠️ NOTICE: Official Server Available
Please use the official Microsoft Azure DevOps MCP server instead:
https://github.com/microsoft/azure-devops-mcp
This repository is no longer maintained. The official Microsoft server provides better support, ongoing maintenance, and the latest features.
A Model Context Protocol (MCP) server enabling AI assistants to interact with Azure DevOps services.
Overview
This project implements a Model Context Protocol (MCP) server that allows AI assistants (like Claude) to interact with Azure DevOps, providing a bridge between natural language interactions and the Azure DevOps REST API.
Related MCP server: Azure DevOps MCP Server
Features
Currently implemented:
Work Item Management
Query Work Items: Search for work items using WIQL queries
Get Work Item Details: View complete work item information
Create Work Items: Add new tasks, bugs, user stories, and other work item types
Update Work Items: Modify existing work items' fields and properties
Add Comments: Post comments on work items
View Comments: Retrieve the comment history for a work item
Parent-Child Relationships: Establish hierarchy between work items
Project Management
Get Projects: View all accessible projects in the organization
Get Teams: List all teams within the organization
Team Members: View team membership information
Team Area Paths: Retrieve area paths assigned to teams
Team Iterations: Access team iteration/sprint configurations
Planned features:
Pipeline Operations: Query pipeline status and trigger new pipeline runs
Pull Request Handling: Create, update, and review Pull Requests
Sprint Management: Plan and manage sprints and iterations
Branch Policy Administration: Configure and manage branch policies
Getting Started
Prerequisites
Python 3.10+
Azure DevOps account with appropriate permissions
Personal Access Token (PAT) with necessary scopes for Azure DevOps API access
Installation
# Clone the repository
git clone https://github.com/Vortiago/mcp-azure-devops.git
cd mcp-azure-devops
# Install in development mode
uv pip install -e ".[dev]"
# Install from PyPi
pip install mcp-azure-devopsConfiguration
Create a .env file in the project root with the following variables:
AZURE_DEVOPS_PAT=your_personal_access_token
AZURE_DEVOPS_ORGANIZATION_URL=https://your-organization.visualstudio.com or https://dev.azure.com/your-organisationNote: Make sure to provide the full URL to your Azure DevOps organization.
Running the Server
# Development mode with the MCP Inspector
mcp dev src/mcp_azure_devops/server.py
# Install in Claude Desktop
mcp install src/mcp_azure_devops/server.py --name "Azure DevOps Assistant"Usage Examples
Query Work Items
Show me all active bugs assigned to me in the current sprintCreate a Work Item
Create a user story in the ProjectX with the title "Implement user authentication" and assign it to john.doe@example.comUpdate a Work Item
Change the status of bug #1234 to "Resolved" and add a comment explaining the fixTeam Management
Show me all the team members in the "Core Development" team in the "ProjectX" projectView Project Structure
List all projects in my organization and show me the iterations for the Development teamDevelopment
The project is structured into feature modules, each implementing specific Azure DevOps capabilities:
features/work_items: Work item management functionalityfeatures/projects: Project management capabilitiesfeatures/teams: Team management featuresutils: Common utilities and client initialization
For more information on development, see the CLAUDE.md file.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with MCP Python SDK
Available Tools
21 toolsadd_parent_child_linkA
Adds a parent-child relationship between two work items.
Use this tool when you need to:
- Establish hierarchy between work items
- Organize epics, features, user stories, and tasks
- Create a structured breakdown of work
- Enable rollup of effort and progress tracking
IMPORTANT: The child work item will immediately appear under the parent
in hierarchical views. This relationship affects how the items are
displayed in backlogs and boards. In Azure DevOps, a work item can have
only one parent but multiple children.
Args:
parent_id: ID of the parent work item
child_id: ID of the child work item
project: Optional project name or ID
Returns:
Formatted string containing the updated child work item details
showing the new parent relationship, formatted as markdown
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes | ||
| child_id | Yes | ||
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it explains the immediate effect ('child work item will immediately appear under the parent'), impact on views ('affects how items are displayed in backlogs and boards'), and system constraints ('a work item can have only one parent but multiple children'). It also mentions the return format. However, it lacks details on error conditions or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, important notes, args, returns). Each sentence adds value: the opening statement defines the tool, bullet points clarify usage, the IMPORTANT section explains behavior, and parameter/return details are concise. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a strong job covering purpose, usage, behavior, and parameters. It explains the return value as a formatted string. However, for a mutation tool with system constraints, it could benefit from mentioning error cases or authentication needs, keeping it from a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It provides clear semantics for all three parameters: 'parent_id' and 'child_id' are described as IDs of work items, and 'project' is noted as optional with name or ID. This adds meaningful context beyond the bare schema, though it doesn't specify format details for 'project'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Adds a parent-child relationship between two work items') and distinguishes it from siblings like 'create_work_item' or 'update_work_item' by focusing on establishing hierarchy rather than creating or modifying individual items. The verb 'adds' and resource 'relationship between two work items' are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists four use cases (e.g., 'Establish hierarchy between work items', 'Organize epics, features, user stories, and tasks') and provides context on when to use it. It also implicitly distinguishes from siblings by focusing on relationship management rather than data retrieval or modification of individual items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_work_item_commentA
Adds a new comment to a work item.
Use this tool when you need to:
- Provide feedback or clarification on a work item
- Document decisions made about the work
- Add context without changing the work item's fields
- Communicate with team members about specific tasks
IMPORTANT: Comments in Azure DevOps become part of the permanent work
item history and cannot be edited or deleted after they are added. The
comment will be attributed to the user associated with the Personal
Access Token used for authentication.
Args:
id: The work item ID
text: The text of the comment (supports markdown formatting)
project: Optional project name. If not provided, will be
determined from the work item.
Returns:
Formatted string containing confirmation and the added comment with
author information and timestamp
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| text | Yes | ||
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: comments are permanent and cannot be edited/deleted, authentication attribution to the Personal Access Token user, and that the return includes confirmation with author info and timestamp. This goes beyond basic functionality to cover important operational implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with the core purpose, then usage guidelines, important behavioral notes, and parameter details. Every sentence adds value—no wasted words—and it's front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with permanent effects), no annotations, and no output schema, the description is remarkably complete. It covers purpose, usage, behavioral constraints (permanence, attribution), parameter semantics, and even hints at the return format. This provides sufficient context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It adds meaningful semantics for all three parameters: 'id' as work item ID, 'text' as comment text with markdown support, and 'project' as optional name with fallback behavior. This provides clear context beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Adds a new comment to a work item.' It specifies the verb ('adds') and resource ('comment to a work item'), distinguishing it from sibling tools like update_work_item (which modifies fields) or get_work_item_comments (which retrieves comments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with a bulleted list of scenarios: 'Provide feedback or clarification,' 'Document decisions,' 'Add context without changing fields,' and 'Communicate with team members.' It also implicitly distinguishes from alternatives by noting comments don't change work item fields, unlike update_work_item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_work_itemA
Creates a new work item in Azure DevOps.
Use this tool when you need to:
- Add a new task, user story, bug, or other work item to a project
- Create work items with specific field values and metadata
- Establish work hierarchies by setting parent relationships
- Track new requirements, features, or issues in your project
IMPORTANT: The work item will be created immediately and visible to all
users with access to the specified project. It will also trigger any
configured notifications or automation rules.
Args:
title: The title of the work item
project: The project name or ID where the work item will be created
work_item_type: Type of work item (e.g., "User Story", "Bug",
"Task")
fields: Optional dictionary of additional field name/value pairs
to set
description: Optional description of the work item
state: Optional initial state for the work item
assigned_to: Optional user email to assign the work item to
parent_id: Optional ID of parent work item for hierarchy
iteration_path: Optional iteration path for the work item
area_path: Optional area path for the work item
story_points: Optional story points value
priority: Optional priority value
tags: Optional tags as comma-separated string
Returns:
Formatted string containing the created work item details including
ID, title, type, state, and all other specified fields, formatted
as markdown
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| project | Yes | ||
| work_item_type | Yes | ||
| fields | No | ||
| description | No | ||
| state | No | ||
| assigned_to | No | ||
| parent_id | No | ||
| iteration_path | No | ||
| area_path | No | ||
| story_points | No | ||
| priority | No | ||
| tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's a write operation ('creates'), has immediate effects ('created immediately'), impacts visibility ('visible to all users'), and triggers notifications/automation. It could improve by mentioning authentication needs 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, important notes, parameters, returns) and front-loaded key information. It could be slightly more concise by reducing redundancy in bullet points, but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex creation tool with 13 parameters, 0% schema coverage, no annotations, and no output schema, the description is remarkably complete: it explains purpose, usage, behavior, all parameters, and return format, leaving no significant gaps for the agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage and 13 parameters, the description compensates fully by providing detailed explanations for each parameter in the 'Args' section, adding meaning beyond the schema (e.g., clarifying 'parent_id' establishes hierarchies, 'tags' as comma-separated string).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Creates a new work item in Azure DevOps' with specific examples of what can be created (task, user story, bug) and distinguishes this from sibling tools like 'update_work_item' or 'get_work_item' by focusing on creation rather than modification or retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists four specific use cases in bullet points (e.g., 'Add a new task...', 'Create work items with specific field values...') and includes an 'IMPORTANT' section detailing immediate visibility and notification triggers, providing clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_teamsA
Retrieves all teams in the Azure DevOps organization.
Use this tool when you need to:
- Get an overview of all teams across projects
- Find team IDs for use in other operations
- Determine which teams exist in the organization
- Locate specific teams by name
Args:
user_is_member_of: If true, return only teams where the current
user is a member. Otherwise return all teams the user
has read access to.
top: Maximum number of teams to return
skip: Number of teams to skip
Returns:
Formatted string containing team information including names,
IDs, descriptions, and associated projects, formatted as
markdown with each team clearly separated
| Name | Required | Description | Default |
|---|---|---|---|
| user_is_member_of | No | ||
| top | No | ||
| skip | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by explaining access control behavior ('return all teams the user has read access to'), pagination behavior (top/skip parameters), and return format ('formatted as markdown with each team clearly separated'). It doesn't mention rate limits or authentication requirements, but covers key behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage scenarios, parameters, returns) and front-loaded information. The bullet points could be slightly more concise, but overall it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with no annotations and no output schema, the description provides comprehensive context: clear purpose, usage guidelines, parameter explanations, and return format details. It doesn't explicitly mention error conditions or performance characteristics, but covers most essential aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all three parameters: 'user_is_member_of' clarifies filtering logic, 'top' specifies maximum return count, and 'skip' explains pagination offset. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Retrieves') and resource ('all teams in the Azure DevOps organization'). It distinguishes this tool from siblings like get_team_members or get_team_iterations by focusing on team listing rather than team-specific details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios in bullet points: 'Get an overview of all teams across projects', 'Find team IDs for use in other operations', 'Determine which teams exist', and 'Locate specific teams by name'. This gives clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_process_detailsA
Gets detailed information about a specific process.
Use this tool when you need to:
- View process properties and configuration
- Get a list of work item types defined in a process
- Check if a process is the default for the organization
Args:
process_id: The ID of the process
Returns:
Detailed information about the process including properties and
available work item types
| Name | Required | Description | Default |
|---|---|---|---|
| process_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation ('Gets detailed information'), which is appropriate, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or response format details. The description adds value by specifying what information is returned but lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, bulleted usage guidelines, and separate sections for Args and Returns. Every sentence earns its place by adding specific value without redundancy, and it's front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, read operation) and lack of annotations or output schema, the description is fairly complete. It covers purpose, usage, parameters, and return information, but could improve by adding more behavioral details like error handling or response structure to fully compensate for missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It documents the single parameter 'process_id' with a brief explanation ('The ID of the process'), which adds meaning beyond the schema's title 'Process Id'. However, it doesn't provide format examples or constraints, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Gets detailed information') and resource ('about a specific process'), distinguishing it from siblings like 'list_processes' (which lists processes) and 'get_work_item' (which focuses on work items). It specifies the scope of details including properties, configuration, work item types, and default status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage scenarios in a bulleted list: 'View process properties and configuration', 'Get a list of work item types defined in a process', and 'Check if a process is the default for the organization'. This gives clear context for when to use this tool versus alternatives like 'list_processes' or 'get_work_item_types'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_process_idA
Gets the process ID associated with a project.
Use this tool when you need to:
- Find out which process a project is using
- Get the process ID for use in other process-related operations
- Verify process information for a project
Args:
project: Project ID or project name
Returns:
Formatted information about the process including name and ID
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a 'get' operation (implying read-only), and mentions the return format includes 'name and ID', which adds useful context. However, it doesn't address potential error conditions, authentication requirements, or rate limits that would be helpful for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose statement, usage guidelines bullet points, Args, and Returns. Every sentence earns its place by providing specific guidance or information without redundancy. The formatting makes it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations and no output schema, the description does a good job covering purpose, usage, parameters, and return format. The main gap is the lack of error handling or edge case information, but given the tool's apparent simplicity, the description provides sufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It provides the Args section explaining that 'project' accepts 'Project ID or project name', which adds meaningful semantics beyond the bare schema. However, it doesn't provide examples or format specifications for the project parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'gets' and the resource 'process ID associated with a project', making the purpose specific and unambiguous. It distinguishes this tool from siblings like 'get_process_details' or 'list_processes' by focusing specifically on the project-process relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit bullet points for when to use this tool: 'Find out which process a project is using', 'Get the process ID for use in other process-related operations', and 'Verify process information for a project'. This gives clear context and distinguishes it from alternatives like 'get_process_details' which might provide broader process information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsA
Retrieves all projects accessible to the authenticated user
in the Azure DevOps organization.
Use this tool when you need to:
- Get an overview of all available projects
- Find project IDs for use in other operations
- Check project states and visibility settings
- Locate specific projects by name
Args:
state_filter: Filter on team projects in a specific state
(e.g., "WellFormed", "Deleting")
top: Maximum number of projects to return
Returns:
Formatted string containing project information including names,
IDs, descriptions, states, and visibility settings, formatted as
markdown with each project clearly separated
| Name | Required | Description | Default |
|---|---|---|---|
| state_filter | No | ||
| top | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it retrieves 'all projects accessible to the authenticated user', implying authentication needs and scope limitations. It also describes the return format ('formatted as markdown'), adding useful behavioral context beyond basic functionality. However, it doesn't mention rate limits, pagination, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with distinct sections (purpose, usage guidelines, args, returns), front-loading key information. Each sentence earns its place by providing specific details without redundancy, and the bullet points enhance readability while maintaining efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and no output schema, the description does an excellent job compensating by explaining parameters, return format, and use cases. It covers the core functionality comprehensively. A slight deduction because it doesn't address potential limitations like authentication errors or large result sets, but overall it's highly complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear explanations for both parameters: 'state_filter' is described with examples ('WellFormed', 'Deleting'), and 'top' is explained as 'Maximum number of projects to return'. This adds significant meaning beyond the schema's minimal titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieves') and resource ('all projects accessible to the authenticated user in the Azure DevOps organization'), making the purpose specific. It distinguishes from siblings by focusing on project retrieval rather than work items, teams, or processes, which are covered by other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists four use cases (e.g., 'Get an overview of all available projects', 'Find project IDs for use in other operations'), providing clear guidance on when to use this tool. It implicitly distinguishes from alternatives by not mentioning other project-related tools, but the specific use cases offer practical direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_area_pathsA
Retrieves the area paths assigned to a specific team.
Use this tool when you need to:
- Understand a team's areas of responsibility
- Check default area path assignments
- Determine how work is classified and routed to teams
- Set up board and backlog configurations
IMPORTANT: Area paths in Azure DevOps determine which work items appear
on a team's backlogs and boards. The default area path is used when
creating new work items through a team's interface.
Args:
project_name_or_id: The name or ID of the team project
team_name_or_id: The name or ID of the team
Returns:
Formatted string containing team area path information including
the default area path and all assigned paths, with indicators for
paths that include sub-areas
| Name | Required | Description | Default |
|---|---|---|---|
| project_name_or_id | Yes | ||
| team_name_or_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains what the tool returns (formatted string with default area path, all assigned paths, and sub-area indicators) and provides important context about how area paths function in Azure DevOps. However, it doesn't mention potential errors, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, important context, parameters, returns) and every sentence earns its place. It's appropriately sized for a tool with 2 parameters and no annotations, providing comprehensive information without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description provides complete coverage. It explains what the tool does, when to use it, the parameters, the return format, and the broader system context. The Returns section effectively substitutes for a missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by clearly documenting both parameters (project_name_or_id and team_name_or_id) in the Args section. It explains what each parameter represents and provides the important detail that they accept either names or IDs, adding significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieves the area paths') and resource ('assigned to a specific team'), distinguishing it from sibling tools like get_all_teams or get_team_members. It provides a precise verb+resource combination that leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists four specific use cases (understanding areas of responsibility, checking default assignments, determining classification/routing, setting up configurations) and includes an IMPORTANT section explaining the broader context of area paths in Azure DevOps. This provides clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_iterationsA
Retrieves the iterations (sprints) assigned to a specific team.
Use this tool when you need to:
- View a team's sprint schedule
- Find date ranges for iterations
- Determine which iteration is currently active
- Plan work based on team's iteration calendar
IMPORTANT: Iterations in Azure DevOps define time periods for planning
and tracking work. They determine sprint dates and are used for
capacity planning, burndown charts, and velocity calculations.
Args:
project_name_or_id: The name or ID of the team project
team_name_or_id: The name or ID of the team
current: If True, return only the current iteration
Returns:
Formatted string containing team iteration information including
names, date ranges, and time frames (past/current/future),
formatted as markdown
| Name | Required | Description | Default |
|---|---|---|---|
| project_name_or_id | Yes | ||
| team_name_or_id | Yes | ||
| current | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (retrieves iterations), explains the Azure DevOps context, and specifies the return format (formatted string as markdown). However, it doesn't mention potential limitations like authentication requirements, rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage scenarios, important context, parameters, returns) and every sentence adds value. It's appropriately sized for a tool with 3 parameters and no annotations, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with 3 parameters and no output schema, the description provides good completeness: clear purpose, usage guidelines, parameter explanations, and return format specification. The main gap is the lack of behavioral details like authentication or error handling, but given the tool's relative simplicity, it's mostly adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining all three parameters in the Args section, clarifying their purpose and providing the 'current' parameter's filtering behavior. It adds meaningful context beyond the bare schema, though it doesn't specify format details for project/team identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieves') and resource ('iterations (sprints) assigned to a specific team'), distinguishing it from sibling tools like get_all_teams or get_team_members. It explicitly defines what iterations are in Azure DevOps context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios in a bulleted list (view sprint schedule, find date ranges, determine active iteration, plan work) and includes an IMPORTANT section explaining the broader context of iterations in Azure DevOps. This gives clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_membersA
Retrieves the membership roster for a specific team.
Use this tool when you need to:
- See who belongs to a particular team
- Find team administrators
- Check user assignments across teams
- Determine team size and composition
Args:
project_id: The name or ID (GUID) of the team project the team
belongs to
team_id: The name or ID (GUID) of the team
top: Maximum number of members to return
skip: Number of members to skip
Returns:
Formatted string containing team members information including
display names, emails, IDs, and administrator status, formatted
as markdown with each member clearly separated
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| team_id | Yes | ||
| top | No | ||
| skip | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool retrieves data (implied read-only) and describes the return format (markdown with specific fields), which is helpful. However, it doesn't mention potential limitations like permissions needed, rate limits, pagination behavior beyond top/skip, or error conditions. For a read operation with no annotations, this is adequate but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, args, returns) and uses bullet points efficiently. It's appropriately sized for a 4-parameter tool, though the usage guidelines could be more concise (e.g., combining points). Every sentence adds value, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 4 parameters with 0% schema coverage, the description does a good job: it explains purpose, usage, parameters, and return format. However, it lacks details on authentication, error handling, or example outputs, which would help an agent use it correctly in complex scenarios. For a read tool, this is mostly complete but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear semantics for all four parameters: project_id and team_id as identifiers (with name/GUID clarification), and top/skip for pagination control. This adds significant value beyond the bare schema, though it doesn't detail default values or constraints (e.g., top/skip being optional/nullable).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieves') and resource ('membership roster for a specific team'), distinguishing it from siblings like get_all_teams (which lists teams rather than members) and get_team_area_paths/get_team_iterations (which focus on other team attributes). The title is null, so the description fully carries this burden.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides four bullet points detailing when to use this tool: to see team membership, find administrators, check user assignments, and determine team composition. This gives clear context for selection, though it doesn't explicitly state when not to use it or name alternatives (like querying users directly if available).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_itemA
Retrieves detailed information about one or multiple work items.
Use this tool when you need to:
- View the complete details of a specific work item
- Examine the current state, assigned user, and other properties
- Get information about multiple work items at once
- Access the full description and custom fields of work items
Args:
id: The work item ID or a list of work item IDs
Returns:
Formatted string containing comprehensive information for the
requested work item(s), including all system and custom fields,
formatted as markdown with clear section headings
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('formatted string... as markdown') and scope ('comprehensive information... all system and custom fields'), which is helpful. However, it doesn't mention potential limitations like pagination, rate limits, authentication requirements, or error conditions for invalid IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and efficiently organized: purpose statement, usage guidelines bullet points, parameter explanation, and return format description. Every sentence adds value with zero redundant information, and the most important information (purpose and usage) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation with no output schema, the description provides excellent context: clear purpose, usage guidelines, parameter semantics, and return format details. The only minor gap is the lack of behavioral constraints (rate limits, auth needs) which would make it fully complete for a tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage (no parameter descriptions in schema), so the description must fully compensate. It provides a clear 'Args' section explaining that 'id' can be either a single integer or a list of integers, adding crucial semantic meaning about single vs. batch retrieval that the schema alone doesn't convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('retrieves detailed information') and resources ('work items'), distinguishing it from siblings like query_work_items (which likely searches/filters) or get_work_item_comments (which focuses on comments). The opening sentence provides a precise, standalone purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides four bullet points detailing when to use this tool ('Use this tool when you need to...'), covering specific scenarios like viewing complete details, examining state/properties, handling multiple items, and accessing descriptions/custom fields. This gives clear contextual guidance without needing to reference alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_commentsA
Retrieves all comments associated with a specific work item.
Use this tool when you need to:
- Review discussion history about a work item
- See feedback or notes left by team members
- Check if specific questions have been answered
- Understand the context and evolution of a work item
Args:
id: The work item ID
project: Optional project name. If not provided, will be
determined from the work item.
Returns:
Formatted string containing all comments on the work item,
including author names, timestamps, and content, organized
chronologically and formatted as markdown
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it retrieves comments, includes author names, timestamps, and content, organizes them chronologically, and returns them as a formatted markdown string. This covers key aspects like output format and organization, though it doesn't mention potential limitations like pagination, rate limits, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by a bulleted list of use cases, then details parameters and returns in labeled sections. Every sentence adds value without redundancy, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is largely complete. It covers purpose, usage, parameters, and return format. However, it doesn't address potential behavioral aspects like error conditions (e.g., invalid ID), pagination for many comments, or authentication requirements, leaving minor gaps in full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must fully compensate. It provides clear semantics for both parameters: 'id' is described as 'The work item ID', and 'project' is explained as 'Optional project name. If not provided, will be determined from the work item.' This adds essential meaning beyond the bare schema, clarifying the optional nature and default behavior of the 'project' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieves') and resource ('all comments associated with a specific work item'), making the purpose explicit. It distinguishes this tool from siblings like 'add_work_item_comment' (which creates comments) and 'get_work_item' (which retrieves the work item itself, not its comments), providing specific differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a bulleted list of specific use cases (e.g., 'Review discussion history', 'See feedback or notes', 'Check if specific questions have been answered'), giving explicit guidance on when to use this tool. While it doesn't explicitly mention when not to use it or name alternatives, the detailed context scenarios effectively guide appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_templateA
Gets detailed information about a specific work item template.
Use this tool when you need to:
- View default field values in a template
- Understand what a template pre-populates in a work item
- Get complete details about a template
Args:
team_context: Dictionary containing team information with keys:
project: Project name (Optional if project_id is provided)
project_id: Project ID (Optional if project is provided)
team: Team name (Optional if team_id is provided)
team_id: Team ID (Optional if team is provided)
template_id: The ID of the template
Returns:
Detailed information about the template including default field
values
| Name | Required | Description | Default |
|---|---|---|---|
| team_context | Yes | ||
| template_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as a read operation ('Gets'), which implies it's non-destructive and likely read-only, but doesn't explicitly state permission requirements, rate limits, or error behaviors. The description adds some context about what information is returned, but lacks comprehensive behavioral disclosure for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, bulleted usage guidelines, and separate Args/Returns sections. Every sentence earns its place, though the bullet points could be slightly more concise. It's appropriately sized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job covering purpose, usage, and parameter semantics. It explains what information is returned ('Detailed information... including default field values'), though could benefit from more detail about the return structure. For a read-only tool with 2 parameters, it's reasonably complete but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate. It provides detailed semantics for both parameters: 'team_context' is explained as a dictionary with specific optional keys and their relationships, and 'template_id' is clearly defined. This adds significant meaning beyond the bare schema, fully documenting parameter purposes and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Gets detailed information') and resource ('about a specific work item template'), distinguishing it from siblings like 'get_work_item_templates' (plural) which likely lists templates rather than providing details for one. The verb 'Gets' is precise and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides three bullet points for when to use this tool ('View default field values', 'Understand what a template pre-populates', 'Get complete details'), offering clear context. While it doesn't explicitly state when not to use it or name alternatives, the specificity of these use cases effectively guides selection among siblings like 'get_work_item_templates' or 'get_work_item_type'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_templatesA
Gets a list of all work item templates for a team.
Use this tool when you need to:
- Find available templates for creating work items
- Get template IDs for use in other operations
- Filter templates by work item type
Args:
team_context: Dictionary containing team information with keys:
project: Project name (Optional if project_id is provided)
project_id: Project ID (Optional if project is provided)
team: Team name (Optional if team_id is provided)
team_id: Team ID (Optional if team is provided)
work_item_type: Optional work item type name to filter templates
Returns:
A formatted table of all templates with names, work item types,
and descriptions
| Name | Required | Description | Default |
|---|---|---|---|
| team_context | Yes | ||
| work_item_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as a read operation ('Gets') and mentions filtering and return format, but lacks details on permissions, rate limits, pagination, or error handling. It adds some behavioral context but is incomplete for a tool with nested objects and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, args, returns) and uses bullet points efficiently. It's appropriately sized but could be slightly more concise by integrating the purpose into the usage section or trimming redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters with nested objects, no output schema, no annotations), the description is partially complete. It covers purpose, usage, and parameters well, but lacks details on behavioral aspects like authentication, errors, or output structure beyond a brief mention, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by detailing both parameters: 'team_context' is explained as a dictionary with specific keys and optionality rules, and 'work_item_type' is described as an optional filter. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Gets a list of all work item templates for a team' with a specific verb ('Gets') and resource ('work item templates'), and distinguishes it from sibling tools like 'get_work_item_template' (singular) and 'get_work_item_type'. However, it doesn't explicitly differentiate from 'get_work_item_types' or other list-like tools, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios ('Use this tool when you need to') with three bullet points, including finding templates, getting IDs, and filtering by type. It doesn't mention when not to use it or name specific alternatives among siblings, but the context is clear and helpful for guiding selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_typeA
Gets detailed information about a specific work item type.
Use this tool when you need to:
- Get complete details about a work item type
- Understand the states and transitions for a work item type
- Learn about the color and icon for a work item type
Args:
project: Project ID or project name
type_name: The name of the work item type
Returns:
Detailed information about the work item type including states,
color, icon, and reference name
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | ||
| type_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states this is a read operation ('Gets'), which implies non-destructive behavior, but doesn't mention authentication requirements, rate limits, error conditions, or whether it returns all details in one call. It adds some context about what information is returned, but lacks comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, bulleted usage guidelines, and separate Args/Returns sections. Every sentence adds value without redundancy. It's appropriately sized for a tool with two parameters and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 required parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, parameters, and return details. However, it lacks information about authentication, errors, or pagination, which could be relevant for API interactions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It explains both parameters: 'project' as 'Project ID or project name' and 'type_name' as 'The name of the work item type', adding meaningful context beyond the schema's basic titles. However, it doesn't provide examples or format specifics (e.g., case sensitivity).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Gets') and resource ('detailed information about a specific work item type'), distinguishing it from siblings like 'get_work_item_types' (plural) which likely lists types, and 'get_work_item' which retrieves individual work items rather than type definitions. The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists three use cases: getting complete details, understanding states/transitions, and learning about color/icon. This provides clear guidance on when to use this tool versus alternatives like 'get_work_item_types' (for listing) or 'get_work_item' (for item data).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_type_fieldA
Gets detailed information about a specific field in a work item type.
Use this tool when you need to:
- Get complete details about a work item field
- Check allowed values for a field
- Verify if a field is required or read-only
Args:
project: Project ID or project name
type_name: The name of the work item type
field_name: The reference name or display name of the field
Returns:
Detailed information about the field including type, allowed
values, and constraints
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | ||
| type_name | Yes | ||
| field_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'gets' information, implying a read-only operation, but does not explicitly state whether it requires authentication, has rate limits, or other behavioral traits. The description adds some context about what information is retrieved (e.g., 'allowed values', 'constraints'), but lacks details on error handling, permissions, or response format. For a tool with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with a clear purpose statement, follows with a bulleted list of usage guidelines, then details parameters and returns. Each sentence earns its place by adding value, with no redundant or wasted information. The front-loaded purpose and organized sections make it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description does a decent job but has gaps. It covers purpose, usage, and parameters well, but lacks details on behavioral aspects (e.g., authentication, errors) and does not fully explain the return value beyond a vague statement. Without an output schema, more specifics on the return structure would be helpful. It's adequate but not complete for a tool with no structured support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It provides an 'Args' section that lists and describes all three parameters: 'project: Project ID or project name', 'type_name: The name of the work item type', and 'field_name: The reference name or display name of the field.' This adds clear meaning beyond the schema, explaining what each parameter represents and offering guidance (e.g., 'reference name or display name'), fully compensating for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Gets detailed information about a specific field in a work item type.' It specifies the verb ('gets') and resource ('field in a work item type'), but does not explicitly differentiate it from sibling tools like 'get_work_item_type_fields' (plural) or 'get_work_item_type', which might retrieve broader information. This makes it clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios in a bulleted list: 'Use this tool when you need to: - Get complete details about a work item field - Check allowed values for a field - Verify if a field is required or read-only.' This gives clear context for when to use the tool. However, it does not mention when not to use it or name alternatives (e.g., using 'get_work_item_type_fields' for multiple fields), so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_type_fieldsA
Gets a list of all fields for a specific work item type.
Use this tool when you need to:
- See what fields are available for a work item type
- Find required fields for creating work items of a specific type
- Get reference names for fields to use in queries or updates
Args:
project: Project ID or project name
type_name: The name of the work item type
Returns:
A formatted table of all fields with names, reference names,
types, and required/read-only status
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | ||
| type_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior by specifying that it returns a 'formatted table' with details like names, reference names, types, and statuses, which clarifies the output format and data structure. However, it lacks details on error handling, rate limits, or authentication needs, leaving some behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose, followed by usage guidelines, parameters, and returns in a structured format. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, no annotations, and no output schema, the description is largely complete, covering purpose, usage, parameters, and return format. However, it could be more comprehensive by including potential errors or constraints, but given the tool's simplicity, it provides sufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given a schema description coverage of 0%, the description compensates fully by adding semantic meaning beyond the schema. It explains that 'project' is a 'Project ID or project name' and 'type_name' is 'The name of the work item type', providing clarity on what these parameters represent and how they should be used, which is essential for correct tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Gets') and resource ('list of all fields for a specific work item type'), distinguishing it from siblings like 'get_work_item_type_field' (singular) and 'get_work_item_types' (types, not fields). It explicitly defines what it retrieves, avoiding vagueness or tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines with a bulleted list of when to use this tool (e.g., 'See what fields are available', 'Find required fields', 'Get reference names'), clearly differentiating it from alternatives like 'get_work_item_type' or 'get_work_item_template' by focusing on field-level metadata. It gives direct context for application without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_item_typesA
Gets a list of all work item types in a project.
Use this tool when you need to:
- See what work item types are available in a project
- Get reference names for work item types to use in other operations
- Plan work item creation by understanding available types
Args:
project: Project ID or project name
Returns:
A formatted table of all work item types with names, reference
names, and descriptions
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns a 'formatted table' with specific columns (names, reference names, descriptions), which adds useful behavioral context beyond the basic 'get list' purpose. However, it doesn't mention potential limitations like pagination, rate limits, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by usage guidelines and parameter/return details. Each sentence earns its place by adding value—no wasted words. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and no output schema, the description does an excellent job of explaining purpose, usage, parameters, and return format. It's nearly complete for a read-only list tool, though it could slightly improve by mentioning any constraints (e.g., project existence, access permissions).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate fully. It clearly explains the single parameter 'project' as 'Project ID or project name', adding essential semantics not present in the schema. This fully addresses the parameter meaning and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Gets a list of all work item types') and resource ('in a project'), distinguishing it from siblings like 'get_work_item_type' (singular) and 'get_work_item_templates'. It explicitly lists what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios with bullet points: 'See what work item types are available', 'Get reference names for other operations', and 'Plan work item creation'. It clearly indicates when to use this tool versus alternatives like 'get_work_item_type' (for a single type) or 'create_work_item' (for creation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_processesA
Lists all available processes in the organization.
Use this tool when you need to:
- See what processes are available in your Azure DevOps organization
- Find process IDs for project creation or configuration
- Check which process is set as the default
Returns:
A formatted table of all processes with names, IDs, and
descriptions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns a formatted table with names, IDs, and descriptions, which is useful behavioral context. However, it doesn't mention potential limitations like pagination, rate limits, or authentication requirements, leaving some gaps for a tool with organizational scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by bulleted usage guidelines and return format. Every sentence adds value without redundancy, and it's front-loaded with the core functionality. The formatting enhances readability without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 parameters, no annotations, and no output schema, the description does a good job explaining what the tool does, when to use it, and what it returns. However, for a tool that lists organizational resources, it could benefit from mentioning potential scope or permission considerations to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on usage and output. A baseline of 4 is applied since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Lists' and resource 'all available processes in the organization.' It distinguishes from siblings like 'get_process_details' (which retrieves details for a specific process) and 'get_project_process_id' (which focuses on a project's process). The purpose is specific and well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides three bullet points detailing when to use this tool: to see available processes, find process IDs for project creation/configuration, and check the default process. This gives clear context for usage without needing to mention alternatives, which is appropriate for a list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_work_itemsA
Searches for work items using Work Item Query Language (WIQL).
Use this tool when you need to:
- Find work items matching specific criteria
- Search across projects for related tasks or bugs
- Create dynamic reports based on work item attributes
- Identify work items assigned to specific team members
IMPORTANT: WIQL syntax is similar to SQL and allows you to query
work items based on their fields. The query must follow Azure DevOps
WIQL syntax rules, with proper SELECT, FROM, and WHERE clauses.
Args:
query: The WIQL query string (e.g., "SELECT * FROM workitems
WHERE [System.State] = 'Active'")
top: Maximum number of results to return (default: 30)
Returns:
Formatted string containing detailed information for each matching
work item, with all fields and values formatted as markdown
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns 'detailed information for each matching work item' as a 'formatted string... as markdown,' which adds behavioral context. However, it lacks details on permissions, rate limits, error handling, or pagination beyond the 'top' parameter, leaving gaps for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, important notes, args, returns) and uses bullet points for readability. It is appropriately sized, though the 'IMPORTANT' section could be more concise. Every sentence adds value, such as explaining WIQL syntax and return format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (search with WIQL syntax), no annotations, and no output schema, the description does a good job by covering purpose, usage, parameters, and return format. However, it misses some contextual details like authentication requirements, error cases, or how results are ordered, which could enhance completeness for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully explains both parameters: 'query' as 'The WIQL query string' with an example, and 'top' as 'Maximum number of results to return (default: 30).' This adds essential meaning beyond the bare schema, covering syntax, purpose, and defaults effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Searches for work items using Work Item Query Language (WIQL).' It specifies the verb ('searches'), resource ('work items'), and method ('using WIQL'), distinguishing it from siblings like 'get_work_item' (single item retrieval) or 'get_work_item_comments' (comments-focused).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios in a bulleted list: 'Find work items matching specific criteria,' 'Search across projects for related tasks or bugs,' etc. It also includes an 'IMPORTANT' section detailing when to use WIQL syntax, though it doesn't explicitly contrast with alternatives like 'get_work_item' (for single items) or 'update_work_item' (for modifications).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_work_itemA
Modifies an existing work item's fields and properties.
Use this tool when you need to:
- Change the status or state of a work item
- Reassign work to a different team member
- Update the description or details of a requirement
- Modify effort estimates or priority levels
- Add or change classification (area/iteration)
- Update any field supported by the work item type
IMPORTANT: This tool updates the work item directly in Azure DevOps.
Changes will be immediately visible to all users with access to the
work item and will trigger any configured notifications or workflows.
You must specify at least one field to update.
Args:
id: The ID of the work item to update
fields: Optional dictionary of field name/value pairs to update
project: Optional project name or ID
title: Optional new title for the work item
description: Optional new description
state: Optional new state
assigned_to: Optional user email to assign to
iteration_path: Optional new iteration path
area_path: Optional new area path
story_points: Optional new story points value
priority: Optional new priority value
tags: Optional new tags as comma-separated string
Returns:
Formatted string containing the updated work item details with
all current field values, formatted as markdown
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No | ||
| project | No | ||
| title | No | ||
| description | No | ||
| state | No | ||
| assigned_to | No | ||
| iteration_path | No | ||
| area_path | No | ||
| story_points | No | ||
| priority | No | ||
| tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well: it discloses that changes are immediate, visible to all users, trigger notifications/workflows, and require at least one field update. It could improve by mentioning authentication needs or error handling, but covers key behavioral traits adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, usage guidelines, important notes, parameters, returns). It's appropriately sized but could be slightly more concise by integrating the 'Args' list more seamlessly; however, every sentence adds value, and it's front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, no annotations, no output schema), the description is quite complete: it explains purpose, usage, behavioral impact, all parameters, and return format. It could slightly improve by detailing error cases or authentication, but covers most aspects needed for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It provides detailed semantics for all 12 parameters in the 'Args' section, explaining each parameter's purpose (e.g., 'id: The ID of the work item to update', 'story_points: Optional new story points value'), adding significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'modifies an existing work item's fields and properties' with specific examples like changing status, reassigning work, and updating descriptions. It distinguishes from siblings like 'create_work_item' (for new items) and 'get_work_item' (for reading).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a bulleted list of when to use this tool (e.g., 'Change the status or state', 'Reassign work'), and distinguishes it from alternatives by specifying it's for modifying existing items (vs. 'create_work_item' for new ones). It also includes an 'IMPORTANT' section with usage constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, such as create_work_item vs. update_work_item or get_work_item vs. query_work_items. However, there is some potential overlap between get_work_item_comments and add_work_item_comment, as both deal with comments, but their distinct actions (retrieve vs. add) help differentiate them. The tools generally target specific resources and actions, reducing confusion.
All tool names follow a consistent verb_noun pattern using snake_case, such as create_work_item, get_work_item, and update_work_item. The naming is predictable and readable throughout, with no deviations or mixed conventions, making it easy for agents to understand the tool's purpose from its name.
With 21 tools, the count is slightly high but reasonable for the Azure DevOps domain, which involves managing projects, teams, processes, and work items. It covers a broad scope without being excessive, though it might feel heavy compared to simpler servers. Each tool appears to serve a specific function, justifying its inclusion.
The tool set provides comprehensive coverage for Azure DevOps operations, including CRUD for work items (create, get, update, query), project and team management, process and template handling, and comment functionality. There are no obvious gaps; it supports full lifecycle management and essential workflows, ensuring agents can perform typical tasks without dead ends.
Maintenance
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceThis server provides a convenient API for interacting with Azure DevOps services, enabling AI assistants and other tools to manage work items, code repositories, boards, sprints, and more. Built with the Model Context Protocol, it provides a standardized interface for communicating with Azure DevOps5658MIT
- AlicenseBqualityAmaintenanceA Model Context Protocol server that enables AI assistants to interact with Azure DevOps resources including projects, work items, repositories, pull requests, branches, and pipelines through a standardized protocol.463,142383MIT
- -licenseNot gradedqualityNot gradedmaintenanceA reference server implementation for the Model Context Protocol that enables AI assistants to interact with Azure DevOps resources and perform operations such as project management, work item tracking, repository operations, and code search programmatically.7
- FlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with Azure DevOps services, providing capabilities for work item management, project management, and team collaboration through natural language.21
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Vortiago/mcp-azure-devops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server