← Registry

Databases

zmo.de

Search and retrieve documents from the Islam West Africa Collection, a database of newspapers, publications, and archives.

1 endpoint34 known toolsFirst detected July 25, 2026Last detected August 29, 2026

ENDPOINT 1

https://islam.zmo.de/mcp

No auth detected

MCP server metadata

Name
iwac-mcp-server
Version
3.5.0
Capabilities
resources.listChangedtools.listChangedprompts.listChanged
Server instructions

The Islam West Africa Collection (IWAC) archives francophone West African newspaper articles, Islamic publications, archival documents, audiovisual records, fieldwork photographs, and academic references on Islam and Muslim societies in Benin, Burkina Faso, Côte d'Ivoire, Niger, Nigeria, and Togo. WORKFLOW: start with `search` (a concept or name), then `fetch` an id from the results to read the full text. The unified `search` matches each word of a multi-word query independently — every word must appear somewhere in the item — so 'pèlerinage Mecque' narrows results rather than failing; prefer a single concept per call. The finer search_* tools' `keyword` filter instead does ONE literal substring match, so for those search one term at a time ('pèlerinage', then 'Mecque'). When many items match, weigh result counts and AI abstracts before fetching full texts. Beyond search/fetch, finer tools exist (search_articles, search_publications, search_references, search_index, search_documents, plus get_* and list_*) with country, newspaper, subject, and date filters — prefer the `subject` filter over keywords for curated themes. For trends over time, call get_temporal_distribution (counts per year or month under the same filters) instead of paging through search results. To characterise a whole set rather than read it, the aggregate tools answer in one call what paging never will: get_topic_distribution (how it spreads over 30 precomputed LDA topics), get_field_distribution (rank its subjects, places, authors or languages), get_cooccurrence (what is discussed alongside what), and get_lexical_metrics (readability, lexical richness, length). All matching is accent- and case-insensitive; country filters take exact names (Benin, Burkina Faso, Côte d'Ivoire, Niger, Nigeria, Togo). ISLAMIC CALENDAR: coverage driven by observances is invisible on a Gregorian axis — the lunar year drifts ~11 days a year, so over 1961-2025 each observance smears across all twelve Gregorian months. For that question call get_temporal_distribution with granularity=lunar_month, which pools every year into the twelve lunar months (Ramadan, Dhu al-Hijja/hajj and Shawwal/Korité all run well above the even split). calendar=hijri with granularity=year|month gives a Hijri time series instead. To read the items behind a peak, search_articles / search_publications take hijri_month (1-12, or a name in either transliteration — Ramadan, Chaabane, Dhou al-hijja) and hijri_year. Lunar dates are precomputed with the Umm al-Qura tables and need a full YYYY-MM-DD, so items dated only to a year or month are reported in imprecise_date_count and are ABSENT from lunar counts, not zero. They do not exist for references (an academic imprint date has no meaningful lunar reading). FULL-TEXT COVERAGE: this is the public dataset, and OCR full text ships only for items whose content is public on islam.zmo.de — about 61% of articles (7,546/12,349) and 86% of publications (1,298/1,501). Titles, subjects and AI abstracts (French AND English) are searchable for ALL items, so nothing is invisible, but the full-text half of a keyword match covers only those shares. Call get_collection_stats for the live `fulltext_coverage` figures, treat keyword totals as a floor rather than a corpus-wide census, and disclose this whenever a count carries an argument. CALL ECONOMY: hosts stop a turn after roughly 20 tool calls, and the cap counts turns of the tool loop rather than the calls within one, so issue independent calls together in a single message rather than one at a time. Pick the aggregate tool whose numbers answer the question instead of running the family over the same filter. The stats and distribution tools render their own chart where the host supports it, at no extra call: never rebuild those numbers as a separate chart or artifact, and quote the figures in prose so the answer stands where nothing renders. RESULTS & ERRORS: list/search tools return a pagination envelope — read `total_matches` to gauge scale without paging, and request a sane `limit` (an over-large one is capped visibly via `requested_limit` + `limit_warning`, never silently dropped). Enumerated filters (`country`, `polarity`, `centrality`, `index_type`) are validated: an invalid value returns {error, valid_values} to self-correct — an error to fix, not a finding — whereas a VALID value with 0 rows is a real absence (there is no Nigerian press, so country='Nigeria' on search_articles is genuinely empty). Free-text filters (newspaper, subject, author, reference_type, language) are NOT validated, so a typo there returns 0 silently — sanity-check them. On list_locations / list_persons, `country` means 'mentioned in records from that country' (not 'located there') and `frequency` is a collection-wide total; the response restates this in a `note`. If `search` cannot load a subset it still returns the rest and names the missing ones in `unavailable_categories` + `coverage_warning` — those categories are ABSENT from the results, not empty, so retry or use their own search_* tool before concluding a term is unattested there. REPORT LANGUAGE: write the final report, synthesis, and follow-up questions in the language of the user's question. If the question is mixed, use its dominant language. QUERY LANGUAGE: formulate keyword/substr search strings and concept keywords in FRENCH for press articles, publications, documents, and index searches, even when the user asks in another language (laïcité, confrérie, pèlerinage, enseignement islamique). Academic references are multilingual: search title/abstract keywords in French and English when relevant, while keeping metadata/filter values such as reference_type and language in French. Keep proper names and canonical filter values exact. TRANSLITERATION: Arabic-Islamic terms appear in FRENCH transliteration — search the French form and try variants: Tabaski or Aïd el-Kébir (not 'Eid al-Adha'); Korité or Aïd el-Fitr; Maouloud/Mouloud (not 'Mawlid'); charia (not 'sharia'); confrérie; Wahhabisme. RESEARCH WORKFLOW: this server also serves its own operating manual as a resource. If you do not already have the `iwac-mcp` skill loaded, read `skill://iwac-mcp/SKILL.md` before a substantial research task. It carries the five-phase method, French search strategy and reporting conventions these tools assume. Its reference files (`skill://iwac-mcp/references/…`, listed in `skill://iwac-mcp`) are meant to be read on demand, not upfront. CITATIONS: every result has a `url` field such as https://islam.zmo.de/s/afrique_ouest/item/28576 — always cite IWAC items using this full URL (rendered as a markdown link), never a short form like "art. #28576" or "item 28576". CAVEATS: coverage is uneven — Niger is thin (one newspaper, 2018 on) and Nigeria has NO press articles (audiovisual only), so disclose this in any cross-country claim. The press is ~96% francophone, reflecting Western-educated Muslim voices more than Arabic-trained (arabisant) leaders. Never present results as exhaustive — absence of evidence is not evidence of absence. Polarity/sentiment fields are AI-derived, not editorial ground truth; press coverage reflects what was published, not necessarily what happened.

Known tools 34

search

Search the Islam West Africa Collection across newspaper articles, Islamic publications, archival documents, academic references, audiovisual recordings, photographs, and the authority index (persons/places/organisations/events/subjects).

Inferred read-only
fetch

Retrieve the full text and metadata of one IWAC item by an id returned from `search` (format '<category>:<number>', e.

Inferred read-only
search_articles

Search IWAC newspaper articles by keyword (title + OCR + AI abstracts, French and English), country, newspaper, subject, and date range.

Inferred read-only
get_article

Get one article (by id): full metadata, the AI abstract (description_ai), AI sentiment, and OCR text.

Inferred read-only
search_by_sentiment

Filter articles by gpt-5-6-luna sentiment labels (accent/case-insensitive exact match).

Inferred read-only
get_sentiment_distribution

Aggregate AI polarity, centrality and subjectivity across a filter set.

Inferred read-only
search_index

Search the IWAC authority index (persons, places, organisations, events, subjects) by name.

Inferred read-only
get_index_entry

Get full details of an index entry by id (raw dataset columns, French names — Titre, Prénom, Coordonnées…).

Inferred read-only
list_subjects

List sujets from the IWAC index, sorted by frequency (most-referenced first).

Inferred read-only
list_locations

List lieux from the IWAC index, sorted by frequency (most-referenced first).

Inferred read-only
list_persons

List personnes from the IWAC index, sorted by frequency (most-referenced first).

Inferred read-only
get_collection_stats

Overall statistics for every IWAC subset, including `fulltext_coverage` — how many items in each subset actually carry searchable full text in this public dataset.

Inferred read-only
get_newspaper_stats

Per-newspaper article counts and date ranges.

Inferred read-only
get_country_comparison

Compare article counts, newspaper counts, date ranges, and gpt-5-6-luna polarity across countries.

Inferred read-only
get_temporal_distribution

Counts of matching items per year (or month) — the direct way to chart coverage trends over time instead of paging through search results.

Inferred read-only
get_topic_distribution

How a filtered set distributes across the precomputed LDA topics, each labelled by its top terms (articles carry 30 topics and are ~99.

Inferred read-only
get_field_distribution

Rank the values of one multi-valued field across a filtered set — the direct way to answer 'which places does this coverage name most', 'who signs these articles', 'what subjects dominate'.

Inferred read-only
get_cooccurrence

How often the top values of a multi-valued field appear on the SAME item — a subject/place co-mention matrix.

Inferred read-only
get_place_distribution

Places named by a filtered set of items, joined to the index's authority records so each carries coordinates where the index has them.

Inferred read-only
get_semantic_map

A 2-D scatter of a filtered set, projected from the stored 768-dimension embeddings by PCA.

Inferred read-only
get_similar_items

The items nearest to a given one in meaning, by cosine similarity over the stored embeddings.

Inferred read-only
get_lexical_metrics

Readability, lexical richness and length of the press text, averaged by year, newspaper or country.

Inferred read-only
search_publications

Search Islamic publications (periodical issues, books).

Inferred read-only
list_periodicals

List the Islamic periodical/series titles in the publications subset, with issue counts and year ranges.

Inferred read-only
get_publication_fulltext

Full OCR text of a publication, optionally returning ~2000-char excerpts around keyword matches (accent-insensitive; capped — see match_count vs excerpts_returned).

Inferred read-only
search_references

Search academic references (journal articles, book chapters, theses, books, reports) by keyword and metadata.

Inferred read-only
get_reference

Full 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).

Inferred read-only
search_documents

Search the small archival-documents subset (~26 items: Islamic association reports, flyers, project documents — mostly Burkina Faso).

Inferred read-only
get_document

Get one archival document (by id): full metadata, AI description, and OCR text.

Inferred read-only
search_audiovisual

Search 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.

Inferred read-only
list_audiovisual

List audiovisual materials, newest first (francophone web video from Burkina Faso, Togo and Benin; deposited Nigerian Hausa/Arabic recordings).

Inferred read-only
get_audiovisual

Get 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 page, the one to cite), `external_url` (where a harvested video plays) and `media_url` (a deposited file).

Inferred read-only
search_images

Search the IWAC photographs (30 items: mosques, radio stations, schools, signage and street scenes documented during fieldwork).

Inferred read-only
get_image

Get one photograph by id: title, photographer, capture date, place and coordinates, subjects, rights, the IIIF manifest, and the full-resolution `image_url`.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.iwac-mcp-server]
url = "https://islam.zmo.de/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "iwac-mcp-server": {
      "type": "http",
      "url": "https://islam.zmo.de/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: iwac-mcp-server
Remote MCP URL: https://islam.zmo.de/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

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

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "iwac-mcp-server": {
      "type": "http",
      "url": "https://islam.zmo.de/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "iwac-mcp-server",
  "transport": "streamable-http",
  "url": "https://islam.zmo.de/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

TRUST AND VERIFICATION EVIDENCE

Trust Data Available

BuiltWith Trust API v2 evidence for zmo.de was fetched 2026-07-31T10:06:46.300Z and is being refreshed.

Trust status Trusted

zmo.de is assessed as Trusted: Domain has an established technology history spanning over a year.

Indexed

Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.