{"_id":"@bachstudio/mcp-server-azure-devops","name":"@bachstudio/mcp-server-azure-devops","dist-tags":{"latest":"0.1.43"},"versions":{"0.1.43":{"name":"@bachstudio/mcp-server-azure-devops","version":"0.1.43","description":"Azure DevOps reference server for the Model Context Protocol (MCP)","main":"dist/index.js","types":"dist/index.d.ts","bin":{"mcp-server-azure-devops":"dist/index.js"},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"lint-staged":{"*.ts":["prettier --write","eslint --fix"]},"release-please":{"release-type":"node","changelog-types":[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":false},{"type":"docs","section":"Documentation","hidden":false},{"type":"perf","section":"Performance Improvements","hidden":false},{"type":"refactor","section":"Code Refactoring","hidden":false}]},"scripts":{"build":"tsc","prepack":"npm run build && chmod +x dist/index.js","dev":"ts-node-dev --respawn --transpile-only src/index.ts","start":"node dist/index.js","inspector":"npm run build && npx @modelcontextprotocol/inspector@0.9.0 node dist/index.js","test":"npm run test:unit && npm run test:int && npm run test:e2e","test:unit":"jest --config jest.unit.config.js","test:int":"jest --config jest.int.config.js","test:e2e":"jest --config jest.e2e.config.js","test:watch":"jest --watch","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","prepare":"husky install","commit":"cz"},"keywords":["azure-devops","mcp","ai","automation"],"author":{"name":"bachstudio"},"license":"MIT","dependencies":{"@azure/identity":"^4.8.0","@modelcontextprotocol/sdk":"^1.6.0","axios":"^1.8.3","azure-devops-node-api":"^13.0.0","diff":"^8.0.2","dotenv":"^16.3.1","jszip":"^3.10.1","minimatch":"^10.0.1","zod":"^3.24.2","zod-to-json-schema":"^3.24.5"},"devDependencies":{"@commitlint/cli":"^19.8.0","@commitlint/config-conventional":"^19.8.0","@types/diff":"^7.0.2","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^8.27.0","@typescript-eslint/parser":"^8.27.0","commitizen":"^4.3.1","cz-conventional-changelog":"^3.3.0","eslint":"^8.0.0","husky":"^8.0.3","jest":"^29.0.0","lint-staged":"^15.5.0","prettier":"^3.0.0","ts-jest":"^29.0.0","ts-node-dev":"^2.0.0","typescript":"^5.8.2"},"gitHead":"06cefa3b78b24152ff36adef12adb85fef82663e","_id":"@bachstudio/mcp-server-azure-devops@0.1.43","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-qxnQoMqmoBzbdyvMejmSQdFftEbUqEmJ0mkzz1KUaEEKMnqTWF2upM1U58ECihMUSc/N7LOR8wF8O9HLTFOxJQ==","shasum":"160c32683aa506bf097882a7a20e539b64710c3f","tarball":"https://registry.npmjs.org/@bachstudio/mcp-server-azure-devops/-/mcp-server-azure-devops-0.1.43.tgz","fileCount":819,"unpackedSize":1974625,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEt7oazKRUaFJgGdN/PMbba7Nbq0cmm55PHogDrIezyAAiAd7XTaloO4J3Nl0FpW2vkWfLlY+gdVpC1C5VbNNwr+4A=="}]},"_npmUser":{"name":"bachstudio","email":"bach_mcp_studio@bach.team"},"directories":{},"maintainers":[{"name":"bachstudio","email":"bach_mcp_studio@bach.team"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-azure-devops_0.1.43_1763632473986_0.8361990862691562"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-20T09:54:33.917Z","0.1.43":"2025-11-20T09:54:34.210Z","modified":"2025-11-20T09:54:34.497Z"},"maintainers":[{"name":"bachstudio","email":"bach_mcp_studio@bach.team"}],"description":"Azure DevOps reference server for the Model Context Protocol (MCP)","keywords":["azure-devops","mcp","ai","automation"],"author":{"name":"bachstudio"},"license":"MIT","readme":"# Azure DevOps MCP Server\n\nA Model Context Protocol (MCP) server implementation for Azure DevOps, allowing AI assistants to interact with Azure DevOps APIs through a standardized protocol.\n\n## Overview\n\nThis server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) for Azure DevOps, enabling AI assistants like Claude to interact with Azure DevOps resources securely. The server acts as a bridge between AI models and Azure DevOps APIs, providing a standardized way to:\n\n- Access and manage projects, work items, repositories, and more\n- Create and update work items, branches, and pull requests\n- Execute common DevOps workflows through natural language\n- Access repository content via standardized resource URIs\n- Safely authenticate and interact with Azure DevOps resources\n\n## Server Structure\n\nThe server is structured around the Model Context Protocol (MCP) for communicating with AI assistants. It provides tools for interacting with Azure DevOps resources including:\n\n- Projects\n- Work Items\n- Repositories\n- Pull Requests\n- Branches\n- Pipelines\n\n### Core Components\n\n- **AzureDevOpsServer**: Main server class that initializes the MCP server and registers tools\n- **Feature Modules**: Organized by feature area (work-items, projects, repositories, etc.)\n- **Request Handlers**: Each feature module provides request identification and handling functions\n- **Tool Handlers**: Modular functions for each Azure DevOps operation\n- **Configuration**: Environment-based configuration for organization URL, PAT, etc.\n\nThe server uses a feature-based architecture where each feature area (like work-items, projects, repositories) is encapsulated in its own module. This makes the codebase more maintainable and easier to extend with new features.\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v16+)\n- npm or yarn\n- Azure DevOps account with appropriate access\n- Authentication credentials (see [Authentication Guide](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/docs/authentication.md) for details):\n  - Personal Access Token (PAT), or\n  - Azure Identity credentials, or\n  - Azure CLI login\n\n### Running with NPX\n\nAfter building the project with `npm run build`, you can run the server directly with:\n\n```bash\nnpx @bachstudio/mcp-server-azure-devops\n```\n\n### Usage with Claude Desktop/Cursor AI\n\nTo integrate with Claude Desktop or Cursor AI, add one of the following configurations to your configuration file.\n\n#### Azure Identity Authentication\n\nBe sure you are logged in to Azure CLI with `az login` then add the following:\n\n```json\n{\n  \"mcpServers\": {\n    \"azureDevOps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@tiberriver256/mcp-server-azure-devops\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"https://dev.azure.com/your-organization\",\n        \"AZURE_DEVOPS_AUTH_METHOD\": \"azure-identity\",\n        \"AZURE_DEVOPS_DEFAULT_PROJECT\": \"your-project-name\"\n      }\n    }\n  }\n}\n```\n\n#### Personal Access Token (PAT) Authentication\n\n```json\n{\n  \"mcpServers\": {\n    \"azureDevOps\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@tiberriver256/mcp-server-azure-devops\"],\n      \"env\": {\n        \"AZURE_DEVOPS_ORG_URL\": \"https://dev.azure.com/your-organization\",\n        \"AZURE_DEVOPS_AUTH_METHOD\": \"pat\",\n        \"AZURE_DEVOPS_PAT\": \"<YOUR_PAT>\",\n        \"AZURE_DEVOPS_DEFAULT_PROJECT\": \"your-project-name\"\n      }\n    }\n  }\n}\n```\n\nFor detailed configuration instructions and more authentication options, see the [Authentication Guide](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/docs/authentication.md).\n\n## Authentication Methods\n\nThis server supports multiple authentication methods for connecting to Azure DevOps APIs. For detailed setup instructions, configuration examples, and troubleshooting tips, see the [Authentication Guide](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/docs/authentication.md).\n\n### Supported Authentication Methods\n\n1. **Personal Access Token (PAT)** - Simple token-based authentication\n2. **Azure Identity (DefaultAzureCredential)** - Flexible authentication using the Azure Identity SDK\n3. **Azure CLI** - Authentication using your Azure CLI login\n\nExample configuration files for each authentication method are available in the [examples directory](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/tree/main/docs/examples).\n\n## Environment Variables\n\nFor a complete list of environment variables and their descriptions, see the [Authentication Guide](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/docs/authentication.md#configuration-reference).\n\nKey environment variables include:\n\n| Variable                       | Description                                                                        | Required                     | Default          |\n| ------------------------------ | ---------------------------------------------------------------------------------- | ---------------------------- | ---------------- |\n| `AZURE_DEVOPS_AUTH_METHOD`     | Authentication method (`pat`, `azure-identity`, or `azure-cli`) - case-insensitive | No                           | `azure-identity` |\n| `AZURE_DEVOPS_ORG_URL`         | Full URL to your Azure DevOps organization                                         | Yes                          | -                |\n| `AZURE_DEVOPS_PAT`             | Personal Access Token (for PAT auth)                                               | Only with PAT auth           | -                |\n| `AZURE_DEVOPS_DEFAULT_PROJECT` | Default project if none specified                                                  | No                           | -                |\n| `AZURE_DEVOPS_API_VERSION`     | API version to use                                                                 | No                           | Latest           |\n| `AZURE_TENANT_ID`              | Azure AD tenant ID (for service principals)                                        | Only with service principals | -                |\n| `AZURE_CLIENT_ID`              | Azure AD application ID (for service principals)                                   | Only with service principals | -                |\n| `AZURE_CLIENT_SECRET`          | Azure AD client secret (for service principals)                                    | Only with service principals | -                |\n| `LOG_LEVEL`                    | Logging level (debug, info, warn, error)                                           | No                           | info             |\n\n## Troubleshooting Authentication\n\nFor detailed troubleshooting information for each authentication method, see the [Authentication Guide](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/docs/authentication.md#troubleshooting-authentication-issues).\n\nCommon issues include:\n\n- Invalid or expired credentials\n- Insufficient permissions\n- Network connectivity problems\n- Configuration errors\n\n## Authentication Implementation Details\n\nFor technical details about how authentication is implemented in the Azure DevOps MCP server, see the [Authentication Guide](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/docs/authentication.md) and the source code in the `src/auth` directory.\n\n## Available Tools\n\nThe Azure DevOps MCP server provides a variety of tools for interacting with Azure DevOps resources. For detailed documentation on each tool, please refer to the corresponding documentation.\n\n### User Tools\n\n- `get_me`: Get details of the authenticated user (id, displayName, email)\n\n### Organization Tools\n\n- `list_organizations`: List all accessible organizations\n\n### Project Tools\n\n- `list_projects`: List all projects in an organization\n- `get_project`: Get details of a specific project\n- `get_project_details`: Get comprehensive details of a project including process, work item types, and teams\n\n### Repository Tools\n\n- `list_repositories`: List all repositories in a project\n- `get_repository`: Get details of a specific repository\n- `get_repository_details`: Get detailed information about a repository including statistics and refs\n- `get_file_content`: Get content of a file or directory from a repository\n- `get_repository_tree`: List a repository's file tree from any path and depth\n- `create_branch`: Create a new branch from an existing one\n- `create_commit`: Commit multiple file changes to a branch using unified diffs or search/replace instructions\n\n### Work Item Tools\n\n- `get_work_item`: Retrieve a work item by ID\n- `create_work_item`: Create a new work item\n- `update_work_item`: Update an existing work item\n- `list_work_items`: List work items in a project\n- `manage_work_item_link`: Add, remove, or update links between work items\n\n### Search Tools\n\n- `search_code`: Search for code across repositories in a project\n- `search_wiki`: Search for content across wiki pages in a project\n- `search_work_items`: Search for work items across projects in Azure DevOps\n\n### Pipelines Tools\n\n- `list_pipelines`: List pipelines in a project\n- `get_pipeline`: Get details of a specific pipeline\n- `list_pipeline_runs`: List recent runs for a pipeline with optional filters\n- `get_pipeline_run`: Get detailed run information and artifact summaries\n- `download_pipeline_artifact`: Download a single artifact file as text\n- `pipeline_timeline`: Retrieve the stage and job timeline for a run\n- `get_pipeline_log`: Retrieve raw or JSON-formatted log content\n- `trigger_pipeline`: Trigger a pipeline run with customizable parameters\n\n### Wiki Tools\n\n- `get_wikis`: List all wikis in a project\n- `get_wiki_page`: Get content of a specific wiki page as plain text\n\n### Pull Request Tools\n\n- [`create_pull_request`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#create_pull_request) - Create a new pull request\n- [`list_pull_requests`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#list_pull_requests) - List pull requests in a repository\n- [`add_pull_request_comment`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#add_pull_request_comment) - Add a comment to a pull request\n- [`get_pull_request_comments`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request_comments) - Get comments from a pull request\n- [`update_pull_request`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#update_pull_request) - Update an existing pull request (title, description, status, draft state, reviewers, work items)\n- [`get_pull_request_changes`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request_changes) - List changes in a pull request and policy evaluation status\n- [`get_pull_request_checks`](https://github.com/tiberriver256/mcp-server-azure-devops/blob/main/docs/tools/pull-requests.md#get_pull_request_checks) - Summarize status checks, policy evaluations, and their related pipelines\n\nFor comprehensive documentation on all tools, see the [Tools Documentation](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/tree/main/docs/tools).\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](https://github.com/BACH-AI-Tools/mcp-server-azure-devops/blob/main/CONTRIBUTING.md) for contribution guidelines.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=BACH-AI-Tools/mcp-server-azure-devops&type=Date)](https://www.star-history.com/#BACH-AI-Tools/mcp-server-azure-devops&Date)\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-318e28188a1a2a5139c4636608e7ea27"}