Skip to main content
Glama
This connector has been deprecated

Tafsir of an ayah

shamela_get_tafseer_of_aya
Read-onlyIdempotent

تفاسير آية

Given a Qur'anic verse, list every tafsir book in the catalog that has a page commenting on it. Uses Shamela's pre-built service/tafseer.db join. Pass either aya_id (1..6236) OR surah+aya. By default returns only books the user has downloaded locally (downloaded_only=true) — set to false to see the full catalog of tafsirs that COULD comment on this verse if downloaded. Each result has book_id, book_name, author_name, page_id, downloaded flag. Pair with shamela_get_page(book_id, page_id) to read the actual tafsir text. NOTE: this uses a CURATED service index that may omit downloaded tafsirs (many tafsirs carry no per-page aya markers) — on some installs it returns only al-Tabari. For the user's full tafsir picture, also list downloaded books in the tafsir categories via shamela_list_downloaded_books(category_id=3) and (category_id=4); see coverage_note in the result.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ayaNoAya within surah.
surahNoSurah number, paired with `aya`.
aya_idNoAya id 1..6236.
downloaded_onlyNoIf true (default), only return books the user has downloaded locally.
response_formatNoOutput format for the human-readable text. 'markdown' (default) is best for direct display; 'json' returns the same data as a single JSON code block; 'none' skips the rendered text entirely and returns a one-line pointer, leaving `structuredContent` as the whole answer. The structured data is returned in `structuredContent` regardless of this setting, so a caller that parses it should pass 'none' — the character budget is measured over BOTH channels, and the unread copy is otherwise spending most of it. Requires the 'response_format.none' capability (see shamela_brief).markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly/idempotent/non-destructive), and the description adds genuinely new behavioral context: it depends on a pre-built service/tafseer.db join, uses a CURATED index that can omit downloaded tafsirs, may degrade to only al-Tabari on some installs, and surfaces a coverage_note in the result. That is exactly the kind of limitation disclosure an agent needs before trusting the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then addressing modes, default behavior, and the caveat. Dense but each sentence carries information. Slightly long, though the length is justified by the real coverage caveat rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by enumerating the result fields (book_id, book_name, author_name, page_id, downloaded flag) and the coverage_note. Combined with the pairing instructions and index caveat, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description nonetheless adds meaning beyond the literal schema text, interpreting downloaded_only=false as 'the full catalog of tafsirs that COULD comment on this verse if downloaded', and clarifying the aya_id vs surah+aya addressing choice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with scope: 'list every tafsir book in the catalog that has a page commenting on it' given a Qur'anic verse. The scope (books, not tafsir text) is clear. However, it never distinguishes itself from the near-identical sibling shamela_list_tafsirs_for_aya or from shamela_get_tafseer_texts, which an agent could easily confuse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the two mutually exclusive addressing modes (aya_id OR surah+aya), the default filter behavior (downloaded_only=true) and when to flip it, and routes the agent to companions: shamela_get_page(book_id, page_id) to read the text, and shamela_list_downloaded_books(category_id=3)/(category_id=4) for the full picture. The condition under which each alternative applies is spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources