Bir AI istemcisinin Semantic Data Charter modellerini ve yönetilen veri kayıtlarını aramasını, tanımlamasını ve okumasını sağlar.
Ayrıca bilinen adı SemanticDataCharter/sdcreader
- Yıldızlar
- 0
- Araçlar
- —
- İndirmeler, 30 gün
- 1.683
- En son sürüm
- 4.4.1
- Son commit
- 10 Kas 2026
- Lisans
- Apache-2.0
sdcreader MCP nedir?
sdcreader bir MCP sunucusudur. Bir AI istemcisinin Semantic Data Charter modellerini ve yönetilen veri kayıtlarını aramasını, tanımlamasını ve okumasını sağlar.
Özet, projenin README dosyasından oluşturuldu
sdcreader MCP sunucusu hakkında
sdcreader, yapay zeka asistanlarının Semantic Data Charter modellerini ve yönetilen veri kayıtlarını aramasını ve yorumlamasını sağlar. Bir istemcinin yayınlanmış modelleri keşfetmesine, bileşenlerini incelemesine ve değerleri tanımlayıcı bileşenleriyle eşleştirerek belirli veri kayıtlarını okumasına olanak tanır. Sunucu, verileri CDIF veya DCAT-US gibi standartlara eşlemek için projeksiyon yazarları tarafından kullanılan yapısal kanıtların aynısını sağlayan salt okunur bir arayüz olarak çalışır.
Kullanıcılar sunucuyu uvx kullanarak stdio üzerinden çalıştırabilirler ve bir host belirleyerek egemen bir SDCStudio genel kataloğuna bağlanacak şekilde yapılandırabilirler. Çalışmak için herhangi bir hesap veya SDK gerektirmez. Sunucu; katalog aramaları için find_models, meta verileri ve şema URL'lerini almak için describe_model, belge sıra yollarını görüntülemek için list_leaves ve bir modele göre XML örneklerini ayrıştırmak için read_record gibi özel araçlar sunar. Şema baytlarının yayınlanan SHA-256 özetleriyle eşleştiğini doğrulayarak veri bütünlüğünü sağlar.
Neler yapabilirsiniz
- 1Genel kataloğu arayınMetin arayarak veya bir genel proje içindeki modelleri listeleyerek belirli Semantic Data Charter modellerini bulun.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
sdcreader MCP nasıl yüklenir
Biçimler 10 Kas 2026 tarihinde doğrulandıCursor'a ekleGoose'a eklesdcreader MCP'yi Claude Code içine yükleyin
$ claude mcp add sdcreader -- uvx sdcreadersdcreader MCP'yi Cursor içine yükleyin
~/.cursor/mcp.json
{
"mcpServers": {
"sdcreader": {
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}sdcreader MCP'yi VS Code içine yükleyin
.vscode/mcp.json
{
"servers": {
"sdcreader": {
"type": "stdio",
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}sdcreader MCP'yi VS Code CLI içine yükleyin
$ code --add-mcp '{"name":"sdcreader","type":"stdio","command":"uvx","args":["sdcreader"]}'sdcreader MCP'yi Claude Desktop içine yükleyin
claude_desktop_config.json
{
"mcpServers": {
"sdcreader": {
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}sdcreader MCP'yi Codex içine yükleyin
$ codex mcp add sdcreader -- uvx sdcreadersdcreader MCP'yi Codex config.toml içine yükleyin
~/.codex/config.toml
[mcp_servers.sdcreader] command = "uvx" args = ["sdcreader"]
sdcreader MCP'yi Gemini CLI içine yükleyin
$ gemini mcp add -s user sdcreader uvx -- sdcreadersdcreader MCP'yi Gemini settings.json içine yükleyin
~/.gemini/settings.json
{
"mcpServers": {
"sdcreader": {
"command": "uvx",
"args": [
"sdcreader"
]
}
}
}Otomatik kontroller
Çalıştırıldı 14 Kas 2026Tam rapor →Otomatik kontrollerimizden geçti. Bu bir güvenlik denetimi değildir: kodu okuyun ve sunucuya ihtiyaç duyduğu en dar erişimi verin. Kontroller nasıl çalışır
- Kaynak deposu bağlantılı ve erişilebilirsemanticdatacharter/sdcreader is public and reachablegithub.com/semanticdatacharter/sdcreader ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyorsdcreader names semanticdatacharter/sdcreader as sourcepypi.org/project/sdcreader/ ↗Geçti
- Derleme kökeni (Sigstore onayı)Sigstore attestation for sdcreaderpypi.org/project/sdcreader/ ↗Geçti
- Açık kaynak lisansı (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-11-10github.com/semanticdatacharter/sdcreader ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilNo popular package one edit away from sdcreaderGeçti
- Pakette veya bağımlılıklarında kritik uyarı yok7 resolved dependencies checked; no critical advisoryosv.dev ↗Geçti
- Modele yönelik gizli talimat yok0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişKontrol edilmedi
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
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/<ct>/ |
the catalog record: title, description, project, the artifact list (catalog.json) |
GET /api/v1/catalog/dm/<ct>/<artifact>/ |
a storage pointer, {"download_url": ..., "filename": ..., "storage": "gcs"}, for jsonld, xsd and the rest; the reader follows it |
dm-<ct>.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-<ct>.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-<ct>.xsd) |
GET /dmlib/dm-<ct>.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-<ct_id> record.
Record:attributes(instance_id,instance_version,creation_timestamp,current-state, ...),valuesin document order, andexceptional, the values that carry an Exceptional Value.RecordValue: thecomponent, 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.
Also listed on mcprush.
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).
sdcreader MCP soruları
sdcreader MCP'yi Claude Code'a nasıl eklerim?
Terminalinizde claude mcp add sdcreader -- uvx sdcreader komutunu çalıştırın. Her projede kullanılabilir olması için --scope user ekleyin.
sdcreader MCP'yi Cursor'a nasıl eklerim?
~/.cursor/mcp.json dosyasını açın ve yukarıdaki yükleme bölümünde gösterilen Cursor yapılandırmasını kullanarak sunucuyu mcpServers altına ekleyin.
Modelleri nasıl arayabilirim?
Metin ile genel kataloğu aramak veya bir genel projedeki modelleri isimle listelemek için find_models aracını kullanabilirsiniz.
Sunucu veri kayıtlarını okuyabilir mi?
Evet, read_record aracı, bir yönetilen veri kaydını kendi modeliyle birlikte okuyarak öznitelikleri, değerleri, yolları ve bağlamı sağlar.
Sunucu için bir hesap gerekiyor mu?
Hayır, sunucu salt okunur moddadır ve genel kataloğa erişmek için bir hesap gerektirmez.