mining-cadastre-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mining-cadastre-mcp Which mining titles does SOPAMIB hold, and when do they expire?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mining-cadastre-mcp
MCP server for the Burkina Faso mining cadastre. Three read-only tools giving an AI agent access to the official list of valid mining titles — holder, status, grant and expiry dates, provinces and communes.
v0.1, in development. Covers Burkina Faso only, from the quarterly list published by the Direction générale du cadastre minier. 383 titles from the edition of 31 March 2026.

Why this exists
Mining title data in Burkina Faso is public, but it is published as documents, not as data: a quarterly PDF, scanned from paper, with nine tables inside it. Answering "which titles does this company hold, and when do they expire?" means finding the right ministry page, downloading the right file, and reading a scanned table by eye.
No MCP server exposes mining cadastre data — in any region of the world. This one starts with Burkina Faso.
Related MCP server: gov-data-mcp
What it can and cannot answer
It can tell you who holds a title, its status, its grant and expiry dates, the provinces and communes it covers, and which category of title it is.
It cannot tell you the commodity. The published lists do not carry it. You can separate mines from quarries, but not gold from manganese. Asking the server for gold permits returns zero results and says why — it will not guess from a company name.
It is not authoritative. Every response carries the edition date, the publication date, the date the document was read, and the SHA-256 of the source PDF. The data reflects the state at the edition date, not today. The official registry remains the only opposable record. Do not use this for title verification or due diligence without confirming against the source.
The text comes from OCR. The source is a scan. Values that look wrong are
reported as they are, flagged in anomalies_de_lecture, and never silently
corrected.
Tools
Tool | What it does |
| Countries covered, source, edition served, categories and counts, explicit limits |
| Search by |
| Full detail of one title by its |
All three are read-only, idempotent, and never reach the network at call time. This server writes nothing, anywhere.
Demonstration
Real output, captured over a stdio session. Reproduce it with
python scripts/run_evals.py.
Detail of one title. Note that every response carries its provenance.
// cadastre_get_licence({"code": "4417"})
{
"trouve": true,
"titre": {
"code": "4417",
"nom": "BOUBOULOU 2",
"detenteur": "SOPAMIB",
"statut": "valide",
"statut_normalise": "valide",
"date_octroi": "05/12/2025",
"date_expiration": "04/12/2028",
"provinces": "PASSORE",
"communes": "YAKO",
"categorie": "LISTE DES PERMIS DE RECHERCHE VALIDES A LA DATE DU 31/03/2026",
"page_du_document": 1,
"strategie_extraction": "traits",
"anomalies_de_lecture": []
},
"source": {
"juridiction": "BF",
"autorite": "Direction generale du cadastre minier (DGCM), ...",
"edition": "2026-03-31",
"publiee_le": "2026-04-11",
"lue_le": "2026-09-24",
"document_sha256": "6a18a11bd393a2b4e5e67aeb34db0645dfbbc52270b174c6f09c033b6f1de916",
"avertissement": "Instantané daté, extrait d'un PDF scanné puis océrisé...
Elle ne fait pas foi : le registre officiel est la seule
référence opposable."
}
}Asking for gold. The commodity is not published, so the server says so rather than returning something plausible.
// cadastre_search_licences({"categorie": "or"})
{
"total_trouves": 0,
"aucun_resultat": "Aucun titre ne correspond. ... Rappel : la substance n'est
pas publiée dans ces listes ...",
"categories_disponibles": [ /* the nine real category labels */ ]
}A code damaged by OCR. The server surfaces the lead and refuses to draw the conclusion for you.
// cadastre_get_licence({"code": "4360"})
{
"trouve": false,
"message": "Aucun titre ne porte exactement le code « 4360 » dans l'édition
2026-03-31 (383 titres). ...",
"codes_contenant_la_valeur": [
{ "code": "4360 .", "nom": "IMASGHO", "page_du_document": 36 }
],
"avertissement_rapprochement": "... Le serveur ne décide PAS qu'il s'agit du
titre cherché : à vérifier sur le document,
page indiquée."
}Responses are French-language JSON, matching the vocabulary of the source documents. Field values are never translated — they are what the ministry printed.
Install
Not published to PyPI yet. From a clone:
pip install -e .Register it with an MCP client over stdio:
{
"mcpServers": {
"mining-cadastre": {
"command": "python",
"args": ["-m", "mining_cadastre_mcp"]
}
}
}mining-cadastre-mcp also works as a console command, from any directory.
The server reads a dated snapshot committed in data/, so it starts instantly
and works offline. Point it elsewhere with MINING_CADASTRE_DATA=/path/to/data
— which is what you need for a non-editable install, since the snapshot lives
in the repository and is not packaged into the wheel. If no snapshot is found,
the server says where it looked and how to produce one.
Refreshing the data
New editions appear quarterly (31 March, 30 June, 31 October, 31 December). File names are not consistent between editions, so the URL is discovered rather than constructed:
python scripts/fetch_titres.py --list # list published editions
python scripts/fetch_titres.py # download the most recent
python scripts/extract_titres.py <pdf> --out data/YYYY-MM-DD
python scripts/run_evals.py # check nothing brokeOptional system prerequisite: Tesseract with the fra language. It is only
needed for editions published without a text layer — two of the five editions
seen so far, including the most recent. It is not a Python package; on Windows
the binary is not on PATH by default:
export TESSERACT_CMD=/path/to/tesseract # set TESSERACT_CMD=... on Windows
tesseract --list-langs # must list "fra"Use --sans-ocr to skip it: pages without a text layer are then rejected, never
guessed. Be aware that OCR extraction currently performs poorly — see
docs/EDITIONS.md.
How the data is produced
The source is a scanned PDF. Extraction runs offline and commits a dated snapshot; the server only reads it. Three strategies are tried per page, and every record records which one produced it:
Strategy | When | Quality on real editions |
| text layer + vector rules | 383 rows, 1.6 % flagged |
| text layer, no rules | 391 rows, 3.3 % flagged |
| no text layer at all | 116 rows, 98.3 % flagged — not usable yet |
Per-edition results, including three distinct failure modes, are in
docs/EDITIONS.md. Source provenance and terms of use are in
docs/SOURCES.md.
Testing
python scripts/run_evals.py # 10 questions, 41 assertions, real stdio session
python scripts/run_evals.py --verbeux # show every assertionThe evaluations run against a real server process. Five of the ten questions are traps: they fail if the server answers when it should decline — asking for gold, asking for a non-existent code, asking whether a title is valid today.
Licence
MIT — see LICENSE. The licence covers the software only. The title lists
are administrative acts published by the ministry; no explicit redistribution
grant exists for them. See docs/SOURCES.md.
Built by SOTECHDI, Ouagadougou, Burkina Faso.
Français
Serveur MCP donnant accès en lecture au cadastre minier du Burkina Faso, à partir des listes trimestrielles de titres miniers valides publiées par la Direction générale du cadastre minier. Trois outils en lecture seule : pays couverts, recherche, détail d'un titre.
La substance exploitée n'étant pas publiée dans ces listes, le serveur ne permet pas de distinguer l'or du manganèse — seulement les mines des carrières. Il le dit au lieu de deviner.
Chaque réponse porte sa source, la date d'édition, la date de publication, la date de lecture et l'empreinte du document. Les listes sont extraites de PDF scannés puis océrisés : les valeurs douteuses sont signalées, jamais corrigées. Ce serveur ne fait pas foi — le registre officiel reste la seule référence opposable. Documentation complète en anglais ci-dessus.
Available Tools
3 toolscadastre_get_licenceDétail d'un titre minierARead-onlyIdempotent
Rend le détail d'un titre minier par son code, l'identifiant numérique que porte la liste publiée. Ce code est stable d'une édition à l'autre : c'est la clé pour suivre un titre dans le temps.
Le code doit correspondre exactement. Pour le trouver, passer par cadastre_search_licences. Si plusieurs enregistrements portent le même code — ce qui signale une anomalie de lecture dans la source — ils sont tous rendus, sans qu'aucun soit choisi à la place de l'appelant.
Le texte vient d'un PDF scanné puis océrisé ; anomalies_de_lecture signale ce qui est douteux, rien n'est corrigé. La donnée reflète la date d'édition et ne fait pas foi : le registre officiel est la seule référence opposable. Ne pas s'en servir pour vérifier un titre sans confirmer auprès de l'autorité citée.
Inputs: code (required). Returns: result
cadastre_list_jurisdictionsJuridictions couvertesARead-onlyIdempotent
Liste les pays couverts par ce serveur, la source de données de chacun et l'état de la couverture : édition servie, date de publication, nombre de titres, catégories présentes. Indique aussi les pays hors périmètre et pourquoi. À appeler en premier pour savoir ce que ce serveur peut répondre — et ce qu'il ne peut pas. Les données ne font pas foi ; le registre officiel de chaque pays reste la seule référence opposable.
Inputs: no named parameters. Returns: result
cadastre_search_licencesRechercher des titres miniersARead-onlyIdempotent
Recherche des titres miniers dans la liste publiée par l'autorité. Tous les critères sont facultatifs et se combinent ; sans critère, rend le début de la liste. La comparaison ignore la casse et les accents.
ATTENTION sur deux points. Premièrement, la substance exploitée n'est PAS publiée dans ces listes : categorie porte sur la catégorie de titre — permis de recherche, exploitation artisanale, mines contre carrières — et ne permet pas de distinguer l'or du manganèse. Deuxièmement, le texte provient d'un PDF scanné puis océrisé : une valeur mal reconnue peut empêcher un rapprochement. Le champ anomalies_de_lecture signale les enregistrements concernés. Rien n'est corrigé.
La donnée ne fait pas foi et reflète la date d'édition, pas le jour. Le registre officiel est la seule référence opposable.
Inputs: code, limite, statut, societe, +1 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: listing covered jurisdictions, searching licence records, and fetching one licence by code. The descriptions explicitly direct the agent to call them in sequence, leaving little room for misselection.
All three tools follow a consistent cadastre_verb_noun pattern: cadastre_list_jurisdictions, cadastre_search_licences, cadastre_get_licence. The shared prefix and predictable verbs make the set easy to scan.
Three tools are well matched to a narrow read-only lookup server: discover coverage, search records, then retrieve details. No tool feels redundant or missing for that workflow.
The read-only lifecycle is covered: coverage discovery, search, and detail retrieval by stable code. Minor gaps such as explicit pagination or bulk export are not present, but agents can work around them via search criteria.
Maintenance
Related MCP Connectors
Read-only search of 2,189 AI agent tools (MCP servers, x402 APIs) with daily automated trust scores.
Public web tools for agents: product extraction, claim checks, webpage QA and ranked audits.
Read-only search over 2,065+ AI agent tools and 276 MCP servers. Free, no sign-up needed.
Search, read, and automate TextMine documents, records, workflows, integrations, and agent tasks.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with access to French public registries including company records, property sale prices, housing energy performance, and short-term rental rates via MCP tools.-
- AlicenseAqualityBmaintenanceA MCP server exposing 95 US government open-data tools as agent-callable tools, enabling direct access to official APIs for environmental, financial, licensing, and infrastructure data with honest run-status reporting.15184 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query curated spatial data about Colorado rockhounding, including finding vacant mining claims near mineral occurrences and checking land access at coordinates.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to browse and query annual U.S. mineral production, trade, consumption, prices, employment, and net import reliance alongside country-level world production and reserves for 85 nonfuel commodities.284 npmMIT