Azure DevOps MCP Server
Click on "Deploy 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., "@Azure DevOps MCP Server list all active bugs assigned to me"
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.
Azure DevOps MCP Server
MCP (Model Context Protocol) server for managing Azure DevOps Work Items including Epics, Features, User Stories, Tasks, Bugs, and more.
Features
Read Work Items: Get individual work items or list by type with filters
Create Work Items: Create Epics, Features, User Stories, Tasks, Bugs, etc.
Update Work Items: Modify any field including state, assignment, description
Delete Work Items: Move to recycle bin or permanently delete
Query Work Items: Execute custom WIQL queries
Link Work Items: Create parent-child and other relationships
Get Metadata: List work item types, iterations, and area paths
Related MCP server: Azure DevOps MCP Server
Prerequisites
Node.js 18 or higher
Azure DevOps account with a Personal Access Token (PAT)
PAT needs
Work Items (Read & Write)scope
Installation
npm install
npm run buildConfiguration
Set the following environment variables:
export AZURE_DEVOPS_ORG="your-organization"
export AZURE_DEVOPS_PROJECT="your-project"
export AZURE_DEVOPS_PAT="your-personal-access-token"Creating a PAT
Go to Azure DevOps > User Settings > Personal Access Tokens
Create new token with these scopes:
Work Items: Read & Write
Copy the token (you won't see it again!)
Usage with Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"azure-devops": {
"command": "node",
"args": ["path/to/azure-devops-mcp/dist/index.js"],
"env": {
"AZURE_DEVOPS_ORG": "your-organization",
"AZURE_DEVOPS_PROJECT": "your-project",
"AZURE_DEVOPS_PAT": "your-pat"
}
}
}
}Available Tools
get_work_item
Get a single work item by ID.
{
"id": 123,
"expand": "Relations"
}list_work_items
List work items by type with optional filters.
{
"type": "User Story",
"state": "Active",
"assignedTo": "user@example.com",
"top": 10
}create_work_item
Create a new work item.
{
"type": "Task",
"title": "Implement login feature",
"description": "<p>Details here</p>",
"assignedTo": "developer@example.com",
"priority": 2,
"parentId": 100
}update_work_item
Update an existing work item.
{
"id": 123,
"state": "Resolved",
"comment": "Fixed the issue"
}delete_work_item
Delete a work item.
{
"id": 123,
"permanent": false
}query_work_items
Execute a WIQL query.
{
"query": "SELECT [System.Id] FROM WorkItems WHERE [System.State] = 'Active' AND [System.AssignedTo] = @Me"
}get_child_work_items
Get all children of a work item.
{
"parentId": 100
}link_work_items
Link two work items.
{
"sourceId": 100,
"targetId": 101,
"linkType": "System.LinkTypes.Hierarchy-Forward",
"comment": "Added as child"
}get_work_item_types
List available work item types.
get_iterations
List project iterations/sprints.
get_area_paths
List project area paths.
Common Link Types
System.LinkTypes.Hierarchy-Forward- Parent to ChildSystem.LinkTypes.Hierarchy-Reverse- Child to ParentSystem.LinkTypes.Related- Related work itemsSystem.LinkTypes.Dependency-Forward- SuccessorSystem.LinkTypes.Dependency-Reverse- Predecessor
Common Work Item Fields
System.Title- TitleSystem.Description- Description (HTML)System.State- State (New, Active, Resolved, Closed)System.AssignedTo- Assigned userSystem.AreaPath- Area pathSystem.IterationPath- Iteration/SprintSystem.Tags- Tags (semicolon separated)Microsoft.VSTS.Common.Priority- Priority (1-4)Microsoft.VSTS.Scheduling.StoryPoints- Story pointsMicrosoft.VSTS.Scheduling.OriginalEstimate- Original estimateMicrosoft.VSTS.Scheduling.RemainingWork- Remaining workMicrosoft.VSTS.Common.AcceptanceCriteria- Acceptance criteria
License
MIT
Available Tools
45 toolsget_area_pathsC
List area paths
Inputs: no named parameters.
get_child_work_itemsD
Get child work items of a parent
Inputs: parentId (required).
get_current_configB
Get current Azure DevOps organization and project configuration
Inputs: no named parameters.
get_current_sprintB
Get the current active sprint/iteration for a team. Returns sprint name, dates, and path.
Inputs: team.
get_current_userB
Get the current authenticated user identity (useful for knowing your user ID for voting on PRs, assigning work items, etc.)
Inputs: no named parameters.
get_current_user_permissionsA
Get the permission level and group memberships of the currently authenticated user. Returns whether the user is an org admin, project admin, contributor, or reader. Useful to understand what operations are allowed before attempting them.
Inputs: no named parameters.
get_iterationsB
List iterations/sprints
Inputs: no named parameters.
get_iteration_work_itemsA
Get all work items for a specific iteration/sprint path. Faster than query_work_items for sprint planning.
Inputs: iterationPath (required), type, state, top.
get_my_roleA
Get your current role in this MCP server. Shows detected role, source (Azure DevOps groups or env var), and what level of access you have.
Inputs: no named parameters.
get_projectB
Get current project details
Inputs: no named parameters.
get_repositoryC
Get details of a specific repository
Inputs: repositoryId (required).
get_sprint_boardB
Get the current sprint/iteration board with all work items assigned to it
Inputs: team.
get_sprint_capacityC
Get team member capacity for a sprint (hours per day, days off)
Inputs: iterationId (required), team.
get_sprint_work_itemsC
Get all work items in a specific sprint iteration.
Inputs: iterationId (required), team.
get_team_membersC
List all members of a specific team.
Inputs: teamId (required).
get_teamsB
List all teams in the current project. Use team names with get_sprint_board.
Inputs: no named parameters.
get_user_profileA
Get profile information for an Azure DevOps user by their user ID or "me" for the authenticated user.
Inputs: userId (required).
get_wikiC
Get details of a specific wiki
Inputs: wikiIdentifier (required).
get_wiki_pageB
Get content of a wiki page by path
Inputs: wikiIdentifier (required), path (required), recursionLevel.
get_wiki_page_revisionsB
Get the revision/edit history of a wiki page (who changed it and when)
Inputs: wikiIdentifier (required), path (required), top.
get_wiki_page_textA
Get the raw markdown/text content of a wiki page (without metadata).
Inputs: wikiIdentifier (required), path (required).
get_work_itemB
Get a single work item by ID with all fields and relations
Inputs: id (required), expand.
get_work_item_attachmentsC
List all attachments on a work item (files, images, documents).
Inputs: workItemId (required).
get_work_item_commentsB
Get all comments/discussion history for a work item
Inputs: workItemId (required), top, order.
get_work_item_parentA
Get the parent work item of a given work item. Returns null if the work item has no parent.
Inputs: workItemId (required).
get_work_items_by_idsA
Fetch multiple work items by their IDs in a single request. More efficient than calling get_work_item repeatedly.
Inputs: ids (required), fields, expand.
get_work_item_typeB
Get detailed information about a work item type including its fields, states, and icon.
Inputs: workItemType (required).
get_work_item_typesB
List available work item types
Inputs: no named parameters.
get_work_item_type_statesB
List all workflow states for a given work item type (e.g. Bug, Task, User Story). Useful to know valid state transitions.
Inputs: workItemType (required).
get_work_item_updatesA
Get the full change history of a work item (who changed what and when)
Inputs: workItemId (required), top.
list_dashboardsC
List team dashboards. Returns dashboard names and IDs.
Inputs: team.
list_project_groupsB
List all security groups defined in the current project.
Inputs: no named parameters.
list_repositoriesB
List all Git repositories in the project
Inputs: no named parameters.
list_saved_queriesC
List saved work item queries in the project
Inputs: top.
list_tagsB
List all work item tags in the project
Inputs: no named parameters.
list_wiki_pagesB
List all pages in a wiki (table of contents)
Inputs: wikiIdentifier (required), path, recursionLevel.
list_wikisB
List all wikis in the project
Inputs: no named parameters.
list_work_item_fieldsB
List all available work item field names and their reference names (useful for custom queries)
Inputs: no named parameters.
list_work_item_relation_typesA
List all available work item relation/link types (use these values with link_work_items)
Inputs: no named parameters.
list_work_itemsC
List work items by type (Epic, Feature, User Story, Task, Bug) with filters
Inputs: type (required), state, assignedTo, areaPath, +2 more.
query_work_itemsB
Execute a WIQL query. Example: SELECT [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active'
Inputs: query (required), top.
run_saved_queryB
Execute a saved work item query and return the matching work items
Inputs: queryId (required).
search_codeB
Search for code across all repositories in the project. Returns matching files with line context.
Inputs: searchText (required), top, repository, branch.
search_work_itemsA
Search work items by text across title, description and comments. Easier than WIQL for natural language queries.
Inputs: searchText (required), top, skip.
set_projectA
Switch to a different project within the current organization. Use list_projects first to see available projects.
Inputs: project (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 45 tools
Most tools have distinct purposes with clear resource-action pairs, such as get_work_item, list_work_items, and query_work_items. However, some overlap exists, like get_sprint_work_items and get_iteration_work_items, which could cause confusion despite descriptive names. Overall, the set is well-differentiated with only minor ambiguities.
Tool names follow a highly consistent verb_noun pattern throughout, using verbs like get, list, search, set, and run. All names use snake_case uniformly, making them predictable and easy to parse. This consistency aids agent selection and reduces cognitive load.
With 45 tools, the count is high and may feel heavy for the Azure DevOps domain, potentially overwhelming agents. While the tools cover many aspects, some could be consolidated or omitted without losing functionality. It's borderline excessive but still manageable given the comprehensive scope.
The tool surface provides extensive coverage for Azure DevOps, including work items, repositories, wikis, sprints, queries, and user management. It supports full CRUD-like operations (e.g., get, list, query, search) across all major resources, with no obvious gaps that would hinder agent workflows in this domain.
Related MCP Connectors
Crie épicos, features, histórias e tasks no Azure DevOps a partir de uma conversa.
Laviya project management: read and update tasks, wikis, sprints and test cases.
Manage Loom projects, tasks, bugs, defects, clients and phases from AI assistants
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Azure DevOps through Personal Access Token authentication. Supports work item management, wiki operations, project/repository listing, and build pipeline access through natural language.689 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to query and interact with Azure DevOps data, including work items, projects, ticket statistics, and backlog information through natural language commands.8,530 npmMIT
- FlicenseNot gradedqualityFmaintenanceEnables LLMs and AI applications to interact with Azure DevOps Work Items, supporting queries, filtering, status updates, date management, effort tracking, descriptions, and comments through natural language.-
- AlicenseAqualityDmaintenanceEnables work item management in DevOps Plan systems, allowing users to create, retrieve, filter, and delete work items, as well as manage applications, projects, components, and work item types through natural language.1416 npmMIT