madarco/ragrabbit
Project Overview
RagRabbit
Self-hosted AI site search, LLMs.txt generator, and MCP server that crawls and indexes your website content.
True Intent (AI Assessment)
Provide a self-hostable turnkey stack for AI site search, chat widgets, llms.txt generation, and an MCP server backed by a crawler and pgvector-based RAG pipeline.
README Accuracy
Notes
Source code (routes for /llms.txt, /mcp/api/retrieve, chat, indexing dashboard, RAG package, pgvector db package) matches the features advertised in the README. No suspicious network calls or obfuscation observed.
RagRabbit is a self-hosted, open-source Next.js application that crawls a website, indexes its pages using vector embeddings, and exposes that content through several AI-oriented interfaces: an embeddable chat widget, an instant search widget, an auto-generated llms.txt / llms-full.txt file, and an MCP (Model Context Protocol) server for use in tools like Claude Desktop and Cursor. The codebase is a pnpm/Turborepo monorepo with a main SaaS app (apps/saas), a marketing site (apps/web), and shared packages for auth, database, RAG logic, jobs, design system, and the MCP server.
The problem it solves is making a website's content queryable by both humans and LLMs. Site owners often want an AI chat/search on their docs, and increasingly want to publish an llms.txt so that external AI tools can consume their content. RagRabbit bundles the crawler, vector store, retrieval pipeline, chat UI, and MCP endpoint into one deployable unit so operators don't have to stitch together OpenAI, a vector DB, a crawler, and a UI themselves.
The intended users are developers, technical writers, and documentation owners who want a one-click Vercel deployment (with Vercel Postgres + pgvector) that provides site search, an embeddable chat button/widget, an admin dashboard for indexing jobs and API keys, and an MCP endpoint. Usage flow: deploy, add a URL/crawl target in the dashboard, run the indexing job, then embed the widget snippet or point Claude/Cursor at the MCP server.
Technically it is built on Next.js 15 with React 19 and the Vercel AI SDK, using LlamaIndex for retrieval, Drizzle ORM against PostgreSQL with the pgvector extension for embeddings, and NextAuth (v5 beta) for authentication (username/password or Resend email login). OpenAI is used for embeddings and chat completions. Background indexing is handled either in-browser via a frontend job processor or via Trigger.dev. Routes are organized by feature (api, auth, llms.txt, mcp, rag/chat, dashboard) using Next.js route groups, and shared logic lives in workspace packages (@repo/rag, @repo/db, @repo/auth, @repo/jobs, @repo/core, @repo/design, plus a publishable @ragrabbit/mcp package).
No red flags observed. Code structure is consistent with the stated purpose, dependencies are mainstream, and the MIT license and public npm package for the MCP server match the README's claims. Only minor caveat: many beta/canary versions (next-auth beta, shadcn canary) which is normal for a fast-moving AI stack but worth noting for production use.
| Languages | TypeScript, JavaScript, Shell, MDX, CSS |
| Runtime | Node.js 20+ (engines >=18) |
| Framework | Next.js 15 (App Router) with Turborepo monorepo |
| Database | PostgreSQL with pgvector (via Drizzle ORM, @vercel/postgres) |
| Package Manager | pnpm 8.15.6 |
| Key Dependencies | next, react 19, @ai-sdk/openai, ai (Vercel AI SDK), llamaindex, drizzle-orm, pgvector, next-auth 5, @assistant-ui/react, zod |
| Build Tool | Turbo (turborepo) + Next.js build |
| Test Framework | @antiwork/shortest (E2E); no unit test framework detected |