NOMIK

NOMIK

AI-native code intelligence graph that builds a persistent knowledge graph of your codebase in Neo4j and exposes it to AI assistants via MCP, enabling contextual code analysis, impact analysis, and dependency tracking.

Category
Visit Server

README

NOMIK — The Living Blueprint

⭐⭐ If you find NOMIK useful, please consider giving it a star on GitHub! It helps the project grow! ⭐⭐ Follow the creator on X: @willfreed01 | Website: hamzabenjeddi.com

AI-native code intelligence graph. Scan once, query everything.

NOMIK builds a persistent Knowledge Graph of your entire codebase in Neo4j, then exposes it to AI assistants via MCP (Model Context Protocol). Instead of dumping files into a prompt, the AI queries a graph to retrieve exactly the relationships it needs — functions, classes, imports, call chains, DB operations, infrastructure, and more.

Quick Start

# Prerequisites: Node.js 20+, Docker
npm install -g @nomik-ai/cli

cd your-project/
nomik init                          # Config + Neo4j Docker + .env + project setup
nomik scan .                        # Build the knowledge graph
nomik setup-cursor                  # Connect to your IDE (or: setup-windsurf, setup-claude)
nomik watch .                       # (Optional) Live graph updates on save

Restart your IDE — the AI now has full graph-powered context.

MCP Tools (21)

Your AI assistant gets these tools automatically:

Tool Purpose Example
nm_search Find symbols by name "Find all auth functions"
nm_context Full context for a symbol "Show everything about GraphService"
nm_impact Downstream impact analysis "What breaks if I change parseFile?"
nm_db_impact DB table/column read/write analysis "Who writes to users.email?"
nm_explain Symbol deep-dive (callers, callees, edges) "Explain createGraphService"
nm_health Stats + health checks (17 node types) "Any dead code or god files?"
nm_path Shortest path between two symbols "How does scanCommand reach neo4j?"
nm_trace Full dependency chain "Trace from A to B"
nm_changes Recently modified nodes "What changed today?"
nm_onboard Full codebase briefing "Give me a project overview"
nm_wiki Generate structured docs "Generate docs for this codebase"
nm_communities Functional cluster detection "What are the main code modules?"
nm_flows Execution flow tracing "Show the auth request lifecycle"
nm_guard Quality gate (dead code, god files, dupes) "Does the codebase pass quality?"
nm_rename Graph-aware rename impact "What changes if I rename createWatcher?"
nm_diff Architecture drift between scans "What changed between these commits?"
nm_service_links Cross-service dependencies "How do microservices communicate?"
nm_test_impact Affected tests after a change "Which tests for parseFile?"
nm_audit Dependency vulnerability + blast radius "Any vulnerable packages?"
nm_rules Architecture rules (9 built-in + custom Cypher) "Does code follow our policies?"
nm_projects List tracked projects "What projects exist?"

What NOMIK Tracks

All extractors are import-aware — they resolve receiver variables from actual imports, not hardcoded names.

Code

  • Functions, Classes, Imports/Exports — full AST extraction (TS, JS, Python, Rust)
  • Call chains — intra-file, cross-file, obj.method(), callbacks, barrel re-exports
  • Routes — Express, Fastify, NestJS, tRPC, gRPC, GraphQL (decorator + chain detection)
  • Dead code, god files, duplicates — health detection with configurable thresholds

Data

  • Database — Prisma, Supabase, Knex, TypeORM, raw SQL, EF/Django/Alembic migrations
  • Redis — ioredis, @redis/client, @upstash/redis (read/write/delete classification)
  • Job Queues — Bull/BullMQ, Bee-Queue, Agenda, pg-boss (producer/consumer edges)

Infrastructure

  • HTTP Clients — axios, got, node-fetch, ofetch, undici, superagent, fetch()
  • Message Brokers — KafkaJS, amqplib, NATS, AWS SQS/SNS, Google PubSub
  • Tracing — OpenTelemetry, Datadog, Sentry (span creation tracking)
  • Metrics — prom-client, OpenTelemetry (Counter/Gauge/Histogram/Summary)
  • WebSockets — ws, @nestjs/websockets, uWebSockets.js, Socket.io (rooms/namespaces)
  • Cron Jobs — node-cron, node-schedule, @nestjs/schedule, Agenda
  • Feature Flags — LaunchDarkly, Unleash, Flagsmith, Split.io, GrowthBook

