{
  "$comment": "由 scripts/gen_skills_manifest.mjs 从 functions/mcp.js 的 TOOLS 生成，勿手改",
  "protocolVersion": "0.2.0",
  "name": "RoboParts",
  "description": "把 RoboParts 机器人零部件兼容性能力封装为可被其他 Agent 框架（WorkBuddy / Dify / Coze / Cursor / Claude）一键接入的 Skills。底层统一走免鉴权只读 MCP 端点，零安装、零 API Key。本清单由 MCP 工具定义自动生成，参数与线上端点逐字一致。",
  "url": "https://roboparts.cc/mcp",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "RoboParts",
    "url": "https://roboparts.cc"
  },
  "version": "1.1.1",
  "documentationUrl": "https://roboparts.cc/llms.txt",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {},
  "security": [],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "roboparts-search",
      "name": "搜索机器人零部件",
      "description": "用户想找某类机器人零件（执行器/传感器/芯片/协议/平台），或给出型号片段需要补全信息时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读检索，不写库；中英文命中集合可能不重叠，须两种语言都试；未声明字段不得臆测为「无此物」。"
    },
    {
      "id": "roboparts-component-detail",
      "name": "查询单个零部件详情",
      "description": "已经拿到零部件 ID（如 ACT-001），需要完整规格、厂商、证据等级与数据缺口时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读；source_tier/confidence 仅表示证据强度，非厂商背书；quarantine=true 的条目须明示「不应直接用于决策」。"
    },
    {
      "id": "roboparts-compat-check",
      "name": "四维兼容性判定",
      "description": "用户问「A 和 B 能不能装一起」「这两个零件兼容吗」「选型有没有冲突」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读裁决；overall=null 一律不得表述为「不兼容」；判 true 至少需一项硬约束（协议/电气/机械）有双方声明，不得凭单维证据盖章。"
    },
    {
      "id": "roboparts-recommend",
      "name": "按应用场景推荐组合",
      "description": "用户要「给某类机器人配一套零件」「预算 X 元怎么选」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读启发式筛选，不构成工程选型意见；price_fit=unknown 不得表述为「符合预算」；预算仅剔除确定超支项。"
    },
    {
      "id": "roboparts-compare",
      "name": "多零部件参数并排对比",
      "description": "用户要在 2~6 个零部件之间横向比较参数（扭矩/电压/协议/价格等），或说「帮我对比这几个型号」时，一次调用替代连发多次 get_component_detail。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读；缺失字段以 null 呈现，不得表述为「不支持该特性」；跨厂商数值比较须配合 get_parameter_semantics 与厂商规格书核对，不得直接断言优劣。"
    },
    {
      "id": "roboparts-parameter-semantics",
      "name": "参数口径语义查询",
      "description": "用户问「这个扭矩参数靠谱吗」「不同厂商参数怎么比」「单位怎么换算」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读；返回物理红线与单位换算，不直接断言跨厂商参数可比，须提示向厂商核对原始手册。"
    },
    {
      "id": "roboparts-bom-compat",
      "name": "BOM 两两兼容性矩阵",
      "description": "用户给了一整张零件清单 / BOM（如 [\"ACT-001\",\"SENS-001\"]），问这些零件彼此之间在电气 / 机械 / 协议 / 软件四维是否兼容、冲突在哪时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读；overall_compatible=null 表示证据不足，不等于不兼容；semantic_hint 仅作人工核查线索，非兼容性结论。"
    },
    {
      "id": "roboparts-semantic-search",
      "name": "自然语言语义召回零部件",
      "description": "用户用自然语言描述需求（如「人形机器人髋部高扭矩电机」「六维力传感器 防水」），不确定确切型号或参数名，需要发现式检索而非精确筛选时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读；语义索引为离线 TF-IDF 哈希，索引不可用时须明确降级为关键词检索，不得假装语义检索成功。"
    },
    {
      "id": "roboparts-standard-audit",
      "name": "标准符合性自校验",
      "description": "用户想核对某零件 / 厂商声明的标准符合性，或想知道哪些声明能被已知标准集核实、哪些是出处存疑的条目时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读自检，不裁决；作用是指出「声明了但出处存疑」的条目供人工补全证据，不得据此断言某标准符合/不符合。"
    },
    {
      "id": "roboparts-compat-review",
      "name": "多Agent质保复核兼容性",
      "description": "对外发布 / 采购决策前要对兼容性结论做第二双眼睛复核时：给出 L0–L3 风险分级、证据不足时降级、缺失证据显式列出。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读裁决，不写库、不生成文件；证据不足 2 条时不得向用户输出『确认兼容』，必须附 governor_review.risk_level 与 recommended_next_step。"
    },
    {
      "id": "roboparts-urdf-lint",
      "name": "URDF 兼容性检查",
      "description": "用户上传或引用 URDF XML 文件，想做兼容性预检、检查运动学树完整性、或验证是否符合 ROS 工业标准帧规范时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读静态分析，不修改 URDF 文件、不生成新文件；severity=error 时不得视为通过，必须向用户列出全部 error 级 issue 并建议修复后再提交。"
    },
    {
      "id": "roboparts-compose-frontier",
      "name": "三轴组合裁决与 composed=0 归因",
      "description": "用户问「这两个零件为什么判为 type_error」「哪些配对能真的装起来」「composed 是不是 0」「为什么机械能拧上但组合判不出来」，或需要研究层口径（三轴 mechanical/electrical/signal）结论时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "★ 口径隔离：本报表用 signal 角色互补（执行器↔传感器），check_compatibility 用 protocol 总线 + ROS2 支持——**两者维度不同，结论不可混用或直接比较**。本工具只透传研究层现算结论，不重新裁决。库级模式下 composed=0 是关系类型错配（cobot EOAT 各占机器人侧一个接口，真实关系是共装而非直连），**不得**把它当成数据缺口或未完成。"
    },
    {
      "id": "roboparts-evidence-cohort",
      "name": "最小可行同质集取证判据",
      "description": "用户问「取证该从哪开始」「补哪条数据最值」「补机械声明率到 30% 有用吗」「K=2 是什么意思」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读透传研究层现算结论，不重新裁决。口径与 check_compatibility 的四维不同，不可混用。"
    },
    {
      "id": "roboparts-evidence-mdv",
      "name": "边际声明价值与零贡献轴",
      "description": "用户问「补哪个轴最划算」「某轴还有取证价值吗」「机械声明率低是不是真问题」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读透传研究层现算结论。zero_mdv_nodes=100% 的轴不得再建议取证——那是可证明的无效投入。"
    },
    {
      "id": "roboparts-connector-types",
      "name": "连接器类型判据（三元组）",
      "description": "用户问「这两个连接器能不能互插」「同为 M8 为什么判不兼容」「pinout 为 null 是什么意思」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读透传。pinout=null 表示「厂商未公开」，**不得**按同类推断针序；family 相同不等于可互插。"
    },
    {
      "id": "roboparts-research-progress",
      "name": "核心目标完成度",
      "description": "用户问「这个项目做到什么程度了」「核心目标完成了几成」「composed 为什么是 0」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "★ 这是**一个口径**下的数字，不是客观测量。权重可争议。采用门控口径：核心判据 composed=0 时 body 维记 0——**判定基础设施建成不等于组合成立**，不得把基础设施得分当作核心目标已达成。"
    },
    {
      "id": "roboparts-co-mount",
      "name": "共装裁决（三段 A↔宿主↔B）",
      "description": "用户问「这台机器人能不能同时装夹爪 A 和传感器 B」「两个夹爪能一起装吗」「为什么判 port_exhausted」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读透传研究层现算结论。**口径与 check_compatibility 不同、不可混用**：后者判二段互插，本工具判三段共装。port_exhausted = 装不下（工程约束，需转接/换本体），unknown = 数据不足（不知道）——**两者不可混为一谈**。"
    },
    {
      "id": "roboparts-tool-side",
      "name": "宿主工具侧接口取证",
      "description": "用户问「这台机器人工具侧有几个电气接口」「tool_io_ports 是多少」「为什么 FR3 判 unknown」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "只读透传。tool_io_ports 是**位计数（连接器数）不是针数**——UR 工具侧是单个 8-pin 连接器，位=1 针=8。未取证者留 null 并判 unknown，**不得按型号名推断**。"
    },
    {
      "id": "roboparts-behavior-evidence",
      "name": "行为证据（真机 benchmark）",
      "description": "用户问「这个模型真机表现如何」「有没有实测成功率」「仿真成绩能当真机用吗」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "仿真(sim)与真机(real)**严格分列，不可合并统计**。只收录有对照组的数字（孤证可能是 cherry-pick）。官方未报告的指标 value=null，**不折算**。样本量官方均未报告 ⇒ 不可用于统计比较，只可作定性参照。本项目**不自造日志**（锚点禁止造仿真器/训练栈），引用官方公开数字。"
    },
    {
      "id": "roboparts-body-binding",
      "name": "开源VLA→本体绑定（强度分档）",
      "description": "用户问「这个模型跑在什么机器人上」「绑定可信吗」「为什么 SmolVLA 没有 body_robot」时。",
      "tags": [
        "robotics",
        "compatibility",
        "mcp"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "强度四档 validated/family/adaptable/category_only + 两种非绑定态。**把 adaptable 当 validated 是过度声称**。只绑开源 VLA——闭源模型无公开验证栈，不编造绑定。blocked_missing_body 表示依据充分但**本体不在库内**，这是诚实阻塞不是缺陷。"
    },
    {
      "id": "roboparts-adapter-generate",
      "name": "生成法兰转接件",
      "description": "兼容性判定为不兼容、且根因是机械法兰不匹配时，直接产出解决方案而非只给结论。",
      "tags": [
        "robotics",
        "web_resource"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "仅当兼容判定为机械法兰不匹配时使用；生成的是可 3D 打印的几何建议，承载/材料/公差须由工程师核对，不得直接作为量产件。"
    },
    {
      "id": "roboparts-dataset-discovery",
      "name": "公开数据集发现",
      "description": "用户想下载/引用原始数据、做二次分析、或确认数据来源时。",
      "tags": [
        "robotics",
        "dataset"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "仅公开数据集的直接 GET 下载；不暴露任何内网/付费数据端点；数据集可能含 quarantine=true 条目，使用者须自行过滤；引用须注明 CC BY 4.0 出处。"
    },
    {
      "id": "roboparts-supplier-risk",
      "name": "供应商异常研判",
      "description": "用户问「这家供应商靠谱吗」「这个价格是不是太低了」「哪些零件数据存疑」时，给出可审计的风险结论而非拍脑袋。",
      "tags": [
        "robotics",
        "methodology"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "guardrails": "所有判定基于库内 source_tier/confidence/quarantine/price_range 字段，不引入外部未验证信号；无 price_range 的条目（约 74%）不判风险，只标『数据缺口』；quarantine=true 强制标 critical，不因价格正常而降级。"
    }
  ]
}
