Islam West Africa Collection (IWAC)

by @fmadore · io.github.fmadore/iwac-mcp-server

Read-only access to the Islam West Africa Collection via Hugging Face datasets.

OnlineRemote + local
Category
Analytics and data
Connection
Remote (HTTP)
Tools
39 reported
Status
Online

Connect it to your AI

Claude Code

claude mcp add --transport http iwac-mcp-server https://islam.zmo.de/mcp/

Claude, ChatGPT, Cursor and other apps

Add it as a custom connector with this URL (Streamable HTTP):

https://islam.zmo.de/mcp/

Cursor, VS Code and other apps (mcp.json)

{
  "mcpServers": {
    "iwac-mcp-server": {
      "url": "https://islam.zmo.de/mcp/"
    }
  }
}

Tools it offers

39 tools, as the server itself reported during our check on Oct 31, 2026.

  • searchSearch the Islam West Africa Collection across newspaper articles, Islamic publications, archival documents, academic references, audiovisual recordings, photographs, and the authority index (persons/places/organisations
  • fetchRetrieve the full text and metadata of one IWAC item by an id returned from `search` (format '<category>:<number>', e.g. 'articles:28576'). Returns {id, title, text, url, metadata}: `text` is the item's OCR / abstract /
  • explore_corpusSelection workbench: items, concordance, coverage, compare (requires comparison), attention, aliases, or paginated manifest/CSL-JSON/BibTeX exports. Exact filters intersect. limit/offset also page compare/coverage/attent
  • search_articlesSearch IWAC newspaper articles by keyword (title + OCR + AI abstracts, French and English), country, newspaper, subject, and date range. Use French concept keywords regardless of the user's report language. Matching is a
  • get_articleGet one article (by id): full metadata, the AI abstract (description_ai), AI sentiment, and OCR text, in 25k-char parts (follow `next_offset`). Pass a `keyword` to get ~2000-char excerpts around each match instead.
  • semantic_search_articlesSemantic search over article title + full text, including articles whose OCR is not public. Query in any language. Runs the corpus model, EmbeddingGemma 2, locally with no API key (first use downloads ~350 MB). similarit
  • search_by_sentimentFilter articles by gpt-5-6-luna sentiment labels (accent/case-insensitive exact match). One model's reading, not a consensus — 4 other models scored the same articles and often disagree; get_sentiment_distribution with m
  • get_sentiment_distributionAggregate AI labels over a shared selection. model:"all" compares independent annotators and their coverage; model:"consensus" reads the stored panel majority. Choose compare_models and agreement_field for pairwise Cohen
  • search_indexSearch the IWAC authority index (persons, places, organisations, events, subjects) by name. Accent/case-insensitive.
  • get_index_entryGet full details of an index entry by id (raw dataset columns, French names — Titre, Prénom, Coordonnées…).
  • list_subjectsList sujets from the IWAC index, sorted by frequency (most-referenced first).
  • list_locationsList lieux from the IWAC index, sorted by frequency (most-referenced first). The optional 'country' filter selects entries that APPEAR IN records from that country (mentioned-in, not located-in), ranked by collection-wid
  • list_personsList personnes from the IWAC index, sorted by frequency (most-referenced first). The optional 'country' filter selects entries that APPEAR IN records from that country (mentioned-in, not located-in), ranked by collection
  • get_collection_statsOverall statistics for every IWAC subset, including `fulltext_coverage` — how many items in each subset actually carry searchable full text in this dataset. Read that before treating any keyword count as a full-text cens
  • get_newspaper_statsPer-newspaper article counts and date ranges.
  • get_country_comparisonCompare article counts, newspaper counts, date ranges, and gpt-5-6-luna polarity across countries.
  • get_temporal_distributionCounts by Gregorian or Hijri year/month, or pooled lunar month. Group by country/newspaper. Partial dates and missing lunar dates are disclosed. normalize_by returns numerator counts and per-bucket denominators in the sa
  • get_topic_distributionCounts of offline LDA topic assignments, optionally over time. Topic labels are interpretive model outputs; exact topic_id filters select assignments rather than keyword matches. Reports unclassified coverage.
  • get_field_distributionRank exact metadata values, splitting pipe-separated tags. Reports missing metadata and optional coverage over time. Choose spatial for mentioned places, country for stored country tags, or subject/author/language.
  • get_cooccurrenceCount pairs of metadata values co-tagged on the same items. Matrix/network views show descriptive associations, not causal links. Filters apply before pair counting; top_n caps the vocabulary.
  • get_place_distributionPlace tags joined to authority coordinates. Separates publication countries from mentioned places; missing geocodes are counted explicitly.
  • get_semantic_mapStable-hash sample of matching stored embeddings, projected with PCA. Reports eligible, invalid, missing and capped counts, seed and explained variance. Group counts describe the sample. Coordinates are chart-only; this
  • get_similar_itemsNearest stored embeddings by cosine similarity. Articles and documents lead with the dataset's published top 10. Scores run high (unrelated ~0.7) and rank reading candidates; >= 0.97 suggests a near-duplicate, but no thr
  • get_lexical_metricsText length, lexical richness and readability by country/newspaper/year. Metrics are precomputed; readability is French-specific and excludes other languages. Missing values are disclosed. Compare distributions as descri
  • search_publicationsSearch Islamic publications (periodical issues, books). `keyword` matches title, subject, table of contents, and full OCR text (TOC hits come back as matching_toc_entries); use French concept keywords regardless of the u
  • list_periodicalsList the Islamic periodical/series titles in the publications subset, with issue counts and year ranges. Use the returned newspaper value as the `newspaper` filter on search_publications.
  • get_publication_fulltextFull OCR text of a publication in 25k-char parts (follow `next_offset`), or ~2000-char excerpts around keyword matches (accent-insensitive; capped: see match_count vs excerpts_returned).
  • semantic_search_publicationsSemantic search over publication tables of contents, present for ~40% of issues (none for An-Nasr Vendredi, 130 of 695 Islam Info issues): use search_publications for the rest. Rows show the first 600 characters of each
  • search_referencesSearch academic references (journal articles, book chapters, theses, books, reports) by keyword and metadata. `keyword` requires every word in the title + abstract ("quote" a phrase). References are multilingual: try Fre
  • get_referenceFull bibliographic record for one academic reference (by id), including the complete abstract (present for ~51% of references), subjects, DOI/URL, and host-work details (book, volume, issue, pages).
  • semantic_search_referencesSemantic search over academic references by title + abstract, across languages. Only references with an abstract (about half) are covered; use search_references for the rest. Runs the corpus model, EmbeddingGemma 2, loca
  • search_documentsSearch the small archival-documents subset (~26 items: Islamic association reports, flyers, project documents — mostly Burkina Faso). Use French concept keywords regardless of the user's report language. Most have OCR te
  • get_documentGet one archival document (by id): full metadata, AI description, and OCR text, in 25k-char parts (follow `next_offset`). Pass a `keyword` to get ~2000-char excerpts around each match instead, useful for long documents.
  • search_audiovisualSearch audiovisual materials by keyword and metadata: francophone web video from Burkina Faso, Togo and Benin (TV reports, association and campus recordings), plus deposited Nigerian Hausa/Arabic recordings. Keyword matc
  • list_audiovisualList audiovisual materials, newest first (francophone web video from Burkina Faso, Togo and Benin; deposited Nigerian Hausa/Arabic recordings). Filter by country, publishing channel or `source_type`.
  • get_audiovisualGet one audiovisual record by id: full description and transcription (where one exists), creator/publishing channel, duration, medium, subjects, places, language, rights, source, and three distinct links: `url` (the IWAC
  • search_imagesSearch the IWAC photographs (30 items: mosques, radio stations, schools, signage and street scenes documented during fieldwork). Keyword matches title, creator, subject, place and the rare caption. Each result carries `i
  • get_imageGet one photograph by id: title, photographer, capture date, place and coordinates, subjects, rights, the IIIF manifest, and the full-resolution `image_url`. The server returns URLs, not image bytes.
  • semantic_search_imagesFind photographs by describing what they SHOW, in any language ('mosquée en construction', 'street signage in Arabic'). This is cross-modal: the ranking runs against a multimodal embedding of the photograph itself, not a

Questions

What is the Islam West Africa Collection (IWAC) MCP server?

Read-only access to the Islam West Africa Collection via Hugging Face datasets. It is made by @fmadore and listed in the official MCP Registry as io.github.fmadore/iwac-mcp-server. MCP (Model Context Protocol) is the open standard that lets AI apps like Claude, ChatGPT and Cursor use outside tools.

How do I add Islam West Africa Collection (IWAC) to Claude?

In the Claude app or claude.ai, open Settings, then Connectors, choose "Add custom connector" and paste https://islam.zmo.de/mcp/. In Claude Code, run: claude mcp add --transport http iwac-mcp-server https://islam.zmo.de/mcp/

How do I add Islam West Africa Collection (IWAC) to ChatGPT?

ChatGPT can use remote MCP servers as connectors. In ChatGPT settings, under Apps and Connectors, turn on developer mode if asked, create a new connector and paste https://islam.zmo.de/mcp/.

How do I add Islam West Africa Collection (IWAC) to Cursor?

Open Cursor settings, go to MCP, choose "Add new MCP server" (or edit ~/.cursor/mcp.json) and add: { "mcpServers": { "iwac-mcp-server": { "url": "https://islam.zmo.de/mcp/" } } }

Does Islam West Africa Collection (IWAC) work right now?

Yes. It responded when we last checked on 31 Oct 2026. We check remote MCP servers every day.

What can Islam West Africa Collection (IWAC) do?

It gives your AI 39 tools, including search, fetch, explore_corpus, search_articles, get_article. The full list is on this page.

Is this your server? Get the badge for your README
chen.media/mcp badge

Markdown (GitHub README)

[![Listed on chen.media/mcp](https://chen.media/mcp/badge/github-fmadore-iwac-mcp-server.svg)](https://chen.media/mcp/github-fmadore-iwac-mcp-server)

HTML (switches to dark mode on its own)

<a href="https://chen.media/mcp/github-fmadore-iwac-mcp-server"><picture><source media="(prefers-color-scheme: dark)" srcset="https://chen.media/mcp/badge/github-fmadore-iwac-mcp-server.svg?theme=dark"><img src="https://chen.media/mcp/badge/github-fmadore-iwac-mcp-server.svg" alt="Listed on chen.media/mcp" height="40"></picture></a>

More in Analytics and data

See all