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.

188 lines (187 loc) 4.38 kB
/** * Common type definitions for the Neo4j service */ /** * Neo4j entity base interface * Common properties for all Neo4j entities */ export interface Neo4jEntity { id: string; createdAt: string; updatedAt: string; } /** * Project entity in Neo4j */ export interface Neo4jProject extends Neo4jEntity { name: string; description: string; status: string; urls?: Array<{ title: string; url: string; }>; completionRequirements: string; outputFormat: string; taskType: string; } /** * Task entity in Neo4j */ export interface Neo4jTask extends Neo4jEntity { projectId: string; title: string; description: string; priority: string; status: string; urls?: Array<{ title: string; url: string; }>; tags?: string[]; completionRequirements: string; outputFormat: string; taskType: string; } /** * Knowledge entity in Neo4j */ export interface Neo4jKnowledge extends Neo4jEntity { projectId: string; text: string; tags?: string[]; } /** * User entity in Neo4j */ export interface Neo4jUser extends Neo4jEntity { username: string; displayName: string; email?: string; } /** * TaskType entity in Neo4j */ export interface Neo4jTaskType { name: string; description?: string; } /** * Domain entity in Neo4j */ export interface Neo4jDomain { name: string; description?: string; } /** * Citation entity in Neo4j */ export interface Neo4jCitation extends Neo4jEntity { source: string; title?: string; author?: string; date?: string; } /** * Relationship types used in the Neo4j database */ export declare enum RelationshipTypes { CONTAINS_TASK = "CONTAINS_TASK", CONTAINS_KNOWLEDGE = "CONTAINS_KNOWLEDGE", DEPENDS_ON = "DEPENDS_ON", ASSIGNED_TO = "ASSIGNED_TO", CITES = "CITES", RELATED_TO = "RELATED_TO", HAS_TYPE = "HAS_TYPE", BELONGS_TO_DOMAIN = "BELONGS_TO_DOMAIN", BELONGS_TO_PROJECT = "BELONGS_TO_PROJECT" } /** * Node labels used in the Neo4j database */ export declare enum NodeLabels { Project = "Project", Task = "Task", Knowledge = "Knowledge", User = "User", TaskType = "TaskType", Domain = "Domain", Citation = "Citation" } /** * Pagination options for querying Neo4j */ export interface PaginationOptions { page?: number; limit?: number; } /** * Result with pagination metadata */ export interface PaginatedResult<T> { data: T[]; total: number; page: number; limit: number; totalPages: number; } /** * Filter options for Project queries */ export interface ProjectFilterOptions extends PaginationOptions { status?: "active" | "pending" | "in-progress" | "completed" | "archived" | ("active" | "pending" | "in-progress" | "completed" | "archived")[]; taskType?: string; searchTerm?: string; } /** * Filter options for Task queries */ export interface TaskFilterOptions extends PaginationOptions { projectId: string; status?: "backlog" | "todo" | "in-progress" | "completed" | ("backlog" | "todo" | "in-progress" | "completed")[]; priority?: "low" | "medium" | "high" | "critical" | ("low" | "medium" | "high" | "critical")[]; assignedTo?: string; tags?: string[]; taskType?: string; sortBy?: "priority" | "createdAt" | "status"; sortDirection?: "asc" | "desc"; } /** * Filter options for Knowledge queries */ export interface KnowledgeFilterOptions extends PaginationOptions { projectId: string; tags?: string[]; domain?: string; search?: string; } /** * Specific types for project dependencies stored within the DEPENDS_ON relationship properties. */ export declare enum ProjectDependencyType { REQUIRES = "requires", EXTENDS = "extends", IMPLEMENTS = "implements", REFERENCES = "references" } /** * Project dependency relationship type */ export interface ProjectDependency { sourceProjectId: string; targetProjectId: string; type: ProjectDependencyType; description: string; } /** * Search options for unified search */ export interface SearchOptions extends PaginationOptions { property?: string; value: string; entityTypes?: ("project" | "task" | "knowledge")[]; caseInsensitive?: boolean; fuzzy?: boolean; taskType?: string; assignedToUserId?: string; }