Quality-aware, read-only MCP server for discovering and selecting African speech corpora, Wolof first, with audited metrics, provenance, licensing, and training-set planning.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add african-speech-mcp -- python -m -e{
"mcpServers": {
"african-speech-mcp": {
"command": "python",
"args": ["-m", "pip"]
}
}
}Resumen de MCP Servers
<!-- mcp-name: io.github.papasega/african-speech-corpora -->
# African Speech Corpora MCP
<p align="center">
<img src="assets/af-mcp.png" alt="African Speech Corpora MCP" width="600">
</p>
A read-only server implementing the [Model Context Protocol](https://modelcontextprotocol.io), an open standard created by [Anthropic](https://www.anthropic.com), over public speech corpora for African languages: Wolof first, plus Pulaar and Sereer.
The project is **Wolof-first**. The 2.0 catalog contains 14 variants: 11 variants of original sources and 3 derivatives. Pulaar (`ful`) and Sereer (`srr`) are represented only by Kallaama variants without local metrics; the project does not claim Swahili or Amharic coverage. The bundled validation lock, generated on August 26, 2026, makes 6 Hugging Face variants queryable. A later validation run may naturally produce a different state.
Version 2.0.0 is distributed on [PyPI](https://pypi.org/project/african-speech-mcp/) and published as [`io.github.papasega/african-speech-corpora`](https://registry.modelcontextprotocol.io/?q=io.github.papasega%2Fafrican-speech-corpora) in the official MCP Registry.
The server does not train models, download complete corpora, or write to Hugging Face, OpenSLR, Kaggle, GitHub, or any other remote source.
## What the server measures
The quality pipeline keeps the following stages separate:
```text
raw audio → usable audio → transcribed audio → audit-accepted audio → expert-verified audio
```
- **Raw**: a file present in the observed snapshot.
- **Usable**: a file remaining after the audit's quantifiable exclusions.
- **Transcribed**: audio associated with a transcription.
- **Audit accepted**: an explicitly named union of expert-verified material and material only assumed valid by the audit.
- **Expert verified**: only `expert_audited` or `source_reported_expert`. An “a priori” assessment never enters this level.
Seconds are the canonical duration representation. Decimal hours and `HH:MM:SS` strings are derived at serialization time. Every audited metric states its scope, source, method, observation date, and confidence. A missing value remains `null`; it is never converted to zero. Figures published by a project remain under `published_metrics`, separate from local observations.
## 2026 Wolof snapshot
The machine-readable source is [`assets/wolof-audit-2026.csv`](assets/wolof-audit-2026.csv). The protocol, limitations, and discrepancies with the source table's TOTAL cells are documented in [`assets/wolof-audit-2026.md`](assets/wolof-audit-2026.md).
Seven Wolof variants have a local observation: ALFFA, FLEURS `wo_sn`, Kallaama Wolof, Urban Bus, Waxal crowdsource, Wolof TTS Baamtu, and WolBanking77. Totals are recomputed from these seven rows and are never stored as a redundant manual total: 148,102 usable files, 64,609 transcribed files, 50,494 audit-accepted files, 2,329,382.06 seconds of audio, 515,185.06 transcribed seconds, and 302,048.06 audit-accepted seconds.
Important limitations:
- the FLEURS, Urban Bus, Waxal, Wolof TTS, and WolBanking77 observations described as “a priori” are `audit_assumed_valid`, not expert verified;
- ALFFA explicitly has zero expert-verified files in this snapshot;
- the 153 Kallaama files are long radio or interview recordings, not 153 speech turns; 36 files and 12:49:36 are attributed to the local protocol's `source_reported_expert` basis;
- Urban Bus contains substantial French content without a quantified rate and therefore has `language_purity=mixed_fr`;
- Waxal separates 517:38:05 of raw audio, usable notably for SSL, from only 13:41:28 transcribed for supervised ASR;
- the local Wolof TTS Baamtu snapshot—36,009 files and 37:04:49—is distinct from the rounded public metric, and this TTS corpus is excluded from ASR by default;
- WolBanking77 distinguishes 2,563 observed audio files from the 9,791 text phrases reported elsewhere;
- [Afrivoice](https://huggingface.co/datasets/DigitalUmuganda/Afrivoice) publishes 530.74 hours of Wolof audio, including 102.96 transcribed hours. These are source-published figures, not measurements from the 2026 local audit and not evidence of expert verification. The dataset is auto-gated on Hugging Face, so its files, schema, splits, and durations cannot be independently checked without accepting its access conditions and supplying a token; it therefore remains `audit_status=pending`;
- because the exact source observation date is unavailable, `observed_at=2026` intentionally has year-only precision.
## Installation
The package requires Python 3.11 or newer. Python 3.12 is recommended and is selected explicitly below so that the virtual environment does not accidentally inherit an older system interpreter such as Python 3.9:
Install the published release from [PyPI](https://pypi.org/project/african-speech-mcp/):
```bash
python3.12 --version
python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip install "african-speech-mcp==2.0.0"
```
For development, install an editable checkout with the development dependencies:
```bash
git clone https://github.com/papasega/african-speech-mcp.git
cd african-speech-mcp
python3.12 --version
python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip install -e ".[dev]"
```
Both version commands should report Python 3.12.x. Creating the environment with `python -m venv .venv` is safe only when that `python` executable is already Python 3.11 or newer. If installation fails with an error such as:
```text
ERROR: Package 'african-speech-mcp' requires a different Python: 3.9.6 not in '>=3.11'
```
then the virtual environment was created with Python 3.9.6. Deactivate it, remove or rename that local `.venv`, install Python 3.12 if necessary, and recreate the environment with `python3.12 -m venv .venv`. A virtual environment keeps the interpreter with which it was created; activating it does not upgrade Python.
The stdio server starts with no arguments:
```bash
african-speech-mcp
```
It can also be started explicitly:
```bash
african-speech-mcp serve --transport stdio
african-speech-mcp serve --transport streamable-http
```
Example Claude Desktop configuration after installing the package, preferably using an absolute path:
```json
{
"mcpServers": {
"african-speech-corpora": {
"command": "/absolute/path/to/.venv/bin/african-speech-mcp"
}
}
}
```
Version 2.0.0 is published on PyPI and can be installed with `pip`. The repository installation remains the appropriate choice for development or unreleased changes.
## MCP tools
All eight tools declare `read_only_hint=true`, `destructive_hint=false`, and `idempotent_hint=true`.
| Tool | Purpose |
| --- | --- |
| `list_corpora` | List variants, audit state, recommended use, and validation state. |
| `audit_corpus` | Return counts, durations, verification basis, warnings, and separate published figures. |
| `plan_training_set` | Build a plan without double-counting derivatives or including benchmarks by default. |
| `filter_segments` | Filter only when a row-level manifest exists; otherwise refuse to promise exclusions. |
| `compare_corpora` | Compare quality, domain, language purity, license, and metric freshness. |
| `search_segments` | Search rows in a variant whose remote schema has been validated. |
| `corpus_stats` | Return sizes for the variant's config only and report schema discrepancies. |
| `cite_corpus` | Return the license, citation, and parent citations for a derivative. |
Conceptual examples:
```text
audit_corpus(corpus="waxal-crowdsource")
plan_training_set(language="wol", task="asr", quality="transcribed")
plan_training_set(language="wol", task="asr", quality="expert_verified")
plan_training_set(
language="wol",
task="asr",
quality="audit_accepted",
include_mixed_language=true,
)
filter_segments(
corpus="waxal-crowdsource",
exclude_duplicates=true,
exclude_non_wolof=true,
exclude_corrupt=true,
)
```
The last call currently returns `filter_available=false`. Aggregate totals establish that Waxal contains 430 duplicates and 22 corrupt or non-Wolof files, but they provide no row identifiers. The server therefore refuses to pretend that it removed those rows.
## `plan_training_set` semantics
`quality` accepts:
- `any`: select by task and license without requiring transcription;
- `transcribed`: use actually transcribed duration;
- `audit_accepted`: include expert and assumed-valid material, with a visible breakdown and warning;
- `expert_verified`: use only genuinely expert verification bases;
- `wolof_only`: exclude `mixed_fr`, `mixed`, `unknown`, and variants without sufficient language-purity evidence.
`metric_source` is either `latest_audit` (the default) or `published`. Variants without a known duration remain listed in `hours_unknown_for`. FLEURS is a benchmark and stays out of training unless `include_benchmarks=true`. Urban Bus requires `include_mixed_language=true`. TTS variants stay out of ASR unless explicitly enabled, and derivatives are never added to their parents. Unknown, non-commercial, share-alike, or unconfirmed licenses produce appropriate warnings; `commercial_use=null` is never presented as commercially compatible.
## Persistent Hugging Face validation
```bash
african-speech-mcp validate
african-speech-mcp validate --write
african-speech-mcp validate --output validation-lock.json
```
Validation checks the dataset identifier, config, splits, transcription column, and any declared language column. The lock is written through atomic replacement and records `checked_at`, observed schema information, and a stable fingerprint. It is also bound to the catalog hash, so the server rejects a stale lock.
By default, `--write` creates `validation-lock.json` in the current directory without modifying the installed package. To use it afterward:
```bash
export ASM_VALIDATION_LOCK_PATH="$PWD/validation-lock.json"
african-speech-mcp
```
Possible states are `unverified`,Lo que la gente pregunta sobre african-speech-mcp
¿Qué es papasega/african-speech-mcp?
+
papasega/african-speech-mcp es mcp servers para el ecosistema de Claude AI. Quality-aware, read-only MCP server for discovering and selecting African speech corpora, Wolof first, with audited metrics, provenance, licensing, and training-set planning. Tiene 1 estrellas en GitHub y su última actualización registrada es del 2026-08-27.
¿Cómo se instala african-speech-mcp?
+
Puedes instalar african-speech-mcp clonando el repositorio (https://github.com/papasega/african-speech-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar papasega/african-speech-mcp?
+
Nuestro agente de seguridad ha analizado papasega/african-speech-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene papasega/african-speech-mcp?
+
papasega/african-speech-mcp es mantenido por papasega. La última actividad registrada en GitHub es del 2026-08-27, con 0 issues abiertos.
¿Hay alternativas a african-speech-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega african-speech-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/papasega-african-speech-mcp)<a href="https://claudewave.com/repo/papasega-african-speech-mcp"><img src="https://claudewave.com/api/badge/papasega-african-speech-mcp" alt="Featured on ClaudeWave: papasega/african-speech-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!