Skip to main content
Glama
2yousefreda

Islamic Content MCP Server

islamhouse_library

Search and retrieve Islamic books, audios, videos, fatwas, articles, and author metadata from IslamHouse Library for scholarly research and content discovery.

Instructions

Access IslamHouse Library for books, audios, videos, fatwas, articles, and author metadata. Excludes Quran recitations (use 'islamhouse_quran') and Hadith texts (use 'hadeethenc_services').

Behavior: Read-only, idempotent, public access (no auth/rate limits). Cached dynamically with real-time freshness. Fallback to English on missing translations; returns empty arrays for unknown IDs; returns 400 error payload on invalid actions or malformed parameters.

Usage Guidelines:

  • Use for: Scholarly books, articles, fatwas, multimedia, and author biographies.

  • Do NOT use for: Raw Quran text/audio ('islamhouse_quran' / 'quran_services') or Hadith collections ('hadeethenc_services').

Parameters & Enums:

  • action: API operation (see Action Groups below).

  • type: Content format enum: books, audios, videos, fatwas, articles.

  • period: Trending window enum: daily, weekly, monthly.

  • sort: Ordering enum: popular, newest, oldest.

  • kind: Scope filter enum: main, sub.

  • language, siteLang, contentLang, slang, locale: 2-letter ISO-639-1 codes (e.g., 'en', 'ar').

  • page, limit: Integer pagination controls.

  • id, categoryId, authorId: Positive integer identifiers.

Action Groups & Returns:

  • Taxonomy (list_categories, list_types, get_categories_tree): Requires language -> Array of { id: number, name: string, parentId?: number }.

  • Listings (list_items, get_latest_items, get_highlighted_items): Uses page, limit, type, [categoryId/authorId/period/sort/contentLang] -> { data: ItemSummary[], total: number, page: number }.

  • Aggregations (get_items_count): Uses type, [categoryId/contentLang] -> { type: string, total: number }.

  • Details (get_item_details, get_item_attachments, get_item_translations): Requires id, [language] -> Detailed { id, title, description, attachments: Attachment[], locales: string[] }.

  • Authors (list_authors, get_author_details): Uses page, limit or id, [language] -> Author profile with { id, name, biography, itemsCount: number }.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
kindNo
pageNo
sortNo
typeNo
limitNo
slangNo
actionYesRequired. Action to perform, e.g. 'get_types', 'get_categories', 'get_categories_tree', 'get_child_categories', 'get_category_basic', 'get_sub_categories', 'get_category_types', 'get_category_languages', 'list_items', 'get_author_items', 'get_category_items', 'get_latest_items', 'get_highlighted_items', 'get_items_count', 'get_item_details', 'get_item_attachments', 'get_item_tree', 'get_item_card_translations', 'get_item_translations', 'list_authors', 'get_author_details', 'get_author_card_translations', 'get_author_available_types', 'get_author_available_locales', 'list_languages', 'get_language_terms', 'get_language_availability'
localeNo
periodNo
authorIdNo
languageNo
siteLangNo
categoryIdNo
contentLangNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changedv1.1.12
    • removedInput schema / properties / authorId / description
      Removed value: -"Author ID"
    • removedInput schema / properties / categoryId / description
      Removed value: -"Category ID"
    • removedInput schema / properties / contentLang / description
      Removed value: -"Content language code (ISO-639-1)"
    • removedInput schema / properties / id / description
      Removed value: -"Positive integer identifier"
    • removedInput schema / properties / kind / description
      Removed value: -"Scope filter enum: main, sub"
    • removedInput schema / properties / language / description
      Removed value: -"Language code (ISO-639-1)"
    • removedInput schema / properties / limit / description
      Removed value: -"Pagination limit"
    • removedInput schema / properties / locale / description
      Removed value: -"Locale format (e.g. ar-SA)"
    • removedInput schema / properties / page / description
      Removed value: -"Page number"
    • removedInput schema / properties / period / description
      Removed value: -"Trending window enum: daily, weekly, monthly"
    • removedInput schema / properties / siteLang / description
      Removed value: -"Site language code (ISO-639-1)"
    • removedInput schema / properties / slang / description
      Removed value: -"Source language code (ISO-639-1)"
    • removedInput schema / properties / sort / description
      Removed value: -"Ordering enum: popular, newest, oldest"
    • removedInput schema / properties / type / description
      Removed value: -"Content format enum: books, audios, videos, fatwas, articles"
  2. Changed14 schema fields changedv1.1.11
    • addedInput schema / properties / authorId / description
      Added value: +"Author ID"
    • addedInput schema / properties / categoryId / description
      Added value: +"Category ID"
    • addedInput schema / properties / contentLang / description
      Added value: +"Content language code (ISO-639-1)"
    • addedInput schema / properties / id / description
      Added value: +"Positive integer identifier"
    • addedInput schema / properties / kind / description
      Added value: +"Scope filter enum: main, sub"
    • addedInput schema / properties / language / description
      Added value: +"Language code (ISO-639-1)"
    • addedInput schema / properties / limit / description
      Added value: +"Pagination limit"
    • addedInput schema / properties / locale / description
      Added value: +"Locale format (e.g. ar-SA)"
    • addedInput schema / properties / page / description
      Added value: +"Page number"
    • addedInput schema / properties / period / description
      Added value: +"Trending window enum: daily, weekly, monthly"
    • addedInput schema / properties / siteLang / description
      Added value: +"Site language code (ISO-639-1)"
    • addedInput schema / properties / slang / description
      Added value: +"Source language code (ISO-639-1)"
    • addedInput schema / properties / sort / description
      Added value: +"Ordering enum: popular, newest, oldest"
    • addedInput schema / properties / type / description
      Added value: +"Content format enum: books, audios, videos, fatwas, articles"
  3. Addedv1.1.2

TDQS

A5/5.0
Behavior5/5

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

Annotations are absent, so the description carries full disclosure burden. It discloses read-only/idempotent behavior, public access with no auth/rate limits, caching/freshness, fallback to English, empty arrays for unknown IDs, and 400 errors on invalid actions. This is comprehensive behavioral context.

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

Conciseness5/5

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

The description is long but well-structured with bold headers, bullet lists, and dense, non-redundant content. Each section (Behavior, Usage Guidelines, Parameters, Action Groups) earns its place, and the purpose/exclusions are front-loaded.

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 15 parameters, many action variants, and no output schema, the description includes action-group-specific return payload shapes (e.g., taxonomy arrays, listing objects with data/total/page), error behavior, and parameter compatibility. This gives an agent everything needed to invoke it correctly across action families.

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?

Schema description coverage is only 7%, with no enums in schema, but the description adds a 'Parameters & Enums' section explaining each parameter group, including enum values for type, period, sort, kind, ISO codes, pagination, and ID types. It also maps parameters to action groups, fully compensating for the schema's sparse coverage.

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?

States a specific verb and resource – 'Access IslamHouse Library' – and enumerates content types: books, audios, videos, fatwas, articles, and author metadata. It explicitly excludes Quran recitations and Hadith texts, naming sibling tools, which distinguishes it from 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?

Provides a dedicated 'Usage Guidelines' section with clear use-for and do-not-use-for lists, explicitly naming islamhouse_quran and hadeethenc_services as alternatives. This leaves no ambiguity about when to select this tool.

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