mcpField
S
sdcgovernance

sdcgovernance

本地服务
github.com/SemanticDataCharter安全23 天前更新

关于 sdcgovernance

sdcgovernance 是用于验证 Semantic Data Charter 模型所约束 XML 实例的 Python 治理验证器。它检查工作流、证明、参与方与角色以及溯源要求,并返回 XACML 决策和防篡改凭证。

主要功能

  1. 01依据 XSD 模型验证治理内容
  2. 02检查工作流转换和证明
  3. 03验证参与方与角色约束
  4. 04检查溯源及审计保留要求
  5. 05生成 XACML 决策和哈希链凭证

适用场景

  1. 01在受治理操作前检查 XML 实例
  2. 02核验工作流转换是否有效
  3. 03向 Agent 工作流提供治理决策

MCP 相关

其 MCP 服务将治理验证作为工具提供给 Agent 调用。Agent 控制工作流,并决定如何处理返回的决策和凭证。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"semanticdatacharter-sdcgovernance": {
"command": "uvx",
"args": [
"sdcgovernance"
]
}
}
}
启动命令uvx sdcgovernance

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

安装包
pypisdcgovernance4.3.1

工具

还没有获取到工具列表

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

详细介绍

sdcgovernance

基于 W3C 标准的治理咨询引擎,适用于 Semantic Data Charter 实例。

一个 Python 库,用于根据 SDC 数据模型中定义的治理组件,验证 XML 数据实例中的治理内容。如果模型定义了治理内容(工作流、证明、参与方/角色、来源、审计),实例就必须携带这些内容,而此库会对其进行验证。

根据 OASIS XACML 语义返回决策:PERMIT、DENY 或 INDETERMINATE。

无框架依赖。无中间件。只需调用函数。

工作原理

SDC 数据模型(XSD)可以选择包含治理组件:工作流状态机、证明授权要求、参与方/角色约束、来源要求和审计定义。这些都是数据模型的一部分,而不是独立的治理层。

定义了治理组件后,每个 XML 数据实例都必须携带相应的治理内容。此库会根据模型验证这些内容:

from sdcgovernance import validate_governance

result = validate_governance("model.xsd", "instance.xml")

print(result.decision)      # PERMIT, DENY, or INDETERMINATE
print(result.has_governance) # True if model defines governance components
print(result.errors)         # list of governance validation errors
print(result.receipt)        # tamper-evident decision receipt

如果模型未定义治理组件,结果为 PERMIT——无需执行治理。

两个独立的库

sdcvalidator 和 sdcgovernance 是两个独立的库。它们之间没有钩子、没有串联,也不会自动相互调用。

sdcvalidator (structural validation)
    Does the instance conform to the XSD schema?
    Single-pass. Instance in, pass/fail out.

sdcgovernance (governance advisory)
    Does the model define governance components?
    If yes: does the instance carry valid governance content?
    Conversational. Agents query multiple times during a workflow.

两个库都会从实例中读取架构。Agent 会在工作流的不同环节独立调用各个库,顺序由操作逻辑决定。一个工作流可能会多次调用这两个库。

验证内容

组件模型定义的内容实例必须携带的内容
工作流有效路径的集群树(包含 XdOrdinal 状态的子集群)当前 XdOrdinal 状态;根据有效路径中的序数邻接关系验证拟议的状态转换
证明每项操作的授权要求角色正确、参与方引用正确且带有时间戳的证明
参与方/角色受治理操作的角色约束执行方身份标识及所需角色
来源/审计来源要求(PROV-O)+ 保留策略(DPV)按保留策略生成的 PROV 格式记录:最新记录 + 哈希、最近 N 条记录,或完整链

治理组件根据其在 DMType 根节点中的位置(固定的 RM 槽位:工作流、证明、参与方/角色、审计等)发现,而不是根据 CUID2 身份发现。找到槽位后,会通过与相关标准(PROV-O、SCXML、VC、DPV)的词汇表绑定来验证其内容。任何占据正确槽位且绑定到正确词汇表的组件都会被识别,无论它来自 Default 项目还是自定义构建。

