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.
- 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/organisationsfetchRetrieve 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/attentsearch_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 aget_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). similaritsearch_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 mget_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 Cohensearch_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-widlist_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 collectionget_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 censget_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 saget_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; thisget_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 thrget_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 descrisearch_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 ulist_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 eachsearch_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 Freget_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, locasearch_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 teget_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 matclist_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 IWACsearch_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 `iget_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
Markdown (GitHub README)
[](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 allMCP grafanaVerified maker
@grafanaAn MCP server giving access to Grafana dashboards, data and more.
PostHog MCP ServerVerified maker
@PostHogOfficial PostHog MCP Server for product analytics, feature flags, experiments, and more.
AxiomVerified maker
axiom.coList datasets, schemas, run APL queries, and use prompts for exploration, anomalies, and monitoring.
Every Number
everynumber.appTurn an Excel or CSV export into a dashboard where every number has a receipt. No account.
Vehicle History by VIN
vehiclehistorybyvin.comQuote a $9.99 vehicle history report by VIN, open Stripe Checkout for the human, read the report.
Fictura
fictura.coPaywalls, onboarding, subscription analytics, A/B tests, attribution and errors for mobile apps.