Read-Only Mode (default)
When ADTK_ENABLE_WRITES is unset or false, adtk only allows read operations: get, list, search, batch_get. Any attempt to create, update, delete, or trigger returns an error.
adtk is read-only by default. All mutating operations are gated behind the ADTK_ENABLE_WRITES environment variable.
Read-Only Mode (default)
When ADTK_ENABLE_WRITES is unset or false, adtk only allows read operations: get, list, search, batch_get. Any attempt to create, update, delete, or trigger returns an error.
Write Mode
Set ADTK_ENABLE_WRITES=true to unlock: create, update, delete, batch_update, add_comment, update_comment, add_children, link, unlink, add_artifact_link, vote, create_branch, trigger, create_page, update_page, delete_page, upload, create_thread, update_thread, reply_to_comment, update_reviewers, create_plan, create_suite.
| Tool | Write Actions |
|---|---|
manage_work_items | create, update, delete, add_comment, update_comment, batch_update, add_children, link, unlink, add_artifact_link |
manage_pull_requests | create, update, add_comment, vote, update_reviewers, create_thread, update_thread, reply_to_comment |
manage_repos | create_branch |
manage_pipelines | trigger |
manage_wiki | create_page, update_page, delete_page |
manage_iterations | create |
manage_projects | create |
manage_test_plans | create_plan, create_suite |
manage_attachments | upload |
Follow the principle of least privilege when creating your PAT:
| Scope | Access Level |
|---|---|
| Work Items | Read |
| Code | Read |
| Build | Read |
| Wiki | Read |
| Project and Team | Read |
| Identity | Read |
| Test Management | Read |
| Scope | Access Level |
|---|---|
| Work Items | Read & Write |
| Code | Read & Write |
| Pull Request Threads | Read & Write |
| Build | Read & Execute |
| Wiki | Read & Write |
| Project and Team | Read & Write |
| Identity | Read |
| Test Management | Read & Write |
| Advanced Security | Read |
adtk includes a built-in token bucket rate limiter to prevent hitting Azure DevOps throttling limits.
Azure DevOps uses Team Services Throttling Units (TSTUs):
429 Too Many Requests with a Retry-After headeradtk’s rate limiter provides a conservative client-side throttle that stays well within the TSTU budget under normal usage.
You can disable specific MCP tools entirely using the AZURE_DEVOPS_DISABLED_TOOLS environment variable:
export AZURE_DEVOPS_DISABLED_TOOLS="manage_wiki,manage_pipelines,manage_test_plans"This prevents the tools from being registered in the MCP server, so AI agents won’t see them at all. Useful for:
Authorization: Basic ...)When using adtk auth, credentials are stored in the user’s home directory. For production deployments, prefer environment variables which don’t persist to disk.