{
  "name": "roboparts",
  "version": "1.2.0",
  "transport": "streamable-http",
  "endpoint": "https://roboparts.cc/mcp",
  "protocol_versions": [
    "2025-11-25",
    "2025-06-18",
    "2025-03-26",
    "2024-11-05"
  ],
  "authentication": "none — 只读、免鉴权、不设 cookie、不存储调用方数据",
  "tools": [
    {
      "name": "search_components",
      "description": "搜索机器人零部件。可按品类、关键词筛选，返回匹配条目的摘要（id/name/category/manufacturer/关键规格/证据等级）。覆盖执行器、传感器、芯片、通信协议、接口、机器人平台、具身智能模型等 20 个品类。库存实时口径（总数/可选型/已隔离）见 initialize 的 instructions 或 GET /mcp 的 dataset 字段 —— 此处不写死数字，避免文案与真实库存漂移。"
    },
    {
      "name": "get_component_detail",
      "description": "按 ID 获取单个零部件的完整字段，包含 source_tier（数据来源等级）、confidence（置信度）、data_quality 与 mechanical_interface 等元数据。用于在做出采购/设计决策前核对证据强度。"
    },
    {
      "name": "check_compatibility",
      "description": "判定两个零部件在 protocol（协议）/ electrical（电气）/ mechanical（机械）/ software（ROS2）四个维度的兼容性，返回逐维结论、总体判定与置信说明。注意：结论基于厂商公开声明字段做规则推断，非实验室实测；厂商未声明的维度记为\"无法判定\"，既不计入兼容也不计入不兼容。"
    },
    {
      "name": "compare_components",
      "description": "并排对比 2~6 个零部件的关键参数（torque/speed/voltage/protocol/interface/weight/price），相同值自动标注，替代为同一目的连发多次 get_component_detail。缺失字段以 null 呈现，不代表不支持该特性；跨厂商数值比较请配合 get_parameter_semantics。"
    },
    {
      "name": "recommend_for_application",
      "description": "按应用场景推荐零部件组合，可选预算上限（USD）。返回各品类的候选项及推荐理由。这是基于库内字段的启发式筛选，不构成工程选型意见，最终仍需核对厂商原始数据手册。"
    },
    {
      "name": "get_parameter_semantics",
      "description": "获取参数口径规范：同一个 torque/speed 字段在不同厂商那里含义可能不同（库内 torque 出现 19 种口径、speed 37 种，甚至混入 Gbps 与 rad/s）。本工具返回物理红线、单位换算、可比性分级与向厂商问询的清单，用于判断两份参数表到底能不能直接比较。"
    },
    {
      "name": "bom_compatibility_check",
      "description": "对一组零部件（BOM，物料清单）做两两兼容性矩阵。输入已有条目 ID（可含开源贡献层 OSS-xxx），返回每个组合在 protocol/electrical/mechanical/software 四维的判定与理由。判定基于厂商公开声明字段的规则推断而非实测；未声明维度记为无法判定，不会为了填满矩阵而编造结论。返回的 verdict_reason 才是结论依据，overall_compatible=null 表示\"证据不足\"，不等于不兼容。"
    },
    {
      "name": "semantic_search",
      "description": "用自然语言描述需求（如\"人形机器人髋部高扭矩电机\"）做语义召回，返回最相近的零部件。语义索引由离线哈希 TF-IDF 向量（构建时预计算、零外发、零外部模型）在当前全量实体上生成，是兼容性判定之外的\"发现\"通道：当你不确定零件的确切型号或参数名时，用它比关键词子串匹配更稳。索引不可用时自动降级为关键词检索，并明确告知。"
    },
    {
      "name": "get_standard_audit",
      "description": "返回标准登记表 ↔ 实体声明 的自动交叉校验结果：哪些机械/总线声明能被已知标准集核实、哪些声明的编码不在已知指定集中（无法核实），以及登记表缺口与行业标准覆盖情况。这是数据质量自检，不是兼容性裁决；其作用是指出\"声明了但出处存疑\"的条目，供人工补全证据。"
    },
    {
      "name": "review_compatibility",
      "description": "对两个零部件做「多 Agent 质保复核」：Worker 层执行标准四维兼容性裁决（与 /api/compatibility 同一引擎），Governor 层独立复核结论——按证据强度给出 L0–L3 风险分级、在证据不足 2 条时把\"兼容\"降级为\"需人工确认\"、对无法判定项显式列出缺失证据段。返回四维细节 + 证据契约 + governor_review。只读、免鉴权。"
    },
    {
      "name": "lint_urdf",
      "description": "对 URDF（Unified Robot Description Format）XML 文件做静态兼容性检查。返回结构化 JSON 报告，含 severity（error/warning/info）、issues 数组、summary 与 stats。检查 10 类问题：XML 解析错误、缺失根 link、关节限位缺失、关节类型非法、重复 link 名、运动学树循环、缺少 ROS 工业标准帧（flange/tool0/base）、缺少 origin、缺少 inertial 数据、mesh 路径问题。只读、免鉴权。适用于上传 URDF 到 RoboParts 前做兼容性预检。"
    },
    {
      "name": "explain_compose_frontier",
      "description": "【研究层口径 · 与 check_compatibility 的四维不同】查询 RoboParts 三轴组合判定（mechanical 机械 / electrical 电气 / signal 信号角色）的现算结论：整体 composed/type_error/unknown、逐轴裁决与理由，以及「为什么 composed 通常为 0」的归因（L1 跨角色 → L2 机械可判定 → L3 全轴可判定的三层分解）。适合回答「这两个零件为什么判为 type_error」「哪些配对能真的装起来」「composed=0 是数据缺口还是关系类型问题」。只读、免鉴权。**注意口径差异**：本工具用 signal 角色互补（执行器↔传感器），check_compatibility 用 protocol 总线 + ROS2 支持，两者维度不同不可混用。"
    },
    {
      "name": "explain_evidence_cohort",
      "description": "【研究层口径】查询「最小可行同质集」取证判据：补哪一条数据最值、为什么单条声明的边际收益为 0、以及应按缺口画像批量取证的顺序。适合回答「取证该从哪开始」「补机械声明率有没有用」「K=2 是什么意思」。只读、免鉴权。"
    },
    {
      "name": "explain_evidence_mdv",
      "description": "【研究层口径】查询边际声明价值（MDV）：各轴未声明节点的零贡献率、哪些取证方向边际收益恒为 0、以及瓶颈轴是哪个。适合回答「补哪个轴最划算」「某个轴还有取证价值吗」。只读、免鉴权。口径与 check_compatibility 不同，不可混用。"
    },
    {
      "name": "explain_connector_types",
      "description": "【研究层口径】查询连接器取证与类型判据：已核实的连接器（针数/针序/供电）、「同族不同变体」的不可互插案例，以及 (family, pins, pinout) 三元组判据。适合回答「这两个连接器能不能互插」「同为 M8 为什么判不兼容」「pinout 为 null 是什么意思」。只读、免鉴权。"
    },
    {
      "name": "get_research_progress",
      "description": "查询「核心目标完成度」的可复现判据：把核心目标（脑×体×智做成机器可校验的组合 + 全链路可溯源）拆成四个维度的分项，每项给出分子/分母/口径/剩余缺口，并报出门控与朴素两个口径的加权完成度。适合回答「这个项目做到什么程度了」「核心目标完成了几成」「composed 为什么是 0」。只读、免鉴权。★ 口径警告：这是**一个口径**下的数字，不是客观测量；权重可争议；且采用**门控口径**——核心判据（composed）为 0 时 body 维记 0，因为「判定基础设施建成」不等于「组合成立」。"
    },
    {
      "name": "check_co_mount",
      "description": "查询**共装**关系（第三种关系类型，三段 A↔宿主↔B）：某个机器人本体能否同时装下两个器件（典型问题：「这台 UR5e 能同时装夹爪和六轴力传感器吗」）。与 check_compatibility 的区别：后者判「A 能不能插进 B」（二段互插），本工具判「A 和 B 能不能同时挂在同一台机器人的工具侧」。★ 三段判据：机械同型 + 宿主工具侧位数预算 + 信号角色互补。port_exhausted 表示「**装不下**（工程约束，如需转接/换本体）」，与 unknown（「数据不足，不知道」）严格区分。★ 参数：传 host+a+b 得单对裁决（附证据链）；只传 host 得该宿主的单件可装性 + 工具侧取证；不传参得全层摘要（含关系语义与示例）。只读、免鉴权。返回含 caliber 字段，口径与 check_compatibility 不同、不可混用。"
    },
    {
      "name": "get_robot_tool_side",
      "description": "查询机器人本体的**工具侧接口取证**：工具法兰（ISO 9409-1 标号）、工具 I/O 位数、连接器型号与承载信号。适合回答「这台机器人工具侧有几个电气接口」「tool_io_ports 为什么是 null」「UR 的工具侧能挂几个传感器」。★ tool_io_ports 是**一手取证的整数位计数**（不是针数）；未取证者留 null，判据据此走 unknown，**不按型号名推断**。只读、免鉴权。"
    },
    {
      "name": "get_behavior_evidence",
      "description": "查询**行为证据**：开源 VLA 在真机上的 benchmark 成功率（引用论文/官方报告，**非本仓自造日志**——本项目按锚点禁止造仿真器/训练栈）。适合回答「GR00T 真机成功率多少」「SmolVLA 有实测数据吗」「仿真成绩能不能当真机用」。★ 三条纪律：① 仿真（sim）与真机（real）**严格分列**，不可合并统计；② 只收录**有对照组**的数字（孤证可能是 cherry-pick）；③ 官方未报告的指标 value=null，不折算。样本量官方均未报告 ⇒ 不可用于统计比较。只读、免鉴权。"
    },
    {
      "name": "get_body_binding",
      "description": "查询**开源 VLA → 机器人本体**的绑定及其强度分档。强度四档：validated（论文明写真机评测跑在该本体）/ family（论文列该族）/ adaptable（官方称可微调，非特定硬件验证）/ category_only（只登记类别）。另有两个**非绑定态**：blocked_missing_body（依据充分但本体不在库内）与 category_only。适合回答「OpenVLA 能装在哪台机器人上」「这个绑定可信吗」「为什么 SmolVLA 没有 body_robot」。★ 只绑开源 VLA——闭源模型无公开验证栈，不编造绑定。只读、免鉴权。"
    },
    {
      "name": "explain_unknown",
      "description": "结构化解释「为什么某次判定是 unknown」。三种模式：① component_id + category → 返回该实体的 evidence_gaps / null 字段清单；② verdict_id → 反查当前请求内的判定（hosted 端点无跨请求会话，仅回当前请求）；③ 无参 → 返回全库 unknown 覆盖率摘要。★ 口径纪律：字段级扫描 ≠ 因果归因（后者属 gap_classification 研究层）。只读、免鉴权。"
    },
    {
      "name": "start_long_task",
      "description": "启动长任务并返回任务句柄。★ hosted 端点（Cloudflare Workers）无跨请求内存持久化，任务句柄只在 stdio npm 包 （roboparts-mcp-server）里可用。本端点返回 honest_note 引导到 stdio 模式，不假装能保存跨请求任务。"
    },
    {
      "name": "get_task_status",
      "description": "查询长任务状态。★ hosted 端点无跨请求任务句柄，返回 honest_note 引导到 stdio 模式。"
    },
    {
      "name": "cancel_task",
      "description": "置任务取消标志位。★ stdio 无中断通道，cancel 只置标志位；任务体在下一 checkpoint 才退出。hosted 端点无跨请求任务句柄，返回 honest_note 引导到 stdio。"
    },
    {
      "name": "trace_export",
      "description": "导出调用轨迹（默认去敏）。★ hosted 端点无跨请求内存持久化，trace 环形缓冲只在 stdio npm 包可用。本端点返回 honest_note 引导到 stdio 模式；stdio 支持 ROBOPARTS_TRACE_FILE 环境变量落盘 JSONL 供事后回放。"
    },
    {
      "name": "trace_replay",
      "description": "从 JSONL 文本重放轨迹（结构校验 + 计数）。本端点可处理**当前请求内传入的** json_lines；不做\"重算 verdict\"（语义重放属 P3，需要完整输入重演）。"
    }
  ],
  "resources": [
    {
      "uri": "https://roboparts.cc/api/training_dataset.json",
      "name": "RoboParts 物理 AI 训练数据集",
      "description": "面向物理 AI / 具身智能 / TurboVLA 类 V+L→A 策略的多模态结构化数据集（schema v2.0）：零件目录（含标准标签、证据等级、多模态暴露 force/tactile/geometric/electrical/vision）+ 兼容性关系（四维裁决现算，并标注 interaction_type 与 force_profile 力觉剖面）+ 互操作性标准登记表。force/tactile 仅声明级参数，原始传感时序为零。免鉴权，HTTP GET 即可拉取全文。",
      "mimeType": "application/json"
    }
  ],
  "dataset": {
    "total_entities": 868,
    "flywheel_contributions": 142,
    "selectable": 659,
    "market_intelligence": 17,
    "organizations": 10,
    "specifications": 101,
    "software": 81,
    "quarantined": 113,
    "usable": 603,
    "priced": 226,
    "id_category_mismatch": 15,
    "categories": [
      "actuators",
      "sensors",
      "chips",
      "interfaces",
      "protocols",
      "llms",
      "platforms",
      "flexible_actuators",
      "robot_ai_models",
      "data_acquisition",
      "connectors",
      "integrated_joints",
      "reducers",
      "controllers",
      "grippers",
      "structural",
      "cables",
      "power",
      "pcb",
      "bionic_mechanisms"
    ]
  },
  "instructions": "RoboParts 是仿生/人形机器人零部件的兼容性数据层（执行器、传感器、芯片、通信协议、接口、平台、具身智能模型等 20 个品类）。\n\n适合用它来做：确认两个零件能否搭配、按场景筛选候选件、核对某个参数的口径是否可比。\n\n必须如实转述给最终用户的边界：\n1. 我们既不生产也不转售任何零部件，与任何厂商无商业绑定，数据层保持中立。\n2. 兼容性结论来自厂商公开声明字段的规则推断，不是实验室实测。厂商未声明的维度一律标为\"无法判定\"，我们不会拿它凑分数。\n3. 参数口径在行业内并不统一（库内 torque 字段出现 19 种口径、speed 37 种），跨厂商直接比数字往往是错的 —— 需要时请调用 get_parameter_semantics。\n4. 标记 quarantine=true 的条目存在已知疑点，不应作为决策依据。\n\n本端点只读、免鉴权、不写入任何用户数据、不设 cookie。若需要写入类能力（BOM 保存、选型报告导出），见 https://roboparts.cc/mcp-guide\n\n数据集实况（本次响应实时统计，非写死文案）：共 868 条实体，其中 659 条为可选型零部件、101 条为接口/协议规范（EtherCAT、USB 3.0…）、81 条为 AI 模型与软件（GPT-4o、RT-2…）、17 条为市场情报（专利地图/咨询报告）、10 条为企业/机构主体条目（如 Figure AI、波士顿动力）。后四类都没有物理接口，不进检索推荐、也不作为兼容性判定操作数。另有 113 条（占 13%）标记 quarantine=true —— 存在已知疑点（占位 ID / 无法核实的厂商 / 重复 / 根本不是零件的行业词），本端点的检索与推荐已默认排除它们，实际可选型 603 条。若你从 REST 接口（/api/*.json）自行取数，这些条目会照原样返回，请自行按 quarantine 字段过滤。带价格字段的仅 226 条。",
  "quickstart": {
    "claude_desktop": "在 MCP 设置里添加一个 Streamable HTTP 服务器，URL 填 https://roboparts.cc/mcp，无需 API Key。",
    "curl": "curl -s -X POST https://roboparts.cc/mcp -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'"
  },
  "docs": "https://roboparts.cc/mcp-guide"
}