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.

100 lines (99 loc) 3.64 kB
import { Neo4jProject, PaginatedResult, ProjectDependencyType, // Import the new enum ProjectFilterOptions } from './types.js'; /** * Service for managing Project entities in Neo4j */ export declare class ProjectService { /** * Create a new project * @param project Project data * @returns The created project */ static createProject(project: Omit<Neo4jProject, 'id' | 'createdAt' | 'updatedAt'> & { id?: string; }): Promise<Neo4jProject>; /** * Get a project by ID * @param id Project ID * @returns The project or null if not found */ static getProjectById(id: string): Promise<Neo4jProject | null>; /** * Check if all dependencies of a project are completed * @param projectId Project ID to check dependencies for * @returns True if all dependencies are completed, false otherwise */ static areAllDependenciesCompleted(projectId: string): Promise<boolean>; /** * Update a project * @param id Project ID * @param updates Project updates * @returns The updated project */ static updateProject(id: string, updates: Partial<Omit<Neo4jProject, 'id' | 'createdAt' | 'updatedAt'>>): Promise<Neo4jProject>; /** * Delete a project and all its associated tasks and knowledge items * @param id Project ID * @returns True if deleted, false if not found */ static deleteProject(id: string): Promise<boolean>; /** * Get all projects with optional filtering and pagination * @param options Filter and pagination options * @returns Paginated list of projects */ static getProjects(options?: ProjectFilterOptions): Promise<PaginatedResult<Neo4jProject>>; /** * Add a dependency relationship between projects * @param sourceProjectId ID of the dependent project (source) * @param targetProjectId ID of the dependency project (target) * @param type Type of dependency relationship - TODO: Use enum/constant * @param description Description of the dependency * @returns The IDs of the two projects and the relationship type */ static addProjectDependency(sourceProjectId: string, targetProjectId: string, type: ProjectDependencyType, // Use the enum description: string): Promise<{ id: string; sourceProjectId: string; targetProjectId: string; type: string; description: string; }>; /** * Remove a dependency relationship between projects * @param dependencyId The ID of the dependency relationship to remove * @returns True if removed, false if not found */ static removeProjectDependency(dependencyId: string): Promise<boolean>; /** * Get all dependencies for a project (both dependencies and dependents) * @param projectId Project ID * @returns Object containing dependencies and dependents */ static getProjectDependencies(projectId: string): Promise<{ dependencies: { id: string; sourceProjectId: string; targetProjectId: string; type: string; description: string; targetProject: { id: string; name: string; status: string; }; }[]; dependents: { id: string; sourceProjectId: string; targetProjectId: string; type: string; description: string; sourceProject: { id: string; name: string; status: string; }; }[]; }>; }