UNPKG

atlas-mcp-server

Version:

ATLAS (Adaptive Task & Logic Automation System): An MCP server enabling LLM agents to manage projects, tasks, and knowledge via a Neo4j-backed, three-tier architecture. Facilitates complex workflow automation and project management through LLM Agents.

72 lines (71 loc) 3.24 kB
import { createToolResponse } from "../../../types/mcp.js"; // Import the new response creator /** * Formatter for structured knowledge query responses */ export class KnowledgeListFormatter { format(data) { const { knowledge, total, page, limit, totalPages } = data; // Generate result summary section const summary = `Knowledge Repository\n\n` + `Total Items: ${total}\n` + `Page: ${page} of ${totalPages}\n` + `Displaying: ${Math.min(limit, knowledge.length)} item(s) per page\n`; if (knowledge.length === 0) { return `${summary}\n\nNo knowledge items matched the specified criteria`; } // Format each knowledge item const knowledgeSections = knowledge .map((item, index) => { const { id, projectId, projectName, domain, tags, text, citations, createdAt, updatedAt, } = item; let knowledgeSection = `${index + 1}. ${domain || "Uncategorized"} Knowledge\n\n` + `ID: ${id}\n` + `Project: ${projectName || projectId}\n` + `Domain: ${domain}\n`; // Add tags if available if (tags && tags.length > 0) { knowledgeSection += `Tags: ${tags.join(", ")}\n`; } // Format dates const createdDate = createdAt ? new Date(createdAt).toLocaleString() : "Unknown Date"; const updatedDate = updatedAt ? new Date(updatedAt).toLocaleString() : "Unknown Date"; knowledgeSection += `Created: ${createdDate}\n` + `Updated: ${updatedDate}\n\n`; // Add knowledge content knowledgeSection += `Content:\n${text || "No content available"}\n`; // Add citations if available if (citations && citations.length > 0) { knowledgeSection += `\nCitations:\n`; citations.forEach((citation, citIndex) => { knowledgeSection += `${citIndex + 1}. ${citation}\n`; }); } return knowledgeSection; }) .join("\n\n----------\n\n"); // Append pagination metadata for multi-page results let paginationInfo = ""; if (totalPages > 1) { paginationInfo = `\n\nPagination Controls\n\n` + `Viewing page ${page} of ${totalPages}.\n` + `${page < totalPages ? "Use 'page' parameter to navigate to additional results." : ""}`; } return `${summary}\n\n${knowledgeSections}${paginationInfo}`; } } /** * Create a human-readable formatted response for the atlas_knowledge_list tool * * @param data The structured knowledge query response data * @param isError Whether this response represents an error condition * @returns Formatted MCP tool response with appropriate structure */ export function formatKnowledgeListResponse(data, isError = false) { const formatter = new KnowledgeListFormatter(); const formattedText = formatter.format(data); // Assuming data is KnowledgeListResponse return createToolResponse(formattedText, isError); }