Azan-MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Azan-MCPwhat are today's prayer times in New York?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Azan-MCP
Azan-MCP is an open-source Model Context Protocol (MCP) server that brings a comprehensive suite of Islamic utilities directly into AI assistants such as Claude Desktop. It enables any LLM client that supports MCP to answer Islamic questions with accuracy, proper sourcing, and full awareness of the user's location, timezone, and madhab.
What it does
Prayer Times — Calculates the five daily prayers (Fajr, Dhuhr, Asr, Maghrib, Isha) plus Sunrise for any location on Earth using the full Meeus solar algorithm. Supports 10 internationally recognised calculation methods and both Hanafi and Shafi madhab for Asr. Also computes Qibla direction, monthly calendars, and Sunnah prayer windows (Duha, Awwabin, Tahajjud).
Azan & Iqama — Returns the full Azan text in Arabic and transliteration (with the Fajr Tatwidh variant), calculates Iqama times based on configurable per-prayer offsets, and provides a complete daily Azan schedule.
Islamic Calendar — Converts dates between Gregorian and Hijri calendars, lists named Islamic events with their Gregorian equivalents, and identifies recommended voluntary fasting days (Mondays/Thursdays, Ayyam al-Beed, 6 days of Shawwal, Day of Arafah).
Du'a & Dhikr — Provides sourced morning and evening adhkar, du'a collections across 15 topics (travel, eating, anxiety, protection, and more), and du'as for every position in salah. Every entry is traced to its hadith reference with a confidence rating.
Zakat & Islamic Calculators — Calculates Zakat due on cash, gold, silver, and trade goods; determines Nisab thresholds; computes Suhoor/Iftar times for Ramadan date ranges; and distributes inheritance according to Faraid (Quran 4:11-12) using exact fractional arithmetic with Aul handling.
99 Names of Allah — The complete Asma ul-Husna with Arabic text, transliteration, meaning, and explanation for all 99 names, fully searchable.

