Sdcreader
Resumen
Descripción del creador (original en inglés)
Read published Semantic Data Charter models: catalog search, record structure, codes, pinned schema.
Los tres pilares de PopNx MCP
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
- Opinión de usuariosiAún no hay reseñasLas reseñas se abrirán junto con las cuentas en una etapa posterior
- Nuestras revisiones básicasi1 de 1 superadasRevisado con información pública; el código aún no se ha escaneado
- UsoiMuy nuevo↓ 118/sem · ★ –
Qué puedes hacer con él
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
- Conexión: Se ejecuta en tu computadora
- Transporte: stdio
- Categoría: Búsqueda y memoria de IA
Instalación
Elige la app de IA que usas y copia la configuración.
Antes de instalar
- Revisiones básicas: 1 de 1 superadas
- Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
- El registro no indica ninguna clave que completar.
Necesitas
- PyPIuv de Python instalado (para el comando uvx)
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"sdcreader": {
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add sdcreader -- uvx sdcreaderO copia la configuración tú
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"sdcreader": {
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
O copia la configuración tú
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"sdcreader": {
"type": "stdio",
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Qué puede hacer
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisiones básicasi
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026
- ✓ Superada
El creador coincide con el repo
El nombre en el registro se verificó con la cuenta de GitHub SemanticDataCharter, dueña del repo
- … Aún sin revisar
Sigue en mantenimiento
Todavía no hemos leído este repo en GitHub
- … Aún sin revisar
Tiene licencia
Todavía no hemos leído este repo en GitHub
- – No aplica
El endpoint responde
Este se ejecuta en tu computadora; no hay endpoint en internet
- – No aplica
Inicio de sesión con OAuth
Se ejecuta en tu computadora y usa ajustes locales en su lugar
- … Aún sin revisar
Sin instrucciones ocultas en las descripciones de herramientas
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con otros en Búsqueda y memoria de IAi
- Más estrellas que el 0% de los otros 5759 servidores de esta categoría
- Publicado en el registro más recientemente que el 72% de los otros 5759 servidores de esta categoría
- Revisiones básicas iguales o mejores que el 100% de los otros 5759 servidores de esta categoría
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Preguntas frecuentes
¿Es seguro Sdcreader?
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
¿Qué claves o códigos necesita?
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
¿Se ejecuta en mi computadora o en la nube?
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
¿Sigue en mantenimiento?
El repo de GitHub cambió por última vez –, y la última versión (4.4.1) llegó al registro hace 15 días.
¿Qué apps pueden usarlo?
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
¿Qué puedo usar en su lugar?
En la misma categoría: Context7, Codebase Memory, Exa
Alternativas
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
README del creador
Abrir el README
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
sdcreader
Read a published Semantic Data Charter model's package for projection into other standards.
A projection describes a model's governed data records in another standard's terms: CDIF, DCAT-US 3.0, DCAT-AP 3.0.1, HealthDCAT-AP, and whatever comes next. What every projection describes is the same evidence, the model's package, and reads it into the same shape. sdcreader is that evidence and that shape, once, with nothing about any projection in it. The four projection writers (sdc_cdif, sdc_dcat3_us, sdc_dcat3_ap, sdc_healthdcat_ap) carried it as identical copies until this package.
pip install sdcreader # the reader, with HTTP for fetching from the public catalog (since 4.1.0 no extra is needed)
from sdcreader import fetch_package, load_package, read_model
pkg = load_package("samples/nhanes-participant") # a package on disk pkg = fetch_package("xy8upneajsb8vdcmnve01g6g", save_to="pkg/") # or from SDCStudio's public catalog, no account model = read_model(pkg)
pkg.schema_url_pinned # https://sdcstudio.axius-sdc.com/dmlib/dm-xy8u...xsd?sha256=0df4... the exact bytes the records are validated against model.title, model.leaves # 'NHANES Participant', 153 leaves in document order, each with its path of clusters model.codes[ct_id] # the enumerated values of a component with the IRI, definition and code the schema annotates them with model.dc("publisher") # what the modeler wrote, None where SDCStudio's default sits
What a package is
SDCStudio generates a package for every published model and serves it publicly for models in public projects:
GET /api/v1/catalog/dm/ / | the catalog record: title, description, project, the artifact list (catalog.json) |
GET /api/v1/catalog/dm/ / / | a storage pointer, {"download_url": ..., "filename": ..., "storage": "gcs"}, for jsonld, xsd and the rest; the reader follows it |
dm- .jsonld | the model and its components: type, label, description, cardinality, constraints (enumerations, units, ranges, patterns), semantic links (dcterms:identifier the library slot, dcterms:source, dcterms:publisher, skos:exactMatch, rdfs:seeAlso, prov:wasRevisionOf), contains |
GET /dmlib/dm- .xsd | the schema bytes: the Dublin Core header for the model, and for each enumerated value its definition and the code it is defined by (dm- .xsd) |
GET /dmlib/dm- .versions.json | every published version of the schema by SHA-256, with the current one (versions.json) |
A package directory holds those four files. The reader refuses a directory without the JSON-LD and the schema, a JSON-LD whose identifier is not the directory's model, and a schema whose bytes are not the published current version: a projection cites the schema by URL and SHA-256, so the bytes have to be the ones that URL serves.
Two gaps in the package are on SDCStudio's issue tracker: the JSON-LD metadata drops fields the schema header carries (#748), and the header omits dc:source (#749). The reader takes the model's Dublin Core from the header, which is complete.
What the reader gives
- `ModelPackage`: the four files, the SHA-256, the schema URL and its pinned form (
?sha256=), the public catalog URL, andcheck(). - `Model`:
title,description,root(the governed record's cluster),componentsby identifier,leavesin document order (each aLeafwith itscomponent, itspathof clusters and aslugof that path, unique in the record),codes(the enumerated values per component asCode: value, IRI, definition, the code it is defined by),metadata(the JSON-LD's) andheader(the schema's Dublin Core). - `Model.dc(name)`: what the modeler wrote, the header first and the JSON-LD second, with SDCStudio's field defaults as unset: "Universal" for coverage, "None" for relation, "SDC Data Model (DM)" for type, blanks. A projection never publishes a default as a fact.
contributors,subjects(the semicolon list),rights_urlandrights_statementderive from it. - `Component`:
sdc_type,label,description,data_type,constraints,linksby predicate (link(p)for the first),contains,iri. - Constants: the leaf, numeric and quantified types; the predicate IRIs
IDENTIFIER,SOURCE,PUBLISHER,EXACT,CLOSE,SEE_ALSO,HAS_UNIT;DC_DEFAULTS.
Reading a record (4.3.0)
read_record(source, model) reads a Governed Data Record, the XML instance, and joins each value to the component that defines it. source is the record's bytes, its text or a path; a record of another model is refused (RecordError), as is anything that is not an sdc4:dm- record.
- `Record`:
attributes(instance_id,instance_version,creation_timestamp,current-state, ...),valuesin document order, andexceptional, the values that carry an Exceptional Value. - `RecordValue`: the
component, itspathof clusters (root first),instancesparallel to the path (which occurrence each cluster is among the same cluster's repeats under the same parent;instance_keypairs them with the clusters' identifiers, one key per cluster instance), anoccurrenceindex for a component repeated within its cluster instance, itsposition, itselementsas the record holds them (a quantity's units nested:{"xdquantity-value": "1", "xdquantity-units": {"label": "Trade Units", "xdstring-value": "EA"}}), and itscontext(act,vtb,vte,tr,modified,latitude,longitude). - `ExceptionalValue`: the ISO 21090 null flavor (
code,name) and itsorigin:sourcewhen it stands in place of the value,recoverywhen sdcvalidator's recovery inserted it beside a value that failed its constraint. Forrecovery,RecordValue.rejectedis that value, kept so a person can see it.
Cluster members sit inside adapter elements that are not components of the model; the reader passes through them. It does not type, validate or interpret values: that is the caller's work (a mapper, an exporter, a checker).
MCP server
sdcreader is also an MCP server, registered as io.github.SemanticDataCharter/sdcreader, so an assistant can read a published model the way sdcvalidator, sdcgovernance and sdcreceipt let it validate, govern and settle a record. stdio, no SDK, no account, read-only.
uvx sdcreader # or: sdcreader-mcp, or python -m sdcreader.mcp_server
uvx sdcreader --host https://your-sdcstudio.example # a sovereign SDCStudio's public catalog
| Tool | Does |
|---|---|
find_models | search the public catalog by text, or list a public project's models by name |
describe_model | one model: title, project, root record, leaf and component counts by type, Dublin Core with SDCStudio's defaults as null, the schema URL pinned to its SHA-256 |
list_leaves | the leaves in document order with path, type, constraints, code count and identity links, paged |
list_codes | one component's enumerated values with IRI, definition and code system |
check_package | the reader's integrity check on a package directory |
read_record | a Governed Data Record on disk read against its model: attributes, then each value with its component, path, elements, context and Exceptional Value, paged; the model is the one the record names unless a source is given |
Each model tool takes a ct_id (fetched from the host the server was started with) or a package directory on disk. No tool takes a URL: the host is fixed at start, so a caller cannot point the server elsewhere. Every tool calls the same functions as the library; the two interfaces describe one model the same way.
Tests
pip install -e ".[dev]"
python -m pytest tests -q # includes one fetch against production python -m pytest tests -q -m "not network" # offline, as CI runs it
The fixture is the NHANES Participant package of the FAIR Data Demo, the record every projection is proven on.
Versioning
The leading 4 is the SDC4 reference model, as with every Semantic Data Charter package. An addition to what the reader exposes is a minor version, a fix a patch; the major changes only when the reference model does.
License
Apache-2.0 (see LICENSE, NOTICE).