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