Design principles
Principle | How it is applied |
Accuracy | Prayer engine implements the full Meeus astronomical algorithm (±2 min vs IslamicFinder). Hijri conversion uses the |
Authenticity | Every Du'a and Dhikr entry carries a hadith source reference and a confidence level ( |
Transparency | All tool responses include a |
Discoverability | Tools like |
Safety | Zakat, Faraid, and calendar tools include a "consult a qualified scholar" disclaimer in every response. |
Zero friction | Installable with a single |
Tech Stack
Built with Python 3.12+ and FastMCP (the official Anthropic MCP SDK). The prayer time engine is vendored directly from the Meeus algorithm using Python's standard library only (math, datetime, zoneinfo) — no stale third-party astronomical dependency. The Hijri calendar uses the actively maintained hijridate package.
Folder Structure
src/azan_mcp/
├── server.py # FastMCP entry point — 34 tools across 6 modules
├── config.py # UserConfig dataclass (location, timezone, method, madhab)
├── prayer_engine.py # Vendored Meeus solar algorithm
├── tools/ # One module per epic: prayer_times, azan, calendar,
│ # dua_dhikr, calculators, asma
└── data/ # adhkar.json · duas.json · asma_ul_husna.jsonSupported Calculation Methods
ID | Name | Fajr° | Isha |
| Umm al-Qura, Makkah | 18.5 | 90 min after Maghrib |
| Muslim World League | 18 | 17° |
| ISNA | 15 | 15° |
| Egyptian General Authority | 19.5 | 17.5° |
| Univ. of Islamic Sciences, Karachi | 18 | 18° |
| Univ. of Tehran | 17.7 | 14° |
| Kuwait | 18 | 17.5° |
| UOIF (France) | 12 | 12° |
| Ithna Ashari | 16 | 14° |
| Muhammadiyah | 20 | 18° |
Related MCP server: Calendar MCP Server
Tools
# | Tool | Category | Description |
1 |
| Core | Active config: location, timezone, calculation method, madhab |
2 |
| Core | All 10 method IDs with Fajr/Isha angles |
3 |
| Prayer Times | All 5 prayers + Sunrise for a date and location |
4 |
| Prayer Times | Name and time of the next upcoming prayer |
5 |
| Prayer Times | Minutes until next prayer + human-readable countdown |
6 |
| Prayer Times | Bearing in degrees + 16-point cardinal toward Makkah |
7 |
| Prayer Times | Full month prayer schedule (28–31 days) |
8 |
| Prayer Times | Duha, Awwabin, and Tahajjud time windows |
9 |
| Azan & Iqama | Full Azan text in Arabic and/or transliteration (Fajr variant included) |
10 |
| Azan & Iqama | Iqama time = adhan + configured offset |
11 |
| Azan & Iqama | Update iqama delay (minutes after adhan) per prayer |
12 |
| Azan & Iqama | All 5 adhan + iqama times for today |
13 |
| Islamic Calendar | Today's or a given date's Hijri equivalent |
14 |
| Islamic Calendar | Gregorian → Hijri conversion |
15 |
| Islamic Calendar | Hijri → Gregorian conversion |
16 |
| Islamic Calendar | Named Islamic events for a Hijri year/month with Gregorian dates |
17 |
| Islamic Calendar | Gregorian start and end dates of Ramadan for a given year |
18 |
| Islamic Calendar | Eid al-Fitr and Eid al-Adha dates for a given year |
19 |
| Islamic Calendar | Mondays/Thursdays, Ayyam al-Beed, 6 Shawwal, Day of Arafah |
20 |
| Du'a & Dhikr | Complete morning adhkar with Arabic, transliteration, source |
21 |
| Du'a & Dhikr | Complete evening adhkar with Arabic, transliteration, source |
22 |
| Du'a & Dhikr | All available topic slugs (travel, eating, anxiety, …) |
23 |
| Du'a & Dhikr | All du'as for a given topic |
24 |
| Du'a & Dhikr | Full-text search across Arabic, transliteration, translation |
25 |
| Du'a & Dhikr | Recommended repetition count and virtues for a dhikr |
26 |
| Du'a & Dhikr | Du'as for ruku, sujood, tashahhud, and after salah |
27 |
| Zakat & Calculators | 2.5% Zakat due on cash, gold, silver, or trade goods above nisab |
28 |
| Zakat & Calculators | Nisab threshold = 85g × gold price per gram |
29 |
| Zakat & Calculators | Nisab threshold = 595g × silver price per gram |
30 |
| Zakat & Calculators | Suhoor (Fajr) and Iftar (Maghrib) for a date range (max 31 days) |
31 |
| Zakat & Calculators | Faraid fixed shares with Aul handling (Quran 4:11-12) |
32 |
| 99 Names | All 99 Names of Allah with Arabic, transliteration, and meaning |
33 |
| 99 Names | Look up a name by number (1–99) or transliteration |
34 |
| 99 Names | Search names by meaning, transliteration, or Arabic text |
Quickstart
uvx azan-mcpOr with a config file:
AZAN_CONFIG=/path/to/azan-config.json uvx azan-mcpClaude Desktop Setup
Add to your claude_desktop_config.json:
{
"mcpServers": {
"azan": {
"command": "uvx",
"args": ["azan-mcp"],
"env": {
"AZAN_CONFIG": "/path/to/your/azan-config.json"
}
}
}
}Configuration
Create an azan-config.json file (see examples/azan-config.example.json):
{
"latitude": 21.3891,
"longitude": 39.8579,
"timezone": "Asia/Riyadh",
"calculation_method": "umm_al_qura",
"madhab": "shafi",
"iqama_offsets": {
"fajr": 20, "dhuhr": 10, "asr": 10, "maghrib": 5, "isha": 15
}
}Development
uv sync
uv run pytest tests/ -v --ignore=tests/test_integration.pyLicense
This project is licensed under the MIT License — see the LICENSE file for details.
MIT License
Copyright (c) 2026 Azan-MCP Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.Available Tools
34 toolscalculate_fasting_timesB
Return Suhoor end (Fajr) and Iftar start (Maghrib) for each day in a date range (max 31 days). Dates in ISO 8601 format.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | Yes | ||
| end_date | Yes | ||
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions date range and ISO 8601 format, but fails to disclose reliance on optional latitude/longitude parameters, what happens if date range exceeds 31 days, or any default location behavior. Significant gaps in behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two clauses, no redundant information. However, it could be slightly more structured by separating the key behavior from format note. Still, it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no annotations, and no output schema, the description is incomplete. Missing details on optional parameters, return format, error handling, and location dependency. The description does not fully equip an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must explain parameters. It mentions ISO 8601 format for dates, partially covering start_date and end_date, but completely ignores latitude and longitude parameters. With 4 parameters, only date-related semantics are touched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns Suhoor end (Fajr) and Iftar start (Maghrib) for each day in a date range, with a max of 31 days. This distinguishes it from sibling tools like get_prayer_times which return all prayer times.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for calculating fasting times in a date range, but does not explicitly provide when-to-use or when-not-to-use guidance or mention alternatives like get_prayer_times. The context is clear but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_gold_nisabB
Return the Zakat Nisab threshold based on 85 grams of gold at the given price.
| Name | Required | Description | Default |
|---|---|---|---|
| gold_price_per_gram | Yes | ||
| currency | No | USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the function without mentioning side effects, input validation, or that it is a read-only calculation. For a safe calculation tool, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that states the core purpose concisely. However, it could be slightly restructured to separate parameter info, but it is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should clarify output format, units, or currency context. It omits essential details for correct usage, such as the unit of the returned threshold and whether it's in the specified currency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. However, it does not describe what gold_price_per_gram or currency represent. The agent has no additional context beyond the property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the Zakat Nisab threshold based on 85 grams of gold at a given price. This distinctively identifies it from siblings like calculate_silver_nisab.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as calculate_silver_nisab. The usage is implied by the gold-specific calculation, but no conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_inheritance_basicB
Calculate basic Faraid (Islamic inheritance) fixed shares. spouse: 'husband', 'wife', or None. Returns share fractions and amounts per heir.
| Name | Required | Description | Default |
|---|---|---|---|
| estate_value | Yes | ||
| currency | No | USD | |
| spouse | No | ||
| sons | No | ||
| daughters | No | ||
| father | No | ||
| mother | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool returns share fractions and amounts per heir, which is helpful. However, it does not disclose assumptions, limitations (e.g., basic vs complete Faraid), or behavior for missing heirs, leaving gaps for a complex calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (two sentences), with the first sentence stating the purpose and the second adding input/output details. No superfluous text, but it sacrifices essential parameter explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of Islamic inheritance rules, 7 parameters, no output schema, and 0% schema coverage, the description is incomplete. It fails to explain how to specify heirs, defaults, or output format, making it insufficient for confident agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description only explains the spouse parameter ('husband', 'wife', or None). It fails to describe other key parameters like sons, daughters, father, mother, which are critical for Faraid calculations. Users cannot infer their meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates basic Faraid fixed shares, specifying verb 'calculate' and resource 'Islamic inheritance'. It also provides input format for spouse and output type, distinguishing it from sibling tools which cover different Islamic calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for basic Faraid calculations but provides no explicit guidance on when to use versus alternatives or when not to use. It does not mention exclusions or limitations, though the tool appears unique among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_silver_nisabA
Return the Zakat Nisab threshold based on 595 grams of silver at the given price.
| Name | Required | Description | Default |
|---|---|---|---|
| silver_price_per_gram | Yes | ||
| currency | No | USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the computational purpose but does not disclose safety traits (e.g., no side effects, no storage) or potential error handling. Since it's a simple read calculation, the lack of explicit safety details is acceptable but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, 17 words, front-loaded with the purpose. Every word is necessary, and the structure is efficient with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should indicate the return format. It states the result is a 'Zakat Nisab threshold' but does not specify whether it's a number, a string with currency, or a compound object. Edge cases or behavior with invalid inputs are not covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description implicitly references both parameters: silver_price_per_gram (price input) and currency (threshold currency, default USD). It adds context that the calculation uses exactly 595 grams, but does not explain format, constraints, or acceptable ranges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the Zakat Nisab threshold based on 595 grams of silver at a given price. It specifies the verb 'Return', the resource 'Zakat Nisab threshold', and the exact calculation basis, distinguishing it from siblings like calculate_gold_nisab.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives (e.g., calculate_gold_nisab or calculate_zakat). No explicit when-not-to-use or context about prerequisites is given, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_zakatB
Calculate Zakat due on wealth. wealth_type: cash, gold, silver, trade_goods. Provide gold or silver price per gram to determine nisab.
| Name | Required | Description | Default |
|---|---|---|---|
| wealth_type | Yes | ||
| amount | Yes | ||
| currency | No | USD | |
| gold_price_per_gram | No | ||
| silver_price_per_gram | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as idempotency, authentication needs, rate limits, or error handling. For a calculation tool, it could mention that it performs no mutations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no redundant words, and the key information is front-loaded. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations. The description does not explain the return value (e.g., zakat amount, nisab threshold, error scenarios). It is incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema by explaining the wealth_type values and the purpose of gold/silver prices for nisab computation. However, it does not clarify the 'amount' or 'currency' parameters. With 0% schema description coverage, the description partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates Zakat due on wealth, lists wealth types, and explains the role of gold/silver prices. It distinguishes itself from sibling tools like calculate_fasting_times or calculate_gold_nisab.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or specific contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_gregorian_to_hijriC
Convert a Gregorian calendar date to its Hijri equivalent.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| month | Yes | ||
| day | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. However, it only states the conversion without mentioning whether the operation is read-only, what happens with invalid dates, or any limitations. The agent is left uninformed about error behavior or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. However, it is too brief to be fully helpful. Every word earns its place, but additional essential context is missing, making it borderline under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 integer params, no output schema), the description should at least mention the output format or provide a usage example. Without annotations, the description is incomplete for an agent to reliably use the tool without prior knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description does not elaborate on the parameters. It simply shows names and types. There is no explanation of valid ranges (e.g., month 1-12, day 1-31) or the date format for Gregorian input. The description adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Convert') and resource ('Gregorian calendar date to its Hijri equivalent'). It is distinct from the sibling tool 'convert_hijri_to_gregorian' which does the reverse conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'convert_hijri_to_gregorian' or 'get_hijri_date'. There is no mention of prerequisites, date validation, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_hijri_to_gregorianB
Convert a Hijri calendar date to its Gregorian equivalent.
| Name | Required | Description | Default |
|---|---|---|---|
| hijri_year | Yes | ||
| hijri_month | Yes | ||
| hijri_day | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the conversion action without mentioning any constraints, such as valid date ranges, error handling for invalid dates, the algorithm used, or whether the conversion is approximate or authoritative. This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose. It is concise, front-loaded, and contains no unnecessary words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple but has three required parameters and no output schema. The description does not explain the return format (e.g., a date string, object with year/month/day), which is needed for the agent to use the output correctly. Given the lack of output schema, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%—the JSON schema provides titles but no descriptions for parameters. The description does not add any meaning beyond the parameter names. It fails to explain valid ranges, format, or how to interpret the parameters, which is essential given the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Convert') and resources ('Hijri calendar date' to 'Gregorian equivalent'). It is a specific verb+resource pairing that distinguishes it from the sibling 'convert_gregorian_to_hijri', which does the reverse conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its name and verb 'Convert', but it does not explicitly state when to use this tool versus alternatives (e.g., `convert_gregorian_to_hijri`). No prerequisites or contexts are mentioned, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asma_ul_husnaA
Return all 99 Names of Allah (Asma ul-Husna) with Arabic, transliteration, meaning, and explanation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation returning static data, which is transparent. However, with no annotations, it lacks details on performance, rate limits, or any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Efficiently conveys purpose and content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool returning static data, the description is adequate. Could be slightly improved with a hint on use case (e.g., 'Use to retrieve the complete list as a reference').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has 0 parameters; according to guidelines baseline is 4. Description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'all 99 Names of Allah' with specific fields (Arabic, transliteration, meaning, explanation). However, it does not differentiate from sibling tools like 'get_name_of_allah' (singular) or 'search_asma_ul_husna'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'get_name_of_allah' for a single name or 'search_asma_ul_husna' for filtered results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_azan_textA
Return the full Azan text. prayer: fajr, dhuhr, asr, maghrib, isha. language: arabic, transliteration, or both.
| Name | Required | Description | Default |
|---|---|---|---|
| prayer | Yes | ||
| language | No | both |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It describes the tool as returning text, which is a read-only operation with no side effects. However, it does not mention error handling for invalid inputs (e.g., unrecognized prayer name) or confirm idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, front-loaded with the purpose, and no extraneous information. Every word serves a purpose, making it easy for an agent to quickly grasp the tool's functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description should specify what the return value looks like (e.g., a string, multiple lines, format). It only says 'full Azan text,' which is ambiguous. Additionally, it does not mention the default parameter value for 'language' (set to 'both' in schema). This leaves the agent without critical information for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists allowed values for 'prayer' (fajr, dhuhr, asr, maghrib, isha) and 'language' (arabic, transliteration, both). While this provides necessary guidance, it does not explain the meaning of each option (e.g., what 'transliteration' entails) or the default value for 'language' (which is 'both' per schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Return the full Azan text' and enumerates the specific parameters (prayer and language) with their allowed values, clearly identifying the resource and action. It distinguishes itself from sibling tools like get_daily_azan_schedule or get_prayer_times, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. The usage is implied by the tool name and description, but there is no clear guidance on when not to use it or mention of alternative tools for similar tasks (e.g., get_iqama_time).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_counter_recommendationB
Return the recommended repetition count and virtues for a specific dhikr by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| dhikr_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states the return values but does not disclose any behavioral traits like read-only nature, auth requirements, or rate limits. As the sole source of behavioral info, it is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information. No superfluous words. Perfectly concise for the tool complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but lacks detail on return format or what 'virtues' includes. Could be improved with an example or output structure hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It adds context that the ID is for a dhikr, but does not explain what a dhikr ID looks like or where to obtain it. Minimal additional value beyond the property title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Return', resource 'recommended repetition count and virtues for a specific dhikr', and identification method 'by its ID'. It distinguishes from sibling tools like get_morning_adhkar by focusing on a single dhikr recommendation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_morning_adhkar or get_dua_by_topic. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_azan_scheduleA
Return today's complete Azan schedule: adhan time and iqama time for all 5 daily prayers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the basic behavior (returning today's schedule) but is essentially a restatement of the name. No additional behavioral traits (e.g., time format, calculation method) are revealed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the essential information with no wasted words. It is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description mentions 'adhan time and iqama time for all 5 daily prayers', giving some structure. However, it lacks explicit detail on return format (e.g., JSON structure, time representation), leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline of 4 applies since the description correctly treats the tool as parameterless.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'today's complete Azan schedule' with 'adhan time and iqama time for all 5 daily prayers', specifying the exact resource and verb. This distinguishes it from siblings like 'get_iqama_time' (partial) and 'get_prayer_times' (different set).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for today's full schedule but lacks explicit when-to-use or when-not-to-use guidelines. While sibling names provide context, the description doesn't directly address alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dua_by_topicA
Return all du'a entries for a given topic. Use list_dua_topics to see available topics (e.g. travel, eating, anxiety, sleeping).
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation by saying 'Return all du'a entries', which is adequate but does not elaborate on any other behaviors (e.g., whether the topic is case-sensitive, what happens if the topic doesn't exist, or if there are rate limits). The description is minimal in this dimension.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short sentences with no extraneous words. It front-loads the core purpose and immediately provides actionable guidance (use list_dua_topics). Every sentence is necessary and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, no-output-schema tool, the description covers the essential: what it returns and how to discover valid topics. It does not mention error handling (e.g., missing topic) or the structure of the returned entries, but these are partly addressed by the tool's simplicity. The description is nearly complete given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It explains that 'topic' is for a given topic and provides examples (travel, eating, anxiety, sleeping). This adds meaning beyond the schema's bare property name. However, it lacks details on expected format (e.g., exact keywords, case sensitivity) or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return all du'a entries for a given topic' with a specific verb and resource. It provides example topics and mentions list_dua_topics as a companion tool. However, it does not differentiate itself from the sibling search_dua, which could be used for text-based searching. This leaves potential ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using list_dua_topics to see available topics, which provides helpful context for usage. However, it offers no guidance on when not to use this tool (e.g., for text-based searching, use search_dua) or any alternative tools. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eid_datesA
Return the Gregorian dates of Eid al-Fitr and Eid al-Adha for a given year.
| Name | Required | Description | Default |
|---|---|---|---|
| gregorian_year | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description is minimal and does not disclose any behavioral traits such as error handling for invalid years, data source, or response format. It does not add context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is efficiently front-loaded and every part contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is fairly complete. It states input and output. However, it could mention date format or invalid year behavior, but it's adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'gregorian_year' has a schema title 'Gregorian Year' but description adds meaning by specifying it is the year for which to return Eid dates. With 0% schema description coverage, this compensation is helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns Gregorian dates for two specific Eids given a year. The verb 'Return' and resource 'dates of Eid al-Fitr and Eid al-Adha' are specific and distinguish it from sibling tools like get_hijri_date or get_islamic_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting Eid dates, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. No guidance on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evening_adhkarA
Return the complete set of evening adhkar (Adhkar al-Masa) with Arabic, transliteration, translation, source, and recommended count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description is straightforward about returning data with specific fields; no destructive or complex behaviors are implied. The tool is read-only and safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that includes all relevant details without unnecessary words, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description fully explains what the tool returns (Arabic, transliteration, translation, source, count), making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description does not need to add extra meaning beyond the schema. Baseline 4 applies as no parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' and clearly identifies the resource as 'complete set of evening adhkar (Adhkar al-Masa)', distinguishing it from the sibling tool 'get_morning_adhkar'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, but the name and content implicitly indicate use for evening adhkar, with 'get_morning_adhkar' as a sibling for morning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hijri_dateB
Return today's (or a given ISO date's) equivalent in the Islamic Hijri calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It does not disclose behavior beyond the basic function, such as return format, error handling, or any side effects. The description is too brief for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the core purpose and input constraint efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the essential purpose and input format. However, it lacks details on return type and does not differentiate from similar sibling tools, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds value by specifying that the 'date' parameter should be in ISO format. It also implies default behavior (today when null). This is helpful, though could explicitly state the default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('return') and resource ('equivalent in Islamic Hijri calendar'), and specifies the input as 'today's or a given ISO date'. However, it does not differentiate from sibling tool 'convert_gregorian_to_hijri', which likely performs a similar conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (for today or a specific date) but provides no guidance on when not to use or alternatives. Given sibling tools like 'convert_gregorian_to_hijri', explicit usage context would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_iqama_timeA
Return the Iqama time (adhan + configured offset) for a given prayer. prayer: fajr, dhuhr, asr, maghrib, isha.
| Name | Required | Description | Default |
|---|---|---|---|
| prayer | Yes | ||
| date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions that the time includes a configured offset, which is useful. However, it does not state whether the tool is read-only, or describe any error or caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences. The first states the core purpose, and the second lists the valid input values. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description covers the basics. However, it does not indicate the format of the returned time, error handling for invalid inputs, or how the configured offset is set (via sibling tool).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'prayer' parameter by listing valid values (fajr, dhuhr, asr, maghrib, isha). The 'date' parameter is not explained beyond its optionality and default in the schema. This provides good clarity for the required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the Iqama time for a given prayer, including the configured offset. However, it does not explicitly distinguish itself from related sibling tools like get_prayer_times or get_azan_text, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need the Iqama time for a specific prayer, but it provides no guidance on when to avoid this tool, prerequisites, or alternatives. It is adequate but lacks comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_islamic_eventsB
Return named Islamic events for a Hijri year. Optionally filter by hijri_month (1–12).
| Name | Required | Description | Default |
|---|---|---|---|
| hijri_year | Yes | ||
| hijri_month | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states basic behavior without disclosing output format, side effects, or constraints like pagination. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no wasted words. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters, no output schema, and no annotations, the description is too brief. It omits return type, error handling, and event types, leaving an agent uncertain about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add parameter meaning. It explains hijri_year (year) and hijri_month (optional 1-12 filter), but lacks detail like month names or behavior when null. Modest improvement over schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns named Islamic events for a Hijri year, with optional month filter. It distinguishes from sibling tools as the only events-related tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving Islamic events by year/month, but lacks explicit guidance on when not to use it or alternatives. Sibling tools are diverse, so usage context is moderately clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monthly_prayer_calendarC
Return a full month's prayer schedule. month is 1-12.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| month | Yes | ||
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description omits behavioral traits like how latitude/longitude affect results, whether default location is used when omitted, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short but the second sentence ('month is 1-12') is redundant with schema; could be more informative without increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and minimal description; does not explain what the returned schedule contains (e.g., daily prayer times, events), leaving agents unable to evaluate output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; description only clarifies month range (1-12) but fails to explain year, latitude, or longitude meaning or behavior when null.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'full month's prayer schedule', and distinguishes from siblings like get_prayer_times which likely handles single days.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_prayer_times or get_daily_azan_schedule; missing context about month-long scope or location dependency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_morning_adhkarA
Return the complete set of morning adhkar (Adhkar al-Sabah) with Arabic, transliteration, translation, source, and recommended count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description is the sole source. It states the tool returns data but offers no details on caching, rate limits, or side effects. As a read-only fetch with no parameters, transparency is minimal yet acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that conveys essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool, the description adequately specifies the return content. Absence of output schema is mitigated by listing fields, though error handling or data format is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (vacuously). The description adds semantic value by listing the fields returned, compensating for the lack of an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: returning morning adhkar with specific fields (Arabic, transliteration, translation, source, count). It distinguishes from siblings like 'get_evening_adhkar' and 'get_dua_by_topic' by specifying the exact resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context or when-to-use guidance is provided. The description does not mention alternatives or conditions for use, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_name_of_allahA
Look up a specific Name of Allah by number (1–99) or transliteration (e.g. 'Ar-Rahman' or 'rahman').
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It explains how to invoke the tool but does not disclose behavior such as case sensitivity, exact matching, error handling for invalid numbers/transliterations, or response format. For a simple lookup, this is acceptable but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Front-loaded with the action and resource. Every word is informative and necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is concise but covers the essential input specification. It does not describe return values or error behavior, but for a straightforward lookup tool, it is reasonably complete. The presence of sibling tools for listing and searching further contextualizes its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single string parameter 'identifier' with no description. The description adds crucial semantics: it can be a number (1–99) or a transliteration. Since schema coverage is 0%, the description compensates well, though it does not specify exact formatting rules (e.g., case, diacritics).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'look up', the resource 'Name of Allah', and specifies the input methods: by number (1–99) or transliteration. This distinguishes it from sibling tools like get_asma_ul_husna (which likely lists all names) and search_asma_ul_husna (which might allow broader search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by specifying acceptable input formats (number or transliteration). It does not explicitly state when not to use or mention alternatives, but the context with sibling tools makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_next_prayerC
Return the name and time of the next upcoming prayer from right now.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as how it handles null parameters, timezone, or error cases. The agent is left uninformed about important implementation details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. However, it could be restructured to place critical context (e.g., parameter defaults) earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and two undocumented parameters, the description is insufficient. It does not specify return format or default behavior, making it incomplete for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should explain the latitude and longitude parameters. It does not mention them at all, leaving the agent to guess their role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the name and time of the next prayer from the current moment, which is specific and distinguishes it from siblings like 'get_prayer_times' and 'get_time_until_next_prayer'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., location parameters) or scenarios where it is preferred over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prayer_duaB
Return du'as for a specific position in salah. position: ruku, sujood, tashahhud, after_salah.
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It implies a read operation but doesn't explicitly state idempotency, safety, or lack of side effects. The description is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence followed by a list of examples. No extraneous information. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the basic purpose and parameter meaning. However, it lacks information about the return format (e.g., array of strings, objects?) and does not provide an example response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It lists example values (ruku, sujood, tashahhud, after_salah) but does not specify exact accepted strings or format, leaving ambiguity. It adds some meaning beyond the schema but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns du'as for a specific position in salah, with a list of example positions. This distinguishes it from sibling tools like get_dua_by_topic or search_dua, though it could more explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search_dua or get_dua_by_topic. The description simply states what it does without context on exclusions or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prayer_timesA
Return all 5 daily prayer times plus Sunrise for a given date and location. Date is ISO 8601 (YYYY-MM-DD); defaults to today. Location defaults to configured coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the returned data (5 prayer times + Sunrise), date format (ISO 8601), and defaults (today, configured coordinates). It does not describe error handling or timezone behavior, but the core functionality is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the key action and output. Every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description only mentions 'all 5 daily prayer times plus Sunrise' without specifying field names or format. Given the tool's complexity and lack of output schema, more detail on the return structure would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the 'date' parameter format and default, and mentions location defaults to configured coordinates, but does not explicitly name the 'latitude' and 'longitude' parameters or their meaning. Partial value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns all 5 daily prayer times plus Sunrise, specifying the verb 'return' and the resource. It distinguishes from siblings like 'get_next_prayer' or 'get_monthly_prayer_calendar' by focusing on a specific date and location.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: to get prayer times for a given date and location. It mentions defaults for date and location, providing context. However, it does not mention when not to use it or list alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qibla_directionA
Return the Qibla bearing in degrees and 16-point cardinal direction toward the Kaaba in Makkah.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It states the output format (degrees and cardinal direction) but does not mention potential geolocation fallback, error handling, or internet requirement. Basic transparency is provided but lacks completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 15-word sentence that is front-loaded with the key action and result. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides the return format but omits input parameter details and any edge-case behavior (e.g., null coordinates). It is adequate for a simple tool but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to mention the two parameters (latitude, longitude) or explain how they influence the result. The description adds zero value over the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return', the resource 'Qibla bearing in degrees and 16-point cardinal direction', and the target 'toward the Kaaba in Makkah'. It uniquely identifies this tool among siblings like 'get_prayer_times' or 'calculate_zakat'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose is straightforward and no sibling provides a similar function, so confusion is minimal. However, the description does not explicitly state when to use it or mention optional parameter behavior (e.g., using default location if coordinates are null).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ramadan_datesB
Return the Gregorian start and end dates of Ramadan for a given year.
| Name | Required | Description | Default |
|---|---|---|---|
| gregorian_year | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are present, the description must fully disclose behavioral traits. It only states the output purpose but not the format of returned dates, error handling, or any side effects. No read-only or destructive hints are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no extraneous words. It efficiently conveys the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description omits important details like the format of dates, valid year range, and behavior for invalid inputs. It is adequate for basic understanding but not fully complete for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (parameter has no description). The tool description adds no extra meaning to the 'gregorian_year' parameter beyond what the schema already indicates (type integer). For a parameter with low coverage, description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns Gregorian start and end dates of Ramadan for a given year. It uses specific verbs and resources, distinguishing it from sibling tools like get_eid_dates or get_hijri_date.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., convert_gregorian_to_hijri for general conversion, or get_eid_dates for Eid). No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_infoA
Return the currently active server configuration: location, timezone, calculation method, madhab, and iqama offsets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It accurately describes the tool as returning configuration, implying read-only behavior. However, it does not disclose potential side effects, permissions, or response format beyond what is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool, the description adequately covers the return fields. However, it lacks information about the output structure (e.g., JSON object) which could be inferred from sibling tools. Nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so baseline is 4. The description does not need to add parameter info, and it provides a complete list of what the output contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and specifies the exact resource 'currently active server configuration' with a list of fields (location, timezone, etc.). It is specific and distinguishes the tool from siblings which focus on prayer times, fasting, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_hijri_date or get_prayer_times. The description does not provide context for when this configuration is needed or any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sunnah_prayer_timesC
Return Duha (Ishraq) and Tahajjud time windows for a given date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention whether calculation is based on coordinates, defaults, or any required prerequisites. Only the output type is hinted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is efficient but under-specified. It lacks necessary detail while being front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema), the description is insufficient. It does not explain return format, default behavior, or integration with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description provides no explanation of parameters like latitude, longitude, or date format. It only mentions 'given date' without elaboration, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns Duha and Tahajjud time windows, which is specific and distinguishes it from general prayer time tools like get_prayer_times. However, it does not explicitly differentiate from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, such as get_prayer_times for obligatory prayers. The description omits context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_time_until_next_prayerC
Return minutes until the next prayer and a human-readable countdown string (e.g. '2 hours 15 minutes').
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | No | ||
| longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description bears full burden. It mentions output format but fails to disclose behavior for null parameters or error cases, nor does it explain if location defaults are used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but omits essential parameter explanation, making it underinformative despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool relies on optional location params, yet description does not explain default behavior or fallback; no output schema means return structure is unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and description adds no meaning to latitude/longitude parameters; agent cannot infer their role in determining location.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states returning minutes until next prayer and countdown string, distinguishing it from siblings like get_next_prayer which returns prayer name, but does not explicitly differentiate from other time-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_next_prayer or get_prayer_times; no prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_voluntary_fasting_datesB
Return all recommended voluntary fasting days in a given Gregorian month: Mondays/Thursdays, Ayyam al-Beed, Day of Arafah, 6 days of Shawwal.
| Name | Required | Description | Default |
|---|---|---|---|
| gregorian_year | Yes | ||
| gregorian_month | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral details such as error handling, date format outputs, or whether it supports all Gregorian months. The agent is left to assume basic behavior without safety cues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that communicates the core purpose and key details without unnecessary words. Information is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is insufficient. It does not describe the return format (e.g., list of dates), error conditions, or coverage limitations. Agents may struggle to interpret the output correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides context that the year and month are Gregorian, which is not explicit in the schema. With 0% schema description coverage, this adds value, but it does not explain valid ranges, constraints, or how parameters map to the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns recommended voluntary fasting days for a given Gregorian month, listing specific categories. The verb 'Return' and resource 'voluntary fasting days' are explicit, and it distinguishes from siblings like get_ramadan_dates or get_eid_dates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool versus alternatives. The description implies usage for monthly fasting days, but lacks exclusions or comparisons to similar tools such as get_hijri_date or get_islamic_events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calculation_methodsA
List all 10 supported prayer time calculation methods with their Fajr/Isha angles.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns exactly 10 methods and mentions the inclusion of Fajr/Isha angles, which gives basic expectations. However, it does not clarify if the output is static, how it behaves on error, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is perfectly concise and front-loaded with the main action. Every word adds value, and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description adequately explains what is returned (list of 10 methods with angles). However, it could be slightly more complete by noting if the list includes names, descriptions, or other fields, or any ordering. Still, it is sufficient for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter information. The schema is empty, and coverage is 100% by default. A score of 4 reflects the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists exactly 10 supported prayer time calculation methods with their Fajr/Isha angles. It is specific about the verb (list), resource (calculation methods), and scope (all 10, with angles), distinguishing it from sibling tools like calculate_fasting_times or get_prayer_times.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. However, for a simple parameterless listing tool, the context is implied: it is used to retrieve the list of calculation methods. No alternatives are mentioned, but the sibling tools are clearly focused on different tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dua_topicsA
List all available du'a topic slugs that can be used with get_dua_by_topic.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description indicates a simple, idempotent list operation. It doesn't include details like rate limits or auth, but the behavior is clear enough for this type of tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple list tool. No output schema exists, but the return type (slugs) is implied. Could be slightly more explicit about what a slug looks like, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Baseline of 4 applies as the description need not add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it lists all available du'a topic slugs and indicates they are used with get_dua_by_topic, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before get_dua_by_topic, providing clear context. It doesn't explicitly state when not to use it or mention alternatives, but the purpose is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_asma_ul_husnaB
Search the 99 Names of Allah by meaning, transliteration, or Arabic text.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose important behavioral traits such as case sensitivity, result limits, whether it returns a single name or multiple, or if partial matching is supported. A search tool requires such details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Efficiently communicates core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 param, no output schema), but the description omits return value type (list or single?) and search behavior. It provides enough to understand input but not enough to fully know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'query' has 0% schema description coverage. The description adds meaning by specifying that query can be meaning, transliteration, or Arabic text, but does not provide format, constraints, or examples, so it partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches the 99 Names of Allah by meaning, transliteration, or Arabic text, using a specific verb and resource. It distinguishes from siblings like 'get_asma_ul_husna' by indicating search capability rather than direct lookup, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., 'get_asma_ul_husna' for listing all names). The description provides no context on preferred scenarios or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_duaA
Search across all du'a and adhkar by Arabic text, transliteration, translation, or topic. Returns matched entries with which fields matched.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states returns matched entries with which fields matched, giving some behavioral insight, but lacks details on pagination, ranking, or whether all du'a are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded, and contains no redundant information. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and no output schema, the description is fairly complete. It describes input options and output format. Could mention case sensitivity or partial matching, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds minimal semantics: query can be Arabic, transliteration, etc., but no explanation for the limit parameter. The description partially compensates for query but not for limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches across all du'a and adhkar by multiple criteria (Arabic text, transliteration, translation, or topic) and returns matched entries. This distinguishes it from sibling tools like get_dua_by_topic or get_morning_adhkar which are more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for general searching but does not explicitly state when to use this tool versus alternatives. Sibling tools like get_dua_by_topic are for topic-specific retrieval, but no guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_iqama_offsetA
Update the Iqama offset (minutes after adhan) for a prayer. Change is in-memory only and resets on server restart.
| Name | Required | Description | Default |
|---|---|---|---|
| prayer | Yes | ||
| offset_minutes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description explicitly states the key behavioral trait that changes are not persistent. This adds crucial transparency for a mutation tool. Could further disclose error handling or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loading purpose and including critical behavioral note. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and key behavior, but omits return value, error conditions, and permission requirements. For a simple setter with no output schema, this is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaning: offset is 'minutes after adhan' and prayer is 'for a prayer'. This clarifies parameter purpose. Missing allowed values or range for offset_minutes and prayer names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Update the Iqama offset' specifies the action and target. Distinguishes from sibling get_iqama_time by indicating a write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes transient nature of changes ('in-memory only, resets on restart'), which is useful context. However, no explicit guidance on when to use vs alternatives like get_iqama_time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All 34 tools have clearly distinct purposes, ranging from prayer times to zakat calculations. There is no overlap—each tool handles a unique aspect of Islamic practice, making it easy for an agent to select the correct one.
Tool names follow a consistent verb_noun pattern in snake_case (e.g., 'calculate_fasting_times', 'get_dua_by_topic', 'list_calculation_methods'). The naming is predictable and uniform across the entire set.
With 34 tools, the server is on the larger side but still reasonable given the breadth of Islamic topics covered (prayer, fasting, zakat, duas, adhkar, etc.). Each tool serves a distinct function, and the count is not excessive.
The server covers a wide range of Islamic needs: prayer schedules, adhan, duas, adhkar, zakat, fasting, inheritance, and calendar conversion. It lacks some advanced features like Quran or hadith search, but for an 'Azan' server it is quite comprehensive.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides access to Malaysia prayer time data through Claude Desktop, enabling users to retrieve prayer times for specific zones, list available prayer zones, and check current prayer time status.MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for Google Calendar integration in Claude Desktop, enabling AI assistants to manage Google Calendar events through natural language interactions.181ISC
- AlicenseAqualityAmaintenanceMCP server providing Malaysian/global prayer times (JAKIM + Aladhan fallback), nearest mosque/surau finder, and Islamic calendar events.41MIT
- AlicenseCqualityCmaintenanceA Model Context Protocol server exposing 58 online tools (crypto, data, image, text, etc.) and workflow execution, enabling MCP clients like Claude Desktop to invoke them via natural language.5816MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmedeltaher/azan-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server