Skip to main content
Glama
EngDawood

islamweb-mcp

by EngDawood

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ISLAMWEB_DATA_DIRNoSet ISLAMWEB_DATA_DIR to change where the default Lisan al-Arab .jsonl/.json files live (defaults to ./data)../data

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
islamweb_fetch_entryA

Fetches a single content page from islamweb.net's library (https://www.islamweb.net/ar/library/content/{bookId}/{id}) and returns it parsed as JSON: title, chapter/lemma breadcrumb, plain text, fully-vocalized (tashkeel) text, and next/prev ids.

islamweb_lisan_al_arab_infoA

Returns the known bookId and id range (1..9305) for لسان العرب لابن منظور on islamweb.net, plus the paths this server uses for its extracted JSON/JSONL dataset.

islamweb_list_dictionariesA

Returns every dictionary this server knows about under islamweb's library subject 73 (معاجم اللغة): bookId, key, title, author, and id range. This is the registry the GitHub Actions crawl workflow and the crawl-all-dictionaries CLI command iterate over.

islamweb_start_crawlA

Starts crawling a contiguous range of content ids from one islamweb library book in the background (this call returns immediately with a jobId; poll islamweb_crawl_status with it). Each fetched page is appended as one JSON line to outFile as soon as it is parsed, so the crawl is resumable: re-running with the same outFile skips ids already present in it. Defaults are set up for لسان العرب لابن منظور (bookId 122, ids 1..9305) — omit bookId/startId/endId/outFile to crawl the whole dictionary.

islamweb_crawl_statusA

Returns progress (done/total/failed) for a crawl job started with islamweb_start_crawl.

islamweb_crawl_statsA

Reads a JSONL dataset file directly from disk (independent of any in-memory job) and reports how many entries it has and the highest id fetched so far. Useful after restarting the MCP server to see how far a previous crawl got.

islamweb_compile_jsonA

Reads a JSONL dataset file (one entry per line) and writes it out as a single sorted, pretty-printed JSON array file. Run this once a crawl has finished (or whenever you want a fresh snapshot).

islamweb_searchA

Substring-searches a JSONL dataset file's lemma and text fields and returns matching entries (id, lemma, chapter, and a snippet around the match). Use this to spot-check a crawl or to look up a word.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clearly distinct roles, but islamweb_crawl_status and islamweb_crawl_stats could be confused at first glance since both relate to crawl progress. The descriptions clarify that one tracks an in-memory job and the other reads a file, so the ambiguity is minor.

Naming Consistency4/5

All tools share the consistent islamweb_ prefix and snake_case convention, and most follow a verb_noun pattern (fetch_entry, start_crawl, compile_json). A few names deviate by leading with a noun (crawl_status, crawl_stats, lisan_al_arab_info), which is a slight inconsistency but still readable and predictable.

Tool Count5/5

With 8 tools, the set is well-scoped for the server's purpose: discover dictionaries, fetch entries, crawl in the background, monitor progress, inspect datasets, compile, and search. No tool feels redundant or unnecessary, and the count is squarely in the ideal 3-15 range.

Completeness4/5

The tool surface covers the full crawl workflow—listing, fetching, starting, monitoring, compiling, and searching—which covers the stated purpose well. Minor gaps exist such as no explicit cancel-job or list-running-jobs tool, but these are workaround-able and don't create dead ends for the core pipeline.

Maintenance

ActivityMaintained
ResponsivenessNo issues