@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.
101 lines (100 loc) • 2.71 kB
JavaScript
import { z } from "zod";
// Atlas Platform Enums
export const ProjectStatus = {
ACTIVE: "active",
PENDING: "pending",
IN_PROGRESS: "in-progress",
COMPLETED: "completed",
ARCHIVED: "archived"
};
export const TaskStatus = {
BACKLOG: "backlog",
TODO: "todo",
IN_PROGRESS: "in-progress",
COMPLETED: "completed"
};
export const PriorityLevel = {
LOW: "low",
MEDIUM: "medium",
HIGH: "high",
CRITICAL: "critical"
};
export const TaskType = {
RESEARCH: "research",
GENERATION: "generation",
ANALYSIS: "analysis",
INTEGRATION: "integration"
};
export const KnowledgeDomain = {
TECHNICAL: "technical",
BUSINESS: "business",
SCIENTIFIC: "scientific"
};
// Zod enum creators - these functions create Zod enums from our constant objects
export const createProjectStatusEnum = () => {
return z.enum(Object.values(ProjectStatus));
};
export const createTaskStatusEnum = () => {
return z.enum(Object.values(TaskStatus));
};
export const createPriorityLevelEnum = () => {
return z.enum(Object.values(PriorityLevel));
};
export const createTaskTypeEnum = () => {
return z.enum(Object.values(TaskType));
};
export const createKnowledgeDomainEnum = () => {
return z.enum(Object.values(KnowledgeDomain));
};
export var ResponseFormat;
(function (ResponseFormat) {
ResponseFormat["FORMATTED"] = "formatted";
ResponseFormat["JSON"] = "json";
})(ResponseFormat || (ResponseFormat = {}));
export function createResponseFormatEnum() {
return z.nativeEnum(ResponseFormat);
}
// Project-specific schemas
export const ProjectInputSchema = {
name: z.string().min(1),
description: z.string().optional(),
status: createProjectStatusEnum().default(ProjectStatus.ACTIVE)
};
export const UpdateProjectInputSchema = {
id: z.string(),
updates: z.object(ProjectInputSchema).partial()
};
export const ProjectIdInputSchema = {
projectId: z.string()
};
// Helper functions
export const createToolResponse = (text, isError) => ({
content: [{
type: "text",
text,
_type: "text"
}],
isError,
_type: "tool_response"
});
export const createResourceResponse = (uri, text, mimeType) => ({
contents: [{
uri,
text,
mimeType,
_type: "resource_content"
}],
_type: "resource_response"
});
export const createPromptResponse = (text, role = "assistant") => ({
messages: [{
role,
content: {
type: "text",
text,
_type: "prompt_content"
},
_type: "prompt_message"
}],
_type: "prompt_response"
});