Agentic Memory: Structural Code Graph with Neo4j and MCP
Project description
๐ง Agentic Memory
https://github.com/jarmen423/codememory
Active, Structural Memory System for AI Coding Agents
Agentic Memory is not just "RAG" for code. It is an active, structural memory layer that understands code relationships (dependencies, imports, inheritance), not just text similarity.
Core Value Prop: "Don't let your Agent code blind. Give it a map."
โจ Features
| Feature | Description |
|---|---|
| ๐ Structural Graph | Understands imports, dependencies, call graphs - not just text similarity |
| ๐ Semantic Search | Vector embeddings with contextual prefixing for accurate results |
| โก Real-time Sync | File watcher automatically updates the graph as you code |
| ๐งฌ Git Graph (Opt-in) | Adds commit/author/file-version history in the same Neo4j DB with separate labels |
| ๐ค MCP Protocol | Drop-in integration with Claude, Cursor, Windsurf, and any MCP-compatible AI |
| ๐ฅ Impact Analysis | See the blast radius of changes before you make them |
๐ Quick Start (One Command Setup)
1. Install globally
# Recommended: Use pipx for isolated global installation
pipx install agentic-codememory
# Or with uv tooling
uv tool install agentic-codememory
uvx codememory --help
# Or use pip in a virtualenv
pip install agentic-codememory
2. Initialize in any repository
cd /path/to/your/repo
codememory init
The interactive wizard will guide you through:
- Neo4j setup (local Docker, Aura cloud, or custom)
- OpenAI API key (for semantic search)
- File extensions to index
That's it! Your repository is now indexed and ready for AI agents.
๐ Usage
In any initialized repository:
# Show repository status and statistics
codememory status
# One-time full index (e.g., after major changes)
codememory index
# Watch for changes and continuously update
codememory watch
# Start MCP server for AI agents
codememory serve
# Test semantic search
codememory search "where is the auth logic?"
# Git graph (rollout build)
codememory git-init --repo /absolute/path/to/repo --mode local --full-history
codememory git-sync --repo /absolute/path/to/repo --incremental
codememory git-status --repo /absolute/path/to/repo --json
Git graph command details and rollout notes: docs/GIT_GRAPH.md
๐งพ Tool-Use Annotation (Research)
Agentic Memory now supports SQLite telemetry for MCP tool calls plus manual post-response labeling as prompted or unprompted.
codememory --prompted "check our auth"
codememory --unprompted "check our auth"
Full workflow and options: docs/TOOL_USE_ANNOTATION.md
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโ Watches โโโโโโโโโโโโโโโโโโโโ
โ User Repositoryโ โโโโโโโโโโโโโโโ> โ Ingestion Serviceโ
โ โ โ (Observer) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโโ
โ Writes
โผ
โโโโโโโโโโโโโโโโ
โ Neo4j โ
โ Cortex โ
โโโโโโโโฌโโโโโโโโ
โ Reads
โผ
โโโโโโโโโโโโโโโโโโโ MCP Protocol โโโโโโโโโโโโโโโโโโโโ
โ AI Agent / โ <โโโโโโโโโโโโโโโ> โ MCP Server โ
โ Claude โ โ (Interface) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
Components
| Component | Role | Description |
|---|---|---|
Observer (watcher.py) |
The "Writer" | Watches filesystem changes and keeps the graph in sync |
Graph Builder (graph.py) |
The "Mapper" | Parses code with Tree-sitter, builds Neo4j graph with embeddings |
MCP Server (app.py) |
The "Interface" | Exposes high-level skills to AI agents via MCP protocol |
๐ MCP Tools Available to AI Agents
| Tool | Description |
|---|---|
search_codebase(query, limit=5, domain="code") |
Semantic search for code, git, or hybrid domain routing |
get_file_dependencies(file_path, domain="code") |
Returns imports and dependents for a file |
identify_impact(file_path, max_depth=3, domain="code") |
Blast radius analysis for changes |
get_file_info(file_path, domain="code") |
File structure overview (classes, functions) |
get_git_file_history(file_path, limit=20, domain="git") |
File-level commit history and ownership signals (git rollout) |
get_commit_context(sha, include_diff_stats=true) |
Commit metadata and change statistics (git rollout) |
find_recent_risky_changes(path_or_symbol, window_days, domain="hybrid") |
Recent high-risk changes using hybrid signals (git rollout) |
Note:
domainrouting and git-domain tools are part of the git graph rollout. If they are missing in your installed build, use code-domain tools only and upgrade to a git-enabled release.
โ Integration Recommendation Policy (PR7)
Current recommendation policy is explicit:
- Recommended default:
mcp_nativeintegration for production reliability. - Optional path:
skill_adapterworkflow for shell/script-driven operators. - Promotion rule:
skill_adapterbecomes first-class only after parity evidence is captured versusmcp_nativeacross success rate, latency, token cost, retries, and operator steps.
Reference docs and evaluation artifacts:
- docs/evaluation-decision.md
- evaluation/README.md
- evaluation/tasks/benchmark_tasks.json
- evaluation/schemas/benchmark_results.schema.json
- evaluation/skills/skill-adapter-workflow.md
๐ณ Docker Setup (Neo4j)
Quick Start
# Start Neo4j
docker-compose up -d neo4j
# Neo4j will be available at:
# HTTP: http://localhost:7474
# Bolt: bolt://localhost:7687
# Username: neo4j
# Password: password (change this in production!)
Neo4j Aura (Cloud)
Get a free instance at neo4j.com/cloud/aura/
๐ Configuration
Per-repository configuration is stored in .codememory/config.json:
{
"neo4j": {
"uri": "bolt://localhost:7687",
"user": "neo4j",
"password": "password"
},
"openai": {
"api_key": "sk-..." // Optional - can use OPENAI_API_KEY env var
},
"indexing": {
"ignore_dirs": ["node_modules", "__pycache__", ".git"],
"extensions": [".py", ".js", ".ts", ".tsx", ".jsx"],
"include_paths": ["systemd/AGENTS.md", "docs/runbooks/*.md"]
}
}
include_paths is an explicit allowlist for files that should be indexed even when their
extension is not in indexing.extensions. This is useful for selectively indexing a few
high-value docs such as AGENTS.md, runbooks, or systemd unit companions without turning
on all Markdown files.
Note: .codememory/ is gitignored by default to prevent committing API keys.
๐ง Installation from Source
# Clone the repository
git clone https://github.com/jarmen423/codememory.git
cd codememory
# Install in editable mode
pip install -e .
# Run the init wizard in any repo
codememory init
๐งช Development
# Install in editable mode
pip install -e .
# Run type checking (when mypy is configured)
mypy src/codememory
# Run tests (when added)
pytest
๐ What Gets Indexed?
| Entity | Description | Relationships |
|---|---|---|
| Files | Source code files | [:DEFINES]โ Functions/Classes, [:IMPORTS]โ Files |
| Functions | Function definitions | [:CALLS]โ Functions, [:HAS_METHOD]โ Classes |
| Classes | Class definitions | [:HAS_METHOD]โ Methods |
| Chunks | Semantic embeddings | [:DESCRIBES]โ Functions/Classes |
๐ MCP Integration
Claude Desktop
{
"mcpServers": {
"agentic-memory": {
"command": "codememory",
"args": ["serve", "--repo", "/absolute/path/to/your/project"]
}
}
}
Cursor IDE
{
"mcpServers": {
"agentic-memory": {
"command": "codememory",
"args": ["serve", "--repo", "/absolute/path/to/your/project", "--port", "8000"]
}
}
}
Windsurf
Add to your MCP configuration file.
Note:
--reporequires the upcoming release that adds explicit repo targeting forserve. If your installed version does not support--repo, use your client'scwdsetting (if supported) or launch via a wrapper script that runscd /absolute/path/to/project && codememory serve.
๐ License
MIT License - see LICENSE file for details.
๐ค Contributing
Contributions welcome! Please see TODO.md for the roadmap.
๐ Acknowledgments
- Neo4j - Graph database with vector search
- Tree-sitter - Incremental parsing for code
- OpenAI - Embeddings for semantic search
- MCP (Model Context Protocol) - Standard interface for AI tools
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentic_codememory-0.1.5.tar.gz.
File metadata
- Download URL: agentic_codememory-0.1.5.tar.gz
- Upload date:
- Size: 218.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ef2d9c64c3c1849e93e74fa0e3aea9f6cb2101634fb5271b6ec014cdce9a5ab
|
|
| MD5 |
1e134743ffb56a001508a13dfef80cd7
|
|
| BLAKE2b-256 |
170d701192a84b9fa048ebdcd9ea7baf52b65187a1aec3ed364775e109056e87
|
File details
Details for the file agentic_codememory-0.1.5-py3-none-any.whl.
File metadata
- Download URL: agentic_codememory-0.1.5-py3-none-any.whl
- Upload date:
- Size: 53.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bc66d7a2d3aacd87aff0787bf5f78eb7a3ad25eb48500fa38453c0fe4f48294
|
|
| MD5 |
c0b6d24e1179011d13ea5d8b8922959f
|
|
| BLAKE2b-256 |
2679009e204b84609f7aebff47a22c9a1e6a362c4e75076984e3cf0c8df7ab94
|