Nexarag: Democratizing Reproducible Knowledge Graph Contexts for LLM Research

Nexarag: Democratizing Reproducible Knowledge Graph Contexts for LLM Research - Published in JOSS (2026)

https://github.com/kevinmoonlab/nexarag

Science Score: 87.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: about 1 month ago · JSON representation

Repository

Graph-powered context engineering and visualization for researchers.

Basic Info
  • Host: GitHub
  • Owner: KevinMoonLab
  • License: gpl-3.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 5.28 MB
Statistics
  • Stars: 2
  • Watchers: 0
  • Forks: 2
  • Open Issues: 11
  • Releases: 2
Created over 1 year ago · Last pushed about 1 month ago
Metadata Files
Readme Contributing License

README.md

Nexarag

Overview

Nexarag is an open-source platform for building knowledge graphs from research papers and querying them with AI, enabling transparent and reproducible literature analysis without the hallucinations of traditional RAG systems. Deploy locally with full privacy control or integrate with any LLM via the standardized Model Context Protocol (MCP).

See also: * Usage and Development Guides * Contribution Guidelines

Feedback

We’d love your feedback on Nexarag, including bug reports, feature requests, documentation fixes, and tutorial or training-material ideas.

  • Bugs and feature requests: open an issue on GitHub: https://github.com/KevinMoonLab/Nexarag/issues
    Please include:

    • what you expected vs. what happened
    • steps to reproduce (or a minimal example)
    • OS + Docker version (and GPU details if relevant)
    • relevant logs or screenshots
  • Private or security-sensitive reports: email us at nexarag.ai@gmail.com
    If possible, include the same details as above and note why it should not be posted publicly.

Test Coverage

Pre-Requisites

Quick Start

Follow the instructions below or visit our YouTube channel for detailed tutorials:

1. Download Docker compose file

Choose a Dockerfile compatible with your OS and hardware:

[Optional]: Move the Docker compose file to a location on your drive, e.g. ~/Nexarag.

2. Run Nexarag

From the same directory as the downloaded docker-compose.yml, run: bash docker compose up -d Visit Nexarag in your browser at http://localhost:5000 (or 5100 on MacOS).

3. Pull Ollama Models

To support all internal features, Nexarag requires:

  • An embedding model, such as nomic-embed-text:v1.5
  • A language model, such as gemma3:1b
  • An MCP-capable model, such as qwen3:8b

Browse the full library of Ollama models here and choose any model from these families that your hardware supports. Defaults that run on most hardware are provided below.

Linux/WSL

Models can be pulled through the command line in the ollama Docker container.

bash docker exec -it nexarag.ollama /bin/bash ollama pull nomic-embed-text:v1.5 ollama pull gemma3:1b ollama pull qwen3:8b

MacOS

Pull models directly from your command line.

bash ollama pull nomic-embed-text:v1.5 ollama pull gemma3:1b ollama pull qwen3:8b

4. (Optional) MCP Integration

Claude Desktop

Add the following to your Claude Desktop Config:

json { "mcpServers": { "nexarag": { "command": "npx", "args": [ "-y", "mcp-remote", "http://localhost:9000/mcp" ], "env": { "MCP_TRANSPORT_STRATEGY": "http-only" } } } }

Ollama

First install pipx, then run:

bash pipx install ollmcp

To start the MCP client: bash ollmcp -u http://localhost:9000/mcp -m qwen3:8b

Semantic Scholar

Please note that we are rate-limited by the Semantic Scholar API, so enriching BibTex uploads with data and updating the graph after adding papers from a Semantic Scholar search may take several minutes to complete.

Owner

  • Name: Kevin Moon Research Lab
  • Login: KevinMoonLab
  • Kind: organization
  • Location: United States of America

Code for the methods developed in our lab

JOSS Publication

Nexarag: Democratizing Reproducible Knowledge Graph Contexts for LLM Research
Published
April 25, 2026
Volume 11, Issue 120, Page 9910
Authors
Thomas J. Kerby
Brigham Young University, Provo, UT
Benjamin N. Fuller
Independent Researcher
Kevin R. Moon
Utah State University, Logan, UT
Editor
Wentao Ye ORCID
Tags
knowledge-graphs RAG LLM Neo4j MCP

