get_project
Retrieve specific details of an Azure DevOps project by using its ID or name. This tool simplifies project information access for streamlined management and oversight.
Instructions
Get details of a specific Azure DevOps project
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ID (GUID) of the project | |
| name | No | Name of the project |
Input Schema (JSON Schema)
{
"properties": {
"id": {
"description": "ID (GUID) of the project",
"type": "string"
},
"name": {
"description": "Name of the project",
"type": "string"
}
},
"required": [],
"type": "object"
}
Implementation Reference
- src/tools/projects.ts:44-88 (handler)The main handler function for the 'get_project' tool. It parses input parameters using getProjectSchema, fetches the project details via coreClient.getProject using either ID or name, and returns formatted JSON content or an error response.export async function getProject(rawParams: any) { // Parse arguments const params = getProjectSchema.parse({ id: rawParams.id, name: rawParams.name, }); console.error("[API] Getting project details:", params); try { // Get the Core API client const coreClient = await getCoreClient(); // Check if we have an identifier const projectIdentifier = params.id || params.name; if (!projectIdentifier) { throw new Error("Either project ID or name must be provided"); } // Call the API to get project details const project = await coreClient.getProject(projectIdentifier, true); return { content: [ { type: "text", text: JSON.stringify(project, null, 2), }, ], }; } catch (error) { logError("Error getting project details", error); return { content: [ { type: "text", text: `Error getting project details: ${ error instanceof Error ? error.message : String(error) }`, }, ], isError: true, }; } }
- src/schemas/projects.ts:12-22 (schema)Zod schema definition for 'get_project' input validation (requires either project ID or name) and the inferred TypeScript type GetProjectParams.*/ export const getProjectSchema = z .object({ id: z.string().optional(), name: z.string().optional(), }) .refine((data) => data.id || data.name, { message: "Either id or name must be provided", }); export type GetProjectParams = z.infer<typeof getProjectSchema>;
- src/tools/projects.ts:104-121 (registration)Tool registration metadata within the projectTools array, defining name, description, and input schema for 'get_project'.{ name: "get_project", description: "Get details of a specific Azure DevOps project", inputSchema: { type: "object", properties: { id: { type: "string", description: "ID (GUID) of the project", }, name: { type: "string", description: "Name of the project", }, }, required: [], }, },
- src/index.ts:99-100 (registration)Dispatcher in the main CallToolRequest handler that routes 'get_project' calls to the getProject function.case "get_project": return await getProject(request.params.arguments || {});
- src/index.ts:60-60 (registration)Inclusion of projectTools (containing 'get_project') in the ListToolsRequest response....projectTools,