ingest_vaultLABSCO SUMMARY
Entities and relationships, which is what plain vector search over notes cannot give you.
The reason to accept two databases instead of one is the graph: "what depends on this" and "what else did this person touch" are traversals, not similarity queries. The cost is real — Neo4j and Qdrant both have to be running, and ingestion needs an OpenAI key — so this suits a vault you query often, not one you dip into occasionally.
What it is
A retrieval system for Obsidian vaults that layers several kinds of context: vector similarity, a Graphiti-backed knowledge graph in Neo4j, link traversal over the vault's own wiki-links, recency, and domain specialisation. Notes become entities with typed relationships rather than a flat pile of embeddings.
What you get
ingest_vaultreads the Markdown files from a vault pathquery_raganswers a question using the layered retrieval, with a query type such as technical or researchsearch_knowledge_graphfinds entities in the graph;get_entity_contextreturns rich context for oneget_related_entitiesfollows the relationships out from an entityget_system_statusreports database connections and system health- The graph carries 27+ entity types (concepts, people, organisations, technologies, methodologies) and 40+ relationship types (implements, uses, depends_on, extends, similar_to)
- A command-line interface mirrors the same operations for ingest, query and graph search
Requirements
Python 3.9+, Docker and Docker Compose, and an OPENAI_API_KEY for the embeddings. Two databases are needed and the setup scripts start both: Qdrant on port 6333 and Neo4j on 7474 and 7687, configured through NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD, QDRANT_HOST and QDRANT_PORT. The README's install line names obsidian-elite-rag-mcp, which PyPI does not have. Installed from source, the CLI's setup, start-databases, ingest and server steps run in that order.
Setup effort
Build from source — git clone https://github.com/aegntic/aegntic-MCP.git
USE CASES
Asking your notes a real question
Query the vault and get an answer assembled from several notes rather than a list of file names.
Following a concept through the vault
Find the entity, read its context, then walk out to what it relates to.
Getting a vault indexed
Ingest the Markdown files once, then keep querying without re-reading them.
Working out why answers stopped coming
Check whether the vector store and graph database are both actually connected.
6 tools
Listed in project docs. Your client may show a different list.
query_ragsearch_knowledge_graphget_entity_contextget_related_entitiesget_system_statusBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Requires
- obsidian-elite-rag-cli on PATH
- Python 3.9+
- OPENAI_API_KEY in your environment
- Docker (for the Qdrant and Neo4j containers)
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/aegntic/aegntic-MCP.git
cd aegntic-MCP/obsidian-elite-rag
pip install -e .
docker run -d --name qdrant -p 6333:6333 -v $(pwd)/data/qdrant:/qdrant/storage qdrant/qdrant:latest
docker run -d --name neo4j -p 7474:7474 -p 7687:7687 -v $(pwd)/data/neo4j:/data --env NEO4J_AUTH=neo4j/password --env NEO4J_PLUGINS='["apoc","graph-data-science"]' neo4j:5.14
obsidian-elite-rag-cli ingest <YOUR_PATH_TO_OBSIDIAN_VAULT>MCP Clients
Claude Code
{
"mcpServers": {
"obsidian-elite-rag": {
"command": "obsidian-elite-rag-cli",
"args": [
"server"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}