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://: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/
`
- `uapf://bpmn/
?id= `
- `uapf://dmn/
?id=`
- `uapf://cmmn/
?id=`
- `uapf://bindings/
?processId=...&taskId=...`
- `uapf://policies/
`
资源按包列出,并使用适当的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).文件是 自动创建,并用标头记录每个请求/响应 有效载荷摘要。
