mcpField
D
Digital Passport Assessment Workbench

Digital Passport Assessment Workbench

本地服务
github.com/CE-RISE-software开发工具026 周前更新

关于 Digital Passport Assessment Workbench

Digital Passport Model Assessment Workbench 是用于数字产品护照数据模型的 Python 分析工具包,面向需要评估、比较和规划模型组合的分析人员及 Agent。它采用 SHACL 分析,提供确定性文件输入和 JSON 输出,并配有轻量命令行界面。

主要功能

  1. 01基于 SHACL 评估模型
  2. 02分析用例覆盖度
  3. 03比较模型评估结果
  4. 04优先排序并推荐模型组合
  5. 05提供词汇表、模板和模式

适用场景

  1. 01评估数字护照数据模型
  2. 02检查模型对指定用例的覆盖情况
  3. 03比较两种模型方案及其差异
  4. 04根据评估结果规划组合模型

MCP 相关

stdio MCP 服务通过 dpawb-mcp 暴露与工具包命令面相同的分析操作,包括评估、覆盖度、比较、优先排序和组合推荐。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ce-rise-software-dpawb": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ce-rise-software/dpawb-mcp:0.1.2"
]
}
}
}
启动命令docker run -i --rm ghcr.io/ce-rise-software/dpawb-mcp:0.1.2

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/ce-rise-software/dpawb-mcp:0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

数字护照模型评估工作台

PyPI - Version DOI MCP Registry

这是一个 Python 工具包和轻量级命令行界面,用于基于 SHACL 评估数字护照数据模型、对组合方案进行成对比较,以及仅基于 SHACL 分析用例覆盖情况。

本 README 主要用作仓库和开发入口。面向用户的概念与用法参考位于已发布的文档站点。仓库源文档仍可在 docs/ 中查看。


本仓库包含什么

  • 可发布的 Python 软件包,包含命令行入口:dpawb
  • 轻量级 stdio MCP 服务入口:dpawb-mcp
  • 符合契约的组合配置文件、用例和对齐关系输入架构
  • 通过发现命令提供的内置词汇表和模板
  • 仅用于测试和验证的合成本地测试数据
  • 面向人工和 AI Agent 教程的渐进式示例目录

工具形态

该工具主要设计为可供 Agent 使用的分析工具包,并提供轻量级命令行界面。核心命令包括:

  • assess
  • coverage
  • compare
  • prioritize
  • recommend-composition
  • schema
  • vocabulary
  • template
  • capabilities
  • summarize

AI Agent 使用

预期的主要集成方式是由 AI Agent 通过软件包 API 或命令行编排分析流程。实际上,这意味着:

  • 基于文件的确定性输入
  • 适合 Agent 解析和串联的 JSON 输出
  • 明确的分析步骤,而非面向聊天的界面

命令行仍适用于人工直接调用,但产品的主要形态是分析引擎,可由 Agent 技能、工作流运行器或工具适配器调用。

该软件包还提供一个轻量级 stdio MCP 服务,基于相同的确定性命令接口:

  • assess
  • coverage
  • compare
  • prioritize
  • recommend-composition
  • schema
  • vocabulary
  • template
  • capabilities
  • summarize

MCP 接口刻意保持轻量:

  • 将 dpawb 保留为核心 Python 软件包
  • 通过 dpawb-mcp 提供相同的操作
  • MCP 运行时同时以本地 Python 入口和 GitHub Container Registry 镜像的形式发布
  • 从 GitHub 镜像发布注册表元数据

MCP 运行时和发布方式详见已发布的 MCP 服务页面。

公共 Python API 详见已发布的 API 参考。

MCP 访问

MCP 服务以以下身份发布:

  • 注册表名称:io.github.CE-RISE-software/dpawb
  • OCI 镜像模式:ghcr.io/ce-rise-software/dpawb-mcp:<release-version>
  • 传输方式:stdio
  • 官方注册表基址:https://registry.modelcontextprotocol.io/

可在官方 MCP Registry 中通过名称 io.github.CE-RISE-software/dpawb 发现该服务。

注册表发现页面:

  • https://registry.modelcontextprotocol.io/?q=dpawb

本地客户端配置示例:

{
  "mcpServers": {
    "dpawb": {
      "command": "dpawb-mcp"
    }
  }
}

面向 OCI 的注册表元数据在 server.json 中声明。发布工作流会在发布时填入发行版本和镜像标签。

安装

python -m venv .venv
. .venv/bin/activate
pip install -e .

已发布的软件包名称:

pip install dpawb

已安装的 MCP 服务命令为:

dpawb-mcp

如果你在受限环境中工作,该软件包已配置为使用 setuptools 构建,因此可编辑安装不依赖于获取额外的构建后端。

如果本地无法使用构建隔离或 wheel 支持,请使用:

python -m pip install --no-build-isolation -e .

在受限环境中,如果本地 Python 打包工具阻止了可编辑安装,仓库仍支持原生的仓库执行路径:

./scripts/run-local.sh capabilities
./scripts/test-local.sh
make smoke
make test
make validate

最精简的本地 MCP 运行时命令:

python -m dpawb.mcp_server

示例命令

dpawb assess --profile fixtures/profiles/synthetic_evolution_latest.yaml
dpawb coverage --profile fixtures/profiles/synthetic_evolution_latest.yaml --use-case fixtures/use_cases/product_identity_lookup.yaml
dpawb compare --left left_assessment.json --right right_assessment.json
dpawb recommend-composition --left left_assessment.json --right right_assessment.json --comparison comparison_result.json
dpawb summarize --result comparison_result.json --format markdown
dpawb capabilities

本地发布检查

在配置 PyPI CI/CD 之前,请在可用 wheel 的环境中运行本地打包检查:

make release-check

此操作会构建 wheel 和 sdist,将 wheel 安装到干净的临时环境中,并运行已安装 CLI 的冒烟检查。

结构

本仓库中有两个不同的输入区域:

  • fixtures/ 仅包含仓库本地的合成测试数据。 这些文件供测试、冒烟检查和 CI 验证使用。

  • examples/01-source-ingestion/ 用于手动运行的实时源示例输入。 这些是教程进程的第一步,不属于 CI 验证范围。

完整的示例目录树按分析任务组织,而非按输入数据模型组织:

  • examples/01-source-ingestion/ 加载并评估已声明的配置文件。
  • examples/02-structural-comparison/ 比较两个配置文件评估结果。
  • examples/03-reduced-use-case-comparison/ 运行第一个对齐的用例比较。
  • examples/04-extended-use-case-comparison/ 运行范围更广的对齐用例比较。
  • examples/05-composition-recommendation/ 根据两个已评估的模型集推荐组合配置文件。

每个示例都可供人类按照分步命令教程使用,也可供 AI Agent 根据明确的文件执行确定性方案。

源摄取示例

以下位置包含实时 SHACL 源的示例配置文件:

  • examples/01-source-ingestion/profiles/battery_dpp_representation_live.yaml
  • examples/01-source-ingestion/profiles/battery_product_identification_live.yaml
  • examples/01-source-ingestion/profiles/dp_record_metadata_live.yaml
  • examples/01-source-ingestion/profiles/traceability_and_life_cycle_events_live.yaml
  • examples/01-source-ingestion/profiles/metadata_focused_composition_live.yaml
  • examples/01-source-ingestion/profiles/metadata_and_traceability_live.yaml
  • examples/02-structural-comparison/profiles/metadata_slice_left_live.yaml
  • examples/02-structural-comparison/profiles/metadata_slice_right_live.yaml

如果你只想使用单个实时源,以元数据为中心的示例是主要起点:

./scripts/run-local.sh assess --profile examples/01-source-ingestion/profiles/dp_record_metadata_live.yaml

如果你想使用组合配置文件,请使用:

./scripts/run-local.sh assess --profile examples/01-source-ingestion/profiles/metadata_and_traceability_live.yaml

你也可以运行仅包含可追溯性的示例:

./scripts/run-local.sh assess --profile examples/01-source-ingestion/profiles/traceability_and_life_cycle_events_live.yaml

手动运行覆盖率检查时,可使用以下示例用例:

  • examples/01-source-ingestion/use_cases/battery_dpp_representation.yaml
  • examples/01-source-ingestion/use_cases/battery_product_identification.yaml
  • examples/01-source-ingestion/use_cases/battery_passport_metadata_and_classification.yaml
  • examples/01-source-ingestion/use_cases/record_identity_lookup.yaml
  • examples/01-source-ingestion/use_cases/provenance_actor_lookup.yaml

示例:

./scripts/run-local.sh coverage \
  --profile examples/01-source-ingestion/profiles/dp_record_metadata_live.yaml \
  --use-case examples/01-source-ingestion/use_cases/record_identity_lookup.yaml

主要的真实比较驱动用例是:

  • examples/01-source-ingestion/use_cases/battery_dpp_representation.yaml

该用例有意保持精简。它要求:

  • 护照标识
  • 电池标识
  • 护照版本或修订版
  • 一个责任主体
  • 一个电池类型或分类信号

以及将这些内容作为同一个电池 DPP 表示切片处理所需的联接关系。

与该用例匹配的起始组合配置文件是:

  • examples/01-source-ingestion/profiles/battery_dpp_representation_live.yaml

目前,该配置文件组合了:

  • dp_record_metadata
  • traceability_and_life_cycle_events

这是当前电池 DPP 比较工作的更广泛基线。 首次精简版真实验证采用更聚焦于身份信息的比较范围:

  • 规范示例目录: examples/03-reduced-use-case-comparison/
  • 用例: examples/03-reduced-use-case-comparison/use_cases/use_case.yaml
  • 左侧配置文件: examples/03-reduced-use-case-comparison/profiles/left_profile.yaml
  • 右侧配置文件: examples/03-reduced-use-case-comparison/profiles/right_profile.yaml

此精简范围组合了:

  • dp_record_metadata
  • product_profile
  • traceability_and_life_cycle_events

这是首个经过验证的产品识别比较范围,依据 BatteryPass General Product Information 模型进行比较。

此外,还提供了第二个范围更广的经过验证的范围:

  • 规范示例目录: examples/04-extended-use-case-comparison/
  • 用例: examples/04-extended-use-case-comparison/use_cases/use_case.yaml
  • 左侧配置文件: examples/04-extended-use-case-comparison/profiles/left_profile.yaml
  • 右侧配置文件: examples/04-extended-use-case-comparison/profiles/right_profile.yaml

此范围在保留相同 CE-RISE 组合模型集的同时,增加了护照版本/修订版和电池类型/分类。

目前有两份跨生态系统验证说明:

  • examples/03-reduced-use-case-comparison/notes/comparison_note.md
  • examples/04-extended-use-case-comparison/notes/comparison_note.md

这些示例的分步用户参考指南见已发布的示例应用指南。

对于手动比较运行,项目中提供了一对可直接用于比较的实时配置文件,二者具有相同的声明范围标签:

  • examples/02-structural-comparison/profiles/metadata_slice_left_live.yaml
  • examples/02-structural-comparison/profiles/metadata_slice_right_live.yaml
  • examples/02-structural-comparison/alignments/metadata_slice_alignment.yaml,作为对齐示例起点

典型流程:

./scripts/run-local.sh assess --profile examples/02-structural-comparison/profiles/metadata_slice_left_live.yaml --output /tmp/left.json
./scripts/run-local.sh assess --profile examples/02-structural-comparison/profiles/metadata_slice_right_live.yaml --output /tmp/right.json
./scripts/run-local.sh compare --left /tmp/left.json --right /tmp/right.json

使用分析人员明确编写的对齐文件:

./scripts/run-local.sh compare \
  --left /tmp/left.json \
  --right /tmp/right.json \
  --alignment examples/02-structural-comparison/alignments/metadata_slice_alignment.yaml

提供对齐文件时,比较结果现在会包含两个面向对齐的视图:

  • evaluated_pairs 显示每个已声明等价关系的完整逐对存在状态。

  • ranked_alignment_observations 面向审查的差异项,涵盖任何仅在一侧存在或两侧均缺失的已声明配对。

因此,检查支持对齐的比较结果时,主要应关注:

  • alignment_coverage_ratio
  • evaluated_pairs
  • ranked_alignment_observations

如果随后将该比较结果传递给 prioritize,这些对齐差异项也会直接显示为排序后的改进目标。

当前的分析核心在设计上仍较为保守,但已不再局限于令牌匹配:

  • 矛盾检测涵盖直接基数冲突,以及数据类型与对象引用之间的冲突
  • 条目覆盖度使用 SHACL 路径、所有者形状和目标类证据
  • 如果这符合预期的分析解释,则共享所有者形状、明确的跨形状对象引用路径或记录级检索上下文,均可满足关联覆盖度要求

仓库布局

  • src/dpawb/:软件包、CLI 和分析操作
  • src/dpawb/data/:随附的架构、词汇表和模板
  • fixtures/:仅供测试使用的合成仓库本地模型、配置文件、用例和对齐文件
  • examples/01-source-ingestion/:用于手动运行的源数据导入配置文件、用例和对齐文件
  • examples/03-reduced-use-case-comparison/:自包含的对齐用例比较示例
  • examples/05-composition-recommendation/:自包含的组合推荐示例
  • scripts/:仓库原生的执行和测试辅助工具
  • .github/workflows/validate.yml 和 .forgejo/workflows/validate.yml:通过仓库原生路径进行 CI 验证

许可证

根据欧盟公共许可证 v1.2(EUPL-1.2)授权。

贡献

本仓库托管在 Codeberg,是唯一权威来源。GitHub 仓库是一个只读镜像,用于存档发布版本和集成 Zenodo。请在 Codeberg 上提交问题和拉取请求。


欧盟徽章

本项目由欧盟资助,资助协议编号:101092281 — CE-RISE。
本文表达的观点和意见仅代表作者个人,并不一定反映欧盟或资助机构(HADEA)的观点和意见。
欧盟和资助机构均不对这些观点和意见承担责任。

© 2026 CE-RISE 联盟。
根据 European Union Public Licence v1.2 (EUPL-1.2) 授权。
署名:CE-RISE 项目(资助协议编号:101092281)以及注明的个人作者/合作方。

NILU 徽标

由 NILU(Riccardo Boero — [email protected])在 CE-RISE 项目中开发。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。