{"id":26854880,"url":"https://github.com/tiberriver256/mcp-server-azure-devops","last_synced_at":"2025-05-05T20:39:47.830Z","repository":{"id":279880123,"uuid":"940300511","full_name":"Tiberriver256/mcp-server-azure-devops","owner":"Tiberriver256","description":"An MCP server for Azure DevOps","archived":false,"fork":false,"pushed_at":"2025-04-26T16:56:03.000Z","size":1034,"stargazers_count":101,"open_issues_count":15,"forks_count":27,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-28T04:43:49.426Z","etag":null,"topics":["azure-devops","mcp-server"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tiberriver256.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"Tiberriver256"}},"created_at":"2025-02-28T00:05:42.000Z","updated_at":"2025-04-28T03:13:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"78bce7a9-e654-4470-b485-7b00810901d9","html_url":"https://github.com/Tiberriver256/mcp-server-azure-devops","commit_stats":null,"previous_names":["tiberriver256/azure-devops-mcp","tiberriver256/mcp-server-azure-devops"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiberriver256%2Fmcp-server-azure-devops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiberriver256%2Fmcp-server-azure-devops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiberriver256%2Fmcp-server-azure-devops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiberriver256%2Fmcp-server-azure-devops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tiberriver256","download_url":"https://codeload.github.com/Tiberriver256/mcp-server-azure-devops/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252572697,"owners_count":21770052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-devops","mcp-server"],"created_at":"2025-03-30T23:28:55.341Z","updated_at":"2025-05-05T20:39:47.823Z","avatar_url":"https://github.com/Tiberriver256.png","language":"TypeScript","funding_links":["https://github.com/sponsors/Tiberriver256"],"categories":["Developer Tools"],"sub_categories":["How to Submit"],"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](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\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\": \"\u003cYOUR_PAT\u003e\",\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](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](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](docs/examples/).\n\n## Environment Variables\n\nFor a complete list of environment variables and their descriptions, see the [Authentication Guide](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](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](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\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- `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`](docs/tools/pull-requests.md#create_pull_request) - Create a new pull request\n- [`list_pull_requests`](docs/tools/pull-requests.md#list_pull_requests) - List pull requests in a repository\n- [`add_pull_request_comment`](docs/tools/pull-requests.md#add_pull_request_comment) - Add a comment to a pull request\n- [`get_pull_request_comments`](docs/tools/pull-requests.md#get_pull_request_comments) - Get comments from a pull request\n- [`update_pull_request`](docs/tools/pull-requests.md#update_pull_request) - Update an existing pull request (title, description, status, draft state, reviewers, work items)\n\nFor comprehensive documentation on all tools, see the [Tools Documentation](docs/tools/).\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=tiberriver256/mcp-server-azure-devops\u0026type=Date)](https://www.star-history.com/#tiberriver256/mcp-server-azure-devops\u0026Date)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiberriver256%2Fmcp-server-azure-devops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiberriver256%2Fmcp-server-azure-devops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiberriver256%2Fmcp-server-azure-devops/lists"}