Frontmatter
| id | 7536 |
| title | Epic: Integrate Neo.mjs Core into MCP Servers |
| state | Closed |
| labels | epicai |
| assignees | tobiu |
| createdAt | Oct 18, 2025, 12:08 PM |
| updatedAt | Oct 20, 2025, 1:25 AM |
| githubUrl | https://github.com/neomjs/neo/issues/7536 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | 7537 PoC: Refactor ChromaManager to a Neo.mjs Class 7538 Convert DatabaseLifecycleService to a Neo.mjs Class 7539 Improve isDbRunning() in DatabaseLifecycleService 7540 Convert dbService to DatabaseService Neo.mjs Class 7542 Convert healthService to HealthService Neo.mjs Class 7543 Convert memoryService to MemoryService Neo.mjs Class 7544 Convert sessionService to SessionService Neo.mjs Class 7545 Convert summaryService to SummaryService Neo.mjs Class 7546 Convert textEmbeddingService to TextEmbeddingService Neo.mjs Class 7547 Enhance DatabaseLifecycleService with Eventing 7549 Create ChromaManager and Adjust KB Server Entry Point 7550 Convert databaseLifecycleService to DatabaseLifecycleService Neo.mjs Class 7551 Convert databaseService to DatabaseService Neo.mjs Class 7552 Convert documentService to DocumentService Neo.mjs Class 7553 Refactor HealthService to Match Superior Memory Core Pattern 7554 Convert queryService to QueryService Neo.mjs Class 7555 Centralize ChromaDB Client Warning Suppression in ChromaManager 7556 Convert GitHub Workflow healthService to HealthService Neo.mjs Class 7557 Convert issueService to IssueService Neo.mjs Class 7558 Convert labelService to LabelService Neo.mjs Class 7559 Convert pullRequestService to PullRequestService Neo.mjs Class 7560 Centralize GitHub Workflow Configuration 7561 Refactor AI Config for Server-Specific Namespacing 7562 Refactor MCP Service ClassNames to Use Full Server Names 7563 Standardize ChromaDB Collection Naming Convention |
| subIssuesCompleted | 25 |
| subIssuesTotal | 25 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Oct 20, 2025, 1:25 AM |
Epic: Integrate Neo.mjs Core into MCP Servers
tobiu assigned to @tobiu on Oct 18, 2025, 12:08 PM
tobiu added sub-issue #7537 on Oct 18, 2025, 12:14 PM
tobiu added sub-issue #7538 on Oct 18, 2025, 1:28 PM
tobiu added sub-issue #7539 on Oct 18, 2025, 1:51 PM
tobiu added sub-issue #7540 on Oct 18, 2025, 2:03 PM
tobiu added sub-issue #7542 on Oct 18, 2025, 2:49 PM
tobiu added sub-issue #7543 on Oct 18, 2025, 3:06 PM
tobiu added sub-issue #7544 on Oct 18, 2025, 3:23 PM
tobiu added sub-issue #7545 on Oct 18, 2025, 3:44 PM
tobiu added sub-issue #7546 on Oct 18, 2025, 3:53 PM
tobiu added sub-issue #7547 on Oct 18, 2025, 4:42 PM
tobiu added sub-issue #7549 on Oct 19, 2025, 11:07 PM
tobiu added sub-issue #7550 on Oct 19, 2025, 11:17 PM
tobiu added sub-issue #7551 on Oct 19, 2025, 11:19 PM
tobiu added sub-issue #7552 on Oct 19, 2025, 11:48 PM
tobiu added sub-issue #7553 on Oct 19, 2025, 11:54 PM
tobiu added sub-issue #7554 on Oct 20, 2025, 12:08 AM
tobiu added sub-issue #7555 on Oct 20, 2025, 12:17 AM
tobiu added sub-issue #7556 on Oct 20, 2025, 12:23 AM
tobiu added sub-issue #7557 on Oct 20, 2025, 12:35 AM
tobiu added sub-issue #7558 on Oct 20, 2025, 12:43 AM
tobiu added sub-issue #7559 on Oct 20, 2025, 12:57 AM
tobiu added sub-issue #7560 on Oct 20, 2025, 1:04 AM
tobiu added sub-issue #7561 on Oct 20, 2025, 1:09 AM
tobiu added sub-issue #7562 on Oct 20, 2025, 1:18 AM
tobiu added sub-issue #7563 on Oct 20, 2025, 1:24 AM

tobiu
Oct 20, 2025, 1:25 AM
resolved.
tobiu closed this issue on Oct 20, 2025, 1:25 AM
Overview
The current MCP (Model Context Protocol) servers are built with plain JavaScript modules, exporting functions that act as service handlers. While functional, this approach misses an opportunity to leverage the power and structure of the Neo.mjs core itself.
This epic outlines the plan to refactor the MCP server architecture to use the Neo.mjs class system (
Neo.core.Base). By converting our services into singleton classes, we can take advantage of the framework's config system, lifecycle methods, mixins, and overall consistency. This will not only improve the maintainability and scalability of our servers but also serve as a powerful demonstration of Neo's capabilities on the backend.Key Requirements
healthService,databaseLifecycleService,chromaManager) into singleton classes extendingNeo.core.Base.toolService.mjsto seamlessly integrate with class-based services.Design Rationale & Strategy
ChromaManageris selected as the ideal candidate for the PoC because it has state (e.g.,client,connected), a clear lifecycle (connect/disconnect), and could benefit from reactive configs.toolService.mjswill be enhanced to support both the old function-based and the new class-based services during the transition period, if necessary.Phase 1: Proof of Concept with ChromaManager
Status: To Do
The goal of this phase is to refactor
ai/mcp/server/memory-core/services/chromaManager.mjsto use the Neo class system and prove the viability of this architecture.Refactor
ChromaManager:chromaManager.mjsfrom an object literal exporting functions into aChromaManagerclass extendingNeo.core.Base.client) into the config system (e.g.,client_).getMemoryCollection,getSummaryCollection) into class methods.onConstructedfor initialization logic (e.g., creating the ChromaDB client).Integration:
memory-coreserver's entry point (mcp-stdio.mjs).chromaManagerto get the singleton instance and call its methods.Evaluation:
ChromaManager. Does the class-based approach feel natural and beneficial? Or does it feel like unnecessary overhead?Phase 2: Migrate All Services
Status: To Do
This phase involves refactoring all remaining services in all three MCP servers (
knowledge-base,memory-core,github-workflow).Refactor Services:
ChromaManagerPoC.Documentation: