
Digital Passport Assessment Workbench
io.github.CE-RISE-software由 GitHub 帳號 CE-RISE-software 發布v0.1.2更新於 Oct 24, 2026
Deterministic SHACL-based assessment and comparison for digital passport data models.
發布方自己的服務:Passport.Me
概覽
本機 stdio MCP 伺服器,讓助理對數位護照資料模型執行確定性的 SHACL 評估、比較與涵蓋分析。
- 可以做什麼
- 依 SHACL 來源評估並彙整數位護照設定,輸出可供後續串接的 JSON 結果。比較兩份評估結果,可選用分析人員撰寫的對齊檔案,並檢視對齊涵蓋率與缺口。執行使用案例涵蓋分析,並對改善目標進行優先排序。依兩組已評估的模型集推薦組合方案。查詢內建的 schema、詞彙表、範本與能力清單。
- 適用情境
- 適用於處理數位產品護照或類似 SHACL 資料模型,並希望助理執行可重複、以檔案為基礎的評估、成對比較、涵蓋檢查與組合推薦,而非聊天式分析的情境。
- 執行需求
- 以本機程序透過 stdio 執行。需安裝 Python 套件(pip install dpawb)或使用已發布的 OCI 映像;伺服器指令為 dpawb-mcp,或 python -m dpawb.mcp_server。輸入為本機檔案,如設定、使用案例與對齊的 YAML/JSON。未宣告驗證、環境變數或標頭。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Digital Passport Assessment Workbench,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Digital Passport Model Assessment Workbench
[PyPI - Version] [DOI] [MCP Registry]
A Python toolkit and thin CLI for SHACL-based assessment of digital passport data models, pairwise comparison of composed solutions, and SHACL-only use-case coverage analysis.
This README is primarily a repository and development entry point. The user-facing conceptual and usage reference is at the published documentation site. The repository-source docs remain available in docs/.
What this repository contains
- A publishable Python package with a CLI entry point:
dpawb - A thin stdio MCP server entry point:
dpawb-mcp - Contract-aligned input schemas for composition profiles, use cases, and alignments
- Built-in vocabularies and templates exposed through discovery commands
- Synthetic local fixtures used only for tests and validation
- A progression-based examples tree for human and AI-agent tutorials
Tool Shape
The tool is designed primarily as an agent-usable analytical toolkit with a thin CLI. The core command surface is:
assesscoveragecompareprioritizerecommend-compositionschemavocabularytemplatecapabilitiessummarize
AI-agent use
The intended primary integration mode is an AI agent orchestrating the analytical pipeline through the package API or the CLI. In practice, this means:
- deterministic file-based inputs
- JSON outputs suitable for agent parsing and chaining
- explicit analytical steps instead of a chat-oriented interface
The CLI remains useful for direct human invocation, but the main product shape is an analytical engine that can be called by agent skills, workflow runners, or tool adapters.
The package also ships a thin stdio MCP server over the same deterministic command surface:
assesscoveragecompareprioritizerecommend-compositionschemavocabularytemplatecapabilitiessummarize
The MCP surface stays intentionally thin:
- keep
dpawbas the core Python package - expose the same operations through
dpawb-mcp - ship the MCP runtime as both a local Python entry point and a GitHub Container Registry image
- publish registry metadata from the GitHub mirror
The MCP runtime and publication shape are documented in the published MCP server page.
The public Python API is documented in the published API reference.
MCP Access
The MCP server is published with this identity:
- registry name:
io.github.CE-RISE-software/dpawb - OCI image pattern:
ghcr.io/ce-rise-software/dpawb-mcp:<release-version> - transport:
stdio - official registry base:
https://registry.modelcontextprotocol.io/
The server is discoverable in the official MCP Registry under the name io.github.CE-RISE-software/dpawb.
Registry discovery page:
https://registry.modelcontextprotocol.io/?q=dpawb
Local client configuration example:
OCI-oriented registry metadata is declared in server.json. The publish workflow fills in the release version and image tag when publishing.
Install
Published package name:
The installed MCP server command is:
If you are working in a restricted environment, the package is configured to build with setuptools so editable installs do not depend on fetching an extra build backend.
If build isolation or wheel support is unavailable locally, use:
In constrained environments where editable installation is blocked by local Python packaging tooling, the repository still supports a repo-native execution path:
Minimal local MCP runtime command:
Example commands
Local Release Check
Before wiring PyPI CI/CD, run the local packaging check in an environment with wheel available:
This builds a wheel and sdist, installs the wheel into a clean temporary environment, and runs installed CLI smoke checks.
Structure
There are two distinct input areas in this repository:
-
fixtures/Synthetic, repository-local test data only. These files are used by tests, smoke checks, and CI validation. -
examples/01-source-ingestion/Live-source example inputs intended for manual runs. These are the first step in the tutorial progression and are not part of CI validation.
The full examples tree is organized by analytical task, not by input data model:
examples/01-source-ingestion/Load and assess declared profiles.examples/02-structural-comparison/Compare two profile assessment results.examples/03-reduced-use-case-comparison/Run the first aligned use-case comparison.examples/04-extended-use-case-comparison/Run a broader aligned use-case comparison.examples/05-composition-recommendation/Recommend a combined profile from two assessed model sets.
Each example is usable by humans as a step-by-step command tutorial and by AI agents as a deterministic recipe over explicit files.
Source-ingestion examples
Example profiles for live SHACL sources are included at:
examples/01-source-ingestion/profiles/battery_dpp_representation_live.yamlexamples/01-source-ingestion/profiles/battery_product_identification_live.yamlexamples/01-source-ingestion/profiles/dp_record_metadata_live.yamlexamples/01-source-ingestion/profiles/traceability_and_life_cycle_events_live.yamlexamples/01-source-ingestion/profiles/metadata_focused_composition_live.yamlexamples/01-source-ingestion/profiles/metadata_and_traceability_live.yamlexamples/02-structural-comparison/profiles/metadata_slice_left_live.yamlexamples/02-structural-comparison/profiles/metadata_slice_right_live.yaml
If you want a single live source, the metadata-oriented example is the main starting point:
If you want a composed profile, use:
You can also run the traceability-only example:
For manual coverage runs, example use cases are included at:
examples/01-source-ingestion/use_cases/battery_dpp_representation.yamlexamples/01-source-ingestion/use_cases/battery_product_identification.yamlexamples/01-source-ingestion/use_cases/battery_passport_metadata_and_classification.yamlexamples/01-source-ingestion/use_cases/record_identity_lookup.yamlexamples/01-source-ingestion/use_cases/provenance_actor_lookup.yaml
Example:
The main real comparison-driver use case is:
examples/01-source-ingestion/use_cases/battery_dpp_representation.yaml
It intentionally stays narrow. It requires:
- passport identity
- battery identity
- passport version or revision
- one responsible actor
- one battery type or classification signal
and the joins needed to treat those as one battery-DPP representation slice.
The matching starting composition for that use case is:
examples/01-source-ingestion/profiles/battery_dpp_representation_live.yaml
It currently composes:
dp_record_metadatatraceability_and_life_cycle_events
This is the current broader baseline for the battery-DPP comparison work.
For the first reduced real pass, the narrower identity-focused comparison slice is:
- canonical example folder:
examples/03-reduced-use-case-comparison/ - use case:
examples/03-reduced-use-case-comparison/use_cases/use_case.yaml - left profile:
examples/03-reduced-use-case-comparison/profiles/left_profile.yaml - right profile:
examples/03-reduced-use-case-comparison/profiles/right_profile.yaml
This reduced slice composes:
dp_record_metadataproduct_profiletraceability_and_life_cycle_events
and is the first validated product-identification comparison slice against the BatteryPass General Product Information model.
A second broader validated slice is also included:
- canonical example folder:
examples/04-extended-use-case-comparison/ - use case:
examples/04-extended-use-case-comparison/use_cases/use_case.yaml - left profile:
examples/04-extended-use-case-comparison/profiles/left_profile.yaml - right profile:
examples/04-extended-use-case-comparison/profiles/right_profile.yaml
This slice adds passport version/revision and battery type/classification while keeping the same CE-RISE composed model set.
The two current cross-ecosystem validation notes are:
examples/03-reduced-use-case-comparison/notes/comparison_note.mdexamples/04-extended-use-case-comparison/notes/comparison_note.md
The step-by-step user reference for these examples is in the published example applications guide.
For manual comparison runs, a comparison-ready live pair is included with the same declared scope label:
examples/02-structural-comparison/profiles/metadata_slice_left_live.yamlexamples/02-structural-comparison/profiles/metadata_slice_right_live.yamlexamples/02-structural-comparison/alignments/metadata_slice_alignment.yamlas a starting-point alignment example
Typical flow:
With an explicit analyst-authored alignment:
When an alignment file is provided, the comparison result now includes two alignment-oriented views:
-
evaluated_pairsFull per-pair presence status for every declared equivalence. -
ranked_alignment_observationsReview-oriented gaps for any declared pair that is only present on one side or missing on both sides.
So the main things to inspect in an alignment-aware comparison result are:
alignment_coverage_ratioevaluated_pairsranked_alignment_observations
If that comparison result is then passed into prioritize, those alignment gaps can also appear directly as ranked improvement targets.
The current analytical core is still conservative by design, but it now goes beyond token matching alone:
- contradiction detection covers direct cardinality conflicts and datatype-versus-object-reference conflicts
- item coverage uses SHACL path, owner-shape, and target-class evidence
- join coverage can be satisfied by a shared owner shape, an explicit cross-shape object-reference path, or record-level retrieval context when that is the intended analytical interpretation
Repository layout
src/dpawb/: package, CLI, and analytical operationssrc/dpawb/data/: bundled schemas, vocabularies, and templatesfixtures/: synthetic repository-local models, profiles, use cases, and alignments for tests onlyexamples/01-source-ingestion/: source-ingestion profiles, use cases, and alignments for manual runsexamples/03-reduced-use-case-comparison/: self-contained aligned use-case comparison examplesexamples/05-composition-recommendation/: self-contained composition recommendation examplescripts/: repo-native execution and test helpers.github/workflows/validate.ymland.forgejo/workflows/validate.yml: CI validation via the repo-native path
License
Licensed under the European Union Public Licence v1.2 (EUPL-1.2).
Contributing
This repository is maintained on Codeberg — the canonical source of truth. The GitHub repository is a read mirror used for release archival and Zenodo integration. Issues and pull requests should be opened on Codeberg.
[EU emblem]
Funded by the European Union under Grant Agreement No. 101092281 — CE-RISE.
Views and opinions expressed are those of the author(s) only and do not necessarily reflect those of the European Union or the granting authority (HADEA).
Neither the European Union nor the granting authority can be held responsible for them.
© 2026 CE-RISE consortium.
Licensed under the European Union Public Licence v1.2 (EUPL-1.2).
Attribution: CE-RISE project (Grant Agreement No. 101092281) and the individual authors/partners as indicated.
Developed by NILU (Riccardo Boero — [email protected]) within the CE-RISE project.
來源:README.md,提交 06427fb
工具
0版本歷史
1- v0.1.2最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Passport 整合
Passport.Me
me.passport官方發布者
遠端 MCP 端點,讓助理存取使用者的 Gmail、行事曆、雲端硬碟、GitHub、Oura、錢包以及已確認的個人資料。
A2A Passport — one GTIN, one call, everything GSC knows, signed
由 GitHub 帳號 greencore-solutions 發布
遠端 MCP 伺服器,為商品(GTIN)或零售橫幅簽發簽章護照,內容即時取自 GSC 各樞紐,並提供清單與簽章驗證。

Agent Passport System — Cryptographic Identity for AI Agents
由 GitHub 帳號 agent-passport-system 發布
透過 154 個工具為 AI 代理提供加密身分、簽章護照、受限委派、治理紀錄與代理間訊息傳遞能力。

Scopeblind Passport
由 GitHub 帳號 tomjwxf 發布
為助理提供可攜的加密身分:Ed25519 金鑰對與簽章清單,透過 stdio 在本機執行。

Hive Passport
由 GitHub 帳號 srotzin 發布
一個遠端 MCP 伺服器,讓助理查詢 Hive Knowledge Token(HKTN)登錄記錄,並取得簽章證明與服務清單。