Skip to main content
Glama
TyrelCB

rag-mcp

by TyrelCB

rag-mcp

Hybrid RAG over Claude Code and Hermes session history on this box, plus an SFT export + LoRA fine-tuning pipeline for distilling frontier-model sessions into small local models.

One persistent service (port 8004, systemd user unit rag-mcp) provides:

  • MCP (streamable HTTP, https://rag.mcp.tyrel.cloud/mcp): rag_search, rag_ingest_text, rag_status — registered in both Claude Code (~/.claude.json) and Hermes (~/.hermes/config.yamlrag-mcp).

  • REST for hooks:

    • POST /api/ingest — enqueue a session transcript (202, background worker)

    • POST /api/context — hybrid search, returns a provenance-tagged context block

    • GET /health — store stats + queue depth

How data flows

Claude Code SessionEnd  ─┐
Hermes on_session_end   ─┼─► POST /api/ingest ─► queue ─► parse ─► junk filter
                         │      (pending_jobs table survives restarts)
                         │   ─► distill (llama.cpp :9090, Qwen3.6-35b-1M) ─► chunk
                         │   ─► scrub secrets ─► embed (llama.cpp :9090, qwen3-embedding-0.6b)
                         │   ─► SQLite: chunks + FTS5 + sqlite-vec
Claude Code UserPromptSubmit ─► POST /api/context ─► vec KNN + BM25 → RRF → boosts
                                 → dedupe (per-session `injected` cache) → inject

Store: ~/.local/share/rag-mcp/rag.db (WAL). Chunk kinds: summary, fact, error_fix, user_prompt, assistant_answer, code, manual.

Hooks (all fail-open — service down means silence, never a blocked prompt):

  • ~/.claude/hooks/claude-rag-context.sh (UserPromptSubmit), claude-rag-ingest.sh (SessionEnd) — wired in ~/.claude/settings.json.

  • ~/.hermes/agent-hooks/hermes-rag-ingest.sh — wired in ~/.hermes/config.yaml hooks: block, allowlisted in ~/.hermes/shell-hooks-allowlist.json.

Related MCP server: knowledge-rag

CLI

rag-mcp serve                     # what systemd runs
rag-mcp status
rag-mcp backfill --source all     # seed from existing history (--no-distill for speed)
rag-mcp ingest <path> --source claude
rag-mcp export --out data/sft-$(date +%Y%m%d) --min-turns 3
rag-mcp reembed --model <router-model-id> --dim <n>   # switch embedding models

Fine-tuning (training/)

  1. rag-mcp export --out data/sft-YYYYMMDDtrain_tools.jsonl (full tool trajectories), train_chat.jsonl (text-only), val splits, stats.json. Quality gates: frontier (claude*) model, ≥N user turns, <30% tool errors, no failure endings, dedup; secrets redacted.

  2. training/run_container.sh python train_lora.py --base Qwen/Qwen3.5-9B \ --data /ws/data/sft-YYYYMMDD/train_tools.jsonl --run-name my-run — bf16 LoRA via TRL/PEFT inside the NGC pytorch container (aarch64; no bitsandbytes). Smoke: --base Qwen/Qwen3-0.6B --max-steps 2.

  3. training/merge_and_export.sh runs/my-run Qwen/Qwen3.5-9B tyrel-tuned-qwen — merge → GGUF (~/llama.cpp) → Q4_K_M → preset in ~/models/presets.ini, served by the llama.cpp router on :9090.

Config (env)

PORT (8004) · RAG_DB · RAG_EMBED_URL/RAG_EMBED_MODEL (llama.cpp router /v1/embeddings, qwen3-embedding-0.6b via ~/models/presets.ini, dim recorded in meta; mismatch refuses startup) · RAG_DISTILL_URL/RAG_DISTILL_MODEL (llama.cpp :9090, Qwen3.6-35b-1M-P1-MTP-NGRAM) · RAG_CONTEXT_TOKENS (1500) · RAG_MIN_SESSION_CHARS (700).

Dev

uv sync && .venv/bin/python -m pytest tests/ -q
F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Persistent memory for Claude Code. Automatically indexes every conversation and provides production-grade hybrid search (BM25 + vectors + reranker) via MCP tools. 100% local, zero config, zero API keys, zero invoice.
    16
    55
    7
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Local RAG system for Claude Code with hybrid search (semantic + BM25), cross-encoder reranking, markdown-aware chunking, and 12 MCP tools. Zero external servers, pure ONNX in-process.
    13
    257
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Persistent memory MCP server that captures coding session context and automatically injects relevant memories into prompts using hybrid search for OpenCode and Claude Code.
    62
    MIT

View all related MCP servers

Related MCP Connectors

  • Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).

  • Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.

  • Search your knowledge bases from any AI assistant using hybrid RAG.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TyrelCB/rag-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server