UNPKG

@mseep/atlas-mcp-server

Version:

A Model Context Protocol (MCP) server for ATLAS, a Neo4j-powered task management system for LLM Agents - implementing a three-tier architecture (Projects, Tasks, Knowledge) to manage complex workflows.

85 lines (84 loc) 3.44 kB
import { KnowledgeFilterOptions, Neo4jKnowledge, PaginatedResult } from './types.js'; /** * Service for managing Knowledge entities in Neo4j */ export declare class KnowledgeService { /** * Add a new knowledge item * @param knowledge Input data, potentially including domain and citations for relationship creation * @returns The created knowledge item (without domain/citations properties) */ static addKnowledge(knowledge: Omit<Neo4jKnowledge, 'id' | 'createdAt' | 'updatedAt'> & { id?: string; domain?: string; citations?: string[]; }): Promise<Neo4jKnowledge>; /** * Link two knowledge items with a specified relationship type. * @param sourceId ID of the source knowledge item * @param targetId ID of the target knowledge item * @param relationshipType The type of relationship to create (e.g., 'RELATED_TO', 'IS_SUBTOPIC_OF') - Validation needed * @returns True if the link was created successfully, false otherwise */ static linkKnowledgeToKnowledge(sourceId: string, targetId: string, relationshipType: string): Promise<boolean>; /** * Get a knowledge item by ID, including its domain and citations via relationships. * @param id Knowledge ID * @returns The knowledge item with domain and citations added, or null if not found. */ static getKnowledgeById(id: string): Promise<(Neo4jKnowledge & { domain: string | null; citations: string[]; }) | null>; /** * Update a knowledge item, including domain and citation relationships. * @param id Knowledge ID * @param updates Updates including optional domain and citations * @returns The updated knowledge item (without domain/citations properties) */ static updateKnowledge(id: string, updates: Partial<Omit<Neo4jKnowledge, 'id' | 'projectId' | 'createdAt' | 'updatedAt'>> & { domain?: string; citations?: string[]; }): Promise<Neo4jKnowledge>; /** * Delete a knowledge item * @param id Knowledge ID * @returns True if deleted, false if not found */ static deleteKnowledge(id: string): Promise<boolean>; /** * Get knowledge items for a project with optional filtering and server-side pagination. * Returns domain and citations via relationships. * @param options Filter and pagination options * @returns Paginated list of knowledge items including domain and citations */ static getKnowledge(options: KnowledgeFilterOptions): Promise<PaginatedResult<Neo4jKnowledge & { domain: string | null; citations: string[]; }>>; /** * Get all available domains with item counts * @returns Array of domains with counts */ static getDomains(): Promise<Array<{ name: string; count: number; }>>; /** * Get all unique tags used across knowledge items with counts * @param projectId Optional project ID to filter tags * @returns Array of tags with counts */ static getTags(projectId?: string): Promise<Array<{ tag: string; count: number; }>>; /** * Add CITES relationships from a knowledge item to new Citation nodes. * @param knowledgeId Knowledge ID * @param citations Array of citation source strings * @returns The IDs of the created Citation nodes * @private */ private static addCitations; }