import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
import { AzureDevOpsConnection } from '../../api/connection.js';
import { AzureDevOpsConfig } from '../../config/environment.js';
export async function listProjects(args: Record<string, unknown> | undefined, config: AzureDevOpsConfig) {
AzureDevOpsConnection.initialize(config);
const connection = AzureDevOpsConnection.getInstance();
const coreApi = await connection.getCoreApi();
try {
const projects = await coreApi.getProjects();
return {
content: [
{
type: 'text',
text: JSON.stringify(projects, null, 2),
},
],
};
} catch (error: unknown) {
if (error instanceof McpError) throw error;
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
throw new McpError(
ErrorCode.InternalError,
`Failed to list projects: ${errorMessage}`
);
}
}