Tarteel MCP Server
Quran MCP server for translation, tafsir, mutashabihat, recitation playlists, and prayer times.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"tarteel-mcp-server": {
"url": "https://mcp.tarteel.ai/mcp"
}
}
}遠端端點
https://mcp.tarteel.ai/mcpstreamable-http它能做什麼
工具清單
工具(16)
🟢ayah_mutashabihat(surah, ayah, same_surah_only)
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.
輸入結構描述
{
"type": "object",
"properties": {
"surah": {
"type": "integer",
"minimum": 1,
"maximum": 114,
"description": "Surah number from 1 to 114."
},
"ayah": {
"type": "integer",
"minimum": 1,
"maximum": 286,
"description": "Ayah number within the selected surah."
},
"same_surah_only": {
"description": "When true, only include repeated phrase matches found in the same surah as the input ayah.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "string",
"enum": [
"1",
"true"
]
},
{
"type": "string",
"enum": [
"0",
"false",
""
]
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 0
}
]
}
},
"required": [
"surah",
"ayah"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ayah_key": {
"type": "string"
},
"surah_id": {
"type": "number"
},
"ayah_number": {
"type": "number"
},
"surah_name": {
"type": "string"
},
"phrase_ids": {
"type": "array",
"items": {
"type": "number"
}
},
"phrases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"phrase_id": {
"type": "number"
},
"surahs": {
"type": "number"
},
"ayahs": {
"type": "number"
},
"count": {
"type": "number"
},
"source": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"from": {
"type": "number"
},
"to": {
"type": "number"
}
},
"additionalProperties": false
},
"ranges": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"occurrences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ayah_key": {
"type": "string"
},
"ranges": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"words": {
"type": "array",
"items": {
"type": "string"
}
},
"surah_name": {
"type": "string"
}
},
"required": [
"ayah_key"
],
"additionalProperties": false
}
}
},
"required": [
"phrase_id"
],
"additionalProperties": false
}
},
"ayah_words": {
"type": "array",
"items": {
"type": "string"
}
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"phrase_ids",
"phrases"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢phrase_mutashabihat(phrase_id, phrase_text, same_surah_only)
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.
輸入結構描述
{
"type": "object",
"properties": {
"phrase_id": {
"description": "Mutashabihat phrase ID. Provide phrase_id or phrase_text, but not both.",
"anyOf": [
{
"type": "null"
},
{
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
]
},
"phrase_text": {
"description": "Arabic phrase text to search for. Provide phrase_text or phrase_id, but not both.",
"anyOf": [
{
"type": "null"
},
{
"type": "string",
"minLength": 1
}
]
},
"same_surah_only": {
"description": "When true, only include occurrences from the same surah as each matched ayah.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "string",
"enum": [
"1",
"true"
]
},
{
"type": "string",
"enum": [
"0",
"false",
""
]
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 0
}
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"phrase_id": {
"type": "number"
},
"phrase_text": {
"type": "string"
},
"found": {
"type": "boolean"
},
"surahs": {
"type": "number"
},
"ayahs": {
"type": "number"
},
"count": {
"type": "number"
},
"source": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"from": {
"type": "number"
},
"to": {
"type": "number"
}
},
"additionalProperties": false
},
"occurrences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ayah_key": {
"type": "string"
},
"ranges": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"words": {
"type": "array",
"items": {
"type": "string"
}
},
"surah_name": {
"type": "string"
}
},
"required": [
"ayah_key"
],
"additionalProperties": false
}
},
"not_found_reason": {
"type": "string"
},
"not_found_message": {
"type": "string"
},
"closest_match": {},
"match": {},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"found",
"occurrences"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢ayah_translation(queries)
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.
輸入結構描述
{
"type": "object",
"properties": {
"queries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"start_ayah": {
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$",
"description": "Start ayah key in 'surah:ayah' format (for example '2:255')."
},
"end_ayah": {
"description": "Optional end ayah key in 'surah:ayah' format. Omit to fetch only start_ayah.",
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$"
},
"languages": {
"description": "Optional. ISO 639-1 language codes only (for example 'en', 'ur', 'fr'). Omit the field entirely if you don't want language-based selection; an empty array is treated the same as omitted. Do not use language names like 'english'. Do not include 'ar'; Arabic is not available as a translation language in this tool.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"translations": {
"description": "Optional. Translator slug values (for example 'en-sahih-international'). Omit the field entirely if you don't want slug-based selection; an empty array is treated the same as omitted. Use list_translations to discover valid slugs.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"start_ayah"
],
"description": "One translation query. Must include ayah range and at least one of languages or translations."
},
"description": "Translation queries. Each query defines an ayah range plus languages or slugs."
}
},
"required": [
"queries"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ayahs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ayah_key": {
"type": "string"
},
"text_arabic": {
"type": "string"
},
"chapter_name": {
"type": "string"
},
"chapter_name_arabic": {
"type": "string"
},
"translations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string"
},
"translator": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"language",
"translator",
"text"
],
"additionalProperties": false
}
}
},
"required": [
"ayah_key",
"text_arabic",
"translations"
],
"additionalProperties": false
}
},
"total_ayahs": {
"type": "number"
},
"languages_used": {
"type": "array",
"items": {
"type": "string"
}
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"ayahs",
"total_ayahs",
"languages_used"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢ayah_tafsir(queries)
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.
輸入結構描述
{
"type": "object",
"properties": {
"queries": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"start_ayah": {
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$",
"description": "Start ayah key in 'surah:ayah' format (for example '2:255')."
},
"end_ayah": {
"description": "Optional end ayah key in 'surah:ayah' format. Omit to fetch only start_ayah.",
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$"
},
"tafsir_slugs": {
"description": "Optional. Specific tafsir slug values (for example 'en-tafsir-mokhtasar'). Omit the field entirely if you don't want slug-based selection; an empty array is treated the same as omitted. Use list_tafsirs to discover valid slugs.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"languages": {
"description": "Optional. ISO 639-1 language codes for default tafsir selection (for example 'en', 'ar'). Omit the field entirely if you don't want language-based selection; an empty array is treated the same as omitted. Use codes, not tafsir slugs.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"start_ayah"
],
"description": "One tafsir query. Must include ayah range and at least one of languages or tafsir_slugs."
},
"description": "Tafsir queries. Each query defines an ayah range plus tafsir slugs or languages."
}
},
"required": [
"queries"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"ayahs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"chapter": {
"type": "number"
},
"verse": {
"type": "number"
},
"verse_end": {
"type": "number"
},
"ayah_key": {
"type": "string"
},
"ayah_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"tafsir_text": {
"type": "string"
},
"tafsir_slug": {
"type": "string"
}
},
"required": [
"chapter",
"verse",
"ayah_key",
"ayah_text",
"tafsir_text",
"tafsir_slug"
],
"additionalProperties": false
}
},
"total_ayahs": {
"type": "number"
},
"tafsir_slugs_used": {
"type": "array",
"items": {
"type": "string"
}
},
"tafsir_languages": {
"type": "array",
"items": {
"type": "string"
}
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"ayahs",
"total_ayahs",
"tafsir_slugs_used",
"tafsir_languages"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢ayah_search(query, max_results)
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.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search 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 that ordinal number."
},
"max_results": {
"default": 20,
"description": "Maximum number of ayah results to return (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"total_results": {
"type": "number"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ayah_key": {
"type": "string"
},
"chapter": {
"type": "number"
},
"verse": {
"type": "number"
},
"surah_name": {
"type": "string"
},
"surah_name_arabic": {
"type": "string"
},
"ayah_text": {
"type": "string"
},
"strategy": {
"type": "string",
"enum": [
"ordinal",
"exact",
"fuzzy",
"chunk"
]
}
},
"required": [
"ayah_key",
"chapter",
"verse",
"surah_name",
"surah_name_arabic",
"ayah_text",
"strategy"
],
"additionalProperties": false
}
},
"strategy_summary": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"query",
"total_results",
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_reciters
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.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"reciters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"name": {
"type": "string"
},
"style": {
"type": "string"
},
"qirat": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false
}
},
"totalCount": {
"type": "number"
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"reciters",
"totalCount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_tafsirs(languages)
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.
輸入結構描述
{
"type": "object",
"properties": {
"languages": {
"description": "Optional ISO 639-1 language code filters (for example ['en', 'ar']).",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"tafsirs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"language": {
"type": "string"
}
},
"required": [
"slug"
],
"additionalProperties": false
}
},
"totalCount": {
"type": "number"
},
"languagesFilter": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"tafsirs",
"totalCount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢list_translations(language, locale)
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.
輸入結構描述
{
"type": "object",
"properties": {
"language": {
"description": "Optional ISO 639-1 language code filter (for example 'en'). Do not pass language names like 'english'.",
"type": "string",
"minLength": 1
},
"locale": {
"description": "Optional locale/language code for response localization (for example 'en' or 'ar').",
"type": "string",
"minLength": 1
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"translations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"language_name": {
"type": "string"
},
"translated_name": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"locale": {
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"slug"
],
"additionalProperties": false
}
},
"totalCount": {
"type": "number"
},
"languageFilter": {
"type": "string"
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"translations",
"totalCount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢play_ayahs(queries, default_reciter_id)
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.
輸入結構描述
{
"type": "object",
"properties": {
"queries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"start_ayah": {
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$",
"description": "Start ayah key in 'surah:ayah' format (for example '1:1')."
},
"end_ayah": {
"description": "Optional end ayah key in 'surah:ayah' format. Omit to fetch only start_ayah.",
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$"
},
"reciter_id": {
"description": "Optional reciter ID override for this query. If omitted, default_reciter_id is used.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"start_ayah"
],
"description": "One audio query. reciter_id is optional and defaults to default_reciter_id when omitted."
},
"description": "Audio playlist queries. Each query defines an ayah range and optional reciter."
},
"default_reciter_id": {
"default": 20,
"description": "Default reciter ID used when a query omits reciter_id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"queries"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ayah_key": {
"type": "string"
},
"audio_url": {
"type": "string"
},
"duration": {
"type": "number"
},
"reciter_id": {
"type": "number"
},
"reciter_name": {
"type": "string"
},
"chapter_id": {
"type": "number"
},
"chapter_name": {
"type": "string"
},
"chapter_name_arabic": {
"type": "string"
}
},
"required": [
"ayah_key",
"audio_url",
"reciter_id",
"reciter_name",
"chapter_id",
"chapter_name",
"chapter_name_arabic"
],
"additionalProperties": false
}
},
"total_ayahs": {
"type": "number"
},
"unique_reciters": {
"type": "array",
"items": {
"type": "number"
}
},
"queries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start_ayah": {
"type": "string"
},
"end_ayah": {
"type": "string"
},
"reciter_id": {
"type": "number"
}
},
"required": [
"start_ayah"
],
"additionalProperties": false
}
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reciter_id": {
"type": "number"
},
"error": {
"type": "string"
}
},
"required": [
"reciter_id",
"error"
],
"additionalProperties": false
}
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"required": [
"items"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢prayer_times(city, country, method)
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).
輸入結構描述
{
"type": "object",
"properties": {
"city": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "City name for prayer time calculation (for example 'Cairo')."
},
"country": {
"description": "Optional country name to disambiguate city lookup (for example 'Egypt').",
"type": "string",
"minLength": 1
},
"method": {
"default": "ISNA",
"description": "Prayer time calculation method (for example 'ISNA', 'MWL', or 'Makkah').",
"type": "string",
"enum": [
"MWL",
"ISNA",
"Egypt",
"Makkah",
"Karachi",
"Tehran",
"Jafari",
"Qatar",
"Kuwait",
"moonsighting",
"Dubai",
"Singapore",
"JAKIM",
"Turkey",
"Russia"
]
}
},
"required": [
"city"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"formattedAddress": {
"type": "string"
},
"coordinates": {
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
"method": {
"type": "string"
},
"date": {
"type": "string"
},
"prayerTimes": {
"type": "object",
"properties": {
"fajr": {
"type": "string"
},
"sunrise": {
"type": "string"
},
"dhuhr": {
"type": "string"
},
"asr": {
"type": "string"
},
"maghrib": {
"type": "string"
},
"isha": {
"type": "string"
}
},
"additionalProperties": false
},
"prayerTimesRaw": {
"type": "object",
"properties": {
"fajr": {
"type": "string"
},
"sunrise": {
"type": "string"
},
"dhuhr": {
"type": "string"
},
"asr": {
"type": "string"
},
"maghrib": {
"type": "string"
},
"isha": {
"type": "string"
}
},
"additionalProperties": false
},
"errorCode": {
"type": "string"
},
"error": {
"type": "boolean"
},
"errorMessage": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢lookup_reciters
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.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢lookup_tafsirs(languages)
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.
輸入結構描述
{
"type": "object",
"properties": {
"languages": {
"description": "Optional ISO 639-1 language code filters (for example ['en', 'ar']).",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢lookup_translations(language, locale)
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'.
輸入結構描述
{
"type": "object",
"properties": {
"language": {
"description": "Optional ISO 639-1 language code filter (for example 'en'). Do not pass language names like 'english'.",
"type": "string",
"minLength": 1
},
"locale": {
"description": "Optional locale/language code for response localization (for example 'en' or 'ar').",
"type": "string",
"minLength": 1
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_translation_text(queries)
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.
輸入結構描述
{
"type": "object",
"properties": {
"queries": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"start_ayah": {
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$",
"description": "Start ayah key in 'surah:ayah' format (for example '2:255')."
},
"end_ayah": {
"description": "Optional end ayah key in 'surah:ayah' format. Omit to fetch only start_ayah.",
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$"
},
"languages": {
"description": "Optional. ISO 639-1 language codes only (for example 'en', 'ur', 'fr'). Omit the field entirely if you don't want language-based selection; an empty array is treated the same as omitted. Do not use language names like 'english'. Do not include 'ar'; Arabic is not available as a translation language in this tool.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"translations": {
"description": "Optional. Translator slug values (for example 'en-sahih-international'). Omit the field entirely if you don't want slug-based selection; an empty array is treated the same as omitted. Use list_translations to discover valid slugs.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"start_ayah"
],
"description": "One translation query. Must include ayah range and at least one of languages or translations."
},
"description": "Translation queries. Each query defines an ayah range plus languages or slugs."
}
},
"required": [
"queries"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_tafsir_text(queries)
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.
輸入結構描述
{
"type": "object",
"properties": {
"queries": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"start_ayah": {
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$",
"description": "Start ayah key in 'surah:ayah' format (for example '2:255')."
},
"end_ayah": {
"description": "Optional end ayah key in 'surah:ayah' format. Omit to fetch only start_ayah.",
"type": "string",
"minLength": 1,
"pattern": "^\\d{1,3}:\\d{1,3}$"
},
"tafsir_slugs": {
"description": "Optional. Specific tafsir slug values (for example 'en-tafsir-mokhtasar'). Omit the field entirely if you don't want slug-based selection; an empty array is treated the same as omitted. Use list_tafsirs to discover valid slugs.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"languages": {
"description": "Optional. ISO 639-1 language codes for default tafsir selection (for example 'en', 'ar'). Omit the field entirely if you don't want language-based selection; an empty array is treated the same as omitted. Use codes, not tafsir slugs.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"start_ayah"
],
"description": "One tafsir query. Must include ayah range and at least one of languages or tafsir_slugs."
},
"description": "Tafsir queries. Each query defines an ayah range plus tafsir slugs or languages."
}
},
"required": [
"queries"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_ayahs_text(query, max_results)
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.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search 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 that ordinal number."
},
"max_results": {
"default": 20,
"description": "Maximum number of ayah results to return (1-100, default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}社群
證據