Skip to main content
Glama
zwitbaum

mcp-devops-onpremise

by zwitbaum

MCP DevOps On-Premise

Model Context Protocol MCP server for on-premises Azure DevOps that lets AI assistants browse repositories, review pull requests, manage work items, and interact with wikis.

License: MIT PyPI - Version

Overview

Many organizations use on-premise DevOps solutions such as TFS or Azure DevOps Server in their projects. Integrating these systems with modern agentic AI tools and LLMs can be difficult. The official Microsoft Azure DevOps MCP server does not support these environments and is unlikely to support them in the future.

This MCP server closes that gap and enables smooth integration with on-premise DevOps systems.

Related MCP server: @slorenzot/mcp-azure

Key Advantages

One of the most important features of this MCP server is NTLM authentication support. NTLM is required by many on-premises and enterprise environments where users authenticate with Windows domain credentials, either directly or over VPN. Most MCP servers for Azure DevOps target only cloud-hosted Azure DevOps Services with token-based auth and cannot connect to these environments.

  • NTLM authentication (Windows domain credentials) for on-prem and VPN-based setups where no other auth method works.

  • PAT and OAuth bearer token authentication as alternatives when available.

  • Enables secure access to on-prem DevOps systems from MCP-compatible AI tools such as GitHub Copilot, Claude Desktop, Cursor, Windsurf, and others.

  • Works in restricted or offline environments without exposing sensitive data to external services.

  • Retrieves commit diffs with clear added/removed lines, similar to the DevOps UI.

  • Helps keep and track project documentation alongside code changes.

  • Automates common tasks such as work item management and code review processes.

Getting Started

Prerequisites

Python 3.10+ and uv are required. If not yet installed, see installation guide.

Quick Install

Click one of the buttons below to install directly in your IDE. You will be prompted for credentials:

Install in VS Code Install in VS Code Insiders Install in Cursor

For other platforms, see Manual Installation in the Getting Started guide.

Manual Installation

The MCP server can be installed manually in the following AI tools: VS Code, Visual Studio, Cursor, Goose, LM Studio, Amp, Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, Qodo Gen, Warp, Windsurf, GitHub Copilot CLI, GitHub Copilot Coding Agent, and others.

For step-by-step instructions, see Manual Installation in the Getting Started guide.

Configuration

The DEVOPS_API_URL must point to your full project URL:

https://<your-devops-server>/<organization>/<project>

The server supports three authentication methods. If you are unsure which one to use, start with NTLM because it is the most common for on-prem/VPN setups.

Method

Description

NTLM (username + password)

Most common for on-prem/VPN. Usually the simplest first setup and best fallback if other options fail.

PAT (Personal Access Token)

Use when PAT is enabled and allowed. Tokens can expire, and token-based auth may be blocked by policy. Advantage: you do not store your account password in config.

OAuth Bearer Token

Advanced option for CI/CD pipelines. Requires OAuth 2.0 configured on your DevOps Server and a token source defined by your administrators.

For detailed setup instructions for each method, see Authentication in the Getting Started guide.

With NTLM (username + password)

{
  "mcpServers": {
    "devops-onprem": {
      "command": "uvx",
      "args": ["mcp-devops-onpremise@latest"],
      "env": {
        "DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",
        "DEVOPS_USERNAME": "DOMAIN\\your-username",
        "DEVOPS_PASSWORD": "your-password"
      }
    }
  }
}

With PAT

{
  "mcpServers": {
    "devops-onprem": {
      "command": "uvx",
      "args": ["mcp-devops-onpremise@latest"],
      "env": {
        "DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",
        "DEVOPS_PAT": "your-personal-access-token"
      }
    }
  }
}

If you used a permanent install, replace "command": "uvx" with "command": "mcp-devops-onpremise" and remove the "args" line.

Updating

Check the current installed version

If you installed permanently (Option B):

mcp-devops-onpremise --version

Check if a newer version is available

Visit the releases page on GitHub or the CHANGELOG.

Update to the latest version

If you use uvx (Option A): All configuration examples in this guide use mcp-devops-onpremise@latest. This instructs uvx to always check PyPI for the latest version and update automatically.

If you installed permanently (Option B):

pip install --upgrade mcp-devops-onpremise

Available Tools

Pull Requests

Tool

Description

Read-only

devops_pull_request_get

Retrieve a pull request by ID, including linked work items and commit SHAs for diffing

devops_pull_request_list_threads

Returns a hierarchical list of non-deleted comment threads and their text comments

devops_pull_request_list_thread_comments

List non-deleted text comments in a specific thread

devops_pull_request_create_comment

Create a new thread with an initial comment (general or inline on a file/line)

devops_pull_request_reply_comment

Reply to an existing comment thread

devops_pull_request_update_thread

Update the status of a comment thread

devops_pull_request_update_comment

Update the text of an existing comment

devops_pull_request_delete_comment

Delete a comment from a pull request thread

Repositories

Tool

Description

Read-only

devops_repository_list

List all repositories in the project

devops_repository_get

Retrieve repository details by name or ID

devops_repository_commit_changes

List files changed in a specific commit

devops_repository_diffs_commits

Get the difference between two commits (changed file paths)

devops_repository_item_content

Get raw file content at a specific commit or branch

devops_get_item_content_diff

Get line-level textual diff of a file between two commits (added lines prefixed +, removed -)

Work Items

Tool

Description

Read-only

devops_work_item_get

Retrieve a work item (PBI, bug, task) by numeric ID. Returns a compact object with key fields, attachments (files and inline images), and linked items (work items, pull requests, commits)

devops_work_item_attachment_get

Download a work item attachment by its GUID, either saving locally or returning base64-encoded content

devops_work_item_type_get

Get the definition of a work item type by name (e.g. Bug, User Story)

devops_work_item_create

Create a new work item with typed fields; Html is the default format

devops_work_item_update

Update fields on a work item using JSON Patch (add / replace / remove)

devops_work_item_delete

Delete a work item, moves to Recycle Bin by default; use destroy=True for permanent deletion (requires project permission)

devops_work_item_undelete

Restore a soft-deleted work item from the Recycle Bin

devops_work_item_link_update

Add or remove a relation link between two work items (parent, child, related, successor, predecessor, etc.)

devops_work_item_artifact_link_update

Add or remove an artifact link (Pull Request, Build, Commit, Branch, Changeset) on a work item

devops_work_item_comment_list

List comments on a work item with configurable page size and format

devops_work_item_comment_add

Add a comment to a work item

devops_work_item_comment_update

Update an existing comment on a work item

devops_work_item_comment_delete

Delete a comment from a work item

Wiki

Tool

Description

Read-only

devops_wiki_page_get_by_url

Get wiki page metadata (id, path) and optional content by its URL

devops_wiki_page_create_or_update

Create or update a wiki page under a specified parent page

devops_wiki_page_update

Update an existing wiki page by ID

devops_wiki_page_delete

Delete an existing wiki page by ID

Development

# Install dev dependencies
uv sync --group dev

# Run linting
uv run ruff check src/
uv run black --check src/

# Run tests
uv run pytest tests/
Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zwitbaum/mcp-devops-on-prem'

If you have feedback or need assistance with the MCP directory API, please join our Discord server