Skip to main content
Glama

azure-devops-cli-mcp

로컬 MCP server로, Claude Desktop / Cowork를 로컬의 Azure DevOps CLI에 연결합니다. Claude는 이를 통해 az devops, az repos, az boards, az pipelines, az artifacts를 완전히 사용할 수 있습니다.

사전 요구 사항

  • Node.js >= 20

  • Azure CLI(azure-devops extension 포함): az extension add --name azure-devops

  • az login 완료

  • az devops configure --defaults 불필요: server가 기본 organization / project / repository를 자동으로 적용합니다(아래「시작 매개변수」참조).

Related MCP server: Azure DevOps MCP Server

설치(팀 구성원)

npm install -g git+https://github.com/A016098Tony/azure-devops-cli-mcp.git

repo에 컴파일된 dist/가 포함되어 있어 설치 시 컴파일이 필요 없습니다. 버전 업데이트 시 같은 명령을 다시 실행하면 됩니다.

참고: script를 의도적으로 build/prepare라고 부르지 않습니다. npm 11로 git 패키지를 전역 설치할 때, package.json에 build/prepare/prepack/install류 script가 있으면 설치 측 컴파일이 트리거되고, npm_config_global이 내부 npm으로 누출되어 실패합니다. compile로 이름을 지으면 설치 프로세스가 컴파일 단계를 완전히 건너뜁니다.

Claude Desktop 설정

claude_desktop_config.json을 엽니다(Windows 전체 경로: C:\Users\<你的帳號>\AppData\Roaming\Claude\claude_desktop_config.json; 또는 Claude Desktop → Settings → Developer → Edit Config에서 열 수 있음), mcpServers에 추가:

{
  "mcpServers": {
    "azure-devops-cli": {
      "command": "npx",
      "args": ["azure-devops-cli-mcp", "--project", "MS", "--repository", "MS-Web"]
    }
  }
}

이 설정 파일은 Claude Desktop(Cowork 포함)과 Claude Code가 동일한 형식을 공유합니다. claude.ai 웹 버전은 로컬 stdio MCP server를 지원하지 않습니다.

시작 매개변수

세 매개변수 모두 선택 사항이며, 지정하지 않으면 내장 기본값을 사용합니다:

매개변수

기본값

설명

--organization

https://dev.azure.com/SKMHHIS

짧은 이름(예: SKMHHIS)만 주어도 전체 URL 자동 완성

--project

MS

기본 프로젝트

--repository

MS-Web

repos pr 명령에만 적용

명령에서 --org / --project를 지정하지 않으면(repos pr에서 --repository 미지정 시), server가 이러한 기본값을 자동으로 채웁니다. 명령에서 명시적으로 지정하면 명령이 우선합니다. 특정 az 하위 명령이 채워진 매개변수를 허용하지 않으면, server가 해당 매개변수를 자동으로 제거하고 한 번 재시도합니다.

Windows + nvm 주의: 데스크톱 앱(GUI 프로세스)이 상속하는 PATH가 터미널과 다를 수 있습니다. 「npx를 찾을 수 없음」이 발생하면 commandnpx.cmd의 절대 경로로 변경하세요 ((Get-Command npx.cmd).Source로 확인, 예: C:\nvm4w\nodejs\npx.cmd), args는 그대로입니다.

Claude Desktop을 완전히 종료하고 다시 시작해야(탭을 닫는 것으로는 부족하며, 전체 종료 후 다시 열어야) 로드됩니다. 시작 후 대화 상자 왼쪽 하단의「+」→ Connectors에서 azure-devops-cli 및 해당 도구를 볼 수 있습니다.

도구

도구

용도

az_devops

repos pr list --status active 등 임의의 DevOps 계열 명령 실행. 출력 형식을 지정하지 않으면 자동으로 JSON 사용.

az_devops_help

명령 구문 조회, az <command> --help와 동일.

az_workitem_attach

로컬 파일을 work item 첨부 파일로 업로드하고 링크 생성(텍스트와 binary 모두 가능, 최대 100MB). 예: code review 보고서나 오류 스크린샷을 work item에 첨부.

az_pr_show

PR 전체 정보(REST) 조회, source/target branch와 상태 포함.

az_pr_changes

