Eighth Conference on Digital Humanities and Digital History · C²DH, University of Luxembourg
Beyond Keywords
AI-Mediated Access to the Islam West Africa Collection through an MCP Server and Agent Skill
Frédérick Madore
Data Curator
Africa Multiple Cluster of Excellence
Scan for these slides slides.frederickmadore.com
My title is a bit jargony. I could just as easily have called this "Opening the Islam West Africa Collection to AI on its own terms." I kept the explicit version so the room knows exactly what's coming. (Don't read the title aloud — open on the hook, then the problem.)
The Islam West Africa Collection (IWAC)
An open archive, built by one historian
Fifteen years of fieldwork and library work — Benin, Burkina Faso, Côte d'Ivoire, Togo — turned into an open-access collection.
Mostly newspaper clippings and Islamic publications: magazines, brochures, tracts
Behind it, a personal library of 30,000+ Zotero items
Online at islam.zmo.de
In numbers
14,700+ documents
28.1M words
68,122 pages
13 document types
9,315 audiovisual minutes
864 references
Six countries · mostly French — also Arabic & Hausa · open access since 2023
I'm a historian by training. For fifteen years I've worked on Islam in Francophone West Africa — mainly Benin, Burkina Faso, Côte d'Ivoire and Togo. I do interviews, but I also work heavily with West African newspapers and Islamic publications. I'm a bit of a digital hoarder: besides scanning, I collect a lot online: more than 30,000 items in my Zotero library, about 15,000 still unread. I spent years digitising and cataloguing it, and I wanted it in an open database so others could use these hard-to-find sources. I reached agreements with the copyright holders, and in 2023 I launched the Islam West Africa Collection. It now holds more than 14,700 documents on Muslim public life across six countries — newspaper clippings and Islamic publications, magazines, brochures, tracts — about 96% in French. I built it, and I maintain it alone, which is why I turned to language models: text extraction on degraded scans, entity recognition, sentiment analysis. So far I've used AI to enrich the collection; today is about opening it up.
The Islam West Africa Collection (IWAC)
An overview of the collection
I won't walk through the database itself, but there's a QR code and a link if you'd like to explore it, and I'm happy to browse it live afterwards. One thing worth flagging now: it's mostly French, but not only. There are documents in Arabic and in Hausa too, which will matter once we get to searching across languages.
The "El Hadj" problem
Why keyword search falls short
The faceted search of the IWAC.
Keyword search has built-in problems. I mitigated what I could:
Spelling variants → authority files merge 20+ forms
Forming a query → autocomplete and facets guide you
Polysemy → "hadj" = pilgrimage and the "El Hadj" honorific
The real gap
The search box assumes you already know it.
I want the collection open to researchers, but also to the general public — especially Muslims from these countries tracing their communities' history. So I built the best search engine I could: facets, autocomplete, authority files that pull the many spellings of a name together. But some problems with keyword search run deeper than any tool can reach. Take "hadj": it returns two unrelated things at once — articles about the pilgrimage, and the men who carry "El Hadj" as an honorific. No facet untangles that. The interaction model is a barrier too: a keyword box assumes you can already name what you want, then judge a ranked list from an algorithm you never see. I've worked with this corpus since 2015; I know how it's tagged, and new users don't — several have told me they find it intimidating. So I went looking for another way in, and a chatbot was the obvious candidate: more and more people now ask in plain language.
Why not just ask AI?
Generic answers, dubious sources
Gemini on Islam in Kpalimé: generic and dubiously sourced. See the chat ↗
People now ask AI directly , not a search box
Chatbots often invent citations — worse for Africa, with far less training data
Web search helps , but the sources are often random
The IWAC? Crawled by AI bots, yet barely used and badly cited
More and more people skip the search box and just ask an AI. A bare chatbot is frozen at its training data and cut off from the sources, so it invents plausible-looking citations — worse for Africa, thinly represented to begin with. The commercial chatbots now search the web, which does cut the hallucinations. But the sourcing is erratic: they lean heavily on Wikipedia, which has very little on Islam in West Africa specifically. Now and then one pulls a record from the IWAC, but never systematically. What you get is fluent, confident, and generic. Here's Gemini on Islam in Kpalimé in the nineties: a long, polished answer, sourced to "The Christian Chronicle" and a Turkish foundation. The irony is that my collection is crawled constantly by their bots, yet ask precisely about Kpalimé and none of it has grounded the answer. It can scrape the collection; it can't use it well.
An approach
Two layers: plumbing and intelligence
The MCP server — plumbing
Structured, read-only access to the collection that any AI assistant can call.
The agent skill — intelligence
The methodology for using it well — a historian's method, written down.
We've just seen a capable model that can't really reach the archive. The missing piece is a reliable connection between the two, and that's what I built — in two layers. First, an MCP server that gives any AI assistant structured, read-only access to the IWAC: the plumbing. Second, an agent skill that encodes how to do research with it properly: the intelligence. In a few minutes we'll demo both with Claude. The claim to hold onto: the skill, a plain-text file, is where the real contribution lives.
Model Context Protocol · open standard, Nov 2024
Why build a server at all?
An MCP server connects an AI assistant to one outside system. Like an app to your accounts:
Gmail
Google Calendar
Google Drive
Slack
GitHub
→
IWAC
RAG
Retrieval-augmented generation. Proven for GLAM, but it chunks records, and retrieves by a similarity the user never sees.
MCP
Ingests nothing . The data stays put; the server holds the logic; the model just asks and answers. modelcontextprotocol.io
The analogy
Like IIIF for images: a shared interface, without handing over the originals. Build the server once — Claude, ChatGPT, or open-source models all connect.
The Model Context Protocol is an open standard for connecting AI assistants to outside systems through defined tools. The easiest way to picture it: if you've ever let Claude or ChatGPT into your Gmail, your calendar, or your Google Drive, you've already used an MCP server — and there are ready-made ones for Slack, GitHub, Notion, hundreds of everyday services. A server simply publishes the queries it's willing to answer, and any compliant assistant can call them. What I've built is the same kind of server, only pointed at a scholarly archive instead of an inbox. The analogy I'd reach for is IIIF: just as IIIF exposes high-resolution images through a shared interface without handing over the originals, MCP exposes search and metadata to an AI without giving up the underlying data. The common alternative is retrieval-augmented generation, RAG — proven for heritage, but it copies the collection into an external store, chunks records so they lose their context, and retrieves through a similarity the user never sees. MCP draws the line differently: nothing is ingested, chunked, or trained on. The server holds the logic; the model only handles the two ends — understanding the question and composing the answer. Build the server once, and Claude, ChatGPT, or an open-source model can all connect.
Agent skills
What is a skill.md?
A skill is a methods handbook for a machine reader — loaded only when a request matches its purpose.
Competence gained by reading , with no retraining
Versioned, reviewed, refined — a prompt is typed once and lost
An open standard across agents — no vendor lock-in, like MCP
Born in coding agents — the format fits any domain
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: documentation
├── assets/ # Optional: templates, resources
└── ... # Any additional files or directories
The standard layout of an agent skill — SKILL.md is the only required file.
So what is a skill? A methods handbook, written in plain language, that the agent reads into context when a request matches its purpose. The model gains a specific competence just by reading the file. The difference from a prompt is durability and accountability: a prompt is typed once and lost, whereas a skill file is versioned, reviewed, published, and refined over time. It turns tacit expertise into an explicit, inspectable artefact: how I search this collection, and which biases I have to disclose. Like MCP, skills are an open standard across agents, so none of this locks you to one vendor. They were born in coding — telling an agent how to run a routine or format output — but the format works just as well for the social sciences: how to behave like a historian, how to read a corpus critically, what to know about a particular collection.
What you can ask it
The IWAC MCP server
"Newspaper articles on Islam in Abidjan , in the 1990s"
articles place · period
"Islamic publications on secularism in Togo and Benin"
publications subject · country
"Academic references on Muslim women in Burkina Faso"
references subject · country
One plain-language request; the model picks the tools and combines the filters.
22 tools · 6 subsets
Read-only : search, full text, authority records, sentiment, stats
Verifiable : every call a lookup, no AI at query time
Traceable : every result links to its canonical record
Two ways in : one-click for Claude Desktop, a hosted URL for ChatGPT
Now, what you can actually ask it. You put the question in plain language: newspaper articles on Islam in Abidjan in the nineties; Islamic publications on secularism in Togo and Benin; academic references on Muslim women in Burkina Faso. Each mixes a different part of the collection with different filters — place, period, subject, country — and the model works out which tools to call and how to combine them. You say what you want; the server handles how. Underneath there are twenty-two tools across six subsets. The principle behind all of them is verifiability: every call is a lookup against the database, and every result returns a URL straight to the canonical record, so the model can cite only what the collection holds. There are now two ways in. Claude Desktop is a one-click install — free, the full toolset, plus the research skill. The server is now hosted at a fixed web address too, so ChatGPT can reach the same tools as a custom connector: you paste a URL, no install and no API key, though that path needs a paid ChatGPT plan. The skill still rides with Claude; ChatGPT gets the plumbing. A new AI-access page on the collection's own website walks through both. Let me show you.
Inside the server · semantic search
Search by meaning, not words
1 · Ask
Your question
« Islam et laïcité au Burkina Faso »
Plain language — and any language works.
→
2 · Embed
Turned into coordinates
An embedding model (Gemini) maps the text to 768 numbers — one point in a space of meaning.
laïcité → [0.07, -0.12, 0.93, …]
Every article was mapped the same way, in advance.
→
3 · Match
Nearest points win
Cosine similarity ranks all 12,000+ articles by how close they sit in that space.
Why it matters
Finds the right articles even when they never say « laïcité » — secularism, Franco-Arabic schools, family-code debates. The one tool that runs a model live, just to turn your question into coordinates.
This is the one feature that goes past matching words. Keyword search asks which articles contain a string; semantic search asks which mean the same thing. Three steps. You ask in plain language — for example, Islam et laïcité au Burkina Faso — and in any language, because the embedding model is multilingual. That question becomes an embedding: Gemini, for now, maps it to about 768 numbers, a single point in a space of meaning. Every article was put through the same model in advance, so all twelve thousand already sit as points in that same space. The server then measures how close your question sits to each, and returns the nearest. So laïcité surfaces pieces on secularism, Franco-Arabic schools, family-code reform — about the idea even when the word never appears. One caveat: I said the server runs no AI at query time, and this is the exception, embedding your question once and nothing else. Now, how the skill decides which tool to reach for: that's the method.
Search the collection · offline demo
Keyword vs. meaning — in the slide itself
laïcité au Burkina Faso
Keyword
By meaning
2 documents · exact-string match only
« … le débat sur la laïcité au Burkina Faso … » L’Observateur Paalga · 1994
« … la laïcité de l’État et les écoles … » Sidwaya · 2002
The blind spot
Dozens of articles are about secularism but never type the word — schooling, family-code debates, the Arabic press. Keyword search cannot see them. Click By meaning .
7 documents · ranked by meaning · across languages
cosine similarity
Écoles franco-arabes et le programme national education · state 0.89
Le code de la famille relance la controverse family law 0.86
L’État et les associations islamiques religion · state 0.84
النظام العلماني ودوره في التعليم Arabic · cross-lang 0.81
Neutralité religieuse de l’administration publique governance 0.79
None contain the word laïcité — all are about the idea, including the Arabic record keyword search would never reach. · illustrative slice
The talk argues meaning beats keywords — so let the slide prove it, live and offline. Start on Keyword: two exact hits, and a whole blind spot. Then click "By meaning": seven results, none of which contain the word, one of them in Arabic. The deck performing its own thesis. (These rows are an illustrative slice — I'll swap in a real query before the talk.)
The IWAC skill in motion
A five-phase research method
Two depths, chosen up front:
Briefdefault
a quick scan and a few close reads
Extended
the full five-phase analysis below
Scoping — what does the collection even hold for this question, before any keyword?
Systematic searching — French + transliteration variants (Tabaski = Eid al-Adha); log every search, including null results
Deep reading — full text and sentiment, article by article
Triangulation — cross-check articles, publications, references, index entries
Synthesis — findings with source attribution and confidence grades
The point
Twenty-two tools give reach. The "judgement" lives in the skill.
The server has the data, but none of the judgement. I wanted the model to carry my own knowledge of the collection as a historian working with primary sources. Twenty-two tools give reach. The judgement has to live somewhere, and it lives in the skill. Before any research, the skill asks how deep to go: a quick Brief pass for an overview, or a full Extended analysis; it defaults to Brief. The Extended path is a five-phase workflow modelled on real archival research. Scoping first: what's even here for this question, before a single keyword. Then systematic searching, in French, every search logged, including the ones that come back empty. Deep reading of the strongest articles. Triangulation across articles, publications, references and index entries. And synthesis: findings with explicit sources and a confidence grade — strong, moderate, or weak.
What a server never could
Discipline, disclosure — and a new role
Linguistic discipline — search the French corpus in French, whatever language the question is in
Bias disclosure — every synthesis states the skew: francophone tilt, missing Arabisants , thin Niger and Nigeria
Evidential discipline — claims tagged primary / secondary / AI-derived; absence of evidence ≠ evidence of absence
The role shift
Cataloguer, then API designer — now author of research methods a machine can follow. The server took a weekend; the skill is where the expertise lives.
The skill encodes three things no server could. First, linguistic discipline: you can ask in any language — English, German — but the collection is French, so the search has to go out in French. Second, bias disclosure: every synthesis states the skew that scoping turns up — the francophone tilt, thin Niger, no Nigerian press. Third, evidential discipline: every claim tagged primary, secondary, or AI-derived, and absence of evidence is never evidence of absence. That last one matters because these models compress disagreement into the single most central story; the confidence grades and the logged null results are the hedge. The role shift: cataloguer, then API designer, now author of research methods a machine can follow. The server took a weekend with AI's help; the skill is where the expertise lives.
The curator's method, in full
iwac-mcp · SKILL.md
Scroll to read the whole file — 190 lines, open source at github.com/fmadore/iwac-mcp-server
This is the actual artefact the agent reads — plain markdown, versioned on GitHub: the five-phase workflow, the search-in-French rule, the bias-disclosure and confidence-grading requirements. We won't read it line by line, but it's open online. The point is that the method is explicit and open to review.
Live demo
From a plain question to cited sources
Installed as a Claude Desktop extension — read-only, no API key for the core tools.
One real question, and the skill runs the method live.
Scopes the collection, then searches it in French
Reads the strongest hits in full
Answers with every claim linked to its IWAC record
Two saved runs below — press ↓
Enough description — let's run it live in Claude Desktop. I'll put one real question to it and choose Extended, so you see the whole method: it scopes the collection, searches in French, reads the strongest articles in full, then answers with every claim linked to its IWAC record. [Live demo cue: open Claude Desktop, run the query, show the citations and the links.] If the network misbehaves, I have two saved runs on the next slides — just press down.
Saved run · secularism in Côte d'Ivoire
Brief — the default depth
claude.ai/share/d37cbcb6…
Full chat ↗
Claude Sonnet 4.6 · high effort
Here's one I prepared earlier, in case we need it. I asked, in English, what the collection says about secularism in Côte d'Ivoire. Watch what happens before any searching: the skill reads its own method file, then stops to ask how deep I want to go — a quick Brief or the full Extended pass, with Brief the default. That pause is the skill doing its job — it sets the terms before it answers. The full report, with every source cited, is one tap away at the top of the frame.
Saved run · Islam in Kpalimé, Togo
Extended — the full method
claude.ai/share/2bdf2009…
Full chat ↗
The same question we put to Gemini earlier, now answered from the IWAC.
The second saved run is the very question I showed Gemini fumbling at the start — Islam in Kpalimé, in Togo — but put to the collection itself. Here I answer "extended", and the five-phase method kicks off: Phase one is scoping, before a single keyword. Set this beside the Gemini answer from earlier and you can see what grounding buys you — same question, but every claim here traces back to a record in the archive.
The stakes
Whose infrastructure? African collections and AI extraction
39 of 43 heritage institutions hit by AI-bot traffic spikes (Weinberg, GLAM-E Lab, 2025); Wikimedia: 65% of its costliest traffic is bots. Read it ↗
The default is extraction — public institutions and open-access labour subsidising commercial AI
MCP, a third path — the collection stays put; the institution decides what the AI sees
Yékú's paradox · 2026
Un-digitised, an African archive is invisible to AI; digitised, it's exposed to scraping — the incomplete corpus becomes the
single story , the colonial library rebuilt in the training set.
Read the essay ↗
Step back from the tooling: who is this for, and who pays? The default today is extraction. A 2025 GLAM-E Lab survey found 39 of 43 heritage institutions hit by AI-bot traffic spikes that ignore robots.txt; Wikimedia reports that 65% of its costliest traffic comes from bots. I've seen a big spike on the IWAC myself, out of the US and China — thousands a day, a lot for a database on Islam in West Africa. Underfunded institutions and unpaid labour are subsidising commercial AI — digital colonialism in its newest form. The stakes are sharper for African collections. Yékú names the paradox: un-digitised, an African archive is invisible to the models, absent from the training data; digitise it, and you expose it to extractive scraping. The incomplete corpus then risks becoming what Adichie called the single story, delivered in one uniform authority. That is Mudimbe's colonial library, rebuilt in the training set. MCP offers a third path: the collection stays put, and the institution decides what the AI can see.
Conclusion
A new way in for a wider public — but no replacement for archival research. It finds what you ask for, not what you weren’t looking for: the unexpected find that slow reading turns up.
Try it: connect Claude or ChatGPT to the collection — how-to on the IWAC AI-access page .
Next: a small open-source model on the server itself, answering on the website — no install, no account. github.com/fmadore/iwac-mcp-server
Scan for these slides slides.frederickmadore.com
A few honest caveats to close. I'm not claiming the MCP server solves the problems I've raised; it raises others. And it's genuinely convincing — knowing this collection, I'm amazed by the answers, which is exactly the risk: that we take them for granted. There's a subtler loss too: in the archive the old way you get serendipity, the thing you weren't looking for, and this method gives you only what you ask for. So it's a promising avenue for public access, and I'd put it no higher than that. The answers are also only as good as the metadata underneath — the unglamorous work of cleaning, standardising and reconciling spellings is the real foundation. And the question the protocol can't settle is the one CARE puts to FAIR: who benefits? A West African collection hosted at a German institute: for whom are we doing this? If you'd like to try it, there's now an AI-access page on the collection's own website with connection instructions for both Claude and ChatGPT — the server already runs as a hosted endpoint on the IWAC's domain. What's next: a small open-source model on that server, answering on the website itself, with no install and no account. Thank you.