Skip to main content
Glama
giauphan

CodeAtlas AI MCP Server

by giauphan


πŸ“– Table of Contents


Related MCP server: Code Graph Knowledge System

✨ Features

πŸ—οΈ Knowledge Graph Reasoning

  • Architectural Smell Detection β€” Automatically detect circular dependencies, God objects, and dead code using Oracle 26ai SQL Property Graph queries (GRAPH_TABLE match recursion).

  • Tri-Layer Memory β€” Episodic (business rules & change logs), Semantic (vector embeddings via NVIDIA NIM), and Relational (property graph) all stored natively in Oracle 26ai.

  • AI Vector Search β€” Semantic code search using 4096-dimensional embeddings and VECTOR_DISTANCE cosine similarity.

πŸ›‘οΈ Security Scanner

  • Hardcoded Secrets Detection β€” Identifies potential API keys, tokens, passwords, and credentials in variable declarations with intelligent false-positive suppression.

  • Unsafe Function Detection β€” Flags dangerous calls (eval, exec, system, child_process, etc.) at CRITICAL severity.

  • SQL Injection Risk Analysis β€” Detects dynamic query construction patterns with database context verification.

  • Enterprise Security Scoring β€” Cross-project vulnerability scoring with risk-level classification (LOW / HIGH / CRITICAL).

πŸ” AST Code Analysis

  • Multi-Language Support β€” Analyzes JavaScript/TypeScript, Python, PHP, and more via AST parsing.

  • Entity Extraction β€” Discovers modules, classes, functions, variables, and their relationships (imports, calls, containment, inheritance).

  • Smart Filtering β€” Automatically excludes node_modules, venv, .venv, and site-packages for clean, actionable results.

  • Fuzzy Search β€” Search entities by name with partial matching across entire projects.

🧠 AI Semantic Memory

  • Dreaming Memory System β€” Persist learned patterns, mistakes, user preferences, and project knowledge as "dreams" with importance scoring (1–10).

  • NVIDIA NIM Embeddings β€” Enterprise-grade vector embeddings via nvidia/nv-embed-v1 for semantic code understanding.

  • Oracle 26ai Native Vectors β€” Native VECTOR(4096, FLOAT32) data type for high-performance similarity search.

  • Auto-Synced Documentation β€” Automatically sync business rules and change logs to the Oracle Knowledge Graph.

πŸ“Š Interactive Dashboard

  • Force-Directed Knowledge Graph β€” Interactive SVG canvas with physics simulation, zoom/pan, node dragging, and glow effects.

  • Real-Time Analysis β€” View project statistics, entity counts, and dependency metrics.

  • Glassmorphic UI β€” Premium design system with frosted glass panels, neon cyan accents, and dark space theme.

  • Full-Screen Mode β€” Immersive codebase visualization with native HTML5 Fullscreen API.

πŸ”Œ MCP Protocol Integration

  • Dual Transport β€” Supports both stdio (local IDE integration) and SSE (remote server deployment) transports.

  • Dynamic Session Isolation β€” Per-connection MCP server instances for zero-contention concurrent access.

  • Works With β€” Claude Desktop/Code, Cursor AI, VS Code (Cline, Continue), Windsurf, and any MCP-compatible client.

🌐 REST API

  • Full HTTP API β€” Express-based REST endpoints for project management, analysis, settings, dreams, and memory.

  • Rate Limiting β€” Built-in per-tenant rate limiter (60 req/min) to protect against abuse.

  • CORS Support β€” Configurable cross-origin policies for dashboard and remote access.

🏠 Multi-Tenant Support

  • Oracle VPD/RLS β€” Row-level security using Oracle Virtual Private Database for complete tenant data isolation.

  • Firestore Isolation β€” Tenant-scoped telemetry documents (${tenantId}_${projectName}) in Firebase.

  • Sandboxed Workspaces β€” Each tenant operates within their own directory sandbox (tenants/{tenantId}/).


πŸ—οΈ Architecture

