@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
TypeScript
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;
}