Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Search and explore the Holy Qur'an with Arabic text, transliteration, and advanced search support.
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer · ✓ Commands checked Nov 13, 2026
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Python (uv) on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Python (uv)
SettingsDeveloperEdit Config
{
"mcpServers": {
"alfanous": {
"command": "uvx",
"args": [
"alfanous3-mcp"
]
}
}
}Use Alfanous - Quranic Search Engine and tell me what you can do for me, then show me one thing✓ If Claude says it is using Alfanous - Quranic Search Engine or shows a Alfanous - Quranic Search Engine tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Alfanous - Quranic Search Engine yet
Alfanous - Quranic Search Engine runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect Alfanous - Quranic Search Engine
Works with Claude Code, with some setup first
Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --scope user alfanous -- uvx alfanous3-mcpYou should see Alfanous - Quranic Search Engine listed as connected
Use Alfanous - Quranic Search Engine and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Alfanous - Quranic Search Engine or shows a Alfanous - Quranic Search Engine tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Use Alfanous - Quranic Search Engine and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Alfanous - Quranic Search Engine or shows a Alfanous - Quranic Search Engine tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Use Alfanous - Quranic Search Engine and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Alfanous - Quranic Search Engine or shows a Alfanous - Quranic Search Engine tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Claude Code
claude mcp add --scope user alfanous -- uvx alfanous3-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"alfanous": {
"command": "uvx",
"args": [
"alfanous3-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"alfanous": {
"command": "uvx",
"args": [
"alfanous3-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"alfanous": {
"type": "stdio",
"command": "uvx",
"args": [
"alfanous3-mcp"
]
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 14, 2026
The registry name was verified with the GitHub account Alfanous-team, which owns the repo
Code last changed 5 months ago
Uses LGPL-3.0
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 5 months ago, and the latest version (1.9.4) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, OpenSEO
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Keyword research, site audits, rank tracking and AI visibility for your AI agent.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Alfanous is a Quranic search engine API that provides simple and advanced search capabilities for the Holy Qur'an. It enables developers to build applications that search through Quranic text in Arabic, with support for Buckwalter transliteration, advanced query syntax, and rich metadata.
Install from PyPI using pip:
$ pip install alfanous3
>>> from alfanous import api
>> api.search(u"الله")
>> api.do({"action": "search", "query": u"الله", "page": 1, "perpage": 10})
>> api.do({"action": "search", "query": u"Allh"})
>> api.do({"action": "suggest", "query": u"الح"})
>> api.correct_query(u"الكتاب")
>> api.do({"action": "show", "query": "translations"})
You can also use the public web service:
Or run your own web service locally (see alfanous_webapi).
Search for phrases:
>>> api.search(u'"الحمد لله"')
Boolean search (AND, OR, NOT):
>>> api.search(u'الصلاة + الزكاة') # AND
>> api.search(u'الصلاة | الزكاة') # OR
>> api.search(u'الصلاة - الزكاة') # NOT
Fielded search:
>>> api.search(u'سورة:يس') # Search in Sura Yasin
>> api.search(u'سجدة:نعم') # Search verses with sajda
Wildcard search:
>>> api.search(u'*نبي*') # Words containing "نبي"
Faceted search (aggregate by fields):
>>> api.do({
... "action": "search", ... "query": u"الله", ... "facets": "sura_id,juz" ... })
api.search(query, **options) - Search Quran versesapi.do(params) - Unified interface for all actions (search, suggest, show, list_values, correct_query)api.correct_query(query, unit, flags) - Get a spelling-corrected version of a queryapi.get_info(category) - Get metadata informationThe underlying Raw output engine is exposed as Engine in alfanous.api (and re-exported from alfanous directly). Use it as a context manager to ensure index resources are properly released:
from alfanous.api import Engine
with Engine() as engine: result = engine.do({"action": "search", "query": u"الله"})
Common parameters for api.do() with action="search":
query (str): Search query (required)unit (str): Search unit - "aya", "word", or "translation" (default: "aya")page (int): Page number (default: 1)perpage (int): Results per page, 1-100 (default: 10)sortedby (str): Sort order - "score", "relevance", "mushaf", "tanzil", "ayalength" (default: "score")reverse (bool): Reverse the sort order (default: False)view (str): Output view - "minimal", "normal", "full", "statistic", "linguistic" (default: "normal")highlight (str): Highlight style - "css", "html", "bold", "bbcode" (default: "css")script (str): Text script - "standard" or "uthmani" (default: "standard")vocalized (bool): Include Arabic vocalization (default: True)translation (str): Translation ID to includerecitation (str): Recitation ID to include (1-30, default: "1")fuzzy (bool): Enable fuzzy search — searches both aya_ (exact) and aya (normalised/stemmed) fields, plus Levenshtein distance matching (default: False). See Exact Search vs Fuzzy Search.fuzzy_maxdist (int): Maximum Levenshtein edit distance for fuzzy term matching — 1, 2, or 3 (default: 1, only used when fuzzy=True).facets (str): Comma-separated list of fields for faceted searchfilter (dict): Filter results by field valuesFor a complete list of parameters and options, see the detailed documentation.
Alfanous provides two complementary search modes that control which index fields are queried.
fuzzy=False)When fuzzy search is off (the default), queries run against the `aya_` field, which stores the fully-vocalized Quranic text with diacritical marks (tashkeel) preserved. This mode is designed for precise, statistical matching:
مَلِكِ and مَالِكِ are treated as different words.# Default exact search — only the vocalized aya_ field is used
>> api.search(u"الله")
>> api.search(u"الله", fuzzy=False)
>> api.search(u'"الْحَمْدُ لِلَّهِ"')
fuzzy=True)When fuzzy search is on, queries run against both the aya_ field (exact matches) and the aya field (a separate index built for broad, forgiving search). At index time the aya field is processed through a richer pipeline:
pystemmer), so different morphological forms of the same root match each other.No heavy operations are performed on the query string at search time; all the linguistic enrichment lives in the index.
Additionally, for each Arabic term in the query, a Levenshtein distance search is performed against the aya_ac field (unvocalized, non-stemmed). This catches spelling variants and typos within a configurable edit-distance budget controlled by fuzzy_maxdist.
# Fuzzy search — aya_ (exact) + aya (normalised/stemmed) + Levenshtein distance on aya_ac
>> api.search(u"الكتاب", fuzzy=True)
>> api.search(u"الكتاب", fuzzy=True, fuzzy_maxdist=2)
>> api.do({
... "action": "search", ... "query": u"مؤمن", ... "fuzzy": True, ... "fuzzy_maxdist": 1, ... "page": 1, ... "perpage": 10 ... })
fuzzy_maxdist | Behaviour |
|---|---|
1 (default) | Catches single-character insertions, deletions, or substitutions |
2 | Broader tolerance — useful for longer words or noisy input |
3 | Maximum supported — use with care as recall increases significantly |
Fuzzy mode is particularly useful when:
Note:
pystemmermust be installed for stemming to take effect (pip install pystemmer). If the package is absent the stem filter degrades silently to a no-op, leaving normalisation and stop-word removal still active.
list_values returns every unique indexed value for a given field. Use it to discover the full vocabulary of searchable fields — for example, all available translation identifiers, part-of-speech tags, or root words — before composing a query.
# Get all unique root values in the index
>> api.do({"action": "list_values", "field": "root"})
>> api.do({"action": "list_values", "field": "trans_id"})
>> api.do({"action": "list_values", "field": "pos"})
>> api.do({"action": "list_values", "field": "lemma"})
Parameters:
field (str): The name of the indexed field whose unique values you want (required).Return value:
A dictionary with a list_values key containing:
field — the requested field name.values — sorted list of unique non-empty indexed values.count — length of the values list.correct_query() uses Whoosh's built-in spell-checker to compare each term in the query against the index vocabulary and replace unknown terms with the closest known alternative. When the query is already valid (all terms appear in the index) the corrected value in the response is identical to the original input.
# Correct a query via the dedicated function
>> api.correct_query(u"الكتاب")
>> api.correct_query(u"الكتب")
>> api.do({"action": "correct_query", "query": u"الكتب", "unit": "aya"})
Parameters:
query (str): The raw query string to correct (required).unit (str): Search unit — currently only "aya" is supported; other units return None (default: "aya").flags (dict): Optional dictionary of additional flags.Return value:
A dictionary with a correct_query key containing:
original — the input query string as provided.corrected — the corrected query string; identical to original when no correction is needed.Alfanous supports advanced query syntax:
"الحمد لله"+ - الصلاة + الزكاة| - الصلاة | الزكاة- - الصلاة - الزكاة* for multiple chars, ? for single char - *نبي*, نعم؟سورة:يس, سجدة:نعم[X الى Y] - رقم_السورة:[1 الى 5]آية_:'مَن'> - >رحيم (searches aya_stem — corpus-derived stem)>> - >>رحيم (searches aya_lemma — all inflections of the same lexeme)>>> - >>>ملك (searches aya_root — all words from the same root){root,type} - {قول،اسم}Control how broadly the search expands morphologically using the derivation_level parameter:
| Level | Value | Index field | Description |
|---|---|---|---|
| 0 | "word" | aya | Exact match only (default) |
| 1 | "stem" | aya_stem | Corpus-derived stem — words sharing the same morphological stem |
| 2 | "lemma" | aya_lemma | Corpus lemma — all inflections of the same lexeme |
| 3 | "root" | `aya_root