Second Opinion MCP Server

import axios from 'axios'; import { PERPLEXITY_API_KEY, API_ENDPOINTS } from './config.js'; interface PerplexityMessage { role: 'system' | 'user' | 'assistant'; content: string; } interface PerplexityResponse { choices: Array<{ message: { content: string; }; }>; } export async function getPerplexityInsights( error: string, language: string ): Promise<string> { try { const messages: PerplexityMessage[] = [ { role: 'system', content: 'You are an expert software developer. Analyze the given error and programming language context to provide specific insights about common causes and solutions.', }, { role: 'user', content: `Language: ${language}\nError: ${error}\n\nWhat are the most common causes of this error and their solutions?`, }, ]; const response = await axios.post<PerplexityResponse>( API_ENDPOINTS.perplexity, { model: 'mixtral-8x7b-instruct', messages, }, { headers: { 'Authorization': `Bearer ${PERPLEXITY_API_KEY}`, 'Content-Type': 'application/json', }, } ); return response.data.choices[0]?.message.content ?? ''; } catch (error) { if (axios.isAxiosError(error)) { console.error('Perplexity API error:', { status: error.response?.status, statusText: error.response?.statusText, data: error.response?.data, message: error.message }); } else { console.error('Error getting Perplexity insights:', error); } return ''; } }