GitHub Events

Total
  • Delete event: 13
  • Pull request event: 14
  • Fork event: 1
  • Issues event: 18
  • Watch event: 1
  • Issue comment event: 5
  • Public event: 1
  • Push event: 79
  • Create event: 15
Last Year
  • Delete event: 13
  • Pull request event: 14
  • Fork event: 1
  • Issues event: 18
  • Watch event: 1
  • Issue comment event: 5
  • Public event: 1
  • Push event: 79
  • Create event: 15

Issues and Pull Requests

Last synced: 3 months ago

All Time
  • Total issues: 12
  • Total pull requests: 8
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.13
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 8
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 month
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.13
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ben-n-fuller (11)
  • tjkerby (1)
Pull Request Authors
  • ben-n-fuller (5)
  • tjkerby (3)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.devcontainer/Dockerfile docker
  • python 3.11-slim build
.devcontainer/docker-compose.yml docker
  • neo4j latest
  • ollama/ollama latest
  • rabbitmq 3.11-management
backend/src/api/Dockerfile docker
  • python 3.11-slim build
backend/src/db/Dockerfile docker
  • python 3.11-slim build
backend/src/kg/Dockerfile docker
  • python 3.11-slim build
docker-compose.macos.yml docker
  • neo4j latest
  • nexarag.api latest
  • nexarag.db latest
  • nexarag.frontend latest
  • nexarag.kg latest
  • rabbitmq 3.11-management
docker-compose.yml docker
  • neo4j latest
  • nexarag.api latest
  • nexarag.db latest
  • nexarag.frontend latest
  • nexarag.kg latest
  • ollama/ollama latest
  • rabbitmq 3.11-management
frontend/Dockerfile docker
  • nginx alpine build
  • node 18-alpine build
frontend/package-lock.json npm
  • 1633 dependencies
frontend/package.json npm
  • @angular-devkit/build-angular ~19.0.0 development
  • @angular-devkit/core ~19.0.0 development
  • @angular-devkit/schematics ~19.0.0 development
  • @angular/cli ~19.0.0 development
  • @angular/compiler-cli ~19.0.0 development
  • @angular/language-service ~19.0.0 development
  • @eslint/js ^9.8.0 development
  • @nx/angular 20.3.3 development
  • @nx/eslint 20.3.3 development
  • @nx/eslint-plugin 20.3.3 development
  • @nx/jest 20.3.3 development
  • @nx/js 20.3.3 development
  • @nx/web 20.3.3 development
  • @nx/workspace 20.3.3 development
  • @schematics/angular ~19.0.0 development
  • @swc-node/register ~1.9.1 development
  • @swc/core ~1.5.7 development
  • @swc/helpers ~0.5.11 development
  • @types/cytoscape-avsdf ^1.0.3 development
  • @types/cytoscape-context-menus ^4.1.4 development
  • @types/cytoscape-dagre ^2.3.3 development
  • @types/jest ^29.5.12 development
  • @types/node 18.16.9 development
  • @types/plotly.js-dist-min ^2.3.4 development
  • @typescript-eslint/utils ^8.13.0 development
  • angular-eslint ^19.0.2 development
  • autoprefixer ^10.4.20 development
  • eslint ^9.8.0 development
  • eslint-config-prettier ^9.0.0 development
  • jest ^29.7.0 development
  • jest-environment-jsdom ^29.7.0 development
  • jest-preset-angular ~14.4.0 development
  • nx 20.3.3 development
  • postcss ^8.5.1 development
  • prettier ^2.6.2 development
  • tailwindcss ^3.4.17 development
  • ts-jest ^29.1.0 development
  • ts-node 10.9.1 development
  • tslib ^2.3.0 development
  • typescript ~5.6.2 development
  • typescript-eslint ^8.13.0 development
  • @angular/animations ~19.0.0
  • @angular/common ~19.0.0
  • @angular/compiler ~19.0.0
  • @angular/core ~19.0.0
  • @angular/forms ~19.0.0
  • @angular/platform-browser ~19.0.0
  • @angular/platform-browser-dynamic ~19.0.0
  • @angular/router ~19.0.0
  • @microsoft/signalr ^8.0.7
  • @primeng/themes ^19.0.5
  • angular-plotly.js ^6.0.0
  • clipboard ^2.0.11
  • cytoscape ^3.31.0
  • cytoscape-avsdf ^1.0.0
  • cytoscape-cise ^2.0.0
  • cytoscape-context-menus ^4.2.1
  • cytoscape-cose-bilkent ^4.1.0
  • cytoscape-dagre ^2.5.0
  • cytoscape-elk ^2.3.0
  • katex ^0.16.22
  • marked ^15.0.11
  • ngx-markdown ^19.1.1
  • plotly.js-dist-min ^3.0.1
  • primeicons ^7.0.0
  • primeng ^19.0.5
  • rxjs ~7.8.0
  • zone.js ~0.15.0
