Awwab Qibla & Quiz
Server Details
Qibla direction from anywhere, with a live compass link, and an Islamic knowledge quiz. By Awwab.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools occupy clearly separate slots: find_qibla answers a directional lookup, start_quiz creates a quiz round, and check_answer grades one answer within that round. The start/check pairing is an explicit two-phase workflow (quiz_id links them), so there is no risk of confusing one for the other.
All three names follow the same verb_noun snake_case convention: find_qibla, start_quiz, check_answer. The verbs (find/start/check) accurately reflect each tool's action and are used unambiguously.
Three tools is at the thin end, but the server covers two small features (Qibla lookup and a quiz round), and each tool is necessary for its workflow. A minor extra like a topic/language listing would not be out of place, but nothing feels redundant.
find_qibla is well covered (bearing, compass direction, magnetic bearing, distance, live compass URL), and the quiz has a create-and-grade lifecycle that ends with the final score. Gaps are minor: there is no way to enumerate valid topics/languages or inspect a round's state or past results, but an agent can work around this by starting a quiz and reading the returned questions.
Available Tools
3 toolscheck_answerCheck a quiz answerAInspect
Grades one answer from a start_quiz round. Returns whether it is correct, the correct answer, the explanation, its sources and the running score; after the last question it also returns the final score. Each question can be graded once.
| Name | Required | Description | Default |
|---|---|---|---|
| answer | Yes | multiple_choice and fill_blank: the index of the option, from 0. true_false: true or false. match_pairs: an array with, for each item of lefts in order, the index of its match in rights. | |
| quiz_id | Yes | The quiz_id from start_quiz. | |
| language | No | Language of the questions, options and explanations. Default en. | |
| question_id | Yes | The id of the question in the round. |
Output Schema
| Name | Required | Description |
|---|---|---|
| final | No | |
| score | No | |
| total | No | |
| streak | No | |
| correct | No | |
| sources | No | |
| answered | No | |
| finished | No | |
| play_url | Yes | |
| source_url | No | |
| attribution | Yes | |
| explanation | No | |
| correct_match | No | |
| correct_value | No | |
| match_results | No | |
| correct_option | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=false, and the description adds the concrete consequence that each question can be graded only once. It also summarizes the response, including returning the final score after the last question, though it does not describe the error behavior for a duplicate grading attempt.
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 tight sentences with the core action, workflow context, return summary, and one-time constraint front-loaded. There is no filler and every sentence contributes useful invocation context.
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 an output schema, annotations, and 100% schema coverage, the description supplies the needed workflow context: it follows start_quiz, grades one answer, can be used only once per question, and returns final score after the last question. No critical invocation context is missing.
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 100%, so the schema already documents quiz_id, question_id, answer format by question type, and the language enum. The description only implies the start_quiz workflow and adds no parameter-level syntax beyond the schema, which fits the baseline of 3.
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?
States a specific verb, 'Grades', and a specific object, 'one answer from a start_quiz round'. It clearly distinguishes itself from start_quiz by being the downstream grading step rather than the quiz-creation step, and the return details further pin the purpose.
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?
Establishes the prerequisite context that it operates on a start_quiz round and enforces the key constraint that each question can be graded once. It does not explicitly say when not to use it or name a direct alternative beyond start_quiz, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_qiblaFind the Qibla directionARead-onlyIdempotentInspect
Get the Qibla direction (the direction Muslims face in prayer, toward the Kaaba in Makkah) for a place: the bearing in degrees clockwise from true north, the compass direction, the magnetic bearing and declination, and the distance to the Kaaba. Use this for any question about the Qibla, the prayer direction, or the direction of Makkah (Mecca) or the Kaaba, including a request to show a Qibla compass. The result includes an attribution line and live_compass_url, a page with a phone compass that points at the Kaaba. The place is used only to answer the request. It isn't logged or stored.
| Name | Required | Description | Default |
|---|---|---|---|
| place | No | The place to find the Qibla from: a city (any city of 15,000+ people, in many languages), with the country if it is ambiguous, e.g. "Karachi", "Hyderabad, India", "القاهرة", or coordinates, e.g. "40.71, -74.00". | |
| language | No | The language the user is writing in. Sets the language of the card and of the linked live compass page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cardinal | No | |
| language | No | The language the card is shown in, when known |
| latitude | Yes | |
| sentence | No | |
| longitude | Yes | |
| place_name | No | |
| attribution | Yes | |
| distance_km | Yes | |
| distance_mi | No | |
| bearing_true | Yes | Degrees clockwise from true north |
| cardinal_name | No | |
| bearing_magnetic | No | Degrees clockwise from magnetic north (for a needle compass), today |
| live_compass_url | Yes | |
| magnetic_declination | No | Degrees, east positive (WMM2025) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new context: the privacy guarantee that the place 'isn't logged or stored' and the presence of an attribution line plus a live_compass_url in the result. It stops short of covering failure behavior, such as ambiguous or unknown places.
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?
Front-loaded with the purpose and the definition before the usage triggers, and each subsequent sentence carries distinct information (outputs, triggers, privacy). It runs slightly long for a two-parameter lookup, with the output enumeration being partly redundant with the output schema, but nothing is filler.
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 two-param, annotated, read-only lookup with an output schema, the description covers purpose, triggers, output shape and privacy. The only real gap is edge-case behavior, e.g. what happens when the place is ambiguous or not matched at the 15,000-population threshold.
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 100%, with both the place format (city, qualified city, coordinates) and the language enum fully documented in-schema, so the baseline is 3. The description adds nothing param-specific beyond noting the place is only used to answer the request, which is a privacy note rather than semantic clarification.
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?
States a specific verb and resource ('Get the Qibla direction') and immediately defines the concept for agents that lack domain knowledge, including the reference point (Kaaba in Makkah). It is unmistakable against the siblings check_answer and start_quiz, which belong to a different domain entirely.
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?
Enumerates concrete invocation triggers: 'any question about the Qibla, the prayer direction, or the direction of Makkah (Mecca) or the Kaaba, including a request to show a Qibla compass.' There is no explicit when-not or named alternative, but no plausible alternative tool exists in this sibling set, so the guidance is effectively complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_quizStart an Awwab quizAInspect
Starts one round of the Awwab Knowledge quiz on Islam: five questions in the chosen language, on an optional topic such as the prophets, the Qur'an, the Prophet's life, worship or Islamic history. Use this for a request for an Islamic quiz, test or trivia. Returns the questions and their options without the correct answers, and a quiz_id for check_answer. Question types: multiple_choice, true_false, fill_blank and match_pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional topic, e.g. "the prophets", "Ramadan", "Yusuf". Without one the round is mixed. | |
| language | No | Language of the questions, options and explanations. Default en. |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | No | The matched topic's name, or null for a mixed round |
| total | Yes | |
| quiz_id | Yes | |
| language | Yes | |
| play_url | Yes | |
| questions | Yes | id, number, type, difficulty, prompt, and template, options or lefts and rights by type. No answers. |
| attribution | Yes | |
| topic_matched | No | |
| available_topics | No | Present when a topic was asked for and none matched |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-read-only, non-idempotent, non-destructive), so the bar is lower. The description adds genuinely useful behavior beyond them: answers are withheld from the response and a quiz_id is issued for later grading, which explains why readOnlyHint is false despite sounding like a read. Missing only things like rate limits or whether rounds are deterministic.
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?
Three sentences, front-loaded with the verb and scope, then usage trigger, then return contract. The trailing sentence listing question types is slightly bolted on but does carry information (multi-format output) that affects how an agent presents results.
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?
An output schema exists, so return values needn't be enumerated, yet the description still summarizes the key contract (questions and options, no correct answers, plus quiz_id). With only two optional, fully described parameters and annotations covering safety, an agent has everything needed to invoke it 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 coverage is 100%, so both parameters (topic, language) are already fully documented with examples and the mixed-round default. The description adds little parameter-level meaning beyond restating that language is chosen and topic is optional; the question-type list it does add is not a parameter at all, so it doesn't help parameter selection.
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?
States a specific verb and resource ("Starts one round of the Awwab Knowledge quiz on Islam") plus concrete scope: five questions, chosen language, optional topic. It also names the natural sibling handoff (check_answer) and enumerates question types, so an agent can distinguish it from check_answer and find_qibla without opening a schema.
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?
Explicit trigger: "Use this for a request for an Islamic quiz, test or trivia", which tells the agent exactly which user intent selects this tool. The follow-up path to check_answer is implied via quiz_id, but there is no explicit statement of when not to use it (e.g. resuming an existing round).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
find_qibla2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Optional: language of the live compass page linked in the result. Default en."New value: +"The language the user is writing in. Sets the language of the card and of the linked live compass page." - added
Output schema / properties / languageAdded value: +{ + "description": "The language the card is shown in, when known", + "type": "string" +}
3 tool updates
- Added
check_answer - Changed
find_qibla1 field changed- changed
Input schema / properties / place / descriptionPrevious value: -"The place the user named: a city (any city of 15,000+ people, in many languages), with the country if it is ambiguous, e.g. \"Karachi\", \"Hyderabad, India\", \"القاهرة\", or coordinates they typed, e.g. \"40.71, -74.00\"."New value: +"The place to find the Qibla from: a city (any city of 15,000+ people, in many languages), with the country if it is ambiguous, e.g. \"Karachi\", \"Hyderabad, India\", \"القاهرة\", or coordinates, e.g. \"40.71, -74.00\"."
- Added
start_quiz
1 tool update
- Changed
find_qibla5 fields changed- removed
Input schema / properties / cityRemoved value: -{ - "description": "City name instead of coordinates, e.g. \"Karachi\", \"Hyderabad, India\", \"القاهرة\", \"Москва\".", - "maxLength": 120, - "type": "string" -} - removed
Input schema / properties / countryRemoved value: -{ - "description": "Optional country (ISO 3166 code like \"PK\", or English name) to narrow a city name.", - "maxLength": 60, - "type": "string" -} - removed
Input schema / properties / latitudeRemoved value: -{ - "description": "Latitude in decimal degrees (north positive). Use with longitude.", - "maximum": 90, - "minimum": -90, - "type": "number" -} - removed
Input schema / properties / longitudeRemoved value: -{ - "description": "Longitude in decimal degrees (east positive). Use with latitude.", - "maximum": 180, - "minimum": -180, - "type": "number" -} - added
Input schema / properties / placeAdded value: +{ + "description": "The place the user named: a city (any city of 15,000+ people, in many languages), with the country if it is ambiguous, e.g. \"Karachi\", \"Hyderabad, India\", \"القاهرة\", or coordinates they typed, e.g. \"40.71, -74.00\".", + "maxLength": 120, + "type": "string" +}
1 tool update
- First observed
find_qibla
Related MCP Connectors
Prayer times, Qibla, Hijri calendar, 99 Names, Quran audio, Bangladesh offsets. English + Bengali.
Find halal restaurants and mosques worldwide, with verified halal status and prayer times.
Production-ready Muslim prayer reminder MCP with astronomical precision and theological disclosure.
Curated Islamic MCP: Quran (Arabic + Pickthall), 440 du'as, 99 Names, crisis-aware.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables an assistant to retrieve Quranic verses in Uthmani Arabic with any of hundreds of translations, look up and search ten major hadith collections, and compute prayer times offline from the sun's position. Every quotation comes back with its exact reference so answers can be verified rather than paraphrased from memory.7MIT
- AlicenseNot gradedqualityBmaintenanceProvides Islamic prayer times, Qibla direction, and Hijri calendar conversion using the Aladhan API. No API key required.12 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables users to ask questions about the life of Prophet Muhammad ﷺ and get answers grounded in four scholarly books, fully offline and free.-
- FlicenseNot gradedqualityDmaintenanceA service for calculating Islamic prayer times, Qiblah direction, and moon visibility using the islamic_times library.3-
Glama MCP Gateway
Add one secure layer between your agents and this server.