# io.github.SemanticDataCharter/sdcreader (pypi · sdcreader)

Read published Semantic Data Charter models: catalog search, record structure, codes, pinned schema.

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

## Components

- pypi · `sdcreader`: 88/100 (this document), [markdown](https://verifymcp.io/servers/semanticdatacharter-sdcreader/sdcreader.md), [page](https://verifymcp.io/servers/semanticdatacharter-sdcreader/sdcreader)

## Channel facts

- Registry: `pypi`
- Package: `sdcreader`
- Version: `4.4.1`
- 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 setuptools.build_meta at install time, a recognised build step with no custom scripting around it.
  - 0 of 6 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to SemanticDataCharter/sdcreader).
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 10 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 964 tokens (~160/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 89/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 68% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.SemanticDataCharter/sdcreader MCP server?

io.github.SemanticDataCharter/sdcreader runs locally as a PyPI package, launched with uvx sdcreader. 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 semanticdatacharter-sdcreader -- uvx sdcreader
```

### Cursor

```json
{
  "mcpServers": {
    "semanticdatacharter-sdcreader": {
      "command": "uvx",
      "args": [
        "sdcreader"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "semanticdatacharter-sdcreader": {
      "command": "uvx",
      "args": [
        "sdcreader"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add semanticdatacharter-sdcreader -- uvx sdcreader
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add semanticdatacharter-sdcreader --command uvx --arg sdcreader
```

### Hermes

```yaml
mcp_servers:
  semanticdatacharter-sdcreader:
    command: "uvx"
    args: ["sdcreader"]
```

### Netclaw

```json
{
  "McpServers": {
    "semanticdatacharter-sdcreader": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "sdcreader"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add semanticdatacharter-sdcreader -t stdio -c uvx -a sdcreader
```

### Other

```json
{
  "mcpServers": {
    "semanticdatacharter-sdcreader": {
      "command": "uvx",
      "args": [
        "sdcreader"
      ]
    }
  }
}
```

## 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-04 (score 88, +16)

- [security improvement] Malware scan: unverified → pass

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

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

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

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

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

- [security regression] Malware scan: pass → unverified

### 2026-10-29 (score 85, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-27 (score 69, −14)

- [security regression] Malware scan: pass → unverified

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

- [security improvement] Malware scan: unverified → pass

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

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.30 → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Package version: 4.3.1 → 4.4.1
- [functional] Package version: 4.3.1 → 4.4.0

## MCP tools (6)

### `find_models` (~96 tokens)

Search SDCStudio's public catalog of published models by text, or list the models of one public project by name. Needs no account. Returns identifiers, titles and projects; pass an identifier to describe_model.

Input parameters:

- `page` (integer)
- `page_size` (integer)
- `project` (string): A public project's exact name, for example NIH_CDE.
- `search` (string): Text matched against title and description.

### `describe_model` (~152 tokens)

Describe one published model: title, description, project, the root record, how many leaves and components it has and of which types, its Dublin Core as the modeler wrote it (defaults reported as null), its semantic links, and the schema URL pinned to the SHA-256 of the bytes every record is validated against.

Input parameters:

- `ct_id` (string): The model's identifier (CUID2) in the public catalog; the package is fetched from the host this server was started with.
- `directory` (string): A package directory already on disk (dm-<ct>.jsonld and dm-<ct>.xsd, optionally catalog.json and versions.json). Give this or ct_id, not both.

### `list_leaves` (~151 tokens)

The model's leaves in document order, each with its path of clusters, its SDC4 type, its constraints, how many enumerated values it has and its identity links. Paged: a model can have more than a thousand leaves.

Input parameters:

- `ct_id` (string): The model's identifier (CUID2) in the public catalog; the package is fetched from the host this server was started with.
- `directory` (string): A package directory already on disk (dm-<ct>.jsonld and dm-<ct>.xsd, optionally catalog.json and versions.json). Give this or ct_id, not both.
- `limit` (integer)
- `offset` (integer)

### `list_codes` (~138 tokens)

The enumerated values of one component in a model: each value with the IRI, definition and code system the published schema annotates it with.

Input parameters:

- `component` (string, required): The component's identifier (ct_id), as list_leaves reports it.
- `ct_id` (string): The model's identifier (CUID2) in the public catalog; the package is fetched from the host this server was started with.
- `directory` (string): A package directory already on disk (dm-<ct>.jsonld and dm-<ct>.xsd, optionally catalog.json and versions.json). Give this or ct_id, not both.

### `read_record` (~215 tokens)

Read a Governed Data Record (an XML file on disk) against its model: the record's attributes and each value in document order with its component, path of clusters, elements, context and any Exceptional Value (ISO 21090 code, name, and whether it was written at the source or inserted by recovery beside a rejected value). The model is the one the record names, fetched by its identifier unless ct_id or directory is given. Paged. Does not validate the record.

Input parameters:

- `ct_id` (string): The model's identifier (CUID2) in the public catalog; the package is fetched from the host this server was started with.
- `directory` (string): A package directory already on disk (dm-<ct>.jsonld and dm-<ct>.xsd, optionally catalog.json and versions.json). Give this or ct_id, not both.
- `limit` (integer)
- `offset` (integer)
- `record` (string, required): Path to the record's XML file on disk.

### `check_package` (~110 tokens)

Run the reader's integrity check on a package directory: the JSON-LD names the directory's model, it has components, the schema is an XML Schema, and its bytes are the published current version when versions.json is present. Returns the SHA-256 and the pinned schema URL.

Input parameters:

- `directory` (string, required): A package directory already on disk (dm-<ct>.jsonld and dm-<ct>.xsd, optionally catalog.json and versions.json). Give this or ct_id, not both.

## Diagnostics

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

## Score history

- 2026-11-05: 88
- 2026-11-04: 88
- 2026-11-03: 72
- 2026-11-02: 72
- 2026-11-01: 71
- 2026-10-31: 71
- 2026-10-30: 70
- 2026-10-29: 85
- 2026-10-28: 69
- 2026-10-27: 69
- 2026-10-26: 83
- 2026-10-25: 68
- 2026-10-24: 67
- 2026-10-23: 68
- 2026-10-22: 82
- 2026-10-21: 79
- 2026-10-20: 79
- 2026-10-19: 79
- 2026-10-18: 79
- 2026-10-17: 79
- 2026-10-16: 79
- 2026-10-15: 79
- 2026-10-14: 49
- 2026-10-13: 49

## Common questions

### What is the io.github.SemanticDataCharter/sdcreader MCP server?

io.github.SemanticDataCharter/sdcreader is an MCP server listed in the public MCP registry as io.github.SemanticDataCharter/sdcreader. Read published Semantic Data Charter models: catalog search, record structure, codes, pinned schema. This page covers its PyPI package (sdcreader).

### Is the io.github.SemanticDataCharter/sdcreader MCP server safe to use?

io.github.SemanticDataCharter/sdcreader scores 88 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.SemanticDataCharter/sdcreader MCP server expose?

io.github.SemanticDataCharter/sdcreader exposes 6 tools: find_models, describe_model, list_leaves, list_codes, read_record, check_package. Their descriptions and schemas cost roughly 862 tokens of context every time the server is loaded.

### Is the io.github.SemanticDataCharter/sdcreader MCP server still maintained?

io.github.SemanticDataCharter/sdcreader 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.SemanticDataCharter/sdcreader MCP server under?

io.github.SemanticDataCharter/sdcreader declares the Apache-2.0 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/sdcreader/
- Socket report: https://socket.dev/pypi/package/sdcreader
- Repository: https://github.com/SemanticDataCharter/sdcreader
- Changelog RSS feed: https://verifymcp.io/servers/semanticdatacharter-sdcreader/sdcreader.xml
- Changelog JSON feed: https://verifymcp.io/servers/semanticdatacharter-sdcreader/sdcreader.json
- HTML version of this page: https://verifymcp.io/servers/semanticdatacharter-sdcreader/sdcreader