backend/poetry.lock pypi
  • 166 dependencies
backend/pyproject.toml pypi
  • accelerate >=1.3.0,<2.0.0
  • bitsandbytes >=0.45.0,<0.46.0
  • ipykernel >=6.27,<7.0
  • ipywidgets >=8.1.5,<9.0.0
  • jupyter >=1.1.1,<2.0.0
  • langchain >=0.3.14,<0.4.0
  • langchain-neo4j >=0.2.0,<0.3.0
  • neo4j >=5.0
  • pandas >=2.0
  • pymupdf4llm >=0.0.15,<0.0.18
  • python >=3.10,<4.0
  • python-dotenv >=1.0.1,<2.0.0
  • requests >=1.0
  • sentence-transformers >=3.3.1,<4.0.0
  • torch >=2.5.1,<3.0.0
  • tqdm >=4.56
  • transformers >=4.48.0,<5.0.0
backend/src/requirements.txt pypi
  • PyMuPDF ==1.25.2
  • PyYAML ==6.0.2
  • SQLAlchemy ==2.0.37
  • aio-pika ==9.5.4
  • aiohappyeyeballs ==2.4.4
  • aiohttp ==3.11.11
  • aiormq ==6.8.1
  • aiosignal ==1.3.2
  • annotated-types ==0.7.0
  • anyio ==4.8.0
  • attrs ==25.1.0
  • bibtexparser *
  • certifi ==2024.12.14
  • charset-normalizer ==3.4.1
  • click ==8.1.8
  • dataclasses-json ==0.6.7
  • fastapi ==0.115.7
  • frozenlist ==1.5.0
  • greenlet ==3.1.1
  • h11 ==0.14.0
  • httpcore ==1.0.7
  • httpx ==0.28.1
  • idna ==3.10
  • jsonpatch ==1.33
  • jsonpointer ==3.0.0
  • langchain ==0.3.15
  • langchain-community *
  • langchain-core ==0.3.31
  • langchain-neo4j ==0.3.0
  • langchain-ollama *
  • langchain-text-splitters ==0.3.5
  • langsmith ==0.3.1
  • matplotlib *
  • multidict ==6.1.0
  • neo4j ==5.26.0
  • neomodel ==5.4.0
  • orjson ==3.10.15
  • pamqp ==3.3.0
  • pandas ==2.2.0
  • propcache ==0.2.1
  • pydantic ==2.10.6
  • pydantic_core ==2.27.2
  • pymupdf4llm ==0.0.17
  • python-multipart ==0.0.20
  • pytz ==2024.2
  • requests ==2.32.3
  • requests-toolbelt ==1.0.0
  • scikit-learn *
  • setuptools ==75.1.0
  • sniffio ==1.3.1
  • starlette ==0.45.3
  • tenacity ==9.0.0
  • torch *
  • tqdm ==4.67.1
  • tzdata ==2025.1
  • urllib3 ==2.3.0
  • uvicorn ==0.34.0
  • websockets ==15.0
  • wheel ==0.44.0
  • yarl ==1.18.3
  • zstandard ==0.23.0
backend/src/setup.py pypi