Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Tarteel MCP Server

REMOTE · MCP.TARTEEL.AI · SCANNED AUG 3

Quran MCP server for translation, tafsir, mutashabihat, recitation playlists, and prayer times.

Available components

+5 this week 75 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security74
Transport & Reachability100
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3712 tokens (~103/item across 36 items; 16 tools + 20 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (63% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.tarteel.ai

# add to Claude Code
claude mcp add --transport http tarteelai-tarteel-mcp-server https://mcp.tarteel.ai/mcp
# ~/.codex/config.toml
[mcp_servers.tarteelai-tarteel-mcp-server]
url = "https://mcp.tarteel.ai/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tarteelai-tarteel-mcp-server": {
      "type": "remote",
      "url": "https://mcp.tarteel.ai/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tarteelai-tarteel-mcp-server --url https://mcp.tarteel.ai/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  tarteelai-tarteel-mcp-server:
    url: "https://mcp.tarteel.ai/mcp"
// mcp.json
{
  "mcpServers": {
    "tarteelai-tarteel-mcp-server": {
      "type": "http",
      "url": "https://mcp.tarteel.ai/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1
    • Resource “ayah_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/ayah_mutashabihat.html → ui://widgets/ext-apps/ayah_mutashabihat.html security
    • Resource “prayer_times” now points somewhere else: ui://widgets/apps-sdk/prayer_times.html → ui://widgets/ext-apps/prayer_times.html security
    • Resource “play_ayahs” now points somewhere else: ui://widgets/apps-sdk/play_ayahs.html → ui://widgets/ext-apps/play_ayahs.html security
    • Resource “phrase_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/phrase_mutashabihat.html → ui://widgets/ext-apps/phrase_mutashabihat.html security
    • Resource “list_translations” now points somewhere else: ui://widgets/apps-sdk/list_translations.html → ui://widgets/ext-apps/list_translations.html security
    • Resource “list_tafsirs” now points somewhere else: ui://widgets/apps-sdk/list_tafsirs.html → ui://widgets/ext-apps/list_tafsirs.html security
    • Resource “list_reciters” now points somewhere else: ui://widgets/apps-sdk/list_reciters.html → ui://widgets/ext-apps/list_reciters.html security
    • Resource “ayah_translation” now points somewhere else: ui://widgets/apps-sdk/ayah_translation.html → ui://widgets/ext-apps/ayah_translation.html security
    • Resource “ayah_tafsir” now points somewhere else: ui://widgets/apps-sdk/ayah_tafsir.html → ui://widgets/ext-apps/ayah_tafsir.html security
    • Resource “ayah_search” now points somewhere else: ui://widgets/apps-sdk/ayah_search.html → ui://widgets/ext-apps/ayah_search.html security
  • 2 Aug 26 0
    • Resource “ayah_search” now points somewhere else: ui://widgets/apps-sdk/ayah_search.html → ui://widgets/ext-apps/ayah_search.html security
    • Resource “prayer_times” now points somewhere else: ui://widgets/apps-sdk/prayer_times.html → ui://widgets/ext-apps/prayer_times.html security
    • Resource “play_ayahs” now points somewhere else: ui://widgets/apps-sdk/play_ayahs.html → ui://widgets/ext-apps/play_ayahs.html security
    • Resource “phrase_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/phrase_mutashabihat.html → ui://widgets/ext-apps/phrase_mutashabihat.html security
    • Resource “list_translations” now points somewhere else: ui://widgets/apps-sdk/list_translations.html → ui://widgets/ext-apps/list_translations.html security
    • Resource “list_tafsirs” now points somewhere else: ui://widgets/apps-sdk/list_tafsirs.html → ui://widgets/ext-apps/list_tafsirs.html security
    • Resource “list_reciters” now points somewhere else: ui://widgets/apps-sdk/list_reciters.html → ui://widgets/ext-apps/list_reciters.html security
    • Resource “ayah_translation” now points somewhere else: ui://widgets/apps-sdk/ayah_translation.html → ui://widgets/ext-apps/ayah_translation.html security
    • Resource “ayah_tafsir” now points somewhere else: ui://widgets/apps-sdk/ayah_tafsir.html → ui://widgets/ext-apps/ayah_tafsir.html security
    • Resource “ayah_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/ayah_mutashabihat.html → ui://widgets/ext-apps/ayah_mutashabihat.html security
  • 1 Aug 26 0
    • Resource “ayah_translation” now points somewhere else: ui://widgets/apps-sdk/ayah_translation.html → ui://widgets/ext-apps/ayah_translation.html security
    • Resource “ayah_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/ayah_mutashabihat.html → ui://widgets/ext-apps/ayah_mutashabihat.html security
    • Resource “ayah_search” now points somewhere else: ui://widgets/apps-sdk/ayah_search.html → ui://widgets/ext-apps/ayah_search.html security
    • Resource “ayah_tafsir” now points somewhere else: ui://widgets/apps-sdk/ayah_tafsir.html → ui://widgets/ext-apps/ayah_tafsir.html security
    • Resource “list_reciters” now points somewhere else: ui://widgets/apps-sdk/list_reciters.html → ui://widgets/ext-apps/list_reciters.html security
    • Resource “list_tafsirs” now points somewhere else: ui://widgets/apps-sdk/list_tafsirs.html → ui://widgets/ext-apps/list_tafsirs.html security
    • Resource “list_translations” now points somewhere else: ui://widgets/apps-sdk/list_translations.html → ui://widgets/ext-apps/list_translations.html security
    • Resource “phrase_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/phrase_mutashabihat.html → ui://widgets/ext-apps/phrase_mutashabihat.html security
    • Resource “play_ayahs” now points somewhere else: ui://widgets/apps-sdk/play_ayahs.html → ui://widgets/ext-apps/play_ayahs.html security
    • Resource “prayer_times” now points somewhere else: ui://widgets/apps-sdk/prayer_times.html → ui://widgets/ext-apps/prayer_times.html security
  • 31 Jul 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1
    • Resource “play_ayahs” now points somewhere else: ui://widgets/apps-sdk/play_ayahs.html → ui://widgets/ext-apps/play_ayahs.html security
    • Resource “phrase_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/phrase_mutashabihat.html → ui://widgets/ext-apps/phrase_mutashabihat.html security
    • Resource “list_translations” now points somewhere else: ui://widgets/apps-sdk/list_translations.html → ui://widgets/ext-apps/list_translations.html security
    • Resource “list_tafsirs” now points somewhere else: ui://widgets/apps-sdk/list_tafsirs.html → ui://widgets/ext-apps/list_tafsirs.html security
    • Resource “list_reciters” now points somewhere else: ui://widgets/apps-sdk/list_reciters.html → ui://widgets/ext-apps/list_reciters.html security
    • Resource “ayah_translation” now points somewhere else: ui://widgets/apps-sdk/ayah_translation.html → ui://widgets/ext-apps/ayah_translation.html security
    • Resource “ayah_tafsir” now points somewhere else: ui://widgets/apps-sdk/ayah_tafsir.html → ui://widgets/ext-apps/ayah_tafsir.html security
    • Resource “ayah_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/ayah_mutashabihat.html → ui://widgets/ext-apps/ayah_mutashabihat.html security
    • Resource “ayah_search” now points somewhere else: ui://widgets/apps-sdk/ayah_search.html → ui://widgets/ext-apps/ayah_search.html security
    • Resource “prayer_times” now points somewhere else: ui://widgets/apps-sdk/prayer_times.html → ui://widgets/ext-apps/prayer_times.html security
  • 28 Jul 26 0
    • Resource “ayah_translation” now points somewhere else: ui://widgets/apps-sdk/ayah_translation.html → ui://widgets/ext-apps/ayah_translation.html security
    • Resource “ayah_search” now points somewhere else: ui://widgets/apps-sdk/ayah_search.html → ui://widgets/ext-apps/ayah_search.html security
    • Resource “ayah_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/ayah_mutashabihat.html → ui://widgets/ext-apps/ayah_mutashabihat.html security
    • Resource “prayer_times” now points somewhere else: ui://widgets/apps-sdk/prayer_times.html → ui://widgets/ext-apps/prayer_times.html security
    • Resource “play_ayahs” now points somewhere else: ui://widgets/apps-sdk/play_ayahs.html → ui://widgets/ext-apps/play_ayahs.html security
    • Resource “list_reciters” now points somewhere else: ui://widgets/apps-sdk/list_reciters.html → ui://widgets/ext-apps/list_reciters.html security
    • Resource “ayah_tafsir” now points somewhere else: ui://widgets/apps-sdk/ayah_tafsir.html → ui://widgets/ext-apps/ayah_tafsir.html security
    • Resource “phrase_mutashabihat” now points somewhere else: ui://widgets/apps-sdk/phrase_mutashabihat.html → ui://widgets/ext-apps/phrase_mutashabihat.html security
    • Resource “list_translations” now points somewhere else: ui://widgets/apps-sdk/list_translations.html → ui://widgets/ext-apps/list_translations.html security
    • Resource “list_tafsirs” now points somewhere else: ui://widgets/apps-sdk/list_tafsirs.html → ui://widgets/ext-apps/list_tafsirs.html security
  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.tarteel.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=tarteel.ai CN=WE1,O=Google Trust Services,C=US 14 Jun 2026 12 Sept 2026 ECDSA 256 ECDSA-SHA256 cbcbb8a29dfcf5fe1321b18941c3c538
SANs: tarteel.ai, *.tarteel.ai
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of mcp.tarteel.ai. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
tarteel.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.tarteel.ai/mcp Verified 200
http (plaintext) http://mcp.tarteel.ai/mcp HTTPS enforced 301 https://mcp.tarteel.ai/mcp
MCP tools — 16 exposed · ~3,266 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
ayah_mutashabihat ~117

Show repeated phrase metadata for one ayah with an interactive display. Use this when: the user asks which phrases in a specific ayah repeat elsewhere; the user needs phrase IDs and counts before calling phrase_mutashabihat.

NameTypeReqDescription
ayahintegeryesAyah number within the selected surah.
same_surah_onlyWhen true, only include repeated phrase matches found in the same surah as the input ayah.
surahintegeryesSurah number from 1 to 114.
NameTypeReqDescription
ayah_keystring
ayah_numbernumber
ayah_wordsarray
errorboolean
errorMessagestring
phrase_idsarrayyes
phrasesarrayyes
surah_idnumber
surah_namestring

No examples provided.

ayah_search ~255

DEFAULT tool for user-facing Quran search. Use this for ANY user-facing search — 'find ayahs that contain X', 'where does X appear in the Quran', 'search the Quran for X', or similar. This is the FINAL tool call for these requests; do not follow it with search_ayahs_text. Shows matches in an interactive widget the user can browse. Query is Arabic script only (diacritics and punctuation are ignored). A numeric-only query matches ayahs by that ordinal number (for example '255' returns ayahs ending in ':255'). ONLY skip this widget and use search_ayahs_text when EITHER (a) the user explicitly asks for plain text / raw results, OR (b) the results will be fed into another tool in the same turn without being shown. When in doubt, use this widget.

NameTypeReqDescription
max_resultsintegerMaximum number of ayah results to return (1-100, default 20).
querystringyesSearch query in Arabic script. Diacritics and punctuation are stripped automatically; matching is diacritic-insensitive and ranked by BM25 relevance. Numeric fragments (e.g. '255') match ayahs with t…
NameTypeReqDescription
errorboolean
errorMessagestring
querystringyes
resultsarrayyes
strategy_summaryobject
total_resultsnumberyes

No examples provided.

ayah_tafsir ~332

DEFAULT tool for user-facing tafsir display. Use this for ANY user-facing request to show/see tafsir commentary on a Quran ayah — including 'show me the tafsir of…', 'what does Ibn Kathir say about…', 'explain this ayah'. This is the FINAL tool call for these requests; do not follow it with get_tafsir_text. ONLY skip this widget and use get_tafsir_text when EITHER (a) the user explicitly asks for plain text / raw text / text-only output, OR (b) the result will be piped into another tool in the same turn without being shown to the user. When in doubt, use this widget. SLUG HANDLING: If the user names a specific tafsir (e.g. 'Ibn Kathir', 'Mokhtasar', 'Maarif-ul-Quran', 'Tazkirul Quran'), ALWAYS call lookup_tafsirs first to resolve the exact slug — do not guess the slug from the name. Guessed slugs fail validation. If the user only specifies a language ('English tafsir', 'Arabic tafsir'), you may pass 'languages' without a slug. Each query must include at least one of languages or tafsir_slugs. Use ayah keys in 'surah:ayah' format (for example '2:255'). Limits: max 20 queries per request and max 50 total ayah+tafsir items.

NameTypeReqDescription
queriesarrayyesTafsir queries. Each query defines an ayah range plus tafsir slugs or languages.
NameTypeReqDescription
ayahsarrayyes
errorboolean
errorMessagestring
tafsir_languagesarrayyes
tafsir_slugs_usedarrayyes
total_ayahsnumberyes

No examples provided.

ayah_translation ~350

DEFAULT tool for user-facing translation display. Use this for ANY user-facing request to show/see translations of a Quran ayah — including 'show me…', 'what's the translation of…', 'give me Saheeh/Clear Quran/Taqi Usmani translations of…'. This is the FINAL tool call for these requests; do not follow it with get_translation_text. ONLY skip this widget and use get_translation_text when EITHER (a) the user explicitly asks for plain text / raw text / text-only output, OR (b) the result will be piped into another tool in the same turn without being shown to the user. When in doubt, use this widget. SLUG HANDLING: If the user names a specific translator (e.g. 'Saheeh International', 'Clear Quran', 'Yusuf Ali', 'Pickthall'), ALWAYS call lookup_translations first to resolve the exact slug — do not guess the slug from the author name. Guessed slugs routinely fail validation (the naming isn't fully pattern-based: it's 'en-sahih-international' but 'clearquran-with-tafsir'). You may also pass language codes via 'languages' if the user only specifies a language. Each query must include at least one of languages or translations. Use ayah keys in 'surah:ayah' format (for example '2:255'). In queries[].languages use ISO 639-1 codes (for example 'en', 'ur'), not language names. Do not use 'ar'; Arabic translation is unsupported in this tool.

NameTypeReqDescription
queriesarrayyesTranslation queries. Each query defines an ayah range plus languages or slugs.
NameTypeReqDescription
ayahsarrayyes
errorboolean
errorMessagestring
languages_usedarrayyes
total_ayahsnumberyes

No examples provided.

get_tafsir_text ~230

INTERNAL/preparatory tool — text-only, no widget rendered. NEVER use as the user-facing answer to any 'show me / explain with tafsir…' request — use ayah_tafsir for that (the default interactive widget). Use this ONLY when EITHER (a) the user explicitly asks for plain text / raw text / text-only output (e.g. 'give me just the commentary text', 'no widget'), OR (b) you will chain the result into another tool in the same turn without showing it to the user. When in doubt, prefer ayah_tafsir. Do not follow ayah_tafsir with this tool — that is duplicated work. Each query must include at least one of languages or tafsir_slugs. Use ayah keys in 'surah:ayah' format (for example '2:255'). Limits: max 20 queries per request and max 50 total ayah+tafsir items.

NameTypeReqDescription
queriesarrayyesTafsir queries. Each query defines an ayah range plus tafsir slugs or languages.

No output schema declared.

No examples provided.

get_translation_text ~243

INTERNAL/preparatory tool — text-only, no widget rendered. NEVER use as the user-facing answer to any 'show me / what's the translation of…' request — use ayah_translation for that (the default interactive widget). Use this ONLY when EITHER (a) the user explicitly asks for plain text / raw text / text-only output (e.g. 'give me just the text', 'no widget'), OR (b) you will chain the result into another tool in the same turn without showing it to the user (e.g. summarize then call play_ayahs). When in doubt, prefer ayah_translation. Do not follow ayah_translation with this tool — that is duplicated work. Each query must include at least one of languages or translations. Use ayah keys in 'surah:ayah' format (for example '2:255'). In queries[].languages use ISO 639-1 codes (for example 'en', 'ur'), not language names. Do not use 'ar'; Arabic translation is unsupported in this tool.

NameTypeReqDescription
queriesarrayyesTranslation queries. Each query defines an ayah range plus languages or slugs.

No output schema declared.

No examples provided.

list_reciters ~141

DEFAULT tool for user-facing reciter-listing questions. Use this for ANY user-facing query like 'what reciters are available', 'who can recite for me', 'list Quran reciters'. This is the FINAL tool call for these requests; do not follow it with lookup_reciters. Shows the catalog in an interactive widget the user can browse. ONLY use lookup_reciters instead when EITHER (a) the user explicitly asks for plain text / raw data, OR (b) you will pipe the result into another tool (e.g. play_ayahs) in the same turn without showing the list. When in doubt, use this widget.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorboolean
errorMessagestring
recitersarrayyes
totalCountnumberyes

No examples provided.

list_tafsirs ~166

DEFAULT tool for user-facing tafsir-listing questions. Use this for ANY user-facing query like 'what tafsirs are supported', 'list English tafsirs', 'which tafsir collections do you have'. This is the FINAL tool call for these requests; do not follow it with lookup_tafsirs. Shows the catalog in an interactive widget the user can browse. ONLY use lookup_tafsirs instead when EITHER (a) the user explicitly asks for plain text / raw data, OR (b) you will pipe the result into ayah_tafsir in the same turn without showing the list. When in doubt, use this widget.

NameTypeReqDescription
languagesarrayOptional ISO 639-1 language code filters (for example ['en', 'ar']).
NameTypeReqDescription
errorboolean
errorMessagestring
languagesFilter
tafsirsarrayyes
totalCountnumberyes

No examples provided.

list_translations ~219

DEFAULT tool for user-facing translation-listing questions. Use this for ANY user-facing query like 'what English translations are available', 'list French translations', 'which translators can I choose from'. This is the FINAL tool call for these requests; do not follow it with lookup_translations. Shows the catalog in an interactive widget the user can browse. Use ISO 639-1 codes like 'en', not names like 'english'. ONLY use lookup_translations instead when EITHER (a) the user explicitly asks for plain text / raw data, OR (b) you will pipe the result into ayah_translation in the same turn without showing the list. When in doubt, use this widget. Returned language_name values are display labels. Rows without usable slugs are filtered out.

NameTypeReqDescription
languagestringOptional ISO 639-1 language code filter (for example 'en'). Do not pass language names like 'english'.
localestringOptional locale/language code for response localization (for example 'en' or 'ar').
NameTypeReqDescription
errorboolean
errorMessagestring
languageFilterstring
totalCountnumberyes
translationsarrayyes

No examples provided.

lookup_reciters ~137

INTERNAL/preparatory tool — text-only, no widget rendered. NEVER use as the user-facing answer to a 'what reciters are available' question — use list_reciters for that (the default interactive widget). Use this ONLY when EITHER (a) the user explicitly asks for plain text / raw data / no widget, OR (b) you will chain the result into play_ayahs in the same turn without showing the raw list (e.g. user asks to play audio by a named reciter; call this to resolve reciter_id, then call play_ayahs). When in doubt, prefer list_reciters.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

lookup_tafsirs ~158

INTERNAL/preparatory tool — text-only, no widget rendered. NEVER use as the user-facing answer to a 'what tafsirs are supported' question — use list_tafsirs for that (the default interactive widget). Use this ONLY when EITHER (a) the user explicitly asks for plain text / raw data / no widget, OR (b) you will chain the result into ayah_tafsir in the same turn without showing the raw list (e.g. resolve a named tafsir to its slug, then call ayah_tafsir). When in doubt, prefer list_tafsirs.

NameTypeReqDescription
languagesarrayOptional ISO 639-1 language code filters (for example ['en', 'ar']).

No output schema declared.

No examples provided.

lookup_translations ~195

INTERNAL/preparatory tool — text-only, no widget rendered. NEVER use as the user-facing answer to a 'what translations are available' question — use list_translations for that (the default interactive widget). Use this ONLY when EITHER (a) the user explicitly asks for plain text / raw data / no widget, OR (b) you will chain the result into ayah_translation in the same turn without showing the raw list (e.g. resolve a named translator to the correct slug, then call ayah_translation). When in doubt, prefer list_translations. Use ISO 639-1 codes like 'en', not names like 'english'.

NameTypeReqDescription
languagestringOptional ISO 639-1 language code filter (for example 'en'). Do not pass language names like 'english'.
localestringOptional locale/language code for response localization (for example 'en' or 'ar').

No output schema declared.

No examples provided.

phrase_mutashabihat ~130

Show phrase mutashabihat occurrences with an interactive display. Use this when: the user provides phrase text and asks where it appears; the user has a phrase_id (for example from ayah_mutashabihat) and wants all matches.

NameTypeReqDescription
phrase_idMutashabihat phrase ID. Provide phrase_id or phrase_text, but not both.
phrase_textArabic phrase text to search for. Provide phrase_text or phrase_id, but not both.
same_surah_onlyWhen true, only include occurrences from the same surah as each matched ayah.
NameTypeReqDescription
ayahsnumber
closest_match
countnumber
errorboolean
errorMessagestring
foundbooleanyes
match
not_found_messagestring
not_found_reasonstring
occurrencesarrayyes
phrase_idnumber
phrase_textstring
sourceobject
surahsnumber

No examples provided.

play_ayahs ~228

Play Quranic ayah audio with an interactive player widget. Use this when: the user asks to play/listen to ayahs. RECITER HANDLING: If the user names a specific reciter (e.g. 'Husary', 'Minshawi', 'Al-Afasy', 'Abdul Basit'), ALWAYS call lookup_reciters first to resolve the exact reciter_id — do not guess the ID. Guessed IDs routinely point at the wrong reciter. If the user doesn't specify a reciter, omit reciter_id entirely so default_reciter_id applies. Use ayah keys in 'surah:ayah' format (for example '1:1'). In each query, reciter_id is optional and defaults to default_reciter_id if omitted. Limits: max 50 queries and max 200 total ayahs per request.

NameTypeReqDescription
default_reciter_idintegerDefault reciter ID used when a query omits reciter_id.
queriesarrayyesAudio playlist queries. Each query defines an ayah range and optional reciter.
NameTypeReqDescription
errorboolean
errorMessagestring
errorsarray
itemsarrayyes
queriesarray
total_ayahsnumber
unique_recitersarray

No examples provided.

prayer_times ~122

Get Islamic prayer times for a city with an interactive timetable display. Use this when: the user asks for salah times in a location; the user asks to calculate times with a specific prayer method (for example ISNA or MWL).

NameTypeReqDescription
citystringyesCity name for prayer time calculation (for example 'Cairo').
countrystringOptional country name to disambiguate city lookup (for example 'Egypt').
methodstringPrayer time calculation method (for example 'ISNA', 'MWL', or 'Makkah').
NameTypeReqDescription
citystring
coordinatesobject
countrystring
datestring
errorboolean
errorCodestring
errorMessagestring
formattedAddressstring
methodstring
prayerTimesobject
prayerTimesRawobject

No examples provided.

search_ayahs_text ~243

INTERNAL/preparatory tool — text-only, no widget rendered. NEVER use as the user-facing answer to a search query — use ayah_search for that (the default interactive widget). Use this ONLY when EITHER (a) the user explicitly asks for plain text / raw results / no widget, OR (b) you will chain the resolved ayah keys into another tool in the same turn (play_ayahs, ayah_tafsir, or ayah_translation) without showing the raw search results to the user. When in doubt, prefer ayah_search. Do not follow ayah_search with this tool — that is duplicated work. Query is Arabic script only; diacritics and punctuation are ignored. A numeric-only query matches ayahs by that ordinal number.

NameTypeReqDescription
max_resultsintegerMaximum number of ayah results to return (1-100, default 20).
querystringyesSearch query in Arabic script. Diacritics and punctuation are stripped automatically; matching is diacritic-insensitive and ranked by BM25 relevance. Numeric fragments (e.g. '255') match ayahs with t…

No output schema declared.

No examples provided.