Read Azure DevOps work items

flurryport:azure-devops-readdeliveryv3first-partysha256:a31bdf062975Needs: read/write agent token

Read fields for a batch of Azure DevOps work items by id: title, state, tags, priority, iteration.

Read a batch of Azure DevOps work items by id and get their fields back. The org and project are fixed at install; the PAT is the secret, entered in the browser as an HTTP Basic credential. Ids come from azure-devops-query or from anywhere you already know them, and the fields arrive on the replay execution. Two limits shape how you use it. Azure DevOps caps one batch at 200 ids and answers a longer list with 400. More sharply, every id in the batch has to exist: a single deleted or unknown id fails the WHOLE read with 404 rather than returning the rest, so drop stale ids before firing. Field names are Azure DevOps reference names rather than the labels on the board, so ask for System.Title and Microsoft.VSTS.Common.Priority, not Title and Priority. It is a read that uses POST, and like query it cannot ride the $batch endpoint, which refuses collection-level reads. That is why seeing the board takes two pipes rather than one.

The credential never enters the model context: it lives in the FlurryPORT secret store, deliveries are signed server-side, and every send returns a receipt your agent can quote.

Install with your agent

npx flurryport mcp

Point your agent at the FlurryPORT MCP server (npx flurryport mcp) and ask it for the flurryport:azure-devops-read recipe. Works from AI clients that can run a local process: desktop apps and terminal agents. Web-only chat clients cannot reach a local MCP server; open a desktop client instead.

Tools your agent gains

flry_azure_devops_read
Read fields for a batch of Azure DevOps work items in the configured org and project. Input: ids (required, up to 200 integers), fields (optional field reference names; omit for the default set). Returns nothing inline; the fields arrive on the replay execution, read them with get_replay_execution.

Setup walkthrough

  1. AZURE_DEVOPS_PAT: In Azure DevOps: User settings, Personal access tokens, New Token. This recipe on its own needs only scope Work Items (Read); the same token needs Work Items (Read & write) if it also serves azure-devops-workitem or azure-devops-manage. The value to paste in the FlurryPORT secret page is the HTTP Basic credential, NOT the raw token: run `printf ':YOUR_PAT' | base64` and paste the result. The recipe sends it as `Authorization: Basic <value>`. A raw PAT answers 401, or 203 with a sign-in page.

Intent schema

{
  "type": "object",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "maxItems": 200,
      "items": {
        "type": "integer"
      },
      "description": "Work item ids to read. Azure DevOps caps one batch at 200 ids."
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Azure DevOps field reference names to return. Omit it and the pipe asks for System.Id, System.Title, System.State, System.Tags, Microsoft.VSTS.Common.Priority, and System.IterationPath."
    }
  }
}

Install-time parameters

org
install-time: Azure DevOps organization.
project
install-time: Project within the organization.

Transformation

{ "ids": $body.ids, "fields": ($exists($body.fields) ? $body.fields : ["System.Id","System.Title","System.State","System.Tags","Microsoft.VSTS.Common.Priority","System.IterationPath"]) }

Delivery target

POST https://dev.azure.com/$install.org/$install.project/_apis/wit/workitemsbatch?api-version=7.1

Placeholders like $secrets.NAME resolve server-side at delivery, never in the agent.

Gotchas

Where this fits

Related recipes

flurryport:azure-devops-managedelivery

Create and update Azure DevOps work items in one batched pipe: priority, state, tags, and sprint included.

flurryport:azure-devops-querydelivery

Query Azure DevOps work items with WIQL and read the matching ids back, without your AI ever holding the PAT.

flurryport:azure-devops-workitemdelivery

Let your AI file Azure DevOps work items (bugs, tasks) the model never holds credentials for.

flurryport:github-create-issuedelivery

Let your AI file GitHub issues with a fine-grained PAT it never touches.

flurryport:github-search-issuesdelivery

Search GitHub issues and read whole threads back, without your AI ever holding the PAT.

flurryport:github-update-issuesdelivery

Update, close and reopen GitHub issues in batches, with the PAT held server-side.