fubaritico/vite-mf-monorepo-rag
MCP server as a RAG to ease the interaction with Claude for the migration of vite-mf-monorepo-tmdb
Platform-specific configuration:
{
"mcpServers": {
"vite-mf-monorepo-rag": {
"command": "npx",
"args": [
"-y",
"vite-mf-monorepo-rag"
]
}
}
}Add the config above to .claude/settings.json under the mcpServers key.
Local RAG system for semantic recall of the vite-mf-monorepo legacy codebase from Claude Code.
Allow Claude Code, when working in the Next.js project, to find legacy code and patterns by meaning — not by filename. Instead of searching by file name or regex, Claude Code calls recall("how was token refresh handled?") and gets back the most semantically relevant chunks from the legacy codebase.
1. INDEXING (one-time, then re-run when legacy changes)
pnpm index
→ walks vite-mf-monorepo (349 files)
→ chunks each file into overlapping segments
→ embeds each chunk via nomic-embed-text (Ollama, local)
→ stores chunks + embeddings in MongoDB Atlas (legacy_chunks)
2. RECALL (at query time, triggered by Claude Code)
Claude Code calls the recall() MCP tool with a natural language query
→ query is embedded via nomic-embed-text
→ vector search in MongoDB Atlas finds the top N most similar chunks
→ Claude Code receives file paths + content ranked by semantic similarity| Component | Choice | |---|---| | Embeddings | nomic-embed-text via Ollama (local, 768 dimensions) | | Vector store | MongoDB Atlas M0 — rag-cluster / rag / legacy_chunks | | Vector index | Atlas Vector Search — cosine similarity, filters on filePath, package, app | | MCP server | Local stdio server exposing recall() to Claude Code | | Language | TypeScript |
Ollama must be running locally — it handles all embedding generation.
ollama pull nomic-embed-textollama listOllama must be running in the background before indexing or using recall.
src/
indexer/
index.ts # indexing pipeline entry point
walk.ts # recursive file walker with ignore rules
classify.ts # classifies files as app or package
chunLoading reviews...