使用说明
uapf mcp
参考 模型上下文协议(MCP) 服务器 UAPF 包装。
服务器连接到正在运行的 uapf发动机 实例并公开用于使用UAPF的规范MCP工具和资源 任何一种包装 包裹 或 工作区 模式。
状态:早期草案-在UAPF v1.0之前,API和工具名称可能会更改。
模式:包与工作区
MCP服务器可以针对单个 .uapf 包或整个工作区
存储库。模式来源于环境变量或引擎元数据:
UAPF_MCP_MODE=package–要求UAPF_PACKAGE_PATH.UAPF_MCP_MODE=workspace–要求UAPF_WORKSPACE_DIR.UAPF_MCP_MODE=auto(默认)-首选UAPF_WORKSPACE_DIR那么UAPF_PACKAGE_PATH,否则将回退到由报告的发动机模式/_/meta.
在包模式下运行时:
uapf.list总是返回一个单例列表。- 使用不同的工具调用
packageId返回package_mode_mismatch.
在工作空间模式下运行时:
uapf.list返回引擎工作空间清单。uapf.validate没有packageId验证整个工作区。
配置
# MCP server
MCP_PORT=7900
MCP_TRANSPORT=streamable_http # streamable_http | sse | ws | stdio
MCP_HTTP_PATH=/mcp
MCP_CORS_ORIGIN=*
UAPF_MCP_NAME=uapf
UAPF_MCP_TOOL_PREFIX=uapf
UAPF_DEBUG_LOG=logs/uapf-engine-http-debug.log
# Engine connectivity
UAPF_ENGINE_URL=http://localhost:3001
UAPF_ENGINE_MODE=auto # packages | workspace | auto
# Mode selection
UAPF_MCP_MODE=auto # package | workspace | auto
UAPF_PACKAGE_PATH=/path/to/package.uapf
UAPF_WORKSPACE_DIR=/path/to/workspace/repo
# Security
UAPF_SECURITY_MODE=claims_declare # off | claims_declare | claims_enforce
UAPF_DIDVC_VERIFIER=none # none | http
UAPF_DIDVC_VERIFIER_URL= # required when verifier=http
笔记:
UAPF_ENGINE_URL默认为http://localhost:3001.UAPF_SECURITY_MODE=claims_enforce需要一个验证器(见下文)。- WebSocket模式仍然可用
ws://<host>:MCP_PORT/mcp-ws当MCP_TRANSPORT=ws. - HTTP请求/响应调试输出被写入
logs/uapf-engine-http-debug.log默认情况下。覆盖UAPF_DEBUG_LOG重定向日志文件。
标准MCP工具
工具始终以下面的规范名称注册。如果
UAPF_MCP_TOOL_PREFIX 设置为不同的前缀,前缀别名也是
已注册,但规范名称仍可被发现。
uapf.describeuapf.listuapf.run_processuapf.evaluate_decisionuapf.resolve_resourcesuapf.get_artifactuapf.validate
工具形状
- uapf.描述 →
{ mode, engine: { url, mode }, capabilities, tooling } - uapf.list (可选过滤器:
level,tag,domain,q) → 数组 包摘要 - uapf.run_process
{ packageId, processId, input }→ 发动机结果 - uapf.evaluate_decision
{ packageId, decisionId, input }→ 发动机结果 - uapf解决方案资源
{ packageId, processId?, taskId? }→ 引擎 绑定 - uapf.get人工制品
{ packageId, kind, id? }kind=manifest→ JSON清单- 否则→
{ mediaType, contentBase64 }
- uapf.validate
{ packageId? }→{ ok, issues[] }(工作区或软件包)
MCP资源
服务器发布由uapf引擎支持的只读MCP资源:
uapf://manifest/<packageId>uapf://bpmn/<packageId>?id=<processId>uapf://dmn/<packageId>?id=<decisionId>uapf://cmmn/<packageId>?id=<caseId>uapf://bindings/<packageId>?processId=...&taskId=...uapf://policies/<packageId>
资源按包列出,并使用适当的MIME类型提供。BPMN, DMN和其他XML工件作为base64编码的blob返回;清单和 策略以JSON文本形式返回。
安全模式和验证器
服务器支持基本索赔传播:
off–无索赔处理。claims_declare(默认)-所需的声明包含在工具/资源中 回应,但不强制执行。claims_enforce–验证所需的声明,并在验证时阻止呼叫 失败。
验证器实施 ClaimsVerifier 从 src/security/verifier.ts:
NoneVerifier总是成功。HttpVerifier–海报{ requiredClaims, context }到UAPF_DIDVC_VERIFIER_URL并期待{ ok, reason? }.
在强制执行模式下,未满足的索赔返回结构化错误
claims_not_satisfied.
安装
git clone https://github.com/UAPFormat/uapf-mcp.git
cd uapf-mcp
npm install
构建并运行
npm run build
npm run start
# MCP server listens on MCP_PORT (default 7900)
发展: npm run dev.
烟雾测试
提供了一个简单的本地健全性检查 scripts/smoke.mjs:
node scripts/smoke.mjs
脚本调用 /_/meta,列出包,获取第一个清单,并运行
对第一个包进行验证。当 MCP_TRANSPORT=streamable_http它
还通过HTTP连接到MCP服务器以运行 listTools, uapf.describe,
和 uapf.list.
部署提示
- 确保
uapf-engine可通过以下方式联系UAPF_ENGINE_URL并配置为 所需模式(包与工作区)。 - 设置MCP模式环境变量以匹配部署目标。
- 根据DID/VC管道配置安全模式和验证器URL。
- 引擎请求的低级HTTP调试日志位于中的路径上
UAPF_DEBUG_LOG(默认值logs/uapf-engine-http-debug.log).文件是 自动创建,并用标头记录每个请求/响应 有效载荷摘要。
赞助商UAPF
UAPF是一个开放的、供应商中立的标准——MIT在开放的环境中获得许可和维护。 如果你的工作依赖于可移植的流程定义或通过MCP执行AI代理, 赞助使引擎、MCP服务器和示例得以维护,规范得以发展。
