
Criterion
Provides semantic search across 6,236 Quran verses and 21,641 authentic Hadiths from major Islamic collections to deliver Islamic guidance based on verified sources.
Provides semantic search across Quran verses and authentic Hadiths for Islamic guidance.
What it does
- Search Quran verses using semantic similarity
- Search authentic Hadith narrations from 6 major collections
- Retrieve specific Quran verses by reference
- Get contextual verses surrounding search results
Best for
About Criterion
Criterion is a community-built MCP server published by balajsaleem that provides AI assistants with tools and capabilities via the Model Context Protocol. Criterion — semantic search across Quranic verses and authentic Hadiths for precise Islamic guidance, study, and researc It is categorized under ai ml, developer tools. This server exposes 3 tools that AI clients can invoke during conversations and coding sessions.
How to install
You can install Criterion in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server supports remote connections over HTTP, so no local installation is required.
License
Criterion is released under the NOASSERTION license.
Tools (3)
Search 6,236 Quran verses using semantic similarity. Returns verses with ±2 surrounding verses for context. Use this for questions about Quranic guidance, themes, or specific topics.
Search 21,641 authentic Hadith narrations from 6 major collections: Sahih Bukhari, Sahih Muslim, Jami` at-Tirmidhi, Sunan Abi Dawud, 40 Hadith Nawawi, and Riyad as-Salihin. Filter by collection and authenticity grade. Use this for questions about Prophet Muhammad's teachings and practices.
Retrieve a specific Quran verse by reference. Use this when you need an exact verse (e.g., Ayat al-Kursi is 2:255).
Criterion - Islamic Knowledge Assistant
An AI-powered Da'i (invitor to Islam) bringing authentic Islamic guidance to seekers worldwide.
Built on the Quran and authentic Hadith. Free forever. For the sake of Allah.
Mission · Features · Tech Stack · Getting Started · MCP Server · Documentation
Mission
Criterion exists to bring authentic Islamic knowledge to anyone seeking truth, using modern technology to make divine guidance accessible to all of humanity — freely, forever, for the sake of Allah alone.
Our Four Pillars
- Truth & Authenticity — Every response is grounded in verified sources (Quran and Sahih Hadith). We never fabricate or hallucinate.
- Fundamentals & Simplicity — We focus on core Islamic teachings that unite. We avoid sectarian debates and controversial topics.
- For the Sake of Allah — Criterion will always be free, with no monetization or organizational promotion. This is Sadaqah Jariyah.
- State of the Art — We use cutting-edge AI to deliver Islamic guidance effectively to the masses.
👉 Read the full mission and vision in MISSION.md
Key Differentiators
Mission-Aligned:
- ✨ Free Forever — No paywalls, no ads, no monetization. Built fi sabilillah (for Allah's sake)
- 📚 Fundamentals-Focused — Avoids sectarian debates, focuses on universally accepted Islamic teachings
- 🛡️ Trust-First — Grade-filtered authentic Hadith (defaults to Sahih), verified sources only
- 🤝 Seeker-Oriented — Designed for curious minds, new Muslims, and students of knowledge
- 🕌 Da'i Personality — Compassionate, knowledgeable, humble guidance
Technical Excellence:
- 🎯 Semantic Search — Natural language queries return relevant verses from 6,236 Quran verses + 21,641 Hadith narrations
- 📖 Contextual Retrieval — Top results include ±2 surrounding verses/narrations for proper context
- 🌐 Multilingual — Read in English (fast) + Slovak (expandable to 10+ languages)
- 🔗 Accurate Citations — All responses include source references with hyperlinks (Quran.com, Sunnah.com)
- ⚡ Fast — <150ms query response time
Features
What Criterion Does
✅ Semantic Quran Search — Ask natural language questions, get relevant verses
✅ Semantic Hadith Search — Search authentic Hadith with grade & collection filtering
✅ Contextual Understanding — Top results include surrounding context for proper meaning
✅ Accurate Citations — Every response cites real sources with hyperlinks
✅ Multilingual Reading — English (fast) + Slovak (single JOIN <200ms)
✅ Shareable URLs — /quran/search?q=patience, /hadith/search?q=charity, and /quran/2/255 with metadata
✅ Real-time Streaming — Progressive response generation with token-by-token delivery
✅ Tool-Based RAG — LLM autonomously decides when to retrieve from Quran/Hadith
Technical Stack
- Next.js 15 App Router with React 19 & Tailwind CSS
- Vercel AI SDK for LLM integration and streaming
- XAI Grok 4 for intelligent natural language responses
- PostgreSQL with pgvector for vector search
- Drizzle ORM for type-safe database access
- Google Gemini text-embedding-004 (768 dimensions)
- HNSW indexes for <150ms similarity search
- Auth.js for authentication
- Deployed on Vercel
How It Works
The RAG Pipeline
User Question
↓
XAI Grok 4 LLM (decides which tools to use)
↓
Tool Selection:
- queryQuran → 6,236 verses (top 7 for chat, top 20 for search)
- queryHadith → 21,641 hadiths from 6 collections (top 3 for chat, top 15 for search, with grade filtering)
↓
Vector Search (768-dim Gemini embeddings)
↓
Context Enhancement (top 3 get ±2 surrounding verses)
↓
LLM Generates Response with Citations
↓
Real-time Stream to User (Server-Sent Events)
Data
-
6,236 Quran verses from all 114 Surahs
- Arabic text (Tanzil Quran)
- English translation (master)
- Slovak translation (expandable)
- 768-dimensional embeddings (Gemini text-embedding-004)
-
21,641 Hadith narrations from 6 major collections (Kutub al-Sittah subset)
- Sahih Bukhari (7,558)
- Sahih Muslim (2,920)
- Jami` at-Tirmidhi (3,951)
- Sunan Abi Dawud (5,274)
- 40 Hadith Nawawi (42)
- Riyad as-Salihin (1,896)
- Grade filtering (Sahih, Hasan, Da'if)
- 768-dimensional embeddings
Performance
- Quran search: <150ms (English), <200ms (translated)
- Hadith search: <150ms
- Vector search: Powered by HNSW indexes
- Streaming: Real-time token-by-token delivery
Getting Started
Prerequisites
- Node.js 18+ and pnpm
- PostgreSQL database (recommend Neon)
- API Keys:
- XAI API Key (for Grok LLM)
- Google AI Studio API Key (for embeddings)
Installation
- Clone the repository
git clone <repo-url>
cd criterion
- Install dependencies
pnpm install
- Set up environment variables
Create a .env.local file:
# Database
POSTGRES_URL=postgresql://...
# AI APIs
XAI_API_KEY=xai-...
GOOGLE_GENERATIVE_AI_API_KEY=...
# Authentication (optional)
AUTH_SECRET=...
- Enable pgvector extension
pnpm db:enable-pgvector
- Run database migrations
pnpm db:migrate
- Ingest Quran data (generates embeddings for 6,236 verses)
pnpm ingest:quran
This will take 10-15 minutes to complete.
- Test the Quran search
pnpm test:quran
- Start the development server
pnpm dev
Your app should now be running on localhost:3000.
Available Commands
Development
pnpm dev # Start dev server
pnpm build # Build for production
pnpm start # Start production server
Database
pnpm db:generate # Generate Drizzle schema
pnpm db:migrate # Run migrations
pnpm db:studio # Open Drizzle Studio (GUI)
Data Ingestion & Testing
# Quran
pnpm clear:quran # Clear all Quran data
pnpm ingest:quran # Ingest Quran verses and generate embeddings
pnpm ingest:quran:slovak # Ingest Slovak translation
pnpm test:quran # Test Quran search functionality
# Hadith
pnpm clear:hadith # Clear all Hadith data
pnpm ingest:hadith # Ingest Hadith and generate embeddings
MCP Server
Criterion exposes its semantic search capabilities through the Model Context Protocol (MCP), allowing AI assistants like Claude Desktop and Cursor to search Quran and Hadith directly.
Quick Setup:
{
"mcpServers": {
"criterion": {
"url": "https://criterion.life/api/mcp"
}
}
}
Available Tools:
search_quran— Search 6,236 Quran versessearch_hadith— Search 21,641 authentic Hadiths from 6 collectionsget_verse— Retrieve specific verse by reference (e.g., "2:255")
👉 Read full MCP documentation in MCP.md
Project Structure
criterion/
├── app/
│ ├── (auth)/ # Authentication routes
│ ├── (chat)/ # Chat interface and API
│ │ └── api/chat/ # Main chat endpoint
│ ├── search/ # Quran search page
│ │ └── api/ # Quran search API
│ ├── hadith/
│ │ └── search/ # Hadith search page and API
│ └── quran/ # Quran reading pages
├── lib/
│ ├── ai/
│ │ ├── embeddings.ts # Core RAG logic
│ │ ├── prompts.ts # Da'i system prompts
│ │ └── tools/
│ │ ├── query-quran.ts # Quran search tool
│ │ └── query-hadith.ts # Hadith search tool
│ └── db/
│ ├── schema.ts # Database schema
│ └── migrations/ # SQL migrations
├── components/
│ ├── chat.tsx # Main chat UI
│ ├── quran-verses.tsx # Quran display component
│ ├── hadith-narrations.tsx # Hadith carousel
│ └── hadith/
│ └── hadith-card.tsx # Reusable hadith card
├── scripts/
│ ├── ingest-quran.ts # Quran data ingestion
│ ├── ingest-hadith.ts # Hadith data ingestion
│ └── test-*.ts # Test scripts
└── data/
├── quran*.txt # Quran translations
└── *-full.json # Hadith collections
Documentation
Understanding Criterion
- MISSION.md — Our vision, values, and deeper purpose. Read this first to understand why we build Criterion.
- CRITERION_DETAILED.md — Comprehensive technical documentation including architecture, implementation history, and performance metrics.
- CRITERION.md — Quick reference guide for setup and key concepts.
Key Sections
| Document | Purpose |
|---|---|
| MISSION.md | Vision, values, pillars, and long-term goals |
| CRITERION_DETAILED.md | Technical architecture, database schema, components, and best practices |
| CRITERION.md | Quick start, commands, and core concepts |
| README.md | Getting started, features, and project overview |
Architecture Overview
components/
├── Chat UI (QuranVerses, HadithNarrations, MessageActions)
---
*README truncated. [View full README on GitHub](https://github.com/balajsaleem/criterion).*
Alternatives
Related Skills
Browse all skillsUI design system toolkit for Senior UI Designer including design token generation, component documentation, responsive design calculations, and developer handoff tools. Use for creating design systems, maintaining visual consistency, and facilitating design-dev collaboration.
Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: "AI SDK", "Vercel AI SDK", "generateText", "streamText", "add AI to my app", "build an agent", "tool calling", "structured output", "useChat".
Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals. Use PROACTIVELY for API documentation or developer portal creation.
Use when working with the OpenAI API (Responses API) or OpenAI platform features (tools, streaming, Realtime API, auth, models, rate limits, MCP) and you need authoritative, up-to-date documentation (schemas, examples, limits, edge cases). Prefer the OpenAI Developer Documentation MCP server tools when available; otherwise guide the user to enable `openaiDeveloperDocs`.
Guide for building TypeScript CLIs with Bun. Use when creating command-line tools, adding subcommands to existing CLIs, or building developer tooling. Covers argument parsing, subcommand patterns, output formatting, and distribution.
Integrate Vercel AI SDK applications with You.com tools (web search, AI agent, content extraction). Use when developer mentions AI SDK, Vercel AI SDK, generateText, streamText, or You.com integration with AI SDK.