Read Quran Today

The Quran (Madinah Mushaf): Arabic, 127 translations, tafsir, word by word and recitations

Should I use this

Quality & Safety

A
Description quality
86%
Schema completeness
81%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'search' description lacks action verbin search
  • LOWTool 'list_translations' description lacks action verbin list_translations

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,862Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.45% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "quran": {
      "url": "https://readqurantoday.com/mcp"
    }
  }
}

Remote endpoints

https://readqurantoday.com/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_ayah(surah, ayah, to, translation)

The Arabic of one ayah or a run of them (up to 50), with a translation. Defaults to the King Fahd Complex English (Hilali & Muhsin Khan).

Input Schema

{
  "type": "object",
  "properties": {
    "surah": {
      "type": "integer",
      "minimum": 1,
      "maximum": 114,
      "description": "Surah number, 1-114"
    },
    "ayah": {
      "type": "integer",
      "minimum": 1,
      "description": "First ayah"
    },
    "to": {
      "type": "integer",
      "minimum": 1,
      "description": "Last ayah, for a run; defaults to the first"
    },
    "translation": {
      "type": "string",
      "description": "Translation id, e.g. \"hilali\", \"sahih\", \"urdu_junagarhi\"; \"none\" for the Arabic alone"
    }
  },
  "required": [
    "surah",
    "ayah"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search(query, translation, limit)

Ayahs containing the words given: in the Arabic (diacritics optional) or, with "translation", in that translation. Up to 50 results, each with its reference and link.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    },
    "translation": {
      "type": "string",
      "description": "Search this translation instead of the Arabic, e.g. \"hilali\""
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Default 10"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_tafsir(surah, ayah, to)

The Tafsir al-Muyassar (King Fahd Complex, Arabic) of one ayah or a run of them, up to 50.

Input Schema

{
  "type": "object",
  "properties": {
    "surah": {
      "type": "integer",
      "minimum": 1,
      "maximum": 114,
      "description": "Surah number, 1-114"
    },
    "ayah": {
      "type": "integer",
      "minimum": 1
    },
    "to": {
      "type": "integer",
      "minimum": 1
    }
  },
  "required": [
    "surah",
    "ayah"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢word_by_word(surah, ayah, language)

Each word of an ayah: its Latin reading and its meaning, in English or one of the other languages that have word meanings.

Input Schema

{
  "type": "object",
  "properties": {
    "surah": {
      "type": "integer",
      "minimum": 1,
      "maximum": 114,
      "description": "Surah number, 1-114"
    },
    "ayah": {
      "type": "integer",
      "minimum": 1
    },
    "language": {
      "type": "string",
      "description": "Language code for the meanings; default \"en\""
    }
  },
  "required": [
    "surah",
    "ayah"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_recitation(surah, reciter, ayah, to)

The recording of a surah: a link to the MP3, its length, and where each ayah starts and ends, in seconds, with a link that starts at a given ayah, or plays a run of ayahs and stops.

Input Schema

{
  "type": "object",
  "properties": {
    "surah": {
      "type": "integer",
      "minimum": 1,
      "maximum": 114,
      "description": "Surah number, 1-114"
    },
    "reciter": {
      "type": "string",
      "description": "Reciter id; defaults to the site's own"
    },
    "ayah": {
      "type": "integer",
      "minimum": 1,
      "description": "An ayah to start the link at"
    },
    "to": {
      "type": "integer",
      "minimum": 1,
      "description": "With ayah: the last ayah of a run to play, e.g. ayah 1 to 5"
    }
  },
  "required": [
    "surah"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_file(kind, surah, translation, tafsir, reciter)

Links to download a surah's files: "text", the Arabic (optionally with a translation and the Tafsir al-Muyassar) as a .txt; "audio", its recording as an MP3 (leave out the surah for all of a reciter's); "timing", where each ayah and word of a recording starts and ends, as JSON; "font", the mushaf's fonts for the surah's pages (QCF V2, one a page) with the glyphs each ayah is written in; "data", for developers, the whole data sets (the Uthmani text, a translation or the tafsir in one file, the mushaf layout, word by word), with their sources.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "text",
        "audio",
        "timing",
        "font",
        "data"
      ]
    },
    "surah": {
      "type": "integer",
      "minimum": 1,
      "maximum": 114,
      "description": "Surah number, 1-114; needed for all but audio"
    },
    "translation": {
      "type": "string",
      "description": "For text: a translation id to put under each ayah, e.g. \"hilali\"; for data: the translation to give whole"
    },
    "tafsir": {
      "type": "boolean",
      "description": "For text: the Tafsir al-Muyassar under each ayah"
    },
    "reciter": {
      "type": "string",
      "description": "For audio and timing: reciter id; defaults to the site's own"
    }
  },
  "required": [
    "kind"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_surahs

All 114 surahs: number, names, ayah count and mushaf pages.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_translations(language)

The translations on offer, optionally for one language: id, language, translator. Also which languages have word-by-word meanings.

Input Schema

{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "description": "A language name or code to narrow to, e.g. \"urdu\" or \"ur\""
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_reciters

The recordings on offer: id, reciter, and what tells two recordings by one voice apart.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡send_feedback(kind, message, surah, ayah, reciter, ...)

Send the reader's report to readqurantoday.com: a problem with the site's text, a translation, the tafsir or a recitation, or a suggestion. Only when the reader asks to report or suggest something; send what they said, in their words, and the ayah or reciter it is about. Never on your own initiative.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "bug",
        "suggestion",
        "feature",
        "other"
      ],
      "description": "\"bug\" for something wrong"
    },
    "message": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "The report, in the reader's words"
    },
    "surah": {
      "type": "integer",
      "minimum": 1,
      "maximum": 114
    },
    "ayah": {
      "type": "integer",
      "minimum": 1
    },
    "reciter": {
      "type": "string",
      "maxLength": 80,
      "description": "Reciter id, for a problem with a recitation"
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254,
      "description": "Only if the reader gives it, for a reply"
    }
  },
  "required": [
    "kind",
    "message"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools