import { NextResponse } from 'next/server'; import { getSession } from '@/lib/auth'; import { createMCPClient } from '@/lib/control-center/mcp-client'; import type { ToolDefinition } from '@/types/control-center'; interface ToolsResponse { tools: ToolDefinition[]; toolCount: number; mcpStatus: { connected: boolean; serverUrl: string; }; } export async function GET() { // Check authentication const session = await getSession(); if (!session) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } try { const mcpClient = await createMCPClient(); if (!mcpClient) { return NextResponse.json({ tools: [], toolCount: 0, mcpStatus: { connected: false, serverUrl: 'Not configured' } }); } const isHealthy = await mcpClient.healthCheck(); if (!isHealthy) { return NextResponse.json({ tools: [], toolCount: 0, mcpStatus: { connected: false, serverUrl: 'Server not responding' } }); } const tools = await mcpClient.getTools(); const response: ToolsResponse = { tools, toolCount: tools.length, mcpStatus: { connected: true, serverUrl: 'http://localhost:8000' } }; return NextResponse.json(response); } catch (error) { console.error('Failed to fetch tools:', error); return NextResponse.json( { error: 'Failed to fetch tools', details: error instanceof Error ? error.message : 'Unknown' }, { status: 500 } ); } }