PR 변경 파일 목록(REST iterations/changes) 조회, 최신 iteration 자동 사용.

az_pr_workitems

PR에 연결된 work item 목록(REST) 조회.

az_workitem_relations

relations를 포함한 work item 조회(REST, $expand=relations), 첨부 파일 중복 이름 확인 가능.

az_pr_comment

PR에 토론 스레드 댓글 작성 또는 기존 스레드에 답글(REST).

az_workitem_update

work item 필드 업데이트 / Discussion 작성(REST json-patch, /fields/*만 허용).

az_rest

범용 Azure DevOps REST 호출(GET/POST/PATCH), 미포함 엔드포인트용.

az_git_fetch

호스트 측에서 로컬 repo에 git fetch 실행(읽기 전용). Cowork sandbox 내에서 fetch가 proxy에 차단(403)될 때의 대체 경로, fetch 완료 후 sandbox에서 로컬 git으로 origin/<branch> 조작 가능.

az_git_ls_remote

호스트 측에서 원격 refs 조회(git ls-remote, 객체 다운로드 없음), 원격 브랜치 존재 여부를 먼저 확인 가능.

REST 도구의 인증은 az_workitem_attach와 동일합니다: AZURE_DEVOPS_EXT_PAT 환경 변수를 우선 사용하고, 없으면 az login의 자격 증명을 사용합니다. 모든 REST URL은 기본 organization에 고정되어 다른 호스트로 요청을 보낼 수 없습니다.

devops, repos, boards, pipelines, artifacts 다섯 개 명령 그룹만 허용하며, 그 외 az 명령(예: vm, account)은 모두 거부합니다. 인증은 로컬의 az login에 의존합니다 (az_workitem_attach는 내부적으로 az account get-access-token을 실행해 token을 가져옴; AZURE_DEVOPS_EXT_PAT 환경 변수가 설정되어 있으면 해당 PAT를 우선 사용), server는 어떤 자격 증명도 저장하지 않습니다.

보안 방어

명령은 shell을 통해 실행되므로, 큰따옴표 밖에 shell 제어 문자(& | ; < > ( ) \ ^또는 줄바꿈)가 있거나 짝이 맞지 않는 큰따옴표가 있는 명령은 거부됩니다.repos list & <임의 명령>같은 연결로 그룹 제한을 우회해 임의의 로컬 명령을 실행하는 것을 방지하기 위함입니다. 특수 문자가 포함된 매개변수 값(예: WIQL 또는--query의 JMESPath 표현식)은 큰따옴표로 감싸면 정상 실행됩니다. 예: boards query --wiql "SELECT [System.Id] FROM WorkItems WHERE [System.State] <> 'Closed'"`.

Git 도구

az_git_fetch / az_git_ls_remote는 호스트 측에서 git의 읽기 전용 네트워크 작업을 실행하며, repoPath는 호스트 측의 절대 경로여야 합니다. az_git_ls_remotepatterns에는 여러 pattern을 지정할 수 있으며, 그중 하나라도 일치하는 ref가 나열됩니다(네이티브 git ls-remote와 동일). 매개변수는 엄격히 검증됩니다: remote는 이름만 허용(URL 불가), refspec/patterns는 -로 시작할 수 없음(--upload-pack 같은 위험한 옵션 차단). push, pull 또는 어떤 쓰기 작업도 제공하지 않습니다. 인증은 호스트 측의 git credential(예: Git Credential Manager)을 사용합니다.

개발

git clone https://github.com/A016098Tony/azure-devops-cli-mcp.git
npm install
npm test              # vitest 單元 + 整合測試(不需要 az)
node scripts/smoke.mjs  # 實機煙霧測試(需要 az login)

src/를 수정한 후 반드시 npm run compile을 실행하고 dist/도 함께 commit하세요. 설치 측은 repo 내의 dist/를 직접 사용하므로, 재컴파일을 잊으면 사용자가 이전 버전 동작을 설치하게 됩니다.

Available Tools

12 tools
az_devopsAzure DevOps CLIA

執行 Azure DevOps CLI 命令(az 前綴由 server 自動加上,command 請勿包含)。允許的命令群組:devops、repos、boards、pipelines、artifacts。預設 organization 為 https://dev.azure.com/SKMHHIS、project 為 MS,repos pr 命令預設 repository 為 MS-Web(未指定時 server 會自動補上,通常不需要帶 --org/--project/--repository)。未指定 -o/--output 時自動使用 --output json。範例:"repos pr list --status active"、"boards work-item show --id 123"。不確定語法時,先用 az_devops_help 查詢。

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes不含 "az" 前綴的命令,例如 "repos pr list --status active"
timeoutNo逾時秒數,預設 120

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It discloses key behaviors: the 'az' prefix is auto-appended, defaults for organization/project/repository, and auto-fallback to --output json when not specified. It does not cover error behavior, return formats, or permission requirements, but for a generic CLI pass-through tool the disclosed defaults are the most crucial behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Reasonably concise, all in a compact Chinese block. Every sentence earns its place: scope, defaults, output behavior, examples, and fallback instruction. Slightly dense but no wasted words. The example separation and final tip about az_devops_help are valuable additions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic CLI tool with no output schema, the description covers scope, defaults, output format, and error fallback. It could mention timeouts, pagination, or authentication requirements, but the essentials are all present. The sibling name az_devops_help provides a natural complement for unknown syntax.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful value beyond schema: the 'command' parameter is explained with format expectation (no 'az' prefix) and a concrete example ('repos pr list --status active'). The timeout parameter is documented in schema. Description enriches understanding of how commands map to the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it executes Azure DevOps CLI commands with a specific verb (run 'az' commands), lists allowed command groups (devops, repos, boards, pipelines, artifacts), and the prefix is auto-added. It differentiates from siblings by defining itself as the general CLI executor vs. the specific wrappers like az_pr_show and az_workitem_update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Excellent guidance: explicitly says to use az_devops_help when syntax is uncertain, specifies default org/project/repo values so users don't need to pass them, and provides concrete examples. This gives clear when-to-use and a fallback path to the sibling az_devops_help tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_devops_helpAzure DevOps CLI 說明查詢A

查詢 Azure DevOps CLI 命令的官方說明(等同 az --help)。在不確定子命令或參數語法時先用這個工具,再用 az_devops 執行。範例:command 傳 "boards work-item update" 會回傳該命令的完整參數說明。

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes命令群組或子命令,不含 "az" 前綴,例如 "repos pr create"

TDQS

A4.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does disclose the tool behaves identically to `az <command> --help` (a read-only help lookup), which is the key behavioral trait. However, it doesn't describe what happens on invalid commands, output format, or whether it requires authentication — but given the tool's simplicity (a help query), this is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is compact — three sentences that each earn their place: what it does (equivalence to --help), when to use it (before az_devops), and a concrete example. Zero wasted words, front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple help-query tool with one documented parameter at 100% schema coverage, the description is complete. It explains the tool's role relative to the sibling executor (az_devops), shows usage, and clarifies parameter format. No output schema exists, but since the tool mirrors `az --help` behavior, the return value is self-explanatory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single 'command' parameter is already well documented ('命令群組或子命令,不含 az 前綴'). The description adds valuable context beyond the schema by giving a concrete example ('boards work-item update') and explaining the input format expectation, which reinforces the no-'az'-prefix rule. This compensates nicely for the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries official Azure DevOps CLI help (equivalent to `az <command> --help`), with a specific verb (查詢/query), resource (Azure DevOps CLI 命令說明), and a concrete example showing command usage like 'boards work-item update' returning full parameter documentation. It distinguishes itself from the sibling az_devops executor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly states '在不確定子命令或參數語法時先用這個工具,再用 az_devops 執行' — use this tool first when unsure about subcommand or parameter syntax, then execute with az_devops. This is a clear when-to-use directive that names the alternative (az_devops), and shows a working example.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_git_fetchGit Fetch (host-side)A

在主機端對本機 repo 執行 git fetch(唯讀網路操作,不動工作目錄)。典型情境:Cowork sandbox 內 git fetch 被 proxy 擋下(403)時,用此工具在主機端代跑;完成後 sandbox 內即可用本機 git 操作 origin/。不提供 push/pull 等寫入操作。

ParametersJSON Schema
NameRequiredDescriptionDefault
pruneNo加 --prune,清除遠端已刪除分支的追蹤 ref
remoteNo遠端名稱,預設 origin(只接受 remote 名稱,不接受 URL)
refspecNo要 fetch 的分支或 refspec,例如 "releases/s116/rc-092";未指定時 fetch 該 remote 的全部分支
timeoutNo逾時秒數,預設 120
repoPathYes本機 repo 的「主機端」絕對路徑(例如 D:\mygithub\MS-Web;sandbox 內看到的路徑可能與主機不同)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

無 annotations 提供,描述承擔全部責任。描述清楚揭露這是唯讀網路操作、不會動工作目錄、且在 host 端執行。雖未說明授權需求或失敗行為細節,但對這個工具而言已屬充分,僅略遜於完整揭露。

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

描述僅兩三句,前段即點出核心用途與唯讀性質,後段補充典型場景與排除項。雖略長但資訊密度高,無冗餘內容,只是可再更精簡。

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

無 output schema、無 annotations,但描述已涵蓋目的、使用情境、不做之事、remote 名稱限制。雖未說明返回格式或錯誤處理,但對一個 fetch 工具而言,該提供的上下文已足夠。

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

schema description coverage 為 100%,所有 5 個參數皆有 schema 內描述。描述本身未再補充參數細節,但說明了 remote 只接受名稱不接受 URL 的約束(此點 schema 也有)。依據高覆蓋率基準,給 3 分合理。

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

清楚說明在主機端對本機 repo 執行 git fetch(唯讀網路操作),並明確指出不動工作目錄。區分了與 sandbox 內 git fetch 的差異,且與其他 sibling(如 az_git_ls_remote、az_devops)有別。

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

明確說明典型使用情境(Cowork sandbox 內 git fetch 被 proxy 擋 403 時),並說明完成後的效果。也主動排除 push/pull 等寫入操作,提供清晰的 when-to-use 及 when-not-to-use 指引。

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_git_ls_remoteGit Ls-Remote (host-side)A

在主機端查詢本機 repo 的遠端 refs(git ls-remote,不下載物件)。適合在 fetch 前快速確認遠端分支是否存在,例如確認 releases/s116/rc-092 存在於 origin。

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo只列 tag(--tags)
headsNo只列分支(--heads)
remoteNo遠端名稱,預設 origin(只接受 remote 名稱,不接受 URL)
patternNoref 過濾,例如 "releases/s116/rc-092"
timeoutNo逾時秒數,預設 120
repoPathYes本機 repo 的「主機端」絕對路徑(例如 D:\mygithub\MS-Web)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It does disclose that it queries host-side without downloading objects and runs on the host machine ('主機端'). However, it doesn't describe network behavior, failure modes, or what happens on nonexistent branches/refs, though for a read-only ls-remote type tool the risk profile is lower.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences in Traditional Chinese that are front-loaded with the core purpose and usage context. The example is useful and illustrative. Slight opportunity to be more compact, but no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only inspection tool with 100% schema coverage and 6 well-documented parameters, the description adequately covers purpose and usage. No output schema exists, but for ls-remote the output format is well-known git output. The host-side emphasis and pre-fetch use case provide sufficient context given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter (tags, heads, remote, pattern, timeout, repoPath) is documented in the schema. The description adds the '主機端絕對路徑' and remote-name-only constraint context, but mostly reinforces what the schema already states. Baseline 3 is appropriate given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource+mode: '查詢本機 repo 的遠端 refs(git ls-remote,不下載物件)'. Clearly distinguishes from az_git_fetch (which downloads objects) by explicitly stating '不下載物件' and framing it as a pre-fetch confirmation tool. The example '確認 releases/s116/rc-092 存在於 origin' reinforces the precise purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: '適合在 fetch 前快速確認遠端分支是否存在'. This clearly implies its role relative to az_git_fetch. However, it doesn't explicitly name the alternative tool or state when not to use it, though sibling context makes this reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_pr_changesList Pull Request ChangesA

以 REST API 取得 PR 的異動檔案清單(iteration changes)。未指定 iterationId 時自動使用最新 iteration,並在輸出開頭註明。預設 organization/project/repository 同 az_pr_show。

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNo覆寫預設 project(預設 MS)
prNumberYesPR 編號
repositoryNo覆寫預設 repository(預設 MS-Web)
iterationIdNo指定 iteration,預設取最新

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It reveals one useful behavioral trait — that unspecified iterationId auto-selects latest and the output will note this. However, it doesn't disclose what the return format looks like, pagination behavior, error conditions, or whether this is read-only operations-wise.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact — two sentences covering purpose and key default behavior. It's front-loaded with the core action. Minor redundancy exists in restating defaults already present in schema descriptions, but overall it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-oriented list tool with a 100%-covered schema and no output schema, the description covers the essential purpose and a notable default behavior. However, it doesn't describe the output structure (what fields appear in the changes list), which given no output schema would be useful. It's adequate but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all 4 parameters. The description adds the default-iteration behavior context that enriches understanding of iterationId. However, it repeats parameter-level defaults (project MS, repository MS-Web) already in the schema and adds no additional semantic depth beyond the iteration behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states '以 REST API 取得 PR 的異動檔案清單(iteration changes)' — a specific verb (取得/list changes) applied to a resource (PR files/iteration changes). It distinguishes itself from siblings like az_pr_show and az_pr_workitems by specifying it returns file change lists for iterations, but doesn't explicitly name the alternative sibling for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the default behavior when iterationId is omitted (uses latest iteration and notes it in output), which gives clear context for when to call without a parameter. However, it doesn't explicitly state when NOT to use this tool versus alternatives like az_pr_show, az_rest, or az_git_fetch, so it lacks exclusions or alternative naming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_pr_commentCreate Pull Request CommentA

在 PR 上留言。未指定 threadId 時建立新的討論串(可用 filePath/line 錨定到檔案行);指定 threadId 時回覆該討論串(此時忽略 filePath/line/status)。預設 organization/project/repository 同 az_pr_show。

ParametersJSON Schema
NameRequiredDescriptionDefault
lineNo錨定的行號(需搭配 filePath)
statusNo新討論串的初始狀態,預設 active
contentYes留言內容(不可為空)
projectNo覆寫預設 project(預設 MS)
filePathNo新討論串錨定的檔案路徑(自動補開頭的 /)
prNumberYesPR 編號
threadIdNo回覆既有討論串的 thread ID
repositoryNo覆寫預設 repository(預設 MS-Web)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that filePath auto-prepends '/', that filePath/line/status are ignored when threadId is set, and the default status is 'active'. This covers key behavioral nuances beyond schema. Could add mutation warnings or required permissions, but the disclosed behavior is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences covering purpose, dual modes, parameter interactions, and default override behavior. Zero wasted words, front-loaded with the core verb+object. Very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with dual modes (create vs reply) and parameter interdependencies, the description adequately covers mode selection and exclusion rules. It also notes default organization/project/repository inheritance from az_pr_show, aiding cross-tool understanding. Missing: output/return value description, but no output schema exists and the tool's return format is likely obvious. Mutation safety warnings absent but not critical given context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds context about the relationship between filePath/line/status and threadId (that they're ignored when replying), which goes slightly beyond schema. However, it doesn't add syntactic detail beyond what's already in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the two distinct behaviors: create a new thread (with optional file path/line anchoring) or reply to an existing thread (given threadId). It uses specific verbs (留言/建立/回覆) and differentiates the two primary modes explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use each mode: '未指定 threadId 時建立新的討論串' vs '指定 threadId 時回覆該討論串', and clearly documents behavioral exclusion ('此時忽略 filePath/line/status'). This is explicit when/alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_pr_showShow Pull RequestB

以 REST API 取得 PR 完整資訊(title、sourceRefName、targetRefName、status 等)。預設 organization 為 https://dev.azure.com/SKMHHIS、project 為 MS、repository 為 MS-Web。

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNo覆寫預設 project(預設 MS)
prNumberYesPR 編號
repositoryNo覆寫預設 repository(預設 MS-Web)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided (no readOnlyHint, destructiveHint), so the description carries the full burden. It states it fetches via REST API and lists returned fields, which signals a read operation, but it doesn't disclose behaviors like auth requirements, rate limits, or what happens with invalid PR numbers. For a read tool with zero annotation coverage, the disclosure is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that conveys the resource, fields returned, and default scoping. It front-loads the core purpose and adds defaults compactly. Minimal waste, though it could be more explicit about usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with only 3 params and no output schema, the description provides core purpose, returned fields, and defaults. However, with no annotations and no output schema, it doesn't disclose the actual fields/types returned beyond a few examples or error/edge-case behavior, which is a modest gap for such a tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter already described (prNumber, project override, repository override). The description adds the default values for organization/project/repository, which the schema lacks, providing useful context. Baseline 3 is appropriate since the schema already documents parameters and the description adds default-value enrichment but no syntax/format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a specific verb ('取得'/'fetch') and resource ('PR 完整資訊'), listing the retrieved fields (title, sourceRefName, targetRefName, status). It names defaults for organization/project/repository which helps scoping. However, it doesn't differentiate from siblings like az_pr_changes or az_pr_workitems which retrieve different PR sub-information, though the resource (full PR info) is reasonably distinguishable by implication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for fetching full/complete PR details and mentions defaults, giving some context. But there is no explicit when-to-use vs alternatives guidance, nor doestate intended use cases beyond presenting details. No exclusions or comparison with sibling tools like az_pr_changes are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_pr_workitemsList Pull Request Work ItemsB

以 REST API 取得 PR 關聯的 work item 清單(id 與 url)。預設 organization/project/repository 同 az_pr_show。

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNo覆寫預設 project(預設 MS)
prNumberYesPR 編號
repositoryNo覆寫預設 repository(預設 MS-Web)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states it uses REST API and returns id/url, which reveals read-only intent implicitly, but does not document pagination, rate limits, authentication requirements, error behavior, or what the response format looks like. Since this is clearly a read-only data-fetching operation with zero annotation coverage, more behavioral disclosure is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and wastes no words. It covers core purpose, output scope, and default inheritance in minimal space. The only minor gap is the lack of behavioral details, but structurally it is well-formed and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with good schema coverage, the description is adequate but thin. It explains purpose, output format (id/url), and inheritance from az_pr_show, but lacks authentication notes, pagination behavior, output structure, and explicit read-only confirmation. Given that no annotations and no output schema exist, the description should carry more weight for these behavioral facts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are documented in the schema itself. The description does not repeat parameter details but references the az_pr_show defaults, which adds contextual meaning beyond the schema (explaining that project/repository override the same defaults as a sibling tool). Even with high schema coverage, the default-inheritance note adds genuine value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches PR-associated work items (id and url) via REST API. It specifies the verb (get/list), the resource (PR work items), and the scope (id与url). It distinguishes from siblings by being PR-specific and noting the output is id/url, differentiating from az_pr_show (PR details) and az_pr_changes (file changes). Missing explicit sibling differentiation but the purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that default organization/project/repository are the same as az_pr_show, which implicitly suggests consistent usage context, but does not explicitly state when to use this vs alternatives. No when-not guidance or exclusion conditions. The inheritance-from-az_pr_show note is helpful context but doesn't provide operational boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_restAzure DevOps REST (generic)A

對 Azure DevOps 發送任意 REST 請求(GET/POST/PATCH)。優先使用專用工具(az_pr_show、az_pr_changes、az_pr_workitems、az_workitem_relations、az_pr_comment、az_workitem_update、az_workitem_attach);此工具僅供未涵蓋的端點使用。path 為 organization(https://dev.azure.com/SKMHHIS)之後的相對路徑,未帶 api-version 時自動補 7.1。

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON 字串(GET 不可帶)
pathYes相對路徑,例如 "MS/_apis/git/repositories/MS-Web/pullRequests/1/threads"
methodYesHTTP method
timeoutNo逾時秒數,預設 120
contentTypeNo覆寫 Content-Type,預設自動判斷

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden. It discloses the auto api-version injection, path base, and overload semantics, which is useful. However, it doesn't disclose auth requirements, error/rate-limit behavior, response format, or consequences of mutations, leaving meaningful gaps for a generic REST tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences carry all key information: purpose+preference order, path base+auto version, and required params. No redundancy with the schema, no filler — every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-param generic HTTP tool with no output schema and no annotations, the description covers the critical decisions: path construction, api-version default, method constraints, and sibling alternatives. It omits authentication and response-shape details, but given it's an open-ended 'any endpoint' tool, the coverage is appropriately pragmatic for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for every parameter. The description adds meaningful context by showing an example path ('MS/_apis/git/repositories/MS-Web/pullRequests/1/threads'), explaining the relative-path convention relative to the organization URL, and clarifying that GET cannot carry a body and api-version defaults to 7.1 — going beyond what the schema enumerates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it sends arbitrary REST requests (GET/POST/PATCH) to Azure DevOps, names the specific path format (relative path after organization), and explicitly enumerates covered sibling endpoints it should yield to. This distinguishes it sharply from the specialized PR/workitem tools while precisely scoping its generic purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists seven specialized tools (az_pr_show, az_pr_changes, etc.) that should be used in preference, and states this tool is only for uncovered endpoints. Also explains path base (https://dev.azure.com/SKMHHIS) and the auto api-version=7.1 behavior — strong when/where-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_workitem_attachAttach File to Work ItemA

將本機檔案上傳為 Azure DevOps work item 附件並建立連結(純文字與 binary 檔皆可,上限 100MB)。預設 organization 為 https://dev.azure.com/SKMHHIS、project 為 MS。認證優先使用 AZURE_DEVOPS_EXT_PAT 環境變數,否則使用 az login 的憑證。

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNo附件備註,顯示在 work item 附件上
fileNameNo覆寫附件顯示名稱,預設取 filePath 的檔名
filePathYes本機檔案的絕對路徑
workItemIdYes目標 work item ID

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the 100MB size limit, file type support, default org/project, and auth ordering - all useful behavioral details. However, it doesn't mention side effects like whether the upload modifies the work item's state, triggers notifications, or what the response format looks like. It adds reasonable context despite gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. First sentence states purpose, file types, and size limit; second sentence covers defaults and auth. Every clause earns its place and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 params (all documented), no output schema, and no annotations. The description covers purpose, file limits, defaults, and auth flow - fairly complete for an attachment tool. Minor gap: no mention of behavior on failure or whether attachments replace existing ones, but these are edge concerns for a straightforward upload tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 4 parameters already have property descriptions. The description adds value by clarifying the fileName parameter's default behavior (falls back to filePath's basename) and that filePath requires an absolute path. The defaults for org/project organization context are also helpful beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb (upload), resource (Azure DevOps work item attachment), and purpose (create link, plain text and binary files, 100MB limit). It distinguishes itself from sibling tools like az_workitem_update and az_workitem_relations by focusing specifically on file attachment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides useful context by stating default organization/project values (SKMHHIS, MS) and authentication precedence (AZURE_DEVOPS_EXT_PAT env var before az login credentials). It doesn't explicitly state when NOT to use it versus alternatives, but the attachment-specific purpose is clear enough given the sibling tools listed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_workitem_relationsShow Work Item RelationsB

以 REST API 取得 work item 的完整資訊含 relations($expand=relations),可用於檢查附件(AttachedFile 的 attributes.name)是否已存在。預設 organization 為 https://dev.azure.com/SKMHHIS。

ParametersJSON Schema
NameRequiredDescriptionDefault
workItemIdYesWork item ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It states this is a read operation via REST API with $expand=relations and discloses the default organization context. However, it doesn't describe return format, error behavior, or whether any side effects exist, and doesn't explicitly confirm read-only semantics despite being a GET-style operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that packs in purpose, technique, and a use case. It is front-loaded with the main action and includes practical detail about the API expansion and default org. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read tool, the description is reasonably complete. It explains what it retrieves, how (REST with $expand), and a common use. With no output schema, it doesn't describe the returned structure in detail, which for a relations tool could be worthwhile, but the schema and simplicity keep this adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (workItemId fully documented). The description adds the default organization value (https://dev.azure.com/SKMHHIS) which is genuinely useful context beyond the schema. Baseline 3 applies since schema covers the single parameter well; description adds mild supplementary value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: retrieves work item complete info including relations via REST API with $expand=relations. It also names a specific use case (checking if attachments exist). It doesn't explicitly differentiate itself from siblings, though the use case hint and tool name do provide some distinction from attach/update tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a concrete usage scenario (checking whether attachments exist), which is helpful context. However, it doesn't explicitly say when not to use this vs alternatives like az_workitem_attach or az_devops_help, nor does it mention when to prefer sibling tools for related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

az_workitem_updateUpdate Work Item FieldsA

以 REST API 更新 work item 欄位(json-patch 由 server 組裝,僅允許 /fields/*)。fields 的 key 為欄位參考名稱,例如 {"System.State": "Resolved"};historyComment 會寫入 System.History(等同在 Discussion 留言)。fields 與 historyComment 至少要提供一個。預設 organization 為 https://dev.azure.com/SKMHHIS。

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo欄位參考名稱 → 新值,例如 {"System.State": "Resolved"}
workItemIdYesWork item ID
historyCommentNo寫入 System.History 的留言

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations provided, so the description carries the full burden. It discloses that this is a mutation operation (updates via REST), that json-patch is assembled server-side and restricted to /fields/*, and that historyComment persists to System.History. This is meaningful behavioral disclosure. Minor gaps: no mention of API version, auth requirements, or what the response looks like, but the core mutation semantics and server-side patch assembly are transparently stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that covers purpose, field format, historyComment behavior, the at-least-one constraint, and the default organization. Every clause serves a purpose and there's no filler. It loses the full 5 only because it's slightly packed/undifferentiated as one long sentence flow rather than clearly front-loaded with the most critical info first, but it is still efficient with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward mutation tool with 3 parameters and full schema coverage, the description covers the essentials: field format, historyComment behavior, validation constraint, and default organization. No output schema exists, so describing the return format would be desirable but is a minor gap. Overall it's adequate-to-strong for a filtered mutation tool, though it could mention what the response contains and permission requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value beyond this by explaining the field key format ({System.State: 'Resolved'}), that a historyComment writes to System.History, and that at least one of fields/historyComment is required. This enriches the otherwise generic schema descriptions. Would be a 5 if it added more depth on value validation or response behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb+resource (updates work item fields via REST API) and specifies the field reference-name format with an example. It differentiates from siblings by noting it updates only /fields/* and that fields and historyComment are required-or-one. However, it doesn't explicitly contrast with sibling tools like az_workitem_attach or az_workitem_relations, so it loses the full 5 which requires explicit sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: how to specify fields using reference names, that a historyComment writes to System.History (Discussion), and the constraint that at least one of fields/historyComment must be provided. It also states the default organization. However, it does not explicitly say when NOT to use this tool or name alternative siblings for other work item operations (attach, relations), so it misses the exclusions that would earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation4/5

Tools are mostly distinct: the dedicated az_pr_* and az_workitem_* tools target specific resources and are clearly differentiated from the generic az_devops CLI passthrough and az_rest fallback. Minor ambiguity exists between az_devops (which can also run PR/workitem commands) and the dedicated REST tools, though the descriptions explicitly advise using the dedicated tools first. The az_git_fetch vs az_git_ls_remote pair is well-separated by read-only scope.

Naming Consistency3/5

There are two conventions mixed: a non-prefixed 'az_devops'/'az_devops_help' pair and a prefixed 'az_rest', 'az_git_fetch', 'az_git_ls_remote', plus camelCase-free hyphenated domain tools (az_pr_show, az_workitem_attach). The az_* prefix is consistent but the grouping/casing is inconsistent—some use domain_verb (az_pr_show), some use verb placement like az_git_fetch. Not chaotic, but not a single predictable pattern.

Tool Count4/5

12 tools for an Azure DevOps MCP server is reasonable. Each dedicated tool earns its place by covering a commonly-needed operation with the REST API, while the generic az_devops passthrough and az_rest fallbacks consolidate the remaining surface. Slightly on the higher end but justified by the breadth of Azure DevOps domains covered.

Completeness4/5

The tool surface covers a broad set of Azure DevOps operations: CLI passthrough for the main command groups, help lookup, PR inspection (show/changes/workitems/comment), work item management (attach/update/relations), generic REST passthrough, and git helpers. Notable gaps: no dedicated tool for creating a PR (relies on az_devops CLI), and the git tools are read-only helpers rather than full git coverage, but these are reasonable trade-offs given the generic az_devops passthrough and az_rest fallback.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/A016098Tony/azure-devops-cli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server