UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

75 lines 2.86 kB
/** * Get Server Context Tool * * MCP tool that generates and returns the current server context, * and optionally writes it to .mcp-server-context.md for @ referencing. */ import { ServerContextGenerator } from '../utils/server-context-generator.js'; /** * Generate and return current server context */ export async function getServerContext(args, kgManager, memoryManager, conversationManager) { const { writeToFile = true, outputPath, includeDetailed = true, maxRecentItems = 5 } = args; const generator = new ServerContextGenerator(); try { // Generate context const contextContent = await generator.generateContext(kgManager, memoryManager, conversationManager, { includeDetailed, maxRecentItems }); // Optionally write to file if (writeToFile) { await generator.writeContextFile(kgManager, memoryManager, conversationManager, outputPath); } return { content: [ { type: 'text', text: writeToFile ? `✅ Server context updated and written to \`.mcp-server-context.md\`\n\nYou can now \`@.mcp-server-context.md\` to reference this context in conversations.\n\n---\n\n${contextContent}` : contextContent, }, ], }; } catch (error) { return { content: [ { type: 'text', text: `❌ Failed to generate server context: ${error instanceof Error ? error.message : String(error)}`, }, ], isError: true, }; } } /** * Tool metadata for MCP registration */ export const getServerContextMetadata = { name: 'get_server_context', description: "Generate a comprehensive context file showing the server's current state, memory, and capabilities. Creates .mcp-server-context.md that can be @ referenced in conversations to give LLMs instant awareness of the server.", inputSchema: { type: 'object', properties: { writeToFile: { type: 'boolean', description: 'Whether to write the context to .mcp-server-context.md file', default: true, }, outputPath: { type: 'string', description: 'Custom output path for the context file', }, includeDetailed: { type: 'boolean', description: 'Include detailed information', default: true, }, maxRecentItems: { type: 'number', description: 'Maximum number of recent items to show', default: 5, }, }, }, }; //# sourceMappingURL=get-server-context-tool.js.map