Integrate Azure DevOps MCP server into your Slack workspace for instant access to your AI agent.
Tools that your AI agent can use through this MCP server to interact with Azure DevOps
Update an existing work item - retitle it, move it between states, reassign it, repoint its area and iteration, or link it to another work item. At least one field or a link is required. Returns the updated work item. Use when closing out automated work or reflecting a change from another system. Example: work item 299, state Closed. See the documentation
Update a pull request - retitle it, edit its description, retarget it, publish a draft, or complete or abandon it. At least one field is required. Returns the updated pull request. Use status completed to merge and abandoned to close without merging. Example: pull request 12, status abandoned. See the documentation
Trigger a run of a YAML pipeline, optionally on a specific branch and with template parameters or variable overrides. Returns the run's id and state; the run itself proceeds asynchronously. Set Preview Run to validate instead: Azure DevOps then starts nothing and returns the final expanded YAML document rather than a run. Use this to deploy or test on demand. Example: pipeline 12 on refs/heads/main. Run the List Pipelines action first to obtain the pipeline id. See the documentation
Queue a new build for a build definition, optionally on a specific branch and with variable overrides. Returns the queued build's id and status - the build itself runs asynchronously. Use this to trigger CI from an external event. Example: definition 12 on refs/heads/main with parameters { \"environment\": \"staging\" }. See the documentation
Run a Work Item Query Language (WIQL) query and return the matching work item references. Returns ids and the queried columns, not full field values - pass the ids to the List Work Items action to read those. Use this whenever you need to find work by state, type, assignee or date. Example: SELECT [System.Id] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] <> 'Closed'. WIQL has no offset, so narrow the query itself rather than paging when Limit results come back. See the documentation
Run an OData query against the Azure DevOps Analytics service, which holds the historical and aggregated data the work item APIs do not expose. Returns the matching rows plus the @odata.context describing them. Use this for trend questions - how many bugs were open each day, how much work each iteration completed - and use Query Work Items (WIQL) instead for the current state of individual items. Set Apply to aggregate rather than pulling raw rows back. Example: entity set WorkItems, filter State eq 'Closed'. See the documentation
Retrieve a batch of work items by id in one call, up to 200 at a time. Returns each item's fields. Use this after a query to turn a list of ids into the actual field values. Example: ids 297,298,299. See the documentation
List the work item types available in a project, each with the states and fields it allows. Use this to discover valid values for the Work Item Type and State inputs before creating or updating an item - the states differ per process, so a Basic project uses To Do/Doing/Done where Agile uses New/Active/Closed. Example: project Fabrikam-Fiber-Git returns Bug, Task, Epic and User Story. See the documentation
List the revision history of a work item, one entry per change. Returns each revision's field values at that point in time. Use this to answer who changed what and when, or to reconstruct how long an item sat in a state. Example: work item 299. Returns at most Limit results per call - if that many come back there may be more, so raise Skip by Limit and call again to page through the rest. See the documentation
List the work item fields defined in an organization or project, with each field's reference name and data type. Use this to discover the reference names the Additional Fields and Fields inputs of the other work item actions expect. Example: returns Microsoft.VSTS.Common.Priority for the field shown as Priority in the UI. See the documentation
List the comments on a work item, newest first. Returns each comment's text, author and creation date. Use this to read the human discussion around an item before acting on it. Example: work item 299. Returns the newest Limit comments, up to the API maximum of 200; the response's continuationToken field is present when older comments were not returned. See the documentation
List the wikis in a project, or across the organization when no project is given. Returns each wiki's id, name, type and backing repository. Use this to obtain the wiki id or name the wiki page actions need. Example: project Fabrikam-Fiber-Git returns Fabrikam-Fiber-Git.wiki. See the documentation
List the users in an organization, optionally narrowed by subject type. Returns each user's display name, principal name, descriptor and origin id. Use this to resolve a person to the identity GUID that the pull request reviewer and creator inputs require. Example: subject type aad returns Jamal Hartnett and his descriptor. See the documentation
List the teams in a project. Returns each team's id, name and description. Use this to obtain the team id or name the other team actions need, or to fan a notification out per team. Example: project Fabrikam-Fiber-Git returns Fabrikam-Fiber-Git Team. Returns at most Limit results per call - if that many come back there may be more, so raise Skip by Limit and call again to page through the rest. See the documentation
List the members of a team. Returns each member's display name, unique name, identity id and whether they are a team admin. Use this to find the identity GUID that the pull request reviewer actions require. Example: team Fabrikam-Fiber-Git Team returns Jamal Hartnett and his identity id. Returns at most Limit results per call - if that many come back there may be more, so raise Skip by Limit and call again to page through the rest. Run the List Teams action first to obtain the team id. See the documentation
List the iterations a team is subscribed to, each with its name, path and the start date, finish date and timeframe held in its attributes. Set Timeframe to current to resolve the sprint that is running right now. Use this as the entry point for any sprint question, then pass the iteration id it returns to the work item, capacity and days off actions. Run the List Teams action first to obtain the team. Example: returns Sprint 3 starting 2026-08-17. See the documentation
List the days the whole team is off during an iteration, such as public holidays or a team offsite. Returns each range's start and end date. Use this to subtract non-working days before reading capacity as available hours. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id. Example: returns 2026-08-25 to 2026-08-25 for a bank holiday. See the documentation
Retrieve every team member's capacity for an iteration, with their per-day hours split across activities and their individual days off. Returns the per-member records and the team totals. Use this against the iteration's work item list to judge whether a sprint is overcommitted. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id. Example: 6 hours per day split across Development and Testing. See the documentation
List a project's service connections, optionally filtered by type. Returns each connection's id, name, type and authorization scheme, without its secrets. Use this to audit which external systems a project can reach from its pipelines. Example: type github returns the GitHub connection and its id. See the documentation
List the files and folders under a path in a Git repository. Returns each entry's path, object id and whether it is a folder. Use this to explore a repository's layout, then read a specific file with the Get File Content action. Azure DevOps rejects a recursion level other than none when a single file path is given, so listing and reading are separate calls. Example: scope path /src with recursion oneLevel. See the documentation
List the Git repositories in a project, or across the whole organization when no project is given. Returns each repository's id, name, default branch and size. Use this to obtain the repository id or name every other Git action needs. Example: project Fabrikam-Fiber-Git returns fabrikam-api and its GUID. See the documentation
List a project's classic releases, optionally filtered by definition or status. Returns each release's id, name, status and the definition it came from. Use this to report on what has shipped. Example: definition 3, status active. See the documentation
List a project's classic release definitions. Returns each definition's id, name and path. Use this to obtain the definition id the Create Release action needs. Classic Release is separate from YAML pipelines. Example: project Fabrikam-Fiber-Git returns fabrikam-api-CD with id 3. See the documentation
List a repository's pull requests, optionally filtered by status, creator, reviewer or branch. Returns each pull request's id, title, status, source and target branches. Use this to find open review work or to check whether a branch already has a pull request. Example: status active targeting refs/heads/main. Returns at most Limit results per call - if that many come back there may be more, so raise Skip by Limit and call again to page through the rest. See the documentation
List the comment threads on a pull request, including threads anchored to a file and line. Returns each thread's comments, author and status. Use this to read review feedback before replying or completing the pull request. Example: pull request 12. See the documentation
List the projects in an organization. Returns each project's id, name, state and visibility. Use this first in almost any Azure DevOps workflow - nearly every other action needs a project id or name. Example: organization contoso returns Fabrikam-Fiber-Git alongside its GUID. Returns at most Limit results per call - if that many come back there may be more, so raise Skip by Limit and call again to page through the rest. See the documentation
List the process templates (Agile, Scrum, Basic, CMMI and any custom ones) available in an organization. Returns each template's id, name and description. Use this to obtain the process template id required by the Create Project action. Example: organization contoso returns Agile with id adcc42ab-9882-485e-a3ed-7678f01f66bc. See the documentation
List a project's YAML pipelines. Returns each pipeline's id, name, folder and revision. Use this to obtain the pipeline id the Run Pipeline action needs. Example: project Fabrikam-Fiber-Git returns fabrikam-api-CI with id 12. See the documentation
List the most recent runs of a pipeline, each with its id, state, result and creation time. Use this to check whether a pipeline is currently running before triggering another. Example: pipeline 12. Run the List Pipelines action first to obtain the pipeline id. See the documentation
List the Azure DevOps organizations the connected account belongs to. Use this first - every other action needs an organization name, and this is the only action that does not. Returns the organization names as plain strings. Example: returns contoso and fabrikam. See the documentation
List the work items assigned to a team's iteration. Returns work item relations carrying each item's id and url rather than its fields, so pass those ids to the List Work Items action to read titles, states and assignees. Use this to take the sprint backlog as it currently stands. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id. Example: returns 14 work item references. See the documentation
List the groups in an organization, optionally scoped to one project or collection. Returns each group's display name, descriptor and principal name. Use this to find the group to add as a required pull request reviewer. Example: returns [Fabrikam-Fiber-Git]\\Contributors. See the documentation
List a repository's commits, optionally narrowed by author, date range, branch or file path. Returns each commit's SHA, author, message and change counts. Use this to build a changelog or to find the commit that last touched a file. Example: author [email protected] since 2026-01-01T00:00:00Z. Returns at most Limit results per call - if that many come back there may be more, so raise Skip by Limit and call again to page through the rest. See the documentation
List a project's area or iteration path tree. Returns the node tree with each node's name and full path. Use this to discover the values the Area Path and Iteration Path inputs of the work item actions expect - those inputs want the backslash-delimited path, not the node name. Example: structure group Iterations returns Fabrikam-Fiber-Git\\Sprint 1. See the documentation
List a project's builds, optionally filtered by definition, status, result, branch or time window. Returns each build's id, number, status, result and triggering commit. Use this to report on CI health or to find the last successful build of a branch. Example: result failed on branch refs/heads/main. See the documentation
List a build's log files, each with its id, line count and the url to fetch its content. Use this to locate the log for a failing step before fetching it. Example: build 4821 returns 3 logs. Run the List Builds action first to obtain the build id. See the documentation
List a project's build definitions. Returns each definition's id, name, repository and queue status. Use this to obtain the definition id the Queue Build action needs. Example: project Fabrikam-Fiber-Git returns fabrikam-api-CI with id 12. See the documentation
List the artifacts a build published, each with its download url and resource type. Use this to hand a build's output to a downstream deploy step. Example: build 4821 returns drop. Run the List Builds action first to obtain the build id. See the documentation
List the refs - branches and tags - of a Git repository, each with the commit it points at. Use this to obtain the fully qualified branch names the pull request and build actions expect, and to read a branch's head SHA. Example: filter heads/ returns refs/heads/main at a3fecf65.... See the documentation
Retrieve one work item by id. Returns its fields, and optionally its relations and links via Expand. Use this to read the current state of an item before deciding whether to update it. Example: work item 299. See the documentation
Read a wiki page and its Markdown content, optionally including its sub-pages. Returns the page path, content and order. Use this to read runbook or onboarding content into a workflow. Example: page path /Guides/Onboarding. See the documentation
Report how much work each iteration actually completed, aggregated from the Analytics service. Returns one row per iteration with its name, start and finish dates and the number of completed work items. Covers the whole project by default; set Team Name to narrow it to a single team, which is what you want in a project several teams share. Use this to answer whether delivery is speeding up or slowing down, and to sanity-check whether the current sprint is committed beyond its recent average. Set Points Field to also sum an estimate, but only if the project's process defines one - the default Basic process has no estimation field and the query fails if you name one it does not have. Example: Sprint 3 completed 8 items totalling 21 points. See the documentation
Retrieve one user by their graph descriptor. Returns their display name, principal name, mail address and origin. Use this to confirm an identity before assigning work to them. Example: descriptor aad.OGViYWJmMDQtMGIwOC03YTQz. See the documentation
Retrieve one team in a project by id or name. Returns the team's description and identity url. Use this to resolve a team name to its GUID before querying its members. Example: Fabrikam-Fiber-Git Team. Run the List Teams action first to obtain the team id. See the documentation
Retrieve a team's board and backlog configuration. Returns the days of the week the team works, its backlog iteration, its default iteration, how bugs are surfaced and which backlog levels are visible. Use this to learn a team's working week before turning sprint dates into working days. Run the List Teams action first to obtain the team. Example: workingDays returns Monday through Friday. See the documentation
Retrieve one of a team's iterations by id. Returns its name, path and the start date, finish date and timeframe recorded against it. Use this to pin down a sprint's window before measuring work item activity against it. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id. Example: returns Sprint 3 running 2026-08-17 to 2026-08-28. See the documentation
Retrieve one Git repository by id or name. Returns its default branch, size, web url and parent project. Use this to confirm a repository's default branch before opening a pull request against it. Example: fabrikam-api. See the documentation
Retrieve one classic release. Returns its environments, each environment's deployment status, and the artifacts it carries. Use this to check whether a release reached production. Example: release 27. Run the List Releases action first to obtain the release id. See the documentation
Retrieve one pull request by id. Returns its title, description, status, reviewers, merge status and, optionally, its commits. Use this to check whether a pull request is mergeable before completing it. Example: pull request 12. See the documentation
Retrieve one project by id or name. Returns its description, state, visibility, default team and, when Include Capabilities is set, its version-control and process-template settings. Use this to confirm a project exists before writing to it. Example: Fabrikam-Fiber-Git. See the documentation
Retrieve one pipeline, including the repository and path of the YAML file that defines it. Use this to confirm which definition file a pipeline runs before triggering it. Example: pipeline 12. Run the List Pipelines action first to obtain the pipeline id. See the documentation
Retrieve one pipeline run. Returns its state, result, the resources it consumed and the template parameters it ran with. Use this to poll a run started earlier until its state reaches completed. Example: pipeline 12, run 48. Run the List Pipelines action first to obtain the pipeline id, then the List Pipeline Runs action for valid run ids. See the documentation
Read one file from a Git repository, at the default branch or at a specific branch, tag or commit. Returns the file's content along with its object id and path. Use this to read config or documentation without cloning. This is the single-item mode of the items endpoint: it returns one file object. To list a folder's contents instead, use the List Repository Items action, which Azure DevOps requires to be a separate call. Example: path /README.md on branch main. See the documentation
Retrieve one commit by its full 40-character SHA. Returns its author, committer, message, parents and change counts. Use this to inspect what a specific commit did before referencing it in a branch or release. Example: commit a3fecf65a6766ebc6f2e33b66a1520b827c67ef8. Run the List Commits action first to obtain valid commit SHAs. See the documentation
Retrieve one build by id. Returns its status, result, timings, requesting identity and source commit. Use this to poll a build queued earlier until it reaches completed. Example: build 4821. Run the List Builds action first to obtain the build id. See the documentation
Retrieve one build definition, including its repository, triggers, variables and process. Use this to inspect what a pipeline will do, or to read its variable names before overriding them at queue time. Example: definition 12. See the documentation
Move a work item to the project's recycle bin, or permanently destroy it when Destroy is set. Returns the deleted item's id and code. Use this to clean up items created in error - prefer the recycle bin, which is recoverable. Example: work item 299. See the documentation
Delete a wiki page. Returns the deleted page's path and the wiki commit the deletion created. Use this to retire documentation that has moved elsewhere. Example: page path /Guides/Onboarding. See the documentation
Move a Git repository to the project's recycle bin. Requires the repository's GUID - names are not accepted here. Use this to retire a service's repository; recover it from the project settings recycle bin if this was a mistake. Example: repository 2f3d611a-f012-4b39-b157-8db63f380226. See the documentation
Create a work item of any type - Bug, Task, User Story, Epic. Returns the new work item's id and full field set. Use when turning an alert, form submission or support ticket into tracked work. Example: type Bug, title Checkout returns 500 on empty cart, assigned to [email protected]. See the documentation
Create a project wiki, or publish a folder of an existing Git repository as a code wiki. Returns the new wiki's id, name and backing repository. A project wiki provisions its own repository; a code wiki needs an existing repository, branch and folder. Use this when standing up documentation for a new project. Example: name payments.wiki, type projectWiki. See the documentation
Create an empty Git repository in a project. Returns the new repository's id, name and clone urls. The repository starts with no branches - push an initial commit before the other Git actions can act on it. Use when scaffolding a new service. Example: name fabrikam-payments in project Fabrikam-Fiber-Git. See the documentation
Create a classic release from a release definition, optionally as a draft or with specific artifact versions. Returns the new release's id and name. Omit Artifacts to take the definition's latest versions. Use this to ship a build through a classic release pipeline. Example: definition 3, description Nightly deploy. See the documentation
Open a pull request between two branches. Returns the new pull request's id and url. Use this after pushing a working branch, to start review. Example: source refs/heads/feature/login into target refs/heads/main, title Add SSO login. See the documentation
Start a new comment thread on a pull request, either on the overview or anchored to a line in a file. Returns the new thread with its id. Use this to post automated review findings where the reviewer will see them. Example: pull request 12, file /src/index.js line 42, comment This drops the null check. See the documentation
Queue creation of a new project. Project creation is asynchronous, so this returns an operation reference rather than the finished project - poll the project list to see it appear. Use when onboarding a new team or product area. Example: name Payments Platform, visibility private, Agile process. See the documentation
Create a YAML pipeline from a definition file already committed to a Git repository. Returns the new pipeline's id and name. The YAML file must exist before this call - push it first. Use this to register a new service's CI. Example: name fabrikam-api-CI from /azure-pipelines.yml. See the documentation
Create a wiki page, or replace the content of an existing one. Returns the resulting page and its version. This replaces the whole page rather than appending, so read the page first if you need to preserve existing content. Use this to publish generated documentation. Example: page path /Runbooks/Deploy, Markdown content. See the documentation
Push a single file add, edit or delete to an existing branch, as one commit. Returns the push result including the new commit SHA. The branch must already exist. Use this to commit generated config or docs back to a repository. Example: edit /docs/README.md on main with commit message Update setup steps. See the documentation
Create a branch pointing at an existing commit. Returns the ref update result. Use this to open a working branch before pushing changes and raising a pull request. Example: new branch feature/login at commit a3fecf65a6766ebc6f2e33b66a1520b827c67ef8. Run the List Commits action first to obtain the commit the branch should point at. See the documentation
Cancel a build that is still running. Returns the build with its status moved to cancelling. Use this to stop a run that has been superseded or was triggered in error. Example: build 4821. Run the List Builds action first to obtain the build id. See the documentation
Add a comment to a work item's discussion thread. Returns the new comment's id and rendered text. Use this to post automated status back to the item humans are watching, rather than editing its description. Example: work item 299, comment Deployed to staging in build 4821. See the documentation
Add a reviewer to a pull request, optionally marking them required or casting their vote. Returns the reviewer entry including their current vote. Use this to route a pull request to the right owner automatically. Example: pull request 12, reviewer 8ebabf04-0b08-6a43-9bf4-96e1f4aa3682, vote Approved. See the documentation