Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Curated Islamic MCP: Quran (Arabic + Pickthall), 440 du'as, 99 Names, crisis-aware.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://sakina-mcp.fly.dev/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"islamic-knowledge": {
"command": "npx",
"args": [
"-y",
"@asksakina/islamic-knowledge-mcp",
"--stdio"
]
}
}
}Run this in your terminal
claude mcp add --transport http islamic-knowledge https://sakina-mcp.fly.dev/mcpclaude mcp add islamic-knowledge -- npx -y @asksakina/islamic-knowledge-mcp --stdioPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"islamic-knowledge": {
"url": "https://sakina-mcp.fly.dev/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"islamic-knowledge": {
"command": "npx",
"args": [
"-y",
"@asksakina/islamic-knowledge-mcp",
"--stdio"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"islamic-knowledge": {
"type": "http",
"url": "https://sakina-mcp.fly.dev/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"islamic-knowledge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@asksakina/islamic-knowledge-mcp",
"--stdio"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://sakina-mcp.fly.dev/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
get_quran_verseReturns one Quran verse by surah and ayah number: Tanzil Uthmani Arabic and Pickthall English, with citation. Quote the Arabic exactly; do not paraphrase either text.
get_duaReturns du'as from a curated du'a corpus for a life context (e.g. anxiety, travel, gratitude), with source and grading where recorded. Show any crisis_resource block verbatim.
get_name_of_allahReturns one of the 99 Names of Allah by number (1-99) or by name: Arabic, transliteration, meaning, reflection and Quranic references. Quote the Arabic exactly.
find_versesSearches AskSakina's thematic index for Quran verses by topic keyword. Returns reference, Tanzil Arabic and Pickthall English. Quote the Arabic exactly.
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 6, 2026
The registry name was verified against the domain asksakina.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 269 ms (HTTP 200)
No sign-in needed
Read 4 tool descriptions and found no hidden instructions to the AI
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.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (2.7.0) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ 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.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
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.
Specialist-AI-reviewed Islamic knowledge for AI agents. Quranic verses, a curated du'a corpus, and the 99 Names of Allah — reviewed across the four mainstream Sunni schools (Hanafi, Maliki, Shafi'i, Hanbali) through AskSakina's structured specialist-AI review chain, which is not a substitute for a qualified scholar. Every response is wrapped in a presentation contract so agents cannot silently misrepresent the content.
Architectural posture: *"AskSakina ships records, agents ship answers."* The server is a reference library, not an advisor. Each response includes a _sakina_meta envelope with disclaimer, LLM directives, presentation contract, and educational context. What the calling agent does with the record is its responsibility: every response carries explicit instructions for handling it, but the server cannot make another AI follow them.
Four lookup tools, four learning-journey prompts and seven resources over the Model Context Protocol. Every record is sourced from AskSakina's main app (asksakina.com), so each MCP release matches what the public app surfaced when it was built.
| Tool | What it does |
|---|---|
get_quran_verse | Verbatim Quranic verse lookup by surah:ayah |
get_dua | Curated du'a corpus lookup by life context (anxiety, morning, travel, ...) |
get_name_of_allah | One of the 99 Names by number (1–99) or string |
find_verses | Quran verses by topic keyword, from AskSakina's thematic verse index |
understand_a_verse (prompt) | Fetch one verse by surah and ayah, then present it with its teaching notes, if any |
explore_names_of_allah (prompt) | Fetch one Name by number (1 if none is given), then present it and offer the next Name |
what_muslims_believe (prompt) | Surah Al-Ikhlas, the Name Ar-Rahman, a reviewed overview of the articles of faith and the pillars, and Quran 2:256 |
first_steps_new_muslim (prompt) | For a new Muslim, one step at a time (1-4): One God and His mercy, what has passed is forgiven, prayer step by step, your people |
sakina://about (resource) | Read-once briefing — seven core directives plus three Gem-cleared dawah texts (Quran preservation, hadith grading, madhab attribution) |
sakina://learn/... (resources, 2.5.0) | The six reviewed texts the two journeys read, served verbatim |
get_quran_verseVerbatim Quranic verse lookup by surah:ayah. Returns the canonical AskSakina envelope with Arabic text, translation, surah name (Arabic + English), and the quran presentation contract, which instructs the agent not to paraphrase, to cite surah:ayah, and to label the translation "Translation of the Meaning".
Parameters
| Name | Type | Required | Notes | ||||
|---|---|---|---|---|---|---|---|
surah | 1..114 | yes | Surah number | ||||
ayah | 1..286 | yes | Ayah within the surah | ||||
locale | 'en' \ | 'id' \ | 'ur' \ | 'ar' \ | 'tr' | no, defaults en | Translation language. ar returns the Arabic original with the Pickthall English alongside. Urdu, Indonesian and Turkish translations are not yet available (pending licences): ur, id and tr return Pickthall English, translation_language: "en" and a translation_note saying so |
Example response (truncated)
{
"_sakina_meta": { "version": "1.0", "content_type": "quran_verse", "presentation_contract": { "quran": { "no_paraphrase": true, "require_citation": "surah:ayah", "translation_label": "Translation of the Meaning" } } /* … */ }, "content": { "surah": { "number": 2, "name_arabic": "البقرة", "name_english": "Al-Baqarah" }, "ayah": 186, "arabic": "وَإِذَا سَأَلَكَ عِبَادِي عَنِّي فَإِنِّي قَرِيبٌ ۖ …", "translation": "And when My servants ask you concerning Me — indeed I am near. …" } }
get_duaReturns du'as matching a life context (anxiety, grief, morning, travel, etc.). Context is resolved against canonical category slugs, an alias map, and tag dimensions. A natural phrase ("grief after losing my mother") also resolves: the server normalises it and matches known category, alias, tag and synonym words and a few multi-word phrases inside it, deterministically and without AI. content.matched_by says how it resolved. Grief (WO#386): a query that names the querier's own grief ("I lost my mother", "grief after losing my mother", "my father passed away", "bereaved") resolves to context bereaved; a funeral rite or the person who has died ("funeral", "dua for the deceased", "visiting my mother's grave") stays deceased. Parents (WO#430): a query that names a parent (mother, mum, mom, father, dad, parent, parents) together with a death word (late, dead, passed, grave, burial, janaza, janazah, cemetery, funeral, died, death, deceased, lost) takes this grief route and never returns mothers or fathers; "miss" with a parent and no death word returns only the du'as that suit a living or a deceased parent; a plain parent query ("my mother", "parents") is unchanged. A death word on its own, such as "grave", resolves to nothing. bereaved returns seven du'as ruled by the fiqh reviewer (Gem 4), in its order, with a teaching_note on the masculine forms in the Arabic, and always carries at least the soft support note. Crisis detection runs first, on the full raw input. Self-harm and abuse get separate blocks (crisis_type): the abuse block carries domestic-abuse lines and an abuse-specific directive. On any hard crisis (self-harm or abuse) no du'as are returned: content_type is crisis_resource_only and the crisis resource is the whole response. Each block lists 24/7 lines first and states the hours of any limited-hours line. If the context contains a crisis keyword (matched against the main app's `detectCrisis` keyword list), the response includes a mandatory `crisis_resource` block with the appropriate hotline and prosocial directive.
Parameters
| Name | Type | Required | Notes | ||||
|---|---|---|---|---|---|---|---|
context | string | one of context or id | Free-form life context | ||||
id | string | one of context or id | A du'a id taken from a related reference in an earlier response (WO#390) | ||||
locale | 'en' \ | 'id' \ | 'ur' \ | 'ar' \ | 'tr' | no, defaults en | Du'a records are English for every locale; a crisis resource is in the request locale (2.2.1); with the locale omitted or en, a hard crisis resource is in the language of the matched crisis keyword (id, ur, ar or tr; 2.2.2) |
audience | 'curious' \ | 'revert' \ | 'practising' | no | From the user's own self-description only. Echoed as teach.audience; omitted, the teach block says unknown (2.2.0) | ||
limit | integer 1 to 10 | no, defaults 3 | How many records a context lookup returns (2.2.0). The bereaved set and the abuse allowlist are always returned whole. Ignored with id | ||||
offset | integer, 0 or more | no, defaults 0 | How many records to skip before the page, for paging with limit (2.2.0). Ignored with id and on bereaved |
Result shaping (2.2.0). A context lookup returns limit records of the route's existing order (bundle order; Gem 4's fixed order on bereaved), starting at offset. When more follow the page, content.total_available gives the whole count, content.truncated is true, and content.more carries the note "N more du'as for this context; call get_dua with offset and limit to see them." The same note is in CRITICAL_RULES. content.offset is present when it is not 0. Every record of a category is reachable by paging.
Example response (truncated)
{
"_sakina_meta": { "content_type": "dua_collection", "presentation_contract": { "hadith": { "require_grading": "per_record" /* true when every record is graded */ } } /* … */ }, "content": { "context": "stress-anxiety", "duas": [ { "dua_block": "Arabic: …\nTransliteration: …\nTranslation: …\nOrigin: Quran 21:87\nSource: Quran 21:87\nGrading: Quranic", "title": "Dua to Deal with Distress & Depression", "arabic": "وَذَا ٱلنُّونِ إِذ ذَّهَبَ …", "source": "Quran 21:87", "grading": "Quranic", "grading_status": "quranic", "origin": "quran", "quran_citation": "Quran 21:87" }, { "title": "Dua to Remove Sorrow & Grief:", "source": "Source not recorded in AskSakina corpus", "grading": "Not graded in AskSakina corpus", "grading_status": "not_recorded" /* … */ } /* … */ ], "total_results": 3, "total_available": 12, "truncated": true, "more": "9 more du'as for this context; call get_dua with offset and limit to see them.", "grading_summary": { "quranic": 2, "graded": 0, "not_a_narration": 0, "not_recorded": 1 } } // crisis_resource block added if context triggers the crisis keyword list }
Grading status. Every du'a record carries grading_status: quranic (the text is a Quranic verse or clause), graded (a hadith grading is recorded), not_a_narration (a general supplication, not a narration from the Prophet; it carries a grading_directive saying so), or not_recorded (the AskSakina corpus holds no grading for it). Most of the corpus is not_recorded today; the Source and Grading lines say so rather than implying a grading exists. Du'as whose Quranic reference has been verified carry origin: "quran" and a quran_citation, and their Arabic is the Tanzil Uthmani text resolved from AskSakina's scripture module at bundle time.
get_name_of_allahLook up by number (1–99) or string (transliteration, Arabic, or English meaning). Returns Arabic, transliteration, locale-aware meaning, reflection, and Quranic references.
Parameters — one of:
| Name | Type | Notes |
|---|---|---|
number | 1..99 | Primary lookup |
name | string | Transliteration, Arabic, or English meaning |
Plus optional locale (tr returns the English meaning and reflection).
Example response (truncated)
{
"_sakina_meta": { "content_type": "name_of_allah" /* … */ }, "content": { "number": 29, "arabic": "الحَكَم", "transliteration": "Al-Hakam", "meaning": "The Judge", "reflection": "Allah is the absolute Judge…", "quran_references": ["6:114", "13:41"] } }
find_versesTopic lookup beside get_quran_verse's reference lookup (WO#386). The query is normalised and each word is matched to a theme of AskSakina's thematic verse index (anxiety, gratitude, patience, trust, grief, hope, forgiveness, morning, friday, ramadan, encouragement), by theme name or a fixed synonym list. Deterministic: no embedding, no AI call.
2.5.0 (WO#495) adds fifteen themes, each with its verses in a ruled order: companionship, family_and_marriage, hereafter, parents, night_and_rest, character, justice, protection, quran_and_knowledge, faith_and_guidance, prophets_and_creation, seasons, provision, healing and certainty. Companionship (loneliness) carries the soft support block, as grief does, and no teaching content. Healing carries one more directive: the verses are spiritual comfort and do not replace medical care. A query that carries an abuse word the crisis detector does not read alone ("abuse", "abusive", "violence" and their forms) reaches none of the fifteen and is answered as 2.4 answered it. Since 2.5.1 (WO#500), disclosure phrases built on t
Only the beginning is shown; read the rest in the repo