执行决策(OASIS XACML)

决策含义
PERMIT所有治理检查均通过——操作已获授权
DENY一项或多项治理检查未通过——拒绝操作
INDETERMINATE部分治理检查通过——需要审核(可配置)

每项决策都会生成一条 W3C PROV 记录和一份通过 SHA-256 哈希链保护的收据。

决策之后的处理由 Agent 负责。sdcgovernance 会给出决策和收据。后续操作——路由、升级、通知、停止——属于客户业务逻辑,因实现方式而异。

两种接口,一个引擎

Python API——用于直接集成:

from sdcgovernance import validate_governance

result = validate_governance("model.xsd", "instance.xml")

MCP Server——适用于任何 Agent 框架:

sdcgovernance            # what an MCP registry client runs (uvx sdcgovernance)
sdcgovernance mcp        # the same, spelled like the other Semantic Data Charter servers
sdcgovernance serve --mcp   # still works for existing client configurations

客户端配置只需 "command": "uvx", "args": ["sdcgovernance"]。

MCP Server 将治理功能作为工具提供,供 Agent 调用。循环由 Agent 执行。sdcgovernance 提供建议。

标准

  • OASIS XACML - 决策语义(PERMIT/DENY/INDETERMINATE)
  • SDC 原生结构 + W3C SCXML 概念 - 通过子集群路径中的 XdOrdinal 组件对工作流进行排序,借鉴自动机理论中的状态和转换概念,这些概念由 W3C SCXML 规范定义
  • W3C PROV(PROV-O、PROV-DM)- 来源记录/审计记录(一个治理维度)
  • W3C Data Privacy Vocabulary (DPV) - 来源保留策略(与 SDC 访问控制使用相同的词汇表)
  • W3C Activity Streams 2.0 - 活动/事件类型词汇表
  • W3C Verifiable Credentials Data Model 2.0 - 证明权威模式
  • W3C SHACL - 跨实体约束验证
  • OMG DMN - 复杂治理规则的决策表
  • SHA-256 - 防篡改的决策收据哈希链

架构

src/sdcgovernance/
├── __init__.py          # Public API: validate_governance()
├── engine.py            # GovernanceEngine - the decision engine agents query
├── model_inspector.py   # Inspect SDC model for governance components
├── workflow.py          # Validate workflow transitions in instance
├── attestation.py       # Validate attestation content in instance
├── party_role.py        # Validate party/role constraints in instance
├── provenance.py        # Validate provenance/audit records + PROV generation + DPV retention policy
├── decision.py          # DMN decision table evaluation + content hash
├── tables.py            # Decision table registry: id, version, hash; files on disk
├── receipts.py          # Decision receipt chain (hash-chained)
├── shacl_runtime.py     # SHACL cross-entity constraint validation
└── mcp_server.py        # MCP server exposing governance tools to any agent

纯 Python。无 Django。无中间件。无 Web 框架依赖。

安装

pip install sdcgovernance

与 SDC 生态系统的集成

  • sdcvalidator - 独立的结构验证库。Agent 在工作流的不同阶段单独调用它,而不是通过 sdcgovernance 调用。
  • SDCStudio - 以可视化方式建模治理组件。XSD 输出包含 sdcgovernance 会验证的治理定义。
  • AppGen - 生成的应用可以在数据录入边界调用 validate_governance()。
  • SDC Agents - 展示如何使用 Default 项目治理模型,将治理 MCP 工具接入 Agent 工作流的参考实现。客户的 Agent 连接到同一个 MCP 服务,并可按需使用这些工具。

状态

已可用于生产环境。在 PyPI 上以 Apache 2.0 许可发布。

依赖项

  • rdflib - RDF/PROV 记录生成
  • pyshacl - SHACL 约束验证

许可证

Apache 2.0

评论

支持 Markdown

第一次接触 MCP?

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

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