Config & Security

  • Docker/K8s — Dockerfile, docker-compose, K8s manifests (Deployment, Service, Ingress)
  • CI/CD — GitHub Actions, GitLab CI (jobs, steps, triggers)
  • IaC — Terraform (.tf), CloudFormation/SAM, OpenAPI specs
  • Secrets — AWS keys, GitHub tokens, Stripe keys, JWT, private keys, basic auth URLs
  • Env vars.env files, process.env.*, Python os.environ
  • Swagger/OpenAPI — decorator enrichment + spec file parsing
  • GraphQL schemas.graphql/.gql file parsing
  • Dependencies — package.json, requirements.txt
  • Tests.test./.spec./__tests__/ detection, mock target resolution

Python-Specific

  • Redis, Celery tasks, Prometheus metrics, OpenTelemetry spans, Kafka/RabbitMQ/NATS

MCP Extras

Prompts (6 conversation starters)

nomik-onboard, nomik-review-change, nomik-health-check, nomik-explain-module, nomik-migration-plan, nomik-infrastructure

Resources (9 browsable endpoints)

nomik://stats, nomik://health, nomik://files, nomik://communities, nomik://onboard, nomik://schema, nomik://projects, nomik://infrastructure, nomik://guard

Role-Scoped Access

Set NOMIK_ROLE env var: dev (all tools), architect, security, pm — filters tools/prompts/resources per role.

MCP Sampling

Set NOMIK_SAMPLING=true — enables server→client LLM completion requests for AI-augmented analysis.

CLI Commands (38)

# Core
nomik init                    # Setup + Neo4j Docker + project
nomik scan <path>             # Build knowledge graph
nomik scan:incremental <path> # Re-parse only changed files (git diff)
nomik watch [path]            # Live file watcher
nomik status                  # Graph stats
nomik doctor                  # Diagnose setup (Neo4j, MCP, config)

# Analysis
nomik impact <symbol>         # Downstream impact analysis
nomik explain <symbol>        # Full symbol context report
nomik test-impact <symbol>    # Which tests to re-run after a change
nomik migrate <symbol>        # Guided migration plan with risk level
nomik rename <old> <new>      # Graph-aware rename (--apply to write)
nomik diff <sha1> <sha2>      # Architecture drift between scans
nomik service-links           # Cross-service producer/consumer pairs
nomik communities             # Functional cluster detection
nomik flows                   # Execution flow tracing from entry points

# Quality & CI
nomik rules                   # Architecture rules engine (9 built-in + custom Cypher)
nomik rules --init            # Create .nomik/rules.yaml config
nomik guard                   # Quality gate (CI/pre-commit)
nomik audit                   # Dependency vulnerability check + blast radius
nomik ci                      # Unified pipeline: scan → rules → guard → audit

# Documentation & Reporting
nomik onboard                 # One-command codebase briefing
nomik wiki                    # Generate markdown docs from graph
nomik changelog               # Auto-generate changelog from graph changes
nomik badge                   # Shields.io health badges
nomik query "<cypher>"        # Raw Cypher query
nomik recent                  # Recently changed nodes

# IDE Setup
nomik setup-cursor            # Auto-configure Cursor MCP
nomik setup-windsurf          # Auto-configure Windsurf MCP
nomik setup-antigravity       # Auto-configure Antigravity MCP
nomik setup-claude            # Auto-configure Claude Desktop MCP

# Server
nomik dashboard               # REST API on port 4242 (14 endpoints)
nomik serve                   # MCP server + viz dashboard

# Project Management
nomik project list|create|switch|delete|info

Supported Languages

