Skip to main content
Glama
kelvis-santos

MCP Server

codeNavigator.ts2.02 kB
import { loadFile } from "../utils/fileLoader.js"; import { buildContext } from "../utils/contextBuilder.js"; import { callModel } from "../utils/modelApi.js"; import { CODE_NAVIGATOR_TEMPLATE } from "../utils/promptTemplates.js"; /** * MCP Tool: codeNavigator * Navega e responde perguntas sobre um arquivo de código. * Agora com logs, tratamento de erro e retorno detalhado para fins de apresentação. */ export async function run(params: { target_file: string; query: string; template?: string }) { console.log("[codeNavigator] Iniciando navegação de código..."); console.log("[codeNavigator] Parâmetros recebidos:", params); try { // Carrega o conteúdo do arquivo alvo const codeContent = await loadFile(params.target_file); console.log("[codeNavigator] Conteúdo do arquivo carregado (primeiros 200 chars):", codeContent.slice(0, 200)); // Gera o contexto a partir do código const context = buildContext(codeContent); console.log("[codeNavigator] Contexto gerado (primeiros 200 chars):", context.slice(0, 200)); // Usa template customizado se fornecido, senão o padrão const template = params.template || CODE_NAVIGATOR_TEMPLATE; const prompt = template .replace("{code}", context) .replace("{query}", params.query); console.log("[codeNavigator] Prompt final (primeiros 200 chars):", prompt.slice(0, 200)); // Chama o modelo const response = await callModel(prompt); console.log("[codeNavigator] Resposta do modelo:", response); // Retorna informações detalhadas para apresentação return { navigation: response, context, prompt, params }; } catch (error: any) { console.error("[codeNavigator] Erro ao navegar no código:", error); return { error: true, message: error?.message || String(error), params }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kelvis-santos/MCP-vscode-examples'

If you have feedback or need assistance with the MCP directory API, please join our Discord server