Islam West Africa Collection (IWAC)
io.github.fmadore/iwac-mcp-server · v4.0.1
Read-only access to the Islam West Africa Collection via Hugging Face datasets.
MCPremotelocal · mcpbno credentialsDocuments & PDFNewsImages, video & audio
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 35 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
A 92/100
What it does: 35 tools · 35 read, 0 write · Documents & PDF, Images, video & audio
Test call list_subjects: worked (1,026 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +2
- Read/write annotations: +5
- Safe test call: +20
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://islam.zmo.de/mcp/Package
registry: mcpb
identifier: https://github.com/fmadore/iwac-mcp-server/releases/download/v4.0.1/iwac-mcp-server-windows.mcpb
transport: stdioTools
35 tools listed at last check
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/events/subjects). Pass ONE concept or name — e.g. 'Tijaniyya', 'laïcité', 'SheifetchRetrieve 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 / transcription / description, `url` is the canonical islam.zmo.de link to cite, aexplore_corpusSelection workbench: items, concordance, coverage, compare (requires comparison), attention, aliases, or paginated manifest/CSL-JSON/BibTeX exports. Exact filters intersect. Coverage measures archive availability. Exports identify this page and dataset snapshot; compare snapshot IDs across pages. Scsearch_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 accent- and case-insensitive.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.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 model:"all" shows by how much. `subjectivity` is much the weakest of the three scget_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's kappa and quadratic weighted kappa, with explicit denominators. Labels are insearch_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-wide 'frequency' — so foreign and cross-border entries can appear. Nigeria returnslist_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-wide 'frequency' — so foreign and cross-border entries can appear. Nigeria retuget_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 census.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 same country/outlet/date scope, removing thematic filters. Shares describe IWAC hoget_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 is not the published UMAP landscape. Needs no API key.get_similar_itemsNearest stored embeddings by cosine similarity, without an API key. Scores rank reading candidates; no threshold proves a reprint. Returns source IDs and dates for comparison. Corpus-wide candidate generation belongs offline.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 descriptive evidence.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 user's report language. Filter by newspaper/series, subject, country and year. Uslist_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).search_referencesSearch academic references (journal articles, book chapters, theses, books, reports) by keyword and metadata. `keyword` is a single substring match over title + abstract, so search ONE term per call (combined terms like 'pèlerinage Mecque' miss results). References are multilingual: try French and Eget_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).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 text and an AI description. Call with no arguments to list all.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 matches title, creator, publisher, subject, spatial, language, source, the item's owlist_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 page, the one to cite), `external_url` (where a harvested video plays) and `medsearch_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 `image_url` (the full-resolution file), `coordinates` ('lat, lng' where known) andget_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.
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.github.fmadore/iwac-mcp-server)