Language Parser Extractors
TypeScript / JavaScript tree-sitter Full: functions, classes, imports, routes, calls, APIs, DB, Redis, queues, metrics, events, env vars, secrets, tests
Python tree-sitter functions, classes, imports, calls + Redis, Celery, Prometheus, OTel, Kafka/RabbitMQ
Rust tree-sitter functions, structs/enums/traits, use, calls
Markdown regex sections (h1-h6)
SQL / C# / Python migrations regex DB schema extraction (CREATE TABLE, EF, Django, Alembic)
YAML regex Docker Compose, K8s, GitHub Actions, GitLab CI, CloudFormation, Prometheus, OpenAPI
Terraform regex Resources, variables, modules, outputs (.tf, .tfvars)
GraphQL regex Types, queries, mutations, subscriptions (.graphql, .gql)
Dockerfile regex Base images, exposed ports, stages
.env regex Environment variable definitions (.env, .env.local, .env.production)
JSON configs regex package.json dependencies, OpenAPI specs, Grafana dashboards

Graph Schema

17 Node Types: File, Function, Class, Variable, Module, Route, ExternalAPI, DBTable, DBColumn, CronJob, Event, EnvVar, QueueJob, Metric, Span, Topic, SecurityIssue

23 Edge Types: CONTAINS, IMPORTS, EXPORTS, EXTENDS, IMPLEMENTS, CALLS, DEPENDS_ON, HANDLES, READS_FROM, WRITES_TO, CALLS_EXTERNAL, TRIGGERS, EMITS, LISTENS_TO, USES_ENV, PRODUCES_JOB, CONSUMES_JOB, USES_METRIC, STARTS_SPAN, PRODUCES_MESSAGE, CONSUMES_MESSAGE, HAS_SECURITY_ISSUE, SCHEDULES

Architecture

nomik/
├── @nomik/core        — Types (Zod), config, logger (Pino)
├── @nomik/parser      — Tree-sitter AST extraction + 37 extractors + config file parser
├── @nomik/graph       — Neo4j driver, queries, cache, rules engine
├── @nomik/watcher     — Chokidar file watcher
├── @nomik/mcp-server  — MCP server (21 tools, 9 resources, 6 prompts, sampling, roles)
├── @nomik/github-bot  — PR impact analysis webhook
├── @nomik/viz         — React + 3D force-graph + Cytoscape.js dashboard
└── @nomik-ai/cli      — 38 CLI commands

Tech Stack

Component Technology
Language TypeScript (ESM, strict)
Graph DB Neo4j 5 Community
Parser Tree-sitter (multi-lang)
AI Protocol MCP (Model Context Protocol) SDK 1.26.0
IDE Support Cursor, Windsurf, Antigravity, Claude Desktop
Monorepo Turborepo + pnpm workspaces
Visualization Three.js (3D) + Cytoscape.js (2D)
Tests Vitest — 232+ tests, 18+ files

Development

git clone https://github.com/willFreed1/NOMIK.git
cd NOMIK && pnpm install && docker compose up -d && pnpm build
pnpm test                     # 232 tests
pnpm nomik scan . --project nomik
pnpm nomik doctor             # Verify setup

Documentation

Doc Description
Vision & Roadmap Why NOMIK exists, full-stack intelligence roadmap
Architecture System diagram, monorepo structure, data flow
Running Guide Step-by-step local setup
MCP Integration IDE connection guide
Graph Schema All node/edge types with Cypher examples
Progress Tracker Version history and changelog

Contributors

Nomik is an evolving tool built to supercharge AI coding. We welcome all contributions!

Whether it's fixing bugs, adding support for new languages, creating new graph insights, or improving documentation—feel free to open an issue or submit a Pull Request.

License & Contributions

Nomik is licensed under the Functional Source License (FSL) v1.1.

  • Can I use Nomik for free? Yes, for personal projects, academic research, or internal company tools.
  • Can I contribute? Yes! We welcome pull requests and community contributions.
  • What can't I do? You cannot use the Software to provide a product or service that competes with Nomik itself (e.g., offering "Nomik as a Service").
  • What happens later? After 2 years, the code automatically transitions to the Apache 2.0 license.

For the full legal terms, see the LICENSE file.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured