@om-surushe/efficient-ado
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., "@@om-surushe/efficient-adolist my open pull requests"
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.
@om-surushe/efficient-ado
LLM-optimized Azure DevOps workflows for AI assistants
Efficient ADO is a Model Context Protocol (MCP) server that provides AI assistants with streamlined access to Azure DevOps. Built with agent-first design principles, it minimizes round trips, reduces token usage, and provides rich contextual responses.
Features
🎯 Agent-First Design - Composite tools reduce round trips
âš¡ Token Efficient - Tiered responses (summary/standard/detailed)
🤖 LLM-Optimized - Rich context + suggested actions in every response
🚀 Fast - Built with TypeScript, optimized for performance
📦 Complete - 34 tools covering PRs, work items, repos, branches
🔄 Composite Workflows - Multi-step operations in single calls
🧠Error Guidance - Errors tell agents HOW to fix issues
Related MCP server: Azure DevOps MCP Server
Installation
npm install @om-surushe/efficient-adoQuick Start
Configuration
Create a .env file:
AZDO_ORG_URL=https://dev.azure.com/your-org
AZDO_PAT=your-personal-access-token
AZDO_PROJECT=your-project # optional
AZDO_REPO=your-repo # optionalPAT Requirements:
Code (Read & Write)
Pull Request Threads (Read & Write)
Work Items (Read & Write)
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"efficient-ado": {
"command": "npx",
"args": ["@om-surushe/efficient-ado"],
"env": {
"AZDO_ORG_URL": "https://dev.azure.com/your-org",
"AZDO_PAT": "your-pat-here",
"AZDO_PROJECT": "your-project",
"AZDO_REPO": "your-repo"
}
}
}
}Usage with OpenClaw / Cline / Other MCP Clients
Similar configuration - use stdio transport with environment variables.
Available Tools (34 Total)
Foundation
setup_workspace- Configure credentials and verify connection
Pull Request Workflows
Discovery:
list_prs- List PRs with filters (creator, reviewer, status)get_pr- Get PR details with reviewers and statusstart_review- COMPOSITE - Get PR + comments + reviewers in one call
Review & Approval:
vote_on_pr- Approve (10), approve with suggestions (5), wait (-5), reject (-10)manage_reviewers- Add/remove reviewersquick_approve- COMPOSITE - Approve + merge if ready
Merge:
check_merge_readiness- Verify all merge requirementscomplete_pr- Merge PR with completion options
Comments & Threads:
list_comments- List all threads (general + inline)add_comment- Add general or inline commentreply_to_thread- Reply to existing threadupdate_thread_status- Mark thread as fixed/active/wontFix/closedaddress_comment- COMPOSITE - Reply + resolve in one call
Files & Diffs:
get_pr_changes- List changed files with statsget_file_diff- Get file diff (side-by-side comparison)get_file_content- Get file content at PR commit
PR Lifecycle:
create_pr- Create PR with work items, reviewers, auto-completeupdate_pr- Update title, description, draft statusabandon_pr- Close PR without mergingreactivate_pr- Reopen abandoned PR
Work Items
get_work_item- Get work item by ID with relationslist_my_work_items- List work items assigned to youcreate_work_item- Create new task/bug/storyupdate_work_item- Update work item fieldsadd_work_item_comment- Add discussion commentlink_work_item- Link work items (parent/child/related)
Repos & Branches
list_repositories- List repos in projectlist_branches- List branches in repocreate_branch- Create new branch from sourcelist_commits- List commits with filtersget_commit- Get commit detailscompare_branches- Compare two branches
Daily Workflow
get_my_work- COMPOSITE - Dashboard: my PRs + reviews + work items
Usage Examples
Daily Standup
> "What do I need to work on today?"
Agent uses: get_my_work()
Response includes:
- PRs you created (3 active, 1 draft)
- PRs needing your review (2 pending vote)
- Work items assigned to you (5 tasks, 2 bugs)Code Review
> "Review PR #1805"
Agent uses: start_review(prId=1805)
Gets in one call:
- PR details (title, description, status, branches)
- All comment threads (23 general + 5 inline)
- Reviewers and their votes
- Changed files overviewThen:
> "Show me the changes to config.ts"
Agent uses: get_file_diff(prId=1805, path="config.ts")
Returns side-by-side diff with line numbersAddressing Feedback
> "Reply 'Fixed indentation' and mark thread 12345 as resolved"
Agent uses: address_comment(
prId=1805,
threadId=12345,
reply="Fixed indentation",
status="fixed"
)
One call handles both reply and status updateApproving & Merging
> "Approve PR #1805 and merge if ready"
Agent uses: quick_approve(prId=1805)
One call:
1. Approves PR (vote=10)
2. Checks merge requirements
3. Merges if all policies pass
4. Or tells you what's blockingCreating Work from Feedback
> "Create a bug for the memory leak in thread 12345"
Agent uses:
1. list_comments(prId=1805) to get thread details
2. create_work_item(
type="Bug",
title="Memory leak in cache handler",
description="Details from PR review..."
)
3. link_work_item(workItemId=123, prId=1805)
Three calls link bug to the PR discussionDesign Philosophy
Agent-First
Every tool response includes:
Current state - What's happening now
Statistics - Quick metrics
Blockers - What's preventing progress (if any)
Suggested actions - What to do next with exact tool names
Token Efficient
Responses have levels:
Summary (~200 tokens) - Quick status check
Standard (~800 tokens) - Most common use
Detailed (~3000 tokens) - When agent needs everything
Error Messages That Help
Errors tell agents HOW to fix issues:
{
"error": {
"code": "MERGE_BLOCKED",
"blockers": [
{
"reason": "Insufficient approvals (1/2)",
"howToFix": "Call vote_on_pr(vote=10) to approve",
"relatedTools": ["vote_on_pr"]
}
]
}
}Development
git clone https://github.com/om-surushe/efficient-ado.git
cd efficient-ado
npm install
npm run buildStatus
Phase 1: Foundation + setup
Phase 2: Pull request workflows (15 tools)
Phase 3: Work items (6 tools)
Phase 4: Repos & branches (6 tools)
Phase 5: PR creation & update (4 tools)
Phase 6: Composite workflows (2 tools)
Total: 34 tools complete and ready for use! 🎉
Future Enhancements
Pipeline/build tools
Team/project management
Wiki/documentation tools
Artifact management
Test plan integration
License
MIT License - see LICENSE for details.
Author
Om Surushe
GitHub: @om-surushe
npm: @om-surushe
Related Packages
@om-surushe/efficient-ticktick - LLM-optimized TickTick task management
@om-surushe/efficient-search - LLM-optimized web search
Part of the Efficient MCP series - LLM-optimized tools for AI assistants.
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/om-surushe/efficient-ado'
If you have feedback or need assistance with the MCP directory API, please join our Discord server