ado-workflows-mcp
Click on "Install 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., "@ado-workflows-mcplist pull requests needing my review"
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.
ADO Workflows MCP Server
An MCP server exposing ado-workflows as tool calls for AI agents. Enables Copilot and other MCP clients to discover Azure DevOps repositories, manage pull requests, and interact with PR comments and reviews.
Quick Install
Click a badge above to install with one click, or follow manual installation below.
Features
Repository Discovery: Scan directories for git repos with Azure DevOps remotes
PR Lifecycle: Create pull requests, establish PR context from URLs or IDs
Review Management: Check reviewer votes, detect stale approvals, find PRs needing attention
Comment Workflows: Analyze, post, reply to, and batch-resolve PR comment threads
Session Caching: Cache repository context to avoid redundant git CLI lookups
Error Handling: Actionable errors with suggestions via actionable-errors
MCP Tools
Repository Discovery
Tool | Description |
| Scan a directory for git repos with Azure DevOps remotes, select the best match |
| Cache repository context for the session (avoids redundant git CLI lookups) |
| Inspect current cached context state for debugging |
| Reset cached context, forcing fresh discovery |
Pull Requests
Tool | Description |
| Parse a PR URL or resolve a numeric PR ID into reusable context |
| Create a new PR from branch names with optional title, description, and draft mode |
PR Review
Tool | Description |
| Fetch reviewer votes, commit history, and detect stale approvals |
| Discover PRs needing review attention across a repository |
PR Comments
Tool | Description |
| Categorize comment threads by status with author statistics |
| Post a new comment thread to a PR |
| Reply to an existing comment thread |
| Batch-resolve comment threads (partial-success semantics) |
Installation
Quick Install (Recommended)
Click one of the badges at the top to automatically install in VS Code!
Manual Installation
cd ado-workflows-mcp
uv sync --all-extrasVS Code / Copilot Configuration
Add to your VS Code settings or .vscode/mcp.json:
{
"mcp.servers": {
"ado-workflows": {
"command": "uvx",
"args": ["--from", "git+https://github.com/grimlor/ado-workflows-mcp", "ado-workflows-mcp"],
"description": "Azure DevOps workflow automation tools"
}
}
}The server communicates over stdio using the Model Context Protocol.
Authentication
Uses Azure DefaultAzureCredential via the ado-workflows library. Authenticate with any method that DefaultAzureCredential supports:
az login # Azure CLI (local dev)
az login --use-device-code # Headless / SSHManaged identity, environment variables, and other credential providers work automatically in hosted environments.
Error Handling
All errors are returned as structured ActionableError objects with:
error/suggestion— human-readable contextai_guidance— machine-readable recovery instructions (action_required,checks,steps,command,discovery_tool)
Errors are returned as data, never raised — the MCP transport stays clean.
Typical Workflow
1. repository_discovery → find the ADO repo
2. set_repository_context → cache it for the session
3. establish_pr_context → resolve a PR URL or ID
4. get_pr_review_status → check approval state
5. analyze_pr_comments → see active threads
6. post_pr_comment / reply → leave feedback
7. resolve_pr_comments → mark threads as fixedDevelopment
uv run task check # lint + type + test (all-in-one)
uv run task test # Run tests (37 BDD specs)
uv run task cov # Run tests with coverage
uv run task lint # Lint (with auto-fix)
uv run task format # Format code
uv run task type # Type checkNote:
uv runis optional when the venv is activated via direnv.
Project Structure
src/ado_workflows_mcp/
├── server.py # FastMCP server entry point
├── mcp_instance.py # MCP singleton
├── tools/
│ ├── repositories.py # Repository discovery tools
│ ├── repository_context.py # Session context management
│ ├── pull_requests.py # PR lifecycle tools
│ ├── pr_review.py # Review status tools
│ ├── pr_comments.py # Comment workflow tools
│ └── _helpers.py # Shared error-handling utilities
└── py.typed # PEP 561 markerTesting
37 BDD specs across 10 requirement classes — organized by consumer requirement, not code structure.
Requirement Class | Specs | Coverage |
TestRepositoryDiscovery | 3 | Success, working-dir failure, SDK failure |
TestSetRepositoryContext | 3 | Valid context, missing fields, SDK failure |
TestGetRepositoryContextStatus | 3 | Populated, empty, error |
TestClearRepositoryContext | 2 | Reset + clear state |
TestEstablishPRContext | 3 | URL parse, ID resolve, SDK failure |
TestCreatePullRequest | 3 | Success, missing branch, SDK failure |
TestGetPRReviewStatus | 3 | Success, invalid PR, SDK failure |
TestAnalyzePendingReviews | 3 | Results, empty, SDK failure |
TestAnalyzePRComments | 3 | Categorized, no threads, SDK failure |
TestPostPRComment | 3 | Valid post, empty content, SDK failure |
TestReplyToPRComment | 3 | Valid reply, missing thread, SDK failure |
TestResolvePRComments | 3 | Batch resolve, empty list, SDK failure |
Documentation
Architecture — Tool layers, error propagation, and design decisions
Related
ado-workflows — Azure DevOps automation library used by this server
actionable-errors — Three-audience error framework
demo-assistant-mcp — MCP server for demo script orchestration
License
This project is licensed under the MIT License.
Maintenance
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/grimlor/ado-workflows-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server