{"_id":"@adhamhelmy/azure-devops-mcp","_rev":"2-cca12d6248443f7bba7c2e9c3f7b7b66","name":"@adhamhelmy/azure-devops-mcp","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@adhamhelmy/azure-devops-mcp","version":"1.0.0","keywords":["mcp","azure-devops","claude","model-context-protocol"],"license":"MIT","_id":"@adhamhelmy/azure-devops-mcp@1.0.0","maintainers":[{"name":"adhamhelmy","email":"adhamhelmy68@icloud.com"}],"bin":{"azure-devops-mcp":"dist/index.js"},"dist":{"shasum":"48d692e7a807b886c87c0c7f42ee70767c13e503","tarball":"https://registry.npmjs.org/@adhamhelmy/azure-devops-mcp/-/azure-devops-mcp-1.0.0.tgz","fileCount":16,"integrity":"sha512-50dsUj5buYuQxWtPN0DGUqd0K+PnsqYoHsPuIvGUZy7kxK5Uoz7hwidqwgRj22cTyuhI73A68JFKKc8ZwxdgNQ==","signatures":[{"sig":"MEQCIBVm3WjzI/dA7feCQwygBjyr8RH5/hhonCcmr1/3rn6gAiBsLxiWPUGumrQCyWpVlJJ6jyYcl1y30JXqVMO8G13HxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29225},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"23884e897fdc717e7cea966166a5aa9451b67bb8","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc"},"_npmUser":{"name":"adhamhelmy","email":"adhamhelmy68@icloud.com"},"repository":{"url":"https://dev.azure.com/devTeamBg/Karo/_git/azure-devops-mcp","type":"git"},"_npmVersion":"11.11.0","description":"Read-only MCP server for Azure DevOps Services (dev.azure.com) — work items, PRs, and comments","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/azure-devops-mcp_1.0.0_1782464907677_0.7321160464764944","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"@adhamhelmy/azure-devops-mcp@1.1.0","bin":{"azure-devops-mcp":"dist/index.js"},"dist":{"shasum":"3d86296dcadf5782af80382e304c4aef6484cbd9","tarball":"https://registry.npmjs.org/@adhamhelmy/azure-devops-mcp/-/azure-devops-mcp-1.1.0.tgz","fileCount":16,"integrity":"sha512-Ix7dQFM0LSJ7WjLOGzwxte50U1Nx61aAuTYT8DkWdPc1yroGrjs6r/k2oMsQ25PgQuwY4tv7SfUkA/AybfPlbA==","signatures":[{"sig":"MEQCIBcwAh3g+Ouzd1REYcQ/sJM0nwNaNJCyhk5VY6Hj79JLAiBSozMUNqwZfCoq17PKs5FGQf+phlAVCkIWerPCE8oU/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGrkHiz2+2AbG5+afIiOejpkzDjm2f9yNc1/YtC7g/7cAiAx1RFm800vOBzL/OYMwBhQZl8nhHeizXTGJJB2MgWVAw=="}],"unpackedSize":34590},"main":"dist/index.js","name":"@adhamhelmy/azure-devops-mcp","type":"module","types":"./dist/index.d.ts","gitHead":"c1bdcf3df3cc80487a977096dfbb206779232edf","license":"MIT","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc"},"version":"1.1.0","_npmUser":{"name":"adhamhelmy","email":"adhamhelmy68@icloud.com"},"keywords":["mcp","azure-devops","claude","model-context-protocol"],"_npmVersion":"11.11.0","description":"Read-only MCP server for Azure DevOps Services (dev.azure.com) — work items, PRs, and comments","directories":{},"maintainers":[{"name":"adhamhelmy","email":"adhamhelmy68@icloud.com"}],"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.4.3","node-fetch":"^3.3.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/azure-devops-mcp_1.1.0_1790171660787_0.17943442266834908"}}},"time":{"created":"2026-06-26T09:08:27.498Z","modified":"2026-09-23T13:54:21.057Z","1.0.0":"2026-06-26T09:08:27.849Z","1.1.0":"2026-09-23T13:54:20.896Z"},"license":"MIT","keywords":["mcp","azure-devops","claude","model-context-protocol"],"description":"Read-only MCP server for Azure DevOps Services (dev.azure.com) — work items, PRs, and comments","maintainers":[{"name":"adhamhelmy","email":"adhamhelmy68@icloud.com"}],"readme":"# Azure DevOps MCP Server\n\nA local MCP (Model Context Protocol) server that connects Claude Code to Azure DevOps — letting you query work items, pull requests, and comments directly from your AI assistant without leaving your editor.\n\n## What it does\n\nOnce set up, you can ask Claude things like:\n\n- *\"List my active tasks in project MyProject\"*\n- *\"Show open PRs in MyProject\"*\n- *\"Get the details of work item 1234\"*\n- *\"What comments are on PR 56 in the MyProject repo?\"*\n\n## Tools available\n\n| Tool | Description |\n|---|---|\n| `list_work_items` | List work items with optional filters (state, type, assignee) |\n| `get_work_item` | Full detail of a work item by ID |\n| `list_work_item_comments` | Discussion comments on a work item |\n| `list_pull_requests` | List PRs (project-wide or per-repo, filter by status/creator) |\n| `get_pull_request` | Full PR detail including reviewers and commit count |\n| `list_pr_threads` | Comment threads on a pull request |\n\n---\n\n## Prerequisites\n\n- [Node.js](https://nodejs.org/) v18 or later\n- [Claude Code](https://claude.ai/code) installed\n- An Azure DevOps account with access to your organization\n\n---\n\n## Setup\n\n### 1. Install the server\n\n**Option A — via npm (recommended, no cloning needed):**\n\nThe package is published at [`@adhamhelmy/azure-devops-mcp`](https://www.npmjs.com/package/@adhamhelmy/azure-devops-mcp). No install step required — `npx` fetches it automatically when Claude Code starts the server.\n\n**Option B — clone and build:**\n\n```bash\ngit clone <your-repo-url>\ncd azure-devops-mcp\nnpm install\nnpm run build\n```\n\n### 2. Create a Personal Access Token (PAT)\n\nYou need a PAT with **Work Items (Read)** and **Code (Read)** scopes.\n\nGo to: `https://dev.azure.com/{your-org}/_usersSettings/tokens`\n\n<!-- TODO: Add screenshots here showing how to create the PAT in Azure DevOps -->\n\n**Required scopes:**\n- ✅ Work Items → Read\n- ✅ Code → Read\n\nCopy the token — you won't be able to see it again after leaving the page.\n\n### 3. Add to Claude Code\n\nOpen Claude Code and paste this prompt — replace `YOUR_PAT_HERE` with your actual PAT:\n\n**If using npm (Option A):**\n```\nAdd an Azure DevOps MCP server to my Claude Code setup.\n\nCreate or update ~/.claude/.mcp.json to include:\n{\n  \"mcpServers\": {\n    \"azure-devops\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@adhamhelmy/azure-devops-mcp\"],\n      \"env\": {\n        \"ADO_ORG\": \"your-org-name\",\n        \"ADO_PAT\": \"YOUR_PAT_HERE\"\n      }\n    }\n  }\n}\n\nIf ~/.claude/.mcp.json already exists and has other servers, merge this entry in without removing them.\n```\n\n**If using cloned repo (Option B):**\n```\nAdd an Azure DevOps MCP server to my Claude Code setup.\n\nCreate or update ~/.claude/.mcp.json to include:\n{\n  \"mcpServers\": {\n    \"azure-devops\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/azure-devops-mcp/dist/index.js\"],\n      \"env\": {\n        \"ADO_ORG\": \"your-org-name\",\n        \"ADO_PAT\": \"YOUR_PAT_HERE\"\n      }\n    }\n  }\n}\n\nReplace /absolute/path/to/azure-devops-mcp with the full path to where I cloned the repo.\nIf ~/.claude/.mcp.json already exists and has other servers, merge this entry in without removing them.\n```\n\n### 4. Restart Claude Code\n\nStart a new Claude Code session. The `azure-devops` MCP server will connect automatically.\n\nYou can verify it's connected by running `/mcp` in Claude Code — you should see `azure-devops` listed with 6 tools.\n\n---\n\n## Usage examples\n\n```\nList my active tasks in project MyProject\n\nShow all open PRs in project MyProject\n\nGet work item 1234\n\nShow comments on work item 567 in project MyProject\n\nList completed PRs in the MyRepo repo created by John Smith\n\nShow PR threads on PR 89 in repo MyRepo in project MyProject\n```\n\nThe `project` field is always required. For PRs, `repository` is optional — omit it to search across all repos in the project.\n\n---\n\n## Agent system prompt\n\nIf you're setting up a Claude agent (or configuring a teammate) to work with Azure DevOps, add this to its system prompt:\n\n```\nYou have access to an Azure DevOps MCP server for your organization.\n\nTools available:\n- list_work_items(project, assignedTo?, state?, type?) — list work items with optional filters\n- get_work_item(id) — get full details of a work item\n- list_work_item_comments(project, id) — get discussion comments on a work item\n- list_pull_requests(project, repository?, status?, createdBy?) — list pull requests\n- get_pull_request(project, repository, pullRequestId) — get full PR details\n- list_pr_threads(project, repository, pullRequestId) — get comment threads on a PR\n\nIf a default project is configured for your setup, use it unless the user specifies another project.\n\nWhen the user asks about tasks, tickets, issues, or work items — use the work item tools.\nWhen the user asks about PRs, reviews, or code changes — use the pull request tools.\nWhen fetching comments or discussion, use list_work_item_comments or list_pr_threads as appropriate.\n```\n\n---\n\n## Troubleshooting\n\n**Server not showing up in `/mcp`**\n- Restart Claude Code fully (not just a new session)\n- If using the cloned repo, make sure you ran `npm run build` and the path in `~/.claude/.mcp.json` points to the actual `dist/index.js`\n- If using npx, make sure Node.js v18+ is installed\n\n**Auth failed error**\n- Your PAT may have expired or have insufficient scopes\n- Regenerate a PAT with Work Items (Read) + Code (Read) at `https://dev.azure.com/{your-org}/_usersSettings/tokens`\n- Update `ADO_PAT` in `~/.claude/.mcp.json` and restart Claude Code\n\n**Not found error**\n- Double-check the project name — it's case-sensitive\n- Make sure your PAT has access to that project\n\n**Results seem incomplete**\n- `list_pull_requests` returns up to 200 results — use `repository` or `status` filters to narrow\n- `list_work_items` returns up to 50 results — use `state` or `type` filters to narrow\n","readmeFilename":"README.md"}