
aaronsb/ado-mcp
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
Azure DevOps MCP 서버
개요
이 MCP (Model Context Protocol) 서버는 AI 조수를 통해 Azure DevOps 서비스와 상호 작용하는 도구를 제공합니다. 서버는 많은 원자 도구를 exposing 보다는 오히려 자원 유형에 의하여 그룹 가동에 근거한 건축술을 따릅니다. 이 접근법은 몇 가지 이점을 제공합니다: 1.: 공구는 (프로젝트, 저장소, 일 품목, 등)에 작동되는 entities에 의해 조직됩니다 2. : 개별 도구의 수십 개 대신 다중 작업 3. : 모든 엔티티티티 도구는 작업 및 매개 변수에 대한 동일한 패턴을 따릅니다. : 각 엔티티티티 도구는 도메인 5.에 특정 오류를 처리 할 수 있습니다 : 사용자는 각 엔티티티에 대한 사용 가능한 작업을 쉽게 찾을 수 있습니다. - : 각 도구는 Azure DevOps entity (projects, repositories, work items, etc.)를 대표하며 여러 작업을 제공합니다. (list, get, create, etc.
개요(AI 번역)
이 MCP (Model Context Protocol) 서버는 AI 조수를 통해 Azure DevOps 서비스와 상호 작용하는 도구를 제공합니다.
건축
서버는 많은 원자 도구를 exposing 보다는 오히려 자원 유형에 의하여 그룹 가동에 근거한 건축술을 따릅니다. 이 접근법은 몇 가지 이점을 제공합니다:
- ** 직관적 인 조직 ** : 도구는 (프로젝트, 저장소, 작업 항목 등)에서 작동되는 엔티티티티에 의해 조직됩니다.
- **Reduced 공구 조사 **: 수십 개의 개별 도구 대신, 우리는 여러 작업과 함께 엔터프라이즈 도구의 손이 있습니다.
- ** 일관된 인터페이스 ** : 모든 엔터프라이즈 도구는 작업 및 매개 변수에 대한 동일한 패턴을 따릅니다.
- ** 오류 처리 ** : 각 엔티티티 도구는 도메인에 특정 오류를 처리 할 수 있습니다. 5.Easier discovery: 사용자는 각 법인에 대해 쉽게 사용할 수 있는 작업을 발견할 수 있습니다.
건축 다이어그램
부품 구조
키 구성 요소
- Entity Tools: 각 도구는 Azure DevOps entity(projects, repositories, work items, etc.)를 나타냅니다. -Tool Registry: 기업 도구의 등록 및 실행 관리
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
Azure DevOps MCP Server
This MCP (Model Context Protocol) server provides tools for interacting with Azure DevOps services through AI assistants.
Architecture
The server follows an entity-based architecture that groups operations by resource type rather than exposing many atomic tools. This approach provides several benefits:
- Intuitive organization: Tools are organized by the entities they operate on (projects, repositories, work items, etc.)
- Reduced tool count: Instead of dozens of individual tools, we have a handful of entity tools with multiple operations
- Consistent interface: All entity tools follow the same pattern for operations and parameters
- Better error handling: Each entity tool can handle errors specific to its domain
- Easier discovery: Users can easily discover available operations for each entity
Architecture Diagram
flowchart TB
Client[AI Assistant] -->|MCP Request| Server[MCP Server]
Server -->|MCP Response| Client
subgraph "Azure DevOps MCP Server"
Server --> RequestHandler[Request Handler]
RequestHandler --> ToolRegistry[Tool Registry]
ToolRegistry --> EntityTools[Entity Tools]
EntityTools --> ApiClient[API Client]
ApiClient --> ErrorUtils[Error Utilities]
ApiClient --> PaginationUtils[Pagination Utilities]
ApiClient -->|HTTP Request| AzureDevOps[Azure DevOps API]
AzureDevOps -->|HTTP Response| ApiClient
ConfigManager[Configuration Manager] --> ApiClient
end
classDef primary fill:#4285F4,stroke:#0D47A1,color:white
classDef secondary fill:#34A853,stroke:#0D652D,color:white
classDef utility fill:#FBBC05,stroke:#866A00,color:white
classDef external fill:#EA4335,stroke:#980905,color:white
class Server,RequestHandler primary
class ToolRegistry,EntityTools,ApiClient secondary
class ErrorUtils,PaginationUtils,ConfigManager utility
class Client,AzureDevOps external
Component Structure
classDiagram
class EntityTool {
+name: string
+description: string
+operations: Record~string, Function~
+schemas: Record~string, ZodSchema~
+getDefinition(): ToolDefinition
+execute(args: unknown): Promise~any~
#registerOperation(operation, handler, schema, description)
}
class ADOApiClient {
+config: ADOApiConfig
+connection: WebApi
+getCoreApi()
+getWorkItemTrackingApi()
+getGitApi()
+getPipelineApi()
+handleError(error, context)
}
class ToolRegistry {
+registerTool(tool: Tool)
+getTool(name: string): Tool
+getToolDefinitions(): ToolDefinition[]
}
class ErrorUtils {
+createError(code, message, context)
+handleApiError(error, source, operation)
설치
docker run -i --rm -e ADO_ORGANIZATION=your-org -e ADO_PAT=your-pat azure-devops-mcp:local