get_work_item_types
Retrieve all available work item types in an Azure DevOps project to understand project structure and reference names for creating or managing work items.
Instructions
Gets a list of all work item types in a project.
Use this tool when you need to:
- See what work item types are available in a project
- Get reference names for work item types to use in other operations
- Plan work item creation by understanding available types
Args:
project: Project ID or project name
Returns:
A formatted table of all work item types with names, reference
names, and descriptions
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
Implementation Reference
- The main handler function for the 'get_work_item_types' MCP tool. It is decorated with @mcp.tool() and handles input validation via type hints/docstring, retrieves the Azure DevOps work item tracking client, calls the helper implementation, and manages errors.def get_work_item_types(project: str) -> str: """ Gets a list of all work item types in a project. Use this tool when you need to: - See what work item types are available in a project - Get reference names for work item types to use in other operations - Plan work item creation by understanding available types Args: project: Project ID or project name Returns: A formatted table of all work item types with names, reference names, and descriptions """ try: wit_client = get_work_item_client() return _get_work_item_types_impl(project, wit_client) except AzureDevOpsClientError as e: return f"Error: {str(e)}"
- Registration call for the types module tools, including 'get_work_item_types', within the work_items tools package initializer.types.register_tools(mcp)
- Core helper function that fetches work item types using the WIT client and formats the result as a markdown table using _format_table.def _get_work_item_types_impl( project: str, wit_client: WorkItemTrackingClient ) -> str: """Implementation of work item types retrieval.""" work_item_types = wit_client.get_work_item_types(project) if not work_item_types: return f"No work item types found in project {project}." headers = ["Name", "Reference Name", "Description"] # Use list comprehension for more concise table building rows = [ f"| {wit.name} | {getattr(wit, 'reference_name', 'N/A')} | " f"{getattr(wit, 'description', 'N/A')} |" for wit in work_item_types ] return (f"# Work Item Types in Project: {project}\n\n" + _format_table(headers, rows))