CodeAtlas AI follows a Clean Architecture pattern with clear separation of concerns:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   MCP Clients                     β”‚
β”‚  Claude  Cursor  VS Code  Windsurf  Custom CLI   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Presentation Layer                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   MCP Server     β”‚  β”‚  Express HTTP API    β”‚  β”‚
β”‚  β”‚  (stdio / SSE)   β”‚  β”‚  (REST Endpoints)    β”‚  β”‚
β”‚  β”‚  mcpServer.ts    β”‚  β”‚  httpServer.ts       β”‚  β”‚
β”‚  β”‚  mcpTools.ts     β”‚  β”‚  dreamingRoutes.ts   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               Service Layer                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Project   β”‚ β”‚ Memory   β”‚ β”‚  Security      β”‚  β”‚
β”‚  β”‚  Service   β”‚ β”‚ Service  β”‚ β”‚  Scanner       β”‚  β”‚
β”‚  β”‚            β”‚ β”‚          β”‚ β”‚                β”‚  β”‚
β”‚  β”‚ project    β”‚ β”‚ Oracle   β”‚ β”‚ Security       β”‚  β”‚
β”‚  β”‚ Service.ts β”‚ β”‚ Memory   β”‚ β”‚ Scanner.ts     β”‚  β”‚
β”‚  β”‚            β”‚ β”‚ Service  β”‚ β”‚                β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ .ts      β”‚ β”‚                β”‚  β”‚
β”‚                  β”‚          β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”Œβ”€β”€β”€β”€β”€β”€β” β”‚                     β”‚
β”‚  β”‚ Dreaming   β”‚ β”‚ β”‚Embed β”‚ β”‚                     β”‚
β”‚  β”‚ Service    β”‚ β”‚ β”‚-ding β”‚ β”‚                     β”‚
β”‚  β”‚            β”‚ β”‚ β”‚Serviceβ”‚β”‚                     β”‚
β”‚  β”‚ dreaming  β”‚ β”‚ β”‚.ts   β”‚β”‚                     β”‚
β”‚  β”‚ Service.ts β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”˜ β”‚                     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Infrastructure Layer                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Oracle   β”‚ β”‚ Firebase β”‚ β”‚ File System      β”‚  β”‚
β”‚  β”‚ 26ai DB  β”‚ β”‚ Admin    β”‚ β”‚ (codeatlas/       β”‚  β”‚
β”‚  β”‚          β”‚ β”‚          β”‚ β”‚  analysis.json)   β”‚  β”‚
β”‚  β”‚ .connect β”‚ β”‚ .auth    β”‚ β”‚                  β”‚  β”‚
β”‚  β”‚ .memory  β”‚ β”‚ .firestoreβ”‚ β”‚ projectService   β”‚  β”‚
β”‚  β”‚ .schema  β”‚ β”‚          β”‚ β”‚ .ts              β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow

1. User opens IDE (Claude / Cursor / VS Code)
2. IDE connects to CodeAtlas via MCP (stdio or SSE)
3. MCP tools query local .codeatlas/analysis.json AST data
4. sync_system_memory pushes embeddings & relationships to Oracle 26ai
5. Dashboard fetches analysis results via REST API
6. Security Scanner runs against analysis data for vulnerability detection
7. Knowledge Graph queries (Oracle Property Graph) identify architectural smells

πŸš€ Quick Start

1. Prerequisites

  • Node.js: v20.0.0 or higher

    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt-get install -y nodejs
  • npm (comes with Node.js) or pnpm (recommended)

    npm install -g pnpm
  • Oracle Instant Client β€” Required for Thick Mode connectivity to Oracle 26ai. Download from Oracle Instant Client Downloads and extract to /opt/oracle/instantclient.

  • Firebase Project β€” For API key authentication and telemetry storage.

  • NVIDIA API Key β€” For embedding generation (sign up at NVIDIA AI Foundation).

2. Installation

# Clone the repository
git clone https://github.com/giauphan/codeatlas-platform.git
cd codeatlas-platform

# Install dependencies
pnpm install

# Build the TypeScript project
pnpm run build

3. Environment Configuration

Create a .env file in the project root:

# Server Configuration
PORT=8080
NODE_ENV=production
LOG_LEVEL=info

# Authentication
CODEATLAS_API_KEY=your_admin_secret_key
GOOGLE_APPLICATION_CREDENTIALS=/path/to/firebase-service-account.json

# Oracle 26ai Database (Thick Mode)
ORACLE_USER=admin
ORACLE_PASSWORD=your_password
ORACLE_CONN_STRING=your_db_connection_string
ORACLE_LIB_DIR=/opt/oracle/instantclient
ORACLE_WALLET_DIR=/opt/oracle/wallet   # For mTLS connections

