Skip to main content
Glama
2yousefreda

Islamic Content MCP Server

risalat_al_haramain

Retrieve official fatwas, Friday sermons, and hadeeths from the Two Holy Mosques. Access authorized Haramain content in multiple languages for Islamic research.

Instructions

Access Risalat Al-Haramain to fetch official Haramain (Two Holy Mosques) fatwas, Friday sermons, specific hadeeths, and institutional contents. Specializes in official decrees and sermons originating from Mecca and Medina, distinguishing it from general libraries.

Behavior: Read-only. Idempotent. Public endpoints have no auth. Lookup endpoints require apiKey. Handles rate limits via graceful empty returns. Usage Guidelines:

  • Use for Friday sermons from the Haramain, official fatwas from Haramain scholars, or institutional news.

  • Do NOT use for general Islamic books (use islamhouse_library). Action Mapping:

  • get_full_contents, get_contents: language, lang -> Returns { data: [{ id, title, date }] }

  • get_fatwas, get_hadeeths, get_quran: language, lang, [isFeatured (0/1)] -> Returns { data: [{ id, content }] }

  • get_content: id (int), language -> Returns { id, title, body, mediaUrls: [] }

  • search_contents: query (string), language -> Returns { results: [{ id, title }] }

  • get_lookups_languages, get_lookups_content_types: language, [apiKey] -> Returns { lookups: [] } Returns: Concrete JSON object { data: [], lookups: [], results: [] } for Haramain official releases.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
langNo
nameNo
pageNo
queryNo
actionYesRequired. One of: 'get_full_contents', 'get_contents', 'get_content', 'search_contents', 'get_fatwas', 'get_hadeeths', 'get_quran', 'get_lookups_languages', 'get_lookups_content_types'
apiKeyNo
languageNo
isFeaturedNo
targetLanguageNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Required. One of: 'get_full_contents', 'get_contents', 'get_content', 'search_name', 'search_contents', 'get_available_languages', 'get_content_translation', 'get_fatwas', 'get_hadeeths', 'get_quran', 'get_lookups_languages', 'get_lookups_content_types'"New value: +"Required. One of: 'get_full_contents', 'get_contents', 'get_content', 'search_contents', 'get_fatwas', 'get_hadeeths', 'get_quran', 'get_lookups_languages', 'get_lookups_content_types'"
    • addedInput schema / properties / page
      Added value: +{
      +  "type": "integer"
      +}
  2. Changed8 schema fields changedv1.1.12
    • removedInput schema / properties / apiKey / description
      Removed value: -"API Key for lookup endpoints"
    • removedInput schema / properties / id / description
      Removed value: -"Content ID"
    • removedInput schema / properties / isFeatured / description
      Removed value: -"Featured flag (0 or 1)"
    • removedInput schema / properties / lang / description
      Removed value: -"Secondary language code (ISO-639-1)"
    • removedInput schema / properties / language / description
      Removed value: -"Language code (ISO-639-1)"
    • removedInput schema / properties / name / description
      Removed value: -"Search name"
    • removedInput schema / properties / query / description
      Removed value: -"Search query string"
    • removedInput schema / properties / targetLanguage / description
      Removed value: -"Target translation language (ISO-639-1)"
  3. Changed8 schema fields changedv1.1.11
    • addedInput schema / properties / apiKey / description
      Added value: +"API Key for lookup endpoints"
    • addedInput schema / properties / id / description
      Added value: +"Content ID"
    • addedInput schema / properties / isFeatured / description
      Added value: +"Featured flag (0 or 1)"
    • addedInput schema / properties / lang / description
      Added value: +"Secondary language code (ISO-639-1)"
    • addedInput schema / properties / language / description
      Added value: +"Language code (ISO-639-1)"
    • addedInput schema / properties / name / description
      Added value: +"Search name"
    • addedInput schema / properties / query / description
      Added value: +"Search query string"
    • addedInput schema / properties / targetLanguage / description
      Added value: +"Target translation language (ISO-639-1)"
  4. Addedv1.1.2

TDQS

A4.7/5.0
Behavior4/5

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

The description discloses read-only, idempotent behavior, auth requirements, and rate-limit handling (graceful empty returns). However, there is an internal inconsistency: it states 'Lookup endpoints require apiKey' but the action mapping shows `[apiKey]` for lookups, implying it's optional. This minor contradiction slightly reduces clarity, though overall it 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.

Conciseness4/5

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

The description is long but well-structured with clear sections (Behavior, Usage Guidelines, Action Mapping, Returns). The action mapping is detailed but arguably redundant for some common parameters; nonetheless, it is organized and front-loaded with purpose. Slightly verbose but each part serves a purpose.

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?

Given 10 parameters, no output schema, and multiple actions, the description covers all actions, parameter usage, auth, rate limits, and return shapes. It also distinguishes from sibling tools, making it fully complete for an agent to call correctly.

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

Parameters5/5

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

With only 10% schema coverage, the description compensates excellently via the 'Action Mapping' section, which explains which parameters apply to each action, their types (e.g., `id` int, `query` string, `isFeatured` 0/1) and the exact return structure. This adds substantial meaning beyond the bare schema.

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

Purpose5/5

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

The description clearly states the tool fetches official Haramain fatwas, Friday sermons, hadeeths, and institutional contents, explicitly distinguishing it from general libraries. This is a specific verb+resource+scope definition that helps the agent understand its unique role among siblings.

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?

There is an explicit 'Usage Guidelines' section that says when to use (Friday sermons, official fatwas, institutional news) and when not to use (general Islamic books, pointing to `islamhouse_library`). This provides direct alternative routing, leaving no ambiguity.

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