Repository navigation
Releases
Releases · burcusipahioglu/azure-devops-mcp-onprem
Leaner, typed, and review-ready
Immutable
release. Only release title and notes can be modified.
v1.5.0 — Leaner, typed, and review-ready
📦 Note: v1.4.0 was never published to npm — this release includes its full
scope. Coming from 1.3.0, everything below is new to you.
✨ Highlights
- 🔎 PR review flow, end to end —
/review_pull_requestproduces a
structured advisory review; on request it publishes the findings to the PR
as file-anchored comments, each one confirmed before posting. New tools:
get_pull_request_comments+add_pull_request_comment(general,
file-anchored, or thread reply). - 💬 8 advisory prompts —
lessons_learned_git/lessons_learned_tfvc,
summarize_pull_request,review_pull_request,analyze_commit_range,
my_review_queue,changeset_summary, and the template-driven
risk_impact_analysis. All evidence-grounded: read tools only, claims cite
concrete IDs, "evidence insufficient" over speculation. - 📐 Typed results (first wave) — 8 most-chained read tools declare an MCP
outputSchemaand return validatedstructuredContentalongside the usual
JSON text. Text shape is unchanged — existing clients see no difference. - 🛡️ Dry-run on every write — all 8 write tools accept
dryRun: true;
update_work_itemreturns current values next to the intended changes.
The audit log now opens each process with asession_startheader
(version, mode, domains, rate limit) so log files are self-describing. - 🧰 Leaner tool list: 51 → 48 — every domain audited tool by tool;
redundant wrappers removed, outputs cleaned of_links/raw-object noise,
one misleading name fixed. Fewer, sharper tools = better tool selection.
🧪 TFVC: review before check-in
tfvc_get_shelveset_filereads the shelved (pending) content of a file
in a shelveset — AI code review before check-in, a workflow TFVC never had.risk_impact_analysistakes an optionalshelvesetNameto weigh the actual
pending change against the work item's stated intent.
🔁 Enhancements
query_work_items: newfieldsparam — project exactly the fields you
need per item (the WIQL SELECT clause never controlled output; now
documented).@Me/@CurrentIteration/@Todaymacros documented.list_pull_requests: omitrepositoryIdto search project-wide; new
reviewerfilter accepting@me.get_test_plan,get_pull_request,tfvc_get_changeset: outputs now
cleanly mapped (no more_links/ nested raw objects).add_test_cases_to_suite: link existing Test Case work items into a suite.get_work_item_commits: Git commits & PRs linked to a work item.- Progress notifications on large work-item fetches; server
instructions
field for MCP client discovery.
⚠️ Breaking changes
| Change | Migration |
|---|---|
convenience domain removed |
Remove it from AZURE_DEVOPS_ENABLED_DOMAINS (startup now errors on it). get_work_item_statistics lives in work_items; get_current_user is always registered |
get_my_sprint_items, search_work_items_by_tag removed |
One-line WIQL via query_work_items — see the README @me section |
wiki_browse, get_wiki_page_stats removed |
get_wiki_page (includeChildren) / list_wiki_pages cover both |
search_wiki_pages → renamed list_wiki_pages |
Update tool-name allowlists |
tfvc_get_changeset_work_items removed |
tfvc_get_changeset embeds work items (includeWorkItems defaults true) |
bulk_update_work_items removed |
Loop update_work_item — keeps every write inside the rate limit |
| PAT scope: Wiki needs read only | Was documented read & write; all wiki tools are reads |
v1.3.0
Immutable
release. Only release title and notes can be modified.
What's new in 1.3.0
📋 Tools
- 💬
get_work_item_comments— Paginated comment retrieval with asc/desc ordering, continuation tokens, and optional rendered HTML. Replaces the workaround of fetching
the whole work item withexpand=alljust to read comments back.
🛡️ Write safety
Closes the remaining gaps from 1.2.0's dry-run + audit log + MCP annotations:
- 🔒 Readonly mode —
AZURE_DEVOPS_MODE=readonlyshort-circuits all 7 write tools server-side; reads unaffected. Enforced in the audit wrapper, so the LLM cannot bypass.
Use for CI, sandboxes, emergency stops. Naming choseMODEoverREADONLY=1so a futureadmintier (destructive ops like delete) can land without a new env var or breaking
change. - 🚦 Global write rate limit —
AZURE_DEVOPS_RATE_LIMIT_WRITES_PER_MIN(default10,0disables). Sliding 60s window across all write tools — not per-tool — so an
LLM looping across multiple writes can't escape by spreading its calls. Blocked attempts logged withblocked: "rate_limit",limit, andretryAfterMsfor forensics.
📖 Docs
- 📚 README restructured — Setup moved to the end, capabilities front and center. New "Profile-based secrets" framing makes the
AZURE_DEVOPS_PROFILE→.env.<profile>
convention explicit (keeps PATs out of cloud-syncedmcp.json). TFVC support and 6-layer write safety promoted to own sections. Tool count drift fixed across 5 stale README
references.
✅ Compatibility
No breaking changes. All new env vars are opt-in with safe defaults. Tested on Azure DevOps Server 2022.2.
v1.2.0
Immutable
release. Only release title and notes can be modified.
🛡️ Optional audit log with privacy redact mode
🧩 MCP annotations on all 48 tools
v1.1.1
Immutable
release. Only release title and notes can be modified.
What's new in 1.1.1
- AZURE_DEVOPS_ENABLED_DOMAINS for selective tool loading
- Move TFVC-specific changeset tool to TFVC domain
- README clarity improvements
- Fix dotenv stdout banner corrupting MCP stdio channel
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Immutable
release. Only release title and notes can be modified.
What's new in 1.1.0
- TFVC tools (shelvesets, changesets, labels)
- Multi-instance support via AZURE_DEVOPS_PROFILE
- @me token resolution