# NVIDIA Embeddings
NVIDIA_API_KEY=nvapi-your-key-here

# Multi-Tenant (optional)
CODEATLAS_MULTI_TENANT=false
CODEATLAS_PROJECTS_ROOT=./tenants

# CORS (optional, defaults to localhost origins)
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000

4. Running the Server

Development Mode (with hot reload)

pnpm run dev

Production Mode

pnpm run build
pnpm run start

PM2 (Production Process Manager)

npm install -g pm2
pm2 start dist/src/index.js --name codeatlas-platform
pm2 save
pm2 startup

Initialize Oracle Database Schema

pnpm run db-init

The server auto-detects the runtime mode:

  • If PORT is set β†’ starts in SSE Mode (remote HTTP server)

  • If PORT is unset β†’ starts in Stdio Mode (local MCP server for IDE integration)


πŸ”Œ AI Editor Integration

CodeAtlas AI works with any MCP-compatible AI coding assistant. Choose your editor below:

Claude Desktop / Code

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "codeatlas": {
      "command": "npx",
      "args": ["-y", "codeatlas-enterprise"],
      "env": {
        "CODEATLAS_API_KEY": "your-api-key",
        "ORACLE_CONN_STRING": "...",
        "NVIDIA_API_KEY": "nvapi-..."
      }
    }
  }
}

Or for remote SSE mode:

{
  "mcpServers": {
    "codeatlas": {
      "type": "sse",
      "url": "https://your-server.com/sse?apiKey=YOUR_API_KEY_HERE"
    }
  }
}

Cursor AI

Create .cursor/rules/codeatlas.mdc in your project:

---
description: CodeAtlas AI codebase intelligence
globs: *
---
An MCP server named `codeatlas` is available with code analysis tools.
Always use it before manual file searches for faster results.

Configure in Cursor Settings β†’ MCP Servers:

{
  "mcpServers": {
    "codeatlas": {
      "command": "npx",
      "args": ["-y", "codeatlas-enterprise"],
      "env": {
        "CODEATLAS_API_KEY": "your-api-key"
      }
    }
  }
}

VS Code (Cline / Continue)

Add to your VS Code MCP settings:

{
  "mcpServers": {
    "codeatlas": {
      "command": "npx",
      "args": ["-y", "codeatlas-enterprise"],
      "env": {
        "CODEATLAS_API_KEY": "your-api-key"
      }
    }
  }
}

Windsurf

Create .windsurfrules in your project:

Use CodeAtlas MCP tools for codebase analysis before making changes.
Tools: list_projects, get_project_structure, search_entities, get_dependencies,
generate_system_flow, trace_feature_flow, sync_system_memory

Custom MCP Clients

Any MCP client can connect directly via stdio:

npx -y codeatlas-enterprise

Or via SSE:

curl -N https://your-server.com/sse?apiKey=YOUR_API_KEY

πŸ› οΈ MCP Tools Reference

CodeAtlas AI exposes 14 MCP tools for comprehensive codebase intelligence. Run list_projects first to discover analyzed projects, then use the rest.

πŸ“‚ Code Analysis & Discovery

Tool

Description

Parameters

list_projects

List all analyzed projects with names, paths, and last analysis timestamps

None

get_project_structure

Get all entities (modules, classes, functions, variables) in a project

project, type (all/module/class/function/variable), limit

get_file_entities

Get all entities defined in a specific file

project, filePath (partial match)

search_entities

Fuzzy search for functions, classes, modules, or variables by name

project, query, type

get_insights

AI-generated code quality insights (refactoring, security, maintainability)

None

πŸ”— Dependency & Flow Visualization

Tool

Description

Parameters

get_dependencies

Get import/call/containment/implements relationships between entities

project, source, target, relationship, limit

generate_system_flow

Generate a Mermaid flowchart showing system architecture (module imports)

project, scope (full/modules-only/feature), feature, maxNodes

generate_feature_flow_diagram

Generate a Mermaid diagram of feature execution flow (call chains: entry point β†’ controller β†’ service β†’ model β†’ database)

project, keyword, diagramType (flowchart/sequence), depth, maxNodes

trace_feature_flow

Trace the complete execution flow of a feature through the codebase, ordered by dependency chain

project, keyword, depth

🧠 AI Memory & Knowledge Graph

Tool

Description

Parameters

