NestDaddy

Islam West Africa Collection (IWAC)

io.github.fmadore/iwac-mcp-server · v6.0.0

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

Connect Remote server

Terminal
claude mcp add --transport http iwac-mcp-server https://islam.zmo.de/mcp/
~/.cursor/mcp.json
{
  "mcpServers": {
    "iwac-mcp-server": {
      "url": "https://islam.zmo.de/mcp/"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "iwac-mcp-server": {
      "type": "http",
      "url": "https://islam.zmo.de/mcp/"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://islam.zmo.de/mcp/

Tools 39 found in our last check

  • 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). Pass ONE concept or name — e.g. 'Tijaniy…

  • fetch

    Retrieve 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.z…

  • explore_corpus

    Selection 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/attention cells. Coverage measures archive availability. Exports…

  • search_articles

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

    Get 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_articles

    Semantic 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). similarity_score only ranks within one query.

  • search_by_sentiment

    Filter articles by claude-haiku-5-5 sentiment labels (accent/case-insensitive exact match). One model's reading, not a consensus — 5 other models scored the same articles and often disagree; get_sentiment_distribution with model:"all" shows by how much. `subjectivity` is much th…

  • get_sentiment_distribution

    Aggregate 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 denomi…

  • search_index

    Search the IWAC authority index (persons, places, organisations, events, subjects) by name. Accent/case-insensitive.

  • get_index_entry

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

  • list_subjects

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

  • list_locations

    List 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 app…

  • list_persons

    List 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…

  • 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 dataset. Read that before treating any keyword count as a full-text census.

  • get_newspaper_stats

    Per-newspaper article counts and date ranges.

  • get_country_comparison

    Compare article counts, newspaper counts, date ranges, and claude-haiku-5-5 polarity across countries.

  • get_temporal_distribution

    Counts 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. Sh…

  • get_topic_distribution

    Counts 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_distribution

    Rank 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_cooccurrence

    Count 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_distribution

    Place tags joined to authority coordinates. Separates publication countries from mentioned places; missing geocodes are counted explicitly.

  • get_semantic_map

    Stable-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_items

    Nearest 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 threshold proves a reprint. Returns source IDs and dates. Corp…

  • get_lexical_metrics

    Text 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_publications

    Search 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,…

  • list_periodicals

    List 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_fulltext

    Full 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_publications

    Semantic 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 table. Query in any language. Runs the corpus model, Embedd…

  • search_references

    Search 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 French and English title/abstract keywords when relevant; meta…

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

  • semantic_search_references

    Semantic 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, locally with no API key (first use downloads ~350 MB). similari…

  • search_documents

    Search 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 al…

  • get_document

    Get 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_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. Keyword matches title, creator, publisher, subject, spatial, language,…

  • list_audiovisual

    List 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_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…

  • search_images

    Search 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,…

  • 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`. The server returns URLs, not image bytes.

  • semantic_search_images

    Find 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 against a caption, so it works even though only 2 of the 30…

Details

Endpointhttps://islam.zmo.de/mcp/ (Streamable HTTP)
Packagehttps://github.com/fmadore/iwac-mcp-server/releases/download/v6.0.0/iwac-mcp-server-windows.mcpb (MCPB, stdio)
Packagehttps://github.com/fmadore/iwac-mcp-server/releases/download/v6.0.0/iwac-mcp-server-macos.mcpb (MCPB, stdio)
First published2 Nov 2026
Last updated2 Nov 2026
Registry nameio.github.fmadore/iwac-mcp-server

More files and documents servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.