Azure DevOps Services
중요합니다
원격 Azure DevOps MCP 서버는 현재 공개 미리 보기로 제공됩니다. 미리 보기 기능은 기능이 제한될 수 있으며 일반 공급 전에 변경될 수 있습니다.
원격 Azure DevOps MCP 서버는 로컬 설치가 필요하지 않은 Azure DevOps MCP Server 호스트된 버전입니다. 머신에서 서버를 실행하는 대신 스트리밍 가능한 HTTP 전송을 사용하여 AI 도우미를 Azure DevOps 호스팅 엔드포인트에 직접 연결합니다.
원격 서버는 로컬 설치 복잡성을 제거하면서 작업 항목, 끌어오기 요청, 파이프라인 등에 대한 액세스를 포함하여 로컬 서버와 동일한 기능을 제공합니다.
원격 및 로컬 MCP 서버
| 특징 | 원격 MCP 서버(미리 보기) | 로컬 MCP 서버 |
|---|---|---|
| 설치 | 설치 필요 없음 | Node.js 20.0 이상 및 npx |
| 수송 | 스트리밍 가능한 HTTP | stdio |
| 인증 | Microsoft Entra ID(OAuth) | Azure DevOps의 PAT 또는 Microsoft Entra ID |
| 호스팅 | Azure DevOps 호스팅 서비스 | 컴퓨터에서 로컬로 실행 |
| Configuration | 최소 mcp.json |
환경별 설정 |
| 상태 | 공개 미리 보기 | 일반적으로 이용 가능 |
사전 요구 사항
| 카테고리 | 요구 사항 |
|---|---|
| Azure DevOps | 활성 |
| 권한 | 프로젝트의 멤버 자격 및 쿼리하려는 리소스에 대한 액세스 |
| 환경 | 지원되는 AI 도우미 환경( 지원되는 환경 참조) |
mcp.json 구성
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http"
}
},
"inputs": []
}
URL에서 조직 이름을 생략할 수도 있습니다. 그러나 조직 이름을 생략하는 경우 각 도구 호출에서 컨텍스트로 제공해야 합니다.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/",
"type": "http"
}
},
"inputs": []
}
도구 집합
MCP 서버에서 사용할 수 있는 도구를 제한하도록 도구 집합을 지정합니다.
X-MCP-Tools와 결합하면 안 됩니다.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Toolsets": "repos,wiki,wit"
}
}
},
"inputs": []
}
| 도구 집합 값 | 포함된 도구 |
|---|---|
all
(기본값) |
모든 도구 집합의 모든 도구 |
repos |
리포지토리 및 끌어오기 요청 도구 |
wit |
작업 항목 도구 및 search_workitem |
pipelines |
파이프라인 및 빌드 도구 |
wiki |
Wiki 도구 및 search_wiki |
work |
반복 및 역량 도구 |
testplan |
테스트 계획 도구 |
읽기 전용 도구
헤더를 X-MCP-Readonly 사용하여 서버를 읽기 전용 작업으로 제한합니다. 이 제한은 Azure DevOps 리소스에 대한 수정을 방지하려는 경우에 유용합니다.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Readonly": "true"
}
}
},
"inputs": []
}
툴세트를 결합하고 읽기 전용 필터링 적용
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Toolsets": "repos,wiki,wit",
"X-MCP-Readonly": "true"
}
}
},
"inputs": []
}
개별 도구
헤더를 X-MCP-Tools 사용하여 특정 도구만 사용하도록 설정합니다.
X-MCP-Toolsets와 결합하면 안 됩니다.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Tools": "core_list_projects, wit_my_work_items, wit_get_work_items_batch_by_ids"
}
}
},
"inputs": []
}
내부자
기존 도구와 업데이트를 실험하고 도입할 때 헤더를 사용하여 X-MCP-Insiders 이러한 변경 내용에 조기에 액세스할 수 있습니다.
{
"servers": {
"ado-remote-mcp": {
"url": "https://mcp.dev.azure.com/{organization}",
"type": "http",
"headers": {
"X-MCP-Insiders": "true"
}
}
},
"inputs": []
}
사용 가능한 도구
메모
이 목록에는 최신 도구 업데이트가 항상 반영되지 않을 수 있습니다.
핵심 도구
핵심 도구는 항상 사용할 수 있습니다.
| 도구 | 설명 |
|---|---|
core_list_orgs |
인증된 사용자가 액세스할 수 있는 Azure DevOps 조직을 나열합니다. |
core_list_projects |
조직의 프로젝트 나열 |
core_list_project_teams |
프로젝트의 팀 나열 |
일하다
작업 도구는 action 매개 변수를 사용하여 디스패처 그룹으로 통합됩니다.
| 도구 | 조치 | 설명 | 읽기 전용 |
|---|---|---|---|
work |
list_iterations |
프로젝트의 모든 반복 나열 | ✅ |
work |
list_team_iterations |
팀에 할당된 반복 목록 보기 | ✅ |
work |
get_team_settings |
기본 반복, 백로그 반복 및 기본 영역 경로를 포함한 팀 설정 가져오기 | ✅ |
work |
get_team_capacity |
반복에 대한 팀 용량 가져오기 | ✅ |
work |
get_iteration_capacities |
해당 이터레이션 및 프로젝트의 모든 팀에 대한 이터레이션 수용량 가져오기 | ✅ |
work_iteration_write |
create |
반복 만들기 | ❌ |
work_iteration_write |
assign |
팀에 반복 할당 | ❌ |
work_capacity_write |
update |
특정 반복을 위해 팀 구성원의 팀 용량 업데이트 | ❌ |
Repos
리포지토리 도구는 action 매개변수를 사용해 그룹화된 디스패처로 통합됩니다.
| 도구 | 조치 | 설명 | 읽기 전용 |
|---|---|---|---|
repo_pull_request |
get |
ID로 풀 리퀘스트 조회하기 | ✅ |
repo_pull_request |
list |
리포지토리 또는 프로젝트에서 끌어오기 요청 나열 | ✅ |
repo_pull_request |
list_by_commits |
특정 커밋 ID를 포함하는 끌어오기 요청 찾기 | ✅ |
repo_pull_request_thread |
list |
끌어오기 요청에 주석 스레드 나열 | ✅ |
repo_pull_request_thread |
list_comments |
특정 스레드의 주석 나열 | ✅ |
repo_repository |
get |
이름 또는 ID로 리포지토리 가져오기 | ✅ |
repo_repository |
list |
프로젝트의 리포지토리 나열 | ✅ |
repo_branch |
get |
이름으로 브랜치 가져오기 | ✅ |
repo_branch |
list |
리포지토리의 브랜치 나열 | ✅ |
repo_branch |
list_mine |
현재 사용자가 푸시한 브랜치 나열 | ✅ |
repo_file |
get_content |
특정 분기, 태그 또는 커밋에서 파일의 텍스트 콘텐츠 가져오기 | ✅ |
repo_file |
list_directory |
선택적 재귀 목록을 사용하여 디렉터리의 파일 및 폴더 나열 | ✅ |
repo_search_commits |
텍스트, 작성자, 날짜 범위 등을 기준으로 필터링을 사용하여 커밋 검색 | ✅ | |
search_code |
전체 텍스트 코드 검색. | ✅ | |
repo_pull_request_write |
create |
끌어오기 요청 만들기 | ❌ |
repo_pull_request_write |
update |
끌어오기 요청을 업데이트하고 자동 완성을 설정하기 | ❌ |
repo_pull_request_write |
update_reviewers |
끌어오기 요청 검토자 추가 또는 제거 | ❌ |
repo_pull_request_write |
vote |
끌어오기 요청에 투표 | ❌ |
repo_pull_request_thread_write |
create |
끌어오기 요청에 새 주석 스레드 만들기 | ❌ |
repo_pull_request_thread_write |
reply |
스레드의 메모에 회신 | ❌ |
repo_pull_request_thread_write |
update_status |
주석 스레드의 상태 업데이트 | ❌ |
repo_create_branch |
브랜치 생성 | ❌ |
재치
작업 항목 도구가 action 매개 변수를 사용하여 그룹화된 디스패처로 통합됩니다.
| 도구 | 조치 | 설명 | 읽기 전용 |
|---|---|---|---|
wit_work_item |
get |
ID로 작업 항목 가져오기 | ✅ |
wit_work_item |
get_batch |
ID로 여러 작업 항목 가져오기 | ✅ |
wit_work_item |
list_comments |
작업 항목에 대한 메모 나열 | ✅ |
wit_work_item |
my |
인증된 사용자와 관련된 작업 항목 가져오기 | ✅ |
wit_work_item |
list_revisions |
작업 항목의 수정 내용 나열 | ✅ |
wit_work_item |
list_for_iteration |
팀 반복에 대한 작업 항목 나열 | ✅ |
wit_work_item |
get_type |
작업 항목 유형에 대한 메타데이터 가져오기 | ✅ |
wit_query |
get |
ID 또는 경로로 쿼리 가져오기 | ✅ |
wit_query |
get_results |
저장된 쿼리 실행 | ✅ |
wit_backlog |
list |
팀의 백로그 수준 나열 | ✅ |
wit_backlog |
list_work_items |
특정 백로그 수준에서 작업 항목 나열 | ✅ |
search_workitem |
전체 텍스트 작업 항목 검색 | ✅ | |
wit_work_item_write |
create |
새 작업 항목 만들기 | ❌ |
wit_work_item_write |
update |
작업 항목의 필드 업데이트 | ❌ |
wit_work_item_write |
update_batch |
한 번의 호출로 여러 작업 항목 업데이트 | ❌ |
wit_work_item_write |
add_child |
부모 아래에 자식 작업 항목 만들기 | ❌ |
wit_work_item_comment_write |
add |
작업 항목에 메모 추가 | ❌ |
wit_work_item_comment_write |
update |
작업 항목에 대한 기존 주석 업데이트 | ❌ |
wit_work_item_link_write |
link |
두 작업 항목 연결 | ❌ |
wit_work_item_link_write |
unlink |
작업 항목에서 링크 제거 | ❌ |
wit_work_item_link_write |
link_to_pull_request |
끌어오기 요청에 작업 항목 연결 | ❌ |
wit_work_item_link_write |
add_artifact_link |
리포지토리, 분기, 커밋 또는 빌드 아티팩트 링크를 작업 항목에 추가 | ❌ |
wit_work_item_attachment |
ID로 작업 항목 첨부 파일을 다운로드합니다. 파일 이름 및 MIME 형식을 사용하여 base64로 인코딩된 콘텐츠를 반환합니다. | ✅ |
메모
wit_query_by_wiql는 현재 X-MCP-Insiders 헤더를 사용하여 MCP 참가자들에게만 제공됩니다.
파이프라인
파이프라인 도구는 action 매개변수를 사용하여 그룹화된 디스패처로 통합됩니다.
| 도구 | 조치 | 설명 | 읽기 전용 |
|---|---|---|---|
pipelines_build |
list |
선택적 필터를 사용하여 빌드 나열 | ✅ |
pipelines_build |
get_status |
빌드에 대한 상태, 문제 및 보고서 메타데이터 가져오기 | ✅ |
pipelines_build |
get_changes |
빌드와 연결된 커밋 및 작업 항목 가져오기 | ✅ |
pipelines_build_log |
list |
빌드에 사용 가능한 로그 나열 | ✅ |
pipelines_build_log |
get_content |
ID로 특정 로그의 텍스트 콘텐츠 가져오기 | ✅ |
pipelines_definition |
list |
선택적 필터를 사용하여 파이프라인 정의 나열 | ✅ |
pipelines_definition |
list_revisions |
파이프라인 정의에 대한 수정 기록 나열 | ✅ |
pipelines_run |
get |
단일 파이프라인 실행 가져오기 | ✅ |
pipelines_run |
list |
파이프라인의 실행 목록 나열 | ✅ |
pipelines_artifact |
list |
빌드에 대한 아티팩트 나열 | ✅ |
pipelines_artifact |
download |
명명된 빌드 아티팩트 다운로드 | ✅ |
pipelines_write |
run_pipeline |
새 파이프라인 실행을 큐에 추가하기 | ❌ |
pipelines_write |
create_pipeline |
새 YAML 파이프라인 정의 만들기 | ❌ |
pipelines_write |
update_build_stage |
진행 중인 빌드에서 스테이지 취소, 다시 시도 또는 실행 | ❌ |
Wiki
위키 읽기 작업은 단일 wiki 도구로 통합됩니다. 매개 변수를 action 사용하여 작업을 선택합니다.
| 도구 | 조치 | 설명 | 읽기 전용 |
|---|---|---|---|
wiki |
list_wikis |
프로젝트 또는 조직의 Wiki 나열 | ✅ |
wiki |
get_wiki |
식별자별 위키 가져오기 | ✅ |
wiki |
list_pages |
위키의 페이지 나열 | ✅ |
wiki |
get_page |
페이지 콘텐츠 및 메타데이터 가져오기 | ✅ |
search_wiki |
전체 텍스트 위키 검색 | ✅ | |
wiki_upsert_page |
위키 페이지 만들기 또는 업데이트 | ❌ |
테스트 계획
테스트 계획 도구는 action 매개변수를 사용해 그룹화된 디스패처로 통합됩니다.
| 도구 | 조치 | 설명 | 읽기 전용 |
|---|---|---|---|
testplan |
list_plans |
프로젝트의 테스트 계획 나열 | ✅ |
testplan |
list_suites |
테스트 계획에서 테스트 도구 모음 나열 | ✅ |
testplan |
list_cases |
테스트 도구 모음에서 테스트 사례 나열 | ✅ |
testplan_show_test_results_from_build_id |
빌드에서 테스트 결과 가져오기 | ✅ | |
testplan_test_plan_write |
create |
테스트 계획을 만드세요 | ❌ |
testplan_test_suite_write |
create |
테스트 도구 모음 만들기 | ❌ |
testplan_test_suite_write |
add_test_cases |
제품군에 테스트 사례 추가 | ❌ |
testplan_test_case_write |
create |
테스트 사례 만들기 | ❌ |
testplan_test_case_write |
update_steps |
테스트 사례 업데이트 단계 | ❌ |
지원되는 환경
원격 Azure DevOps MCP Server를 사용하려면 사용자 계정 및 Azure DevOps 조직이 Microsoft Entra ID 연결해야 합니다.
모든 MCP 클라이언트는 기본적으로 Microsoft Entra 인증을 지원하지 않습니다. 일부 환경에서는 클라이언트 애플리케이션을 등록하기 위한 추가 단계가 필요합니다.
현재 지원되는 환경은 다음과 같습니다.
- Visual Studio Code
- Visual Studio
Visual Studio Code
Visual Studio Code 원격 MCP 서버를 구성하려면 다음을 수행합니다.
-
.vscode/mcp.json이전에 표시된 mcp.json 구성을 사용하여 리포지토리에 파일을 추가합니다. - 파일을 저장합니다.
- VS Code에서 GitHub Copilot 엽니다.
- 메시지가 표시되면 Microsoft Entra 계정을 사용하여 인증하고 계정을 선택합니다.
인증이 완료되면 사용 가능한 도구 목록이 나타납니다.
Visual Studio(2022년 이상)
MCP 설정에 서버 URL을 추가하여 Visual Studio 원격 MCP 서버를 구성합니다. 자세한 내용은
연결 확인
설정 후 AI 도우미에게 Azure DevOps 데이터에 대한 질문을 하여 원격 MCP 서버가 작동하는지 확인합니다.
예시들:
- "Azure DevOps 조직의 프로젝트를 나열합니다."
- "할당된 작업 항목을 표시합니다."
- "내 검토가 필요한 끌어오기 요청은 무엇인가요?"
AI 도우미가 Azure DevOps 조직의 결과를 반환하면 원격 MCP 서버가 올바르게 구성됩니다.
Troubleshooting
| Issue | 해결 방법 |
|---|---|
| 인증 실패 | Microsoft Entra 자격 증명을 확인하고 Azure DevOps 조직에 대한 액세스 권한이 있는지 확인합니다. |
| 서버를 찾을 수 없음 | 서버 URL 형식을 확인합니다 https://mcp.dev.azure.com/{organization}. |
| 데이터가 반환되지 않음 | 쿼리 중인 프로젝트 또는 리소스에 대한 적절한 권한이 있는지 확인합니다. |
| 미리 보기를 사용할 수 없음 | 미리 보기가 점진적으로 출시되고 있습니다. 나중에 다시 확인하거나 조직 관리자에게 문의하세요. |
지원을 위해 로컬 MCP 서버 리포지토리에서 문제를 만들 수 있습니다. 원격 문제 템플릿을 사용해야 합니다.
자주 묻는 질문(FAQ)
GitHub Copilot CLI, Claude Desktop, Claude Code, CodeX 또는 Cursor와 같은 다른 클라이언트는 어떻습니까?
CodeX, Claude Desktop, Claude Code 및 ChatGPT와 같은 다른 클라이언트 도구는 MCP 서버에서 사용하기 전에 Microsoft Entra OAuth 클라이언트 ID를 동적으로 등록해야 합니다. 이 기능을 사용하도록 설정하기 위해 Microsoft Entra 팀과 긴밀히 협력하고 있습니다. 지금은 Visual Studio 및 Visual Studio Code만 지원됩니다.
MCP Server를 Azure DevOps 사용할 수 있는 서비스는 무엇인가요?
Azure AI Foundry, Microsoft 365 Copilot 및 Copilot Studio 포함한 다른 서비스에 대한 지원은 아직 제공되지 않지만 곧 추가될 예정입니다.
Azure DevOps MCP 서버가 AgentId를 지원하나요?
AgentId 지원은 곧 제공될 예정입니다.