Skip to main content
Glama

turath-mcp

MCP server for turath.io — access thousands of classical Arabic and Islamic books via the Model Context Protocol.

Built on the public turath.io API, maintained by Nuqayah.

Features

  • 8,500+ books — classical Islamic texts: tafsir, hadith, fiqh, usul, Arabic language, biography, history, and more

  • No API key required — zero configuration, works out of the box

  • Full-text search — search across the entire catalog by keyword, author, category, or century

  • Page-level reading — retrieve any page from any book as plain text (with chapter headings)

  • Chapter navigation — every book includes a complete index of chapters with page numbers

  • Author biographies — comprehensive metadata including full name, death year, and biographical notes

Related MCP server: Islamic Content MCP Server

Tools

turath_get_book_info

Get book metadata, chapter index, and page map.

Parameter

Required

Description

book_id

Turath.io book ID (e.g., 9953 for al-Risala al-Qushayriyya)

Example:

turath_get_book_info({ book_id: 9953 })

turath_get_page

Get the text content of a specific page.

Parameter

Required

Description

book_id

Turath.io book ID

page

Printed page number to retrieve

Example:

turath_get_page({ book_id: 9953, page: 20 })

Search books in the turath.io catalog by keyword.

Parameter

Required

Description

query

Search keyword(s) in Arabic or English

category

Filter by category ID

author

Filter by author ID

book

Restrict search to a specific book ID

page

Paginate results (page number)

Example:

turath_search({ query: "الرسالة" })

turath_get_author

Get author biography and metadata.

Parameter

Required

Description

author_id

Turath.io author ID (e.g., 125 for Abd al-Karim al-Qushayri)

Example:

turath_get_author({ author_id: 125 })

turath_get_book_file

Get full book JSON dump. Only available for books that have a JSON file on the CDN.

Parameter

Required

Description

book_id

Turath.io book ID

Requirements

  • Node.js >= 22

  • An MCP-compatible client (OpenCode, Claude Code, Copilot, etc.)

Installation

Option 1: Clone & run

git clone https://github.com/opin22/turath-mcp
cd turath-mcp
npm install
npm start

Option 2: Use with OpenCode

Add to your opencode.json:

{
  "mcp": {
    "turath-mcp": {
      "type": "local",
      "command": ["npx", "--yes", "tsx", "/path/to/turath-mcp/src/index.ts"]
    }
  }
}

Option 3: Use with Claude Code / other MCP clients

Configure it in your MCP settings file:

{
  "mcpServers": {
    "turath-mcp": {
      "command": "npx",
      "args": ["--yes", "tsx", "/path/to/turath-mcp/src/index.ts"]
    }
  }
}

How to find book IDs

  1. Go to app.turath.io

  2. Search for a book

  3. Open a book and look at the URL: https://app.turath.io/book/9953

  4. The number (9953) is the book ID

Alternatively, use turath_search to find books by name and get their IDs from the results.

Ethics & Rate Limiting

This server wraps a public, free API. Please be respectful:

  • Avoid hammering the API with concurrent requests

  • Cache results when possible

  • If you build something that generates significant traffic, consider self-hosting

Data Source

All content is served from turath.io, a project by Nuqayah. The books are digitized classical Islamic texts — the vast majority are public domain.

License

MIT

Available Tools

5 tools
turath_get_authorB

Get author biography and metadata from turath.io

ParametersJSON Schema
NameRequiredDescriptionDefault
author_idYesTurath.io author ID (e.g., 125 for Abd al-Karim al-Qushayri)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like read-only nature, authentication needs, or error handling. It only says 'Get', implying read, but no further details about response content or constraints.

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 a single, front-loaded sentence of 8 words with zero waste. It efficiently conveys the tool's purpose.

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

Completeness4/5

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

Given the tool's low complexity (single parameter, no output schema), the description is adequate. It could mention what happens on failure or what metadata includes, but for a simple get, it is mostly complete.

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

Parameters3/5

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

Schema coverage is 100% and the one parameter (author_id) has a clear description with an example. The tool description adds no additional meaning, meeting the baseline for high 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?

The description clearly states the verb 'Get', the resource 'author biography and metadata', and the source 'from turath.io'. It effectively distinguishes from sibling tools like turhat_get_book_info or turath_search.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context about when it is appropriate. It merely states what it does.

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