sync_system_memory

Sync code entities & relationships to Oracle 26ai Knowledge Graph. Creates auto-generated system documentation with business rules and change logs

project, businessRule, changeDescription, enableEnterpriseSync

get_system_memory

Retrieve episodic memories (business rules, change logs) from Oracle 26ai

project, eventType (all/BUSINESS_RULE/CHANGE_LOG)

save_dream_memory

Save a learned pattern, mistake, preference, or knowledge to the Dreaming Memory system

memory_type, content, importance (1–10), session_id, project

query_dream_memories

Search Dream Memories by semantic similarity using vector search

query, project, limit

detect_architectural_smells

Use Oracle 26ai Property Graph to detect circular dependencies, God objects, and dead code

project

πŸ›‘οΈ Security & Architecture Scanning

Tool

Description

Parameters

scan_enterprise_vulnerabilities

Enterprise vulnerability scanner β€” auto-scans all projects for hardcoded secrets, unsafe functions, SQL injection risks, and architectural issues with security scoring

maxProjects


🌐 REST API Reference

In addition to MCP, CodeAtlas AI provides a full REST API for remote access and dashboard integration.

Method

Endpoint

Description

Auth Required

GET

/api/projects

List all discovered projects

βœ…

DELETE

/api/projects

Remove a project and its data

βœ…

GET

/api/projects/memory

Get episodic memories for a project

βœ…

GET

/api/projects/settings

Get indexing settings

βœ…

POST

/api/projects/settings

Update indexing settings

βœ…

POST

/api/dreams/save

Save a dreaming memory

βœ…

GET

/api/dreams/query

Query dreaming memories

βœ…

DELETE

/api/dreams/delete

Delete a dreaming memory

βœ…

GET

/api/docs/quick-setup

Get quick setup guide (markdown)

βœ…

GET

/api/docs/memory-setup

Get AI memory setup guide (markdown)

βœ…

Authentication: API requests require either:

  • Firebase ID Token: Authorization: Bearer <firebase-id-token> (for dashboard users)

  • API Key: x-api-key: <your-api-key> (for programmatic access)

Rate Limiting: 60 requests per minute per tenant/IP.


πŸ“ Project Structure

