Skip to content

xrmghost/mcp-azure-devops

Repository files navigation

mcp-azure-devops

An open-source Model Context Protocol (MCP) server for seamless integration with Azure DevOps.

Mission

To create a robust, open-source Model Context Protocol (MCP) server that provides seamless integration with Azure DevOps. This server will empower AI agents to interact with Azure DevOps projects, managing work items, wikis, and repositories, thereby streamlining development workflows.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Core Features

The MCP server will expose a set of tools to interact with Azure DevOps, categorized by area.

Implemented Features

Work Item Management (CRUD)

  • create_work_item (supports Epic, User Story, Task, Bug, and work item linking)
  • get_work_item (by ID)
  • update_work_item (by ID, supports work item linking)
  • delete_work_item (by ID)
  • search_work_items (using WIQL - Work Item Query Language)

Wiki Management (CRUD)

  • create_wiki_page
  • get_wiki_page (by path)
  • update_wiki_page (by path)
  • delete_wiki_page (by path)
  • list_wiki_pages
  • get_wikis
  • create_wiki

Enhanced Wiki Helper Methods

  • update_wiki_page_safe: Safely updates a wiki page with automatic retry on version conflicts
  • create_or_update_wiki_page_smart: Creates a new wiki page or updates existing one intelligently
  • search_wiki_pages: Search for wiki pages by title or content
  • get_wiki_page_tree: Get hierarchical structure of wiki pages
  • find_wiki_by_name: Find wikis by partial name match
  • get_wiki_page_by_title: Find wiki page by title instead of exact path
  • list_all_wikis_in_organization: List all wikis across all projects in the organization
  • get_recent_wiki_pages: Get recently modified wiki pages
  • get_wiki_page_suggestions: Get page suggestions based on partial input
  • create_wiki_pages_batch: Create multiple wiki pages at once

Repository Management (Read-only)

  • list_repositories
  • list_files (in a repository)
  • get_file_content

Project Scoping

  • set_project_context: A special tool to set the active project for subsequent commands.
  • clear_project_context: To revert to the organization-level scope.
  • get_projects: To list all projects in the organization.

Server Documentation

  • list_available_tools: Lists all available tools.
  • get_tool_documentation: Gets the documentation for a specific tool.

User Management (Under Development)

  • list_users: Lists all users in the organization.
    • Note: This feature is currently under development and requires a Personal Access Token (PAT) with Graph (Read) permissions.

Planned Features

  • Repository Management (Write operations):
    • create_repository
    • create_pull_request
    • manage_branches
  • Pipeline Management:
    • trigger_build
    • get_build_status
    • list_pipelines

Getting Started

This guide will walk you through setting up the mcp-azure-devops server.

Prerequisites

  • Python 3.10 or higher
  • pip and venv for managing Python packages

Installation Steps

  1. Clone the Repository:

    git clone https://github.com/xrmghost/mcp-azure-devops.git
    cd mcp-azure-devops
  2. Create and Activate a Virtual Environment: It's highly recommended to use a virtual environment to manage the project's dependencies.

    # For Windows
    python -m venv .venv
    .\.venv\Scripts\activate
    
    # For macOS/Linux
    python3 -m venv .venv
    source .venv/bin/activate
  3. Install Dependencies: Install the project and its dependencies in editable mode.

    pip install -e .
  4. Validate Your Setup: Run the validation script to ensure everything is configured correctly:

    python validate_setup.py

    This script will check your Python version, dependencies, environment variables, and Azure DevOps connectivity.

Configuration

  1. Generate an Azure DevOps Personal Access Token (PAT):

    • Navigate to your Azure DevOps organization.
    • Go to User settings > Personal Access Tokens.
    • Click + New Token.
    • Give your token a name (e.g., mcp-server-token).
    • Select the organization.
    • Set the expiration date.
    • For the scopes, you will need to grant the following permissions at a minimum:
      • Work Items: Read & write
      • Wiki: Read & write
      • Code: Read
      • Graph: Read (for the list_users feature)
    • Click Create and copy the token immediately. You will not be able to see it again.
  2. Configure the MCP Server in Cline:

    • Open your cline_mcp_settings.json file.
    • Note: The location of this file can vary. A common location on Windows is C:\Users\<YourUsername>\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json. If you can't find it, you can search your user's home directory for the file.

    • Add a new entry for the mcp-azure-devops server. The command should be mcp-azure-devops.

    Here is an example configuration. You must use the full, absolute path to the mcp-azure-devops.exe executable created inside your virtual environment.

    {
      "mcpServers": {
        "mcp-azure-devops": {
          "command": "C:\\path\\to\\your\\project\\mcp-azure-devops\\.venv\\Scripts\\mcp-azure-devops.exe",
          "args": [],
          "env": {
            "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/your-organization",
            "AZURE_DEVOPS_PAT": "your-personal-access-token"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    • Replace your-organization with your Azure DevOps organization name and your-personal-access-token with the PAT you generated.
  3. Restart Cline: Restart your Cline application to load the new MCP server.

Troubleshooting

If you encounter issues with the MCP server, follow these steps:

Quick Diagnosis

  1. Run the validation script:

    python validate_setup.py

    This will identify common configuration and setup issues.

  2. Check server logs:

    python -m mcp_azure_devops.server 2> server.log

    Look for error messages in the log output.

Common Issues

"No tools found" in VS Code

  • Cause: MCP protocol communication issues or incorrect configuration
  • Solution: Verify your cline_mcp_settings.json configuration and restart VS Code

Server fails to start

  • Cause: Missing dependencies or environment variables
  • Solution: Run python validate_setup.py to identify specific issues

Azure DevOps connection failures

  • Cause: Invalid PAT or network issues
  • Solution: Verify your Personal Access Token and organization URL

For detailed troubleshooting guidance, see the Troubleshooting Guide.

Built-in Diagnostics

The server includes a health check tool that you can use to verify everything is working:

{
  "tool": "server_health_check",
  "arguments": {}
}

This will return comprehensive status information about your server configuration and Azure DevOps connectivity.

Wiki Helper Methods

The server includes enhanced wiki helper methods that solve common issues with wiki management:

  • Update Failures: Safe update methods with automatic retry on version conflicts
  • Navigation Difficulties: Search and discovery methods to find wikis and pages easily
  • Limited Helper Methods: Comprehensive set of helper methods for better user experience

For detailed usage instructions and examples, see the Wiki Helper Methods Guide.

Acknowledgements

This project was inspired by the mcp-atlassian server, which provides similar functionality for Jira and Confluence. You can find it here: https://github.com/pashpashpash/mcp-atlassian.

About

mcp-azure-devops

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages