azdo-onprem-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@azdo-onprem-mcp search work items with 'bug' in title"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
azdo-onprem-mcp
Minimal Model Context Protocol server for self-hosted Azure DevOps Server (on-premises). It uses the REST APIs with a PAT and Basic auth (curl -u ":$PAT"), same as Azure DevOps Services patterns but with your own base URL.
Not for dev.azure.com only—any DevOps Server reachable over HTTPS works if the APIs respond.
Requirements
Node.js 18+
A Personal Access Token with at least Work Items (Read) (and any other scopes you rely on)
VPN/network access to your server if required
Related MCP server: Azure DevOps MCP Server
Install
npm install -g azdo-onprem-mcpOr run without a global install:
npx azdo-onprem-mcpThe package exposes the CLI binary azdo-onprem-mcp (see package.json → bin).
Environment variables
Variable | Required | Description |
| Yes | Team project root URL, same as in the browser for that project, e.g. |
| Yes | Personal Access Token. Sent as Basic auth with an empty username ( |
| No | Overrides collection root for |
| No | HTTP timeout in ms (default |
| No | REST |
| No | Set to |
Do not commit secrets. Prefer Cursor/IDE env injection or your OS secret store.
Cursor (or any MCP client)
Example mcp.json entry using the published package (-y lets npx install or run without an interactive prompt, which MCP clients need):
{
"mcpServers": {
"azdo-onprem": {
"command": "npx",
"args": ["-y", "azdo-onprem-mcp"],
"env": {
"AZURE_BASE_URL": "https://devops.example.com/Collection/MyProject",
"AZURE_PAT": "<your-pat>"
}
}
}
}Alternatives
Global install:
"command": "azdo-onprem-mcp"with noargs(or an emptyargsarray), ifnpm install -g azdo-onprem-mcpput the binary on yourPATH.Local clone: after
npm installandnpm run build, use"command": "node"and"args": ["/absolute/path/to/azdo-onprem-mcp/dist/server.js"](adjust the path to your machine).
Reload MCP / restart the editor after changing env.
Windows / npx: From v1.0.1, HTTP calls use Node’s built-in fetch only (the axios dependency was removed). That avoids a known failure where npx pulled a broken tree and mime-db could not load db.json. If you still see strange missing-module errors, run npm cache clean --force and try again.
Tools
Tool | Description |
|
|
| WIQL search on |
|
|
Verify with curl (optional)
Mac/Linux: use single quotes around the URL so $expand is not interpreted by the shell.
export AZURE_PAT='your-pat'
curl -sS -u ":$AZURE_PAT" \
'https://your-host/Collection/MyProject/_apis/wit/workitems/12345?$expand=all&api-version=7.1'Development
From a clone of this repository:
npm install
npm run build
npm startSource lives in src/ (TypeScript); npm run build emits to dist/. With AZURE_BASE_URL and AZURE_PAT set, npm start runs the MCP server on stdio (stop with Ctrl+C). Point your MCP client at this command or use npx azdo-onprem-mcp after publishing.
Publish to npm
From the repo root (with npm login if needed):
npm run build
npm publishprepack runs npm run build automatically, so dist/ is always fresh in the tarball. For a scoped package name (e.g. @your-scope/azdo-onprem-mcp), use npm publish --access public the first time.
License
MIT (see package.json → "license").
Available Tools
3 toolsgetWorkItemA
Returns the complete Azure DevOps work item JSON from GET /_apis/wit/workitems/{id}?$expand=all. Includes the full fields map (System.Title, System.Description, System.Tags, custom fields, etc. — only fields with values are present), relations, _links, rev. This is NOT limited to id/title/state/assignedTo; read the fields object for description, tags, and links.
Inputs: id (required).
listProjectsA
List team projects in the Azure DevOps collection. Uses AZURE_COLLECTION_URL if set, otherwise derives collection URL from AZURE_BASE_URL.
Inputs: no named parameters.
searchWorkItemsA
Search work items whose title contains the given text (WIQL CONTAINS on System.Title). Returns { id, title, state }[].
Inputs: query (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a distinct resource/action: listProjects for projects, getWorkItem for a specific work item by ID, and searchWorkItems for finding work items by title. No overlap in functionality.
All tool names follow a consistent verb_noun pattern in camelCase: listProjects, getWorkItem, searchWorkItems. The naming is predictable and uniform.
With only three tools, each serves a clear and non-redundant purpose. The count is well-scoped for a focused Azure DevOps read-only server.
The tool surface is severely limited, providing only read operations. There is no ability to create, update, or delete work items, nor any support for queries beyond title-based search. Significant gaps exist for a typical Azure DevOps integration.
Maintenance
Related MCP Connectors
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Azure DevOps services including work items, repositories, pipelines, wikis, and test plans through a local MCP server that provides direct access to Azure DevOps REST APIs from your code editor.132,683 npmMIT
- AlicenseBqualityDmaintenanceA read-only MCP server connecting AI assistants to Azure DevOps Server (on-premises) for browsing projects, repos, builds, work items, releases, pipelines, and test results.39958 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA focused MCP server for Azure DevOps work item administration, enabling AI agents to create, update, query, and manage work items with full CRUD operations and advanced WIQL querying.MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading and updating Azure DevOps work items, comments, metadata, and relations from an MCP-compatible client.958 npmMIT