codeatlas-platform/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts                       # Composition root β€” entry point
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── env.ts                     # Environment configuration
β”‚   β”œβ”€β”€ presentation/                   # Presentation layer (MCP + HTTP)
β”‚   β”‚   β”œβ”€β”€ mcpServer.ts               # MCP server instance
β”‚   β”‚   β”œβ”€β”€ mcpTools.ts                # All 14 MCP tool definitions
β”‚   β”‚   β”œβ”€β”€ httpServer.ts              # Express HTTP server + REST API
β”‚   β”‚   └── dreamingRoutes.ts          # Dream memory REST routes
β”‚   β”œβ”€β”€ services/                       # Application services
β”‚   β”‚   β”œβ”€β”€ authService.ts             # Authentication & API key verification
β”‚   β”‚   β”œβ”€β”€ projectService.ts          # Project discovery & analysis loading
β”‚   β”‚   β”œβ”€β”€ memoryService.ts           # Oracle 26ai tri-layer memory service
β”‚   β”‚   β”œβ”€β”€ dreamingService.ts         # Oracle dreaming memory service
β”‚   β”‚   β”œβ”€β”€ embeddingService.ts        # NVIDIA NIM embedding generation
β”‚   β”‚   β”œβ”€β”€ memoryGenerator.ts         # Auto-generated memory documentation
β”‚   β”‚   └── scanner/
β”‚   β”‚       └── securityScanner.ts     # Static security vulnerability scanner
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── auth.ts                    # Express auth middleware (Firebase + API key)
β”‚   β”œβ”€β”€ database/
β”‚   β”‚   β”œβ”€β”€ connection.ts              # Oracle DB connection pool (Thick Mode)
β”‚   β”‚   └── schema.sql                 # Oracle 26ai database schema + VPD setup
β”‚   β”œβ”€β”€ types/
β”‚   β”‚   β”œβ”€β”€ index.ts                   # TypeScript interfaces (GraphNode, AnalysisResult, etc.)
β”‚   β”‚   └── express.d.ts              # Express type augmentation
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ logger.ts                  # Structured logging
β”‚   β”‚   └── context.ts                 # AsyncLocalStorage for request context
β”‚   └── repositories.ts                # Repository pattern (auth, telemetry)
β”œβ”€β”€ dashboard/                          # React dashboard (Vite + TypeScript)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ App.tsx                    # Root component
β”‚   β”‚   β”œβ”€β”€ main.tsx                   # Entry point
β”‚   β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”‚   └── firebase.ts           # Firebase client SDK
β”‚   β”‚   └── components/
β”‚   β”‚       β”œβ”€β”€ Dashboard.tsx          # Main dashboard (project management)
β”‚   β”‚       β”œβ”€β”€ Auth.tsx               # Login / API key auth
β”‚   β”‚       β”œβ”€β”€ KnowledgeGraphView.tsx # Interactive force-directed graph
β”‚   β”‚       β”œβ”€β”€ ControlCenterView.tsx  # Settings & controls
β”‚   β”‚       β”œβ”€β”€ CloudIndexView.tsx     # Cloud sync status
β”‚   β”‚       └── DocumentationView.tsx  # MCP integration guide
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ vite.config.ts
β”‚   └── package.json
β”œβ”€β”€ scripts/                            # Utility scripts
β”‚   β”œβ”€β”€ db-init.ts                     # Database schema initialization
β”‚   β”œβ”€β”€ deploy.sh                      # Deployment script
β”‚   β”œβ”€β”€ migrate-user.ts                # User migration
β”‚   └── query-firestore.ts             # Firestore debugging
β”œβ”€β”€ tests/                              # Test suites
β”‚   β”œβ”€β”€ unit/                          # Unit tests
β”‚   β”œβ”€β”€ integration/                   # Integration tests
β”‚   └── e2e/                           # End-to-end tests
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ QUICK_SETUP.md                 # Quick setup guide
β”‚   β”œβ”€β”€ AI-MEMORY-SETUP.md            # AI memory configuration
β”‚   └── rules-template/               # IDE integration templates
β”‚       β”œβ”€β”€ CLAUDE.md
β”‚       β”œβ”€β”€ cursor-codeatlas.mdc
β”‚       β”œβ”€β”€ codeatlas-mcp.md
β”‚       └── windsurfrules.md
β”œβ”€β”€ instantclient/                      # Oracle Instant Client libraries
β”œβ”€β”€ .github/workflows/
β”‚   β”œβ”€β”€ ci.yml                         # CI pipeline (build, type-check, test)
β”‚   └── cd.yml                         # CD pipeline (deploy to live server)
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ DESIGN.md                           # Design system specification
β”œβ”€β”€ CHANGELOG.md                        # Full version history
└── LICENSE                             # MIT License

🧠 Memory Architecture

CodeAtlas AI implements a Tri-Layer Memory system using Oracle 26ai native database features:

1. πŸ“ Episodic Memory (ai_episodic_memory)

Stores business events as JSON documents using Oracle's native JSON data type.

  • Business Rules β€” Captured during code review (e.g., "VIP users get free shipping")

  • Change Logs β€” Auto-recorded on every sync_system_memory call

  • Query: SELECT event_data FROM ai_episodic_memory WHERE project_name = :project AND event_type = 'BUSINESS_RULE'

2. 🧬 Semantic Memory (ai_semantic_memory)

Stores vector embeddings of code entities for AI-powered similarity search.

  • Embedding Model: nvidia/nv-embed-v1 β€” 4096-dimensional FLOAT32 vectors

  • Storage: Oracle native VECTOR(4096, FLOAT32) data type

  • Search: SELECT * FROM ai_semantic_memory ORDER BY VECTOR_DISTANCE(embedding, :query, COSINE) FETCH FIRST :limit ROWS ONLY

  • Batch Processing: Entities are embedded in chunks of 50, stored in DB batches of 500

3. πŸ”— Relational Memory (ai_relational_memory)

Stores code dependency relationships as a Property Graph for graph traversal.

  • Knowledge Graph: CREATE PROPERTY GRAPH ai_knowledge_graph connecting semantic entities via relational edges

  • Graph Queries: GRAPH_TABLE(ai_knowledge_graph MATCH (a)-[e]->{1,5}(a)) for cycle detection

  • Relationship Types: import, call, contains, implements

πŸ” Oracle VPD Multi-Tenant Security

