rag-ai-scientist
Installable toolkit for local RAG indexing + MCP serving in scientific workflows.
rag-ai-scientist gives you:
- a CLI to initialize and build a local vector database from your papers and notes,
- an MCP server entrypoint for any MCP-compatible AI client,
- packaged skills under
rag_ai_scientist/skills/(workflow checklists—no Git clone needed), - a verification harness (
ras run) — the domain-free index → answer → validate → correct loop with gates, golden sets and promoted skills, - Overleaf Git sync tools (same credentials as your Overleaf MCP) for pushing LaTeX bundles,
- a vendored Overleaf Node MCP server (
overleaf install-node-server) so anyone can run the full read/write/commit/push toolset.
On PyPI, this README contains the complete install and MCP setup workflow. Additional examples are included in the source distribution.
End-user workflow (pip only — no clone required)
You install from PyPI, create any folder for your project, put your research materials there, index once, then connect an MCP-compatible AI client.
The workflow is: install → add files under references/ → init-references → setup-rag → configure any MCP client → update notes and rebuild as needed.
Minimal command sequence (after pip install rag-ai-scientist):
mkdir -p ~/my-ai-scientist/references
cd ~/my-ai-scientist
# Add your own .md / .pdf files under references/
rag-ai-scientist init-references --project-root . --references-dir ./references
rag-ai-scientist setup-rag --project-root . --force
rag-ai-scientist mcp --project-root . # configure this command in your MCP client
query_analysis_knowledgeanswers from your indexed files.get_skillloads packaged skills (e.g.cms-higgs-opendata,overleaf-paper-sync) without indexing anything extra.
You update your AI scientist by editing files under references/ (and configs/references.yaml if paths change), then setup-rag --force again.
Installation
From PyPI (recommended)
python -m pip install rag-ai-scientist
Pinned example:
python -m pip install rag-ai-scientist==0.1.10
PyPI project page: rag-ai-scientist
Verify
rag-ai-scientist --help
python -c "import rag_ai_scientist; print(rag_ai_scientist.__version__)"
From source (maintainers / contributors only)
git clone https://github.com/uzzielperez/rag-ai-scientist.git
cd rag-ai-scientist
git checkout dev # or your working branch
python3 -m venv .venv && source .venv/bin/activate
python -m pip install -e .
Isolation tip: use a dedicated venv (e.g. ~/venvs/rag-ai-scientist) instead of mixing with heavy analysis stacks.
CLI commands
| Command | Purpose |
|---|---|
init-references |
Writes configs/references.yaml pointing at your references directory. |
setup-rag |
Indexes sources into .rag-ai-scientist/rag_db by default (or the configured indexing.data_dir). |
mcp |
Starts the stdio MCP server — point --project-root at the same folder you indexed. |
handoff create / handoff apply |
Package collaborator work into a verified bundle, then preview or apply it from a clean checkout. |
rag-ai-scientist-handoff create / apply |
Lightweight standalone handoff CLI; works without installing RAG/ML dependencies. |
ras init-project / index / run / eval |
Domain-free verification harness (see docs/harness.md). |
ras demo |
Watch the whole harness work end to end in a throwaway project (animated, offline). |
harness list / harness run |
Legacy profile loops — no profiles ship by default (register your own). |
overleaf list-projects / status / sync |
Inspect / push Overleaf projects via Git integration. |
overleaf install-node-server |
Install the vendored Node Overleaf MCP server (full read/write/commit/push tools) — no separate download needed. |
Common flags: --project-root, --force (rebuild index), --references-dir (with init-references).
Verification harness (ras)
The harness is domain-free: point it at any project with a text corpus and a golden set of questions and it runs an offline, gated index → answer → validate → correct loop.
ras init-project --project-root . # scaffold configs/harness.yaml
ras run --project-root . # PLAN/EXECUTE/VALIDATE/CORRECT until every gate passes
ras eval --project-root . # score the run against the golden set
ras skills list --project-root . # skills promoted by passing runs
Legacy MCP tools harness_list_profiles / harness_run expose the profile interface — no profiles ship by default; register one with harness.registry.register. Full reference: docs/harness.md.
Prefer watching to reading: ras demo is an animated terminal show that drives the real ras CLI against a throwaway project — scaffold → corpus → index → the gated loop → eval → skill → report — entirely offline, then deletes the project afterwards. It ships inside the wheel, so pip install is all you need: ras demo --fast for instant output (CI mode), ras demo --keep to explore the demo project afterwards, ras demo --slow (or --speed 3) to watch it at half or third speed.
Learning it: docs/TUTORIAL.md walks the flow end to end with the output you should see and a gate-by-gate failure playbook. The same walkthrough ships as a packaged skill — any MCP client can load it with get_skill("harness-tutorial").
Overleaf (built-in + companion MCP)
export OVERLEAF_PROJECTS_CONFIG="$HOME/.config/overleaf-mcp/projects.json"
rag-ai-scientist overleaf list-projects
rag-ai-scientist overleaf sync --bundle-dir output/overleaf_bundle --dry-run
# Anyone can install the companion Node MCP server straight from the wheel:
rag-ai-scientist overleaf install-node-server --dest ~/.config/overleaf-mcp
npm install --prefix ~/.config/overleaf-mcp
MCP tools: overleaf_list_projects, overleaf_status, overleaf_list_files, overleaf_read_file, overleaf_sync_bundle. Skill: overleaf-paper-sync.
Keep the Node Overleaf MCP for section-level edits; use these Python tools for list/read/bundle push.
Overleaf Node MCP pickup (no separate download)
The full read/write/commit/push server ships inside the wheel as
rag_ai_scientist/overleaf/node/ (overleaf-mcp-server.js +
overleaf-git-client.js, needs @modelcontextprotocol/sdk). After
pip install rag-ai-scientist:
rag-ai-scientist overleaf install-node-server --dest ~/.config/overleaf-mcp
npm install --prefix ~/.config/overleaf-mcp
Then point any MCP client at it:
{
"mcpServers": {
"overleaf": {
"command": "node",
"args": ["/Users/YOU/.config/overleaf-mcp/overleaf-mcp-server.js"],
"env": {"OVERLEAF_PROJECTS_CONFIG": "/Users/YOU/.config/overleaf-mcp/projects.json"}
}
}
}
Tools: list_files, read_file, write_file, get_sections,
get_section_content, status_summary, list_projects, delete_file,
commit_changes, push_changes, git_status, upload_file.
Connect an MCP client
The server uses standard MCP over stdio. In VS Code with GitHub Copilot, add this to .vscode/mcp.json (use absolute paths):
{
"servers": {
"rag-ai-scientist": {
"type": "stdio",
"command": "/absolute/path/to/venv/bin/rag-ai-scientist",
"args": ["mcp", "--project-root", "/absolute/path/to/my-ai-scientist"]
}
}
}
Other MCP clients use the same command and arguments, though their configuration file/schema may differ. For clients using an mcpServers object (including Cursor, Cline, and Claude Desktop), use:
{
"mcpServers": {
"rag-ai-scientist": {
"command": "/absolute/path/to/venv/bin/rag-ai-scientist",
"args": ["mcp", "--project-root", "/absolute/path/to/my-ai-scientist"]
}
}
}
See Getting started for setup details and the optional .rag-ai-scientist/.env file for LLM keys. Existing projects with an index under .cursor/rag_db continue to work without moving it.
Packaged skills and examples
- Skills ship inside the installed package. Access via MCP
get_skill:cms-higgs-opendata— CMS Run-1 Higgs open-data replicationoverleaf-paper-sync— Overleaf Git sync + MCP toolsharness-tutorial— guided first run of therasverification harnessrag-setupand other project workflow skills
- Additional
get_skilland client configuration examples are included indocs/examples/README.mdin the source distribution.
Harness worked example (offline)
The golden-set format and an example question set ship in evals/golden/. The corpus is yours: drop PDFs or Markdown into docs/references/papers/. Nothing here needs a model, an API key or a network connection.
ras demo --fast # self-contained: builds its own 4-document corpus in a temp dir and clears every gate
ras run --project-root . # index → answer → validate → correct; all gates must pass
ras eval --project-root . # tier pass rates against the golden set
See docs/harness.md for configuration, gates, remedies and skills.
Running agents beside a separate lab environment
If training runs use a different conda/venv than rag-ai-scientist:
- Install
rag-ai-scientistin its own small venv. - Keep
--project-rootpointed at your research folder. - Run heavy jobs via explicit wrappers (
conda run, scripts) from the agent — see Runbook for patterns.
Repository layout (when developing from source)
rag_ai_scientist/
cli.py # CLI entrypoint
mcp_server.py # MCP server (RAG + skills + harness + Overleaf)
harness/ # Domain-free verification harness (ras run loop)
overleaf/ # Git-based Overleaf client
skills/ # Packaged skills (ship in wheel)
rag/
index_documents.py # Indexer used by setup-rag
configs/
references.example.yaml # Example only — users run init-references instead
overleaf.example.yaml # Overleaf sync template
docs/
GETTING_STARTED.md # Primary user guide (pip-only path)
examples/ # Maintainer docs / optional narratives
Browse on GitHub: docs/.
Development & PyPI releases
Contributor workflow and release steps: DEV_README.md.
License
- Open-source: AGPL-3.0-or-later (
LICENSE) - Commercial: see
LICENSE-COMMERCIAL.md
Security notes
- Never commit secrets (
.env, API keys). - Treat
.rag-ai-scientist/rag_db(or your configured data directory) as sensitive if your indexed PDFs are sensitive. Legacy.cursor/rag_dbindexes are also supported.
Metadata
Release files for rag-ai-scientist 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| rag_ai_scientist-0.2.2.tar.gz | 117.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rag_ai_scientist-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 229.3 kB
Release files / rag_ai_scientist-0.2.2.tar.gz
| Download URL | rag_ai_scientist-0.2.2.tar.gz |
|---|---|
| Size | 117.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f88c0c100bc7f88bd5981f87109767f347198cc70f8e82bfb05e76e034326204
|
|
BLAKE2b-256 checksum How to use checksums |
ca89fd87b9cc05c5893d12e5f90ac860f10a5d7e7419a2342e23771acda2e7e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.2
|
Release files / rag_ai_scientist-0.2.2-py3-none-any.whl
| Download URL | rag_ai_scientist-0.2.2-py3-none-any.whl |
|---|---|
| Size | 112.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f1659be4b587cfdf4da5f28fe16ab1edf561d9a4551df21ca3b6e27af9a15956
|
|
BLAKE2b-256 checksum How to use checksums |
4f30ca6a782e95eaf8f7173b464eca2eaeda2229e220a622b2f86ff42b6ad769
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.2
|
Security for rag-ai-scientist 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.