# io.github.hsouf/cldf-mcp (pypi · cldf-mcp)

WALS typology joined with Glottolog classification, with provenance and family-aware counts.

- Trust score: 87/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- pypi · `cldf-mcp`: 87/100 (this document), [markdown](https://verifymcp.io/servers/hsouf-cldf-mcp/cldf-mcp.md), [page](https://verifymcp.io/servers/hsouf-cldf-mcp/cldf-mcp)

## Channel facts

- Registry: `pypi`
- Package: `cldf-mcp`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 1 of 28 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to hsouf/cldf-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 10 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1371 tokens (~114/item across 12 items; 10 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 90% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.hsouf/cldf-mcp server?

io.github.hsouf/cldf-mcp runs locally as a PyPI package, launched with uvx cldf-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add hsouf-cldf-mcp -- uvx cldf-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "hsouf-cldf-mcp": {
      "command": "uvx",
      "args": [
        "cldf-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "hsouf-cldf-mcp": {
      "command": "uvx",
      "args": [
        "cldf-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add hsouf-cldf-mcp -- uvx cldf-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hsouf-cldf-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "cldf-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add hsouf-cldf-mcp --command uvx --arg cldf-mcp
```

### Hermes

```yaml
mcp_servers:
  hsouf-cldf-mcp:
    command: "uvx"
    args: ["cldf-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "hsouf-cldf-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "cldf-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add hsouf-cldf-mcp -t stdio -c uvx -a cldf-mcp
```

### Other

```json
{
  "mcpServers": {
    "hsouf-cldf-mcp": {
      "command": "uvx",
      "args": [
        "cldf-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 87, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-11-04 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 69, −15)

- [security regression] Malware scan: pass → unverified
- [functional regression] Security disclosure: unverified → fail

### 2026-10-29 (score 84, +1)

- [functional regression] Security disclosure: fail → unverified

### 2026-10-28 (score 83, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-27 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (10)

### `list_datasets` (~27 tokens)

List the loaded datasets with their release versions, coverage, licenses and how to cite them.

### `find_language` (~122 tokens)

Find languages by name or code. Returns Glottocodes, family, macroarea and which dataset entries have data.

Use this before other tools when a name might be ambiguous (e.g. 'Arabic' is a family; WALS has
Arabic varieties). Candidates are ranked: exact codes, exact names, alternate names, then partial matches.

Input parameters:

- `limit` (integer)
- `query` (string, required): Language name (any spelling or alternate name), ISO 639-3 code, Glottocode, or dataset code like 'wals:bsq'.

### `search_features` (~89 tokens)

Search typological features by keyword. Returns feature IDs, names, possible values and how many
languages are coded for each.

Input parameters:

- `dataset`: Restrict to one dataset, e.g. 'wals'.
- `limit` (integer)
- `query` (string, required): Keywords such as 'word order', 'negation', 'tone', 'plural', or a feature ID like '81A'.

### `get_feature` (~149 tokens)

Describe one feature: definition, chapter and authors, and how its values are distributed, counted by
languages, families and genera.

Input parameters:

- `by_macroarea` (boolean): Also break counts down by macroarea.
- `family`: Restrict to a Glottolog family or subgroup ('Austronesian', 'Germanic') or Glottocode.
- `feature` (string, required): Feature ID, e.g. 'wals:81A'.
- `macroarea`: Restrict to one macroarea: Africa, Australia, Eurasia, North America, Papunesia, South America.
- `sample`: Restrict to a balanced sample: 'wals100' or 'wals200'.

### `get_values` (~154 tokens)

Look up specific datapoints: the value of each feature for each language, with sources, comments and
full citations. Unresolvable names are reported in 'errors' with candidates instead of failing the call.

When several dataset entries share a Glottocode (e.g. Basque and Basque dialects), the main entry is used
and the others are listed; pass a dataset ref like 'wals:bso' to pick a specific one.

Input parameters:

- `features` (array, required): Feature IDs, e.g. ['wals:81A', 'wals:85A'].
- `languages` (array, required): Languages: names, Glottocodes, ISO codes or dataset refs ('wals:bsq').

### `language_profile` (~81 tokens)

Everything known about one language: Glottolog identity, classification, endangerment and description
status, plus all its feature values per dataset.

Input parameters:

- `dataset`: Only show this dataset's values.
- `language` (string, required): Name, Glottocode, ISO 639-3 code or dataset ref.
- `limit` (integer): Maximum values per dataset.

### `filter_languages` (~142 tokens)

Find languages matching feature conditions, e.g. SOV order AND postpositions.

Returns match counts against the number of languages coded for all conditions (the denominator), with
family and genus counts and the families contributing most matches, plus the matching languages.

Input parameters:

- `conditions` (array, required): All conditions must hold (AND). Combine features across datasets freely.
- `family`: Restrict to a Glottolog family or subgroup, or Glottocode.
- `limit` (integer): Maximum languages listed (counts are always complete).
- `macroarea`: Restrict to one macroarea.
- `sample`: Restrict to 'wals100' or 'wals200'.

### `crosstab` (~175 tokens)

Cross-tabulate two features over the languages coded for both. Each cell gives languages, families and
genera attesting the combination and the share of its largest family, so you can tell a cross-linguistic
tendency from the signature of one big family. Use this to check implicational universals.

Input parameters:

- `by_macroarea` (boolean): Also give each cell per macroarea.
- `family`: Restrict to a Glottolog family or subgroup.
- `feature_a` (string, required): First feature ID, e.g. 'wals:81A'.
- `feature_b` (string, required): Second feature ID, e.g. 'wals:85A'.
- `macroarea`: Restrict to one macroarea.
- `sample`: Restrict to 'wals100' or 'wals200'.

### `classification` (~66 tokens)

Glottolog classification of a language or group: lineage, children (with how many dataset entries
fall under each), sisters, and the number of languages below.

Input parameters:

- `language` (string, required): Language, family or subgroup: name or Glottocode.
- `max_children` (integer)

### `get_source` (~74 tokens)

Full bibliographic references for source IDs cited in datapoints.

Input parameters:

- `dataset`: Dataset the IDs come from, e.g. 'wals'.
- `source_ids` (array, required): Source IDs as returned by get_values, e.g. ['Nekitel-1985'] (page suffixes like '[94]' are accepted).

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/hsouf-cldf-mcp/cldf-mcp#diagnostics

## Score history

- 2026-11-05: 87
- 2026-11-04: 72
- 2026-11-03: 71
- 2026-11-02: 71
- 2026-11-01: 70
- 2026-10-31: 70
- 2026-10-30: 69
- 2026-10-29: 84
- 2026-10-28: 83
- 2026-10-27: 68
- 2026-10-26: 67
- 2026-10-25: 82

## Common questions

### What is the io.github.hsouf/cldf-mcp server?

io.github.hsouf/cldf-mcp is listed in the public MCP registry as io.github.hsouf/cldf-mcp. WALS typology joined with Glottolog classification, with provenance and family-aware counts. This page covers its PyPI package (cldf-mcp).

### Is the io.github.hsouf/cldf-mcp server safe to use?

io.github.hsouf/cldf-mcp scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.hsouf/cldf-mcp server expose?

io.github.hsouf/cldf-mcp exposes 10 tools: list_datasets, find_language, search_features, get_feature, get_values, and 5 more. Their descriptions and schemas cost roughly 1,079 tokens of context every time the server is loaded.

### Is the io.github.hsouf/cldf-mcp server still maintained?

io.github.hsouf/cldf-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.hsouf/cldf-mcp server under?

io.github.hsouf/cldf-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/cldf-mcp/
- Socket report: https://socket.dev/pypi/package/cldf-mcp
- Repository: https://github.com/hsouf/cldf-mcp
- Changelog RSS feed: https://verifymcp.io/servers/hsouf-cldf-mcp/cldf-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/hsouf-cldf-mcp/cldf-mcp.json
- HTML version of this page: https://verifymcp.io/servers/hsouf-cldf-mcp/cldf-mcp