turath_get_book_fileB

Get full book JSON dump (may not be available for all books)

ParametersJSON Schema
NameRequiredDescriptionDefault
book_idYesTurath.io book ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It only warns about availability but does not disclose other behaviors such as error handling, response format, or authentication requirements.

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 a single, concise sentence that conveys the essential information without any wasted words.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is minimal. It does not fully explain the return value (JSON dump) or constraints beyond availability, leaving gaps for an agent to understand the tool's behavior completely.

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

Parameters3/5

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

Schema coverage is 100% with a clear 'Turath.io book ID' description for the parameter. The tool description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

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 action ('Get full book JSON dump') and the resource (the book file). It distinguishes from siblings like turath_get_book_info (metadata) and turath_get_page (single page) by specifying it returns the full dump.

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

Usage Guidelines2/5

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

The description mentions 'may not be available for all books' but provides no explicit guidance on when to use this tool versus alternatives like turath_get_book_info or turath_get_page. No usage context or exclusions are given.

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

turath_get_book_infoA

Get book metadata, chapter index, and page map from turath.io

ParametersJSON Schema
NameRequiredDescriptionDefault
book_idYesTurath.io book ID (e.g., 9953 for al-Risala al-Qushayriyya)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It states it is a 'get' operation (read-only), but does not disclose safety, auth requirements, rate limits, or error handling. With no annotation support, this is a gap.

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 a single, front-loaded sentence with no wasted words. Every component (verb, resource, source) 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?

For a simple one-parameter read tool with no output schema, the description adequately explains the return content (metadata, chapter index, page map). No further context is needed given the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with one parameter (book_id) described as a number with an example. The description does not add additional meaning beyond what the schema already provides, so baseline score is appropriate.

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 verb 'get' and the resource 'book metadata, chapter index, and page map' from turath.io. It distinguishes from sibling tools like turath_get_author (different resource) and turath_get_page (different scope).

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

Usage Guidelines3/5

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

The description implies usage for obtaining book info but does not explicitly state when to use this tool vs alternatives (e.g., turath_get_book_file for file downloads). No exclusions or context is provided.

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

turath_get_pageB

Get the text content of a specific page from a book

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to retrieve (corresponds to printed page)
book_idYesTurath.io book ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It indicates a read operation but does not disclose response format, pagination, authentication needs, or any constraints. This is insufficient for an AI agent to anticipate behavior.

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

Conciseness3/5

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

The description is a single sentence, very concise, but it omits important details that would merit a few more sentences. Conciseness is achieved at the expense of completeness.

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

Completeness2/5

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

Given the simplicity of the tool (2 params, no output schema), the description is only partially complete. It explains the core function but lacks behavioral context and usage guidance, which are needed for effective tool selection.

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

Parameters3/5

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

Schema coverage is 100%; both parameters have descriptions in the schema. The tool description adds no additional semantics beyond stating the tool's purpose. Baseline 3 is appropriate.

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 verb 'Get' and the resource 'text content of a specific page from a book', which is distinct from sibling tools like turhat_get_author or turhat_search. It unambiguously identifies the tool's function.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. The usage is implied by the description, but no comparison or exclusion criteria are provided. Sibling tools are present but not referenced.

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. 5 tool updatesv1.0.0
    • First observedturath_get_author
    • First observedturath_get_book_file
    • First observedturath_get_book_info
    • First observedturath_get_page
    • First observedturath_search

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct aspect of the domain (author, book file, book info, page content, catalog search) with no functional overlap.

Naming Consistency4/5

Four tools use a consistent 'turath_get_' pattern, but 'turath_search' deviates by omitting the 'get_' prefix, causing a minor inconsistency.

Tool Count5/5

Five tools is well-scoped for a cultural heritage book server, covering core read operations without being too few or excessive.

Completeness4/5

The set covers essential read operations (search, book info, page content, author info, full file dump), though a browse or list tool could be a minor addition.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with comprehensive access to Islamic resources including Quran verses with translations, Tafsir commentary, Hadith collections, and audio recitations. Enables users to explore Islamic texts, get daily inspiration, and access scholarly interpretations through natural language queries.
    18
    9 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server to search and retrieve passages from a corpus of 7,872 classical Islamic books via the Sahifah API, with full citations and mu'tabar filtering.
    6 npm
    MIT