All three memory tables are protected by Oracle Virtual Private Database (VPD) with automatic row-level security based on tenant_id. Each database connection session sets its security context via ADMIN.codeatlas_ctx_pkg.set_tenant(:tenantId), and VPD policies transparently filter rows.


🏠 Multi-Tenant Architecture

CodeAtlas AI supports SaaS multi-tenancy at every layer:

Directory Sandbox

tenants/
β”œβ”€β”€ tenant-abc123/
β”‚   β”œβ”€β”€ project-alpha/
β”‚   β”‚   └── .codeatlas/analysis.json
β”‚   └── project-beta/
└── tenant-def456/
    └── project-gamma/

Database Isolation

  • Oracle VPD/RLS: Row-level security with automatic tenant_id filtering

  • Firestore Namespacing: Documents prefixed as ${tenantId}_${projectName}

  • Rate Limiting: Per-tenant rate limits (60 req/min)

Access Control

  • Standard users: Can only see and manage projects within their tenant sandbox

  • System administrators: Can view and manage all tenant projects

  • Authentication: Firebase ID Tokens (dashboard) or API Keys (programmatic)


πŸ“Š Dashboard

The interactive dashboard is a React application with a premium glassmorphism design system:

Design Specifications

  • Primary Color: Neon Cyan #00F0FF β€” active nodes, CTAs, glow accents

  • Secondary: Electric Violet #9D00FF β€” AI insights, relationships

  • Background: Deep Space #0A0C10 with glass surfaces rgba(16, 20, 29, 0.6)

  • Backdrop Blur: 20px frosted glass

  • Typography: Space Grotesk (headlines) + Inter (body)

  • Typography: Space Grotesk (headlines) + Inter (body)

Dashboard Views

View

Description

Control Center

Project management, API keys, settings

Knowledge Graph

Interactive force-directed SVG graph with zoom, pan, and node dragging

Cloud Index

Cloud sync status, indexing coverage

Documentation

MCP integration guides and setup instructions

Building the Dashboard

cd dashboard
pnpm install
pnpm run build     # Production build
pnpm run dev       # Development server

πŸ§ͺ Testing

CodeAtlas AI includes a comprehensive test suite with unit, integration, and e2e tests.

# Run all tests
pnpm test

# Run TypeScript type checking
npx tsc --noEmit --skipLibCheck

# Run dashboard tests
cd dashboard && pnpm test

Test Structure

tests/
β”œβ”€β”€ unit/
β”‚   β”œβ”€β”€ scanner.test.ts                  # Security scanner logic
β”‚   β”œβ”€β”€ repositories.test.ts            # Auth & telemetry repository
β”‚   β”œβ”€β”€ dreaming-service.test.ts        # Dreaming service operations
β”‚   β”œβ”€β”€ dreaming-routes.test.ts         # Dream memory REST endpoints
β”‚   └── memory-generator.test.ts        # Memory documentation generator
β”œβ”€β”€ integration/
β”‚   β”œβ”€β”€ api.test.ts                     # REST API endpoints
β”‚   β”œβ”€β”€ mcp.test.ts                     # MCP tool execution
β”‚   β”œβ”€β”€ database.test.ts               # Oracle DB operations
β”‚   β”œβ”€β”€ multi-tenant.test.ts           # Tenant isolation
β”‚   β”œβ”€β”€ project-deletion.test.ts       # Project cleanup flow
β”‚   β”œβ”€β”€ discovery.test.ts              # Project discovery
β”‚   β”œβ”€β”€ settings.test.ts               # Indexing settings API
β”‚   └── watcher.test.ts                # File watcher
└── e2e/
    └── scan-flow.test.ts               # End-to-end analysis flow

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature/my-feature

  3. Commit your changes: git commit -am 'Add my feature'

  4. Push to the branch: git push origin feature/my-feature

  5. Open a Pull Request

Development Guidelines

  • Follow the existing Clean Architecture patterns

  • Write TypeScript with strict typing

  • Add tests for new features

  • Update documentation as needed

  • Ensure all tests pass: pnpm test

Code Style

  • TypeScript with strict mode enabled

  • ESLint + Prettier for consistent formatting

  • Clean Architecture with use case–driven service design

  • Async/await over raw promises


πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

MIT License

Copyright (c) 2026 GiauPhan

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
...

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/giauphan/codeatlas-platform'

If you have feedback or need assistance with the MCP directory API, please join our Discord server