CodeMeridian.Indexer
1.0.0
use 1.0.3 or higher
See the version list below for details.
dotnet tool install --global CodeMeridian.Indexer --version 1.0.0
dotnet new tool-manifest
dotnet tool install --local CodeMeridian.Indexer --version 1.0.0
#tool dotnet:?package=CodeMeridian.Indexer&version=1.0.0
nuke :add-package CodeMeridian.Indexer --version 1.0.0
<p align="center"> <img src="docs/assets/icon_512.png" alt="CodeMeridian logo" width="160"> </p>
CodeMeridian
CodeMeridian is a persistent code knowledge graph for AI coding tools. It indexes your codebase into Neo4j and exposes that structure through MCP, so GitHub Copilot can ask precise questions before editing instead of guessing from open files.
It is built to be the deterministic context layer for large codebases: callers, dependencies, tests, documentation, hotspots, dead code, and cross-project relationships stay available across sessions.
No LLM API key required. Copilot is the AI; CodeMeridian is the knowledge engine.
Why CodeMeridian?
| Without CodeMeridian | With CodeMeridian |
|---|---|
| Copilot reads files you happen to have open | Copilot queries a graph of your entire codebase |
| Context disappears between sessions | Knowledge persists in Neo4j |
| "What calls this method?" requires manual searching | find_impact answers from the call graph |
| Refactors can miss hidden callers | Blast radius is known before edits |
| Dead code and test gaps stay invisible | find_unreferenced and find_coverage_gaps surface them |
| Large context windows get filled with noise | Copilot gets the smallest useful architecture slice |
What It Indexes
CodeMeridian currently supports:
- C# via a Roslyn indexer
- TypeScript / TSX via a ts-morph indexer
- README and documentation files
- Optional vector embeddings for semantic code similarity (find duplicate patterns, refactoring opportunities)
The indexer is designed as a language-agnostic pipeline: future language indexers can write into the same graph model and be queried through the same MCP tools. Embeddings are opt-in (disabled by default) and are now generated by the CodeMeridian backend, which can use local Ollama (free) or OpenAI (paid).
Quick Start
Prerequisites:
- Docker Desktop
- .NET 10 SDK
- GitHub Copilot in VS Code
- Node.js 18+ when indexing TypeScript / TSX
Start CodeMeridian:
Copy-Item .env.example .env
docker compose up -d
Index this repository:
dotnet run --project tools/Indexer -- . --clear
Or, after installing the indexer tool:
codemeridian index . --clear
Open this folder in VS Code. The MCP server is registered through .vscode/mcp.json, and Copilot can call CodeMeridian tools while you chat.
Common Questions
Ask Copilot things like:
Use CodeMeridian to give me an architectural overview.
Before changing OrderService.PlaceOrderAsync, what calls it?
Which methods have no test coverage?
Build a minimal context pack before I change OrderService.PlaceOrderAsync.
How is this TypeScript component connected to the backend?
Core Tools
| Tool | What it does |
|---|---|
query_codebase |
Natural-language search over code structure |
get_architectural_overview |
Project map by namespace/module |
get_context_for_editing |
Compact callers/callees/interfaces context for a node |
build_minimal_context |
Bounded context pack with callers, callees, impact, tests, gaps, and likely files |
find_impact |
Backward blast-radius analysis |
find_connection |
Shortest path between two code elements |
find_unreferenced |
Dead-code candidates |
find_coverage_gaps |
Production code not called by tests |
find_similar_nodes |
Find duplicate code patterns (requires embeddings enabled) |
find_duplicate_candidates |
Review likely duplicate methods/classes with refactor-risk signals |
search_documentation |
Search indexed README/ADR/documentation content |
clear_project_knowledge |
Clear one project's indexed graph and docs before rebuilding |
clear_code_graph |
Clear all indexed code graph nodes while preserving docs |
Documentation
- Installation
- How CodeMeridian works
- Indexing projects
- Feature reference
- Code embeddings and semantic search
- Publishing the indexer tool
- Ubuntu headless deployment
- Contributor and agent guide
Project Layout
src/
Core/ Domain models
Application/ Query services and orchestration
Infrastructure/ Neo4j graph and knowledge storage
McpServer/ MCP server and REST ingestion API
Sdk/ Client library for ingestion
tools/
Indexer/ Unified indexer CLI
RoslynIndexer/ C# Roslyn indexer
TsIndexer/ TypeScript / TSX indexer
docs/
features.md
how-it-works.md
installation.md
indexing.md
publishing.md
Status
CodeMeridian is early but usable. It already indexes C# and TypeScript/TSX projects, persists the graph in Neo4j, and exposes MCP tools for Copilot. The roadmap is tracked in TODO.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.