{"apiVersion":"v1","directorySlug":"sdgoods-mcp-e0bac6f88f","title":"谷仓SDGOODS开放平台","description":null,"pageUrl":"https://www.mcpbundles.com/skills/sdgoods-mcp-e0bac6f88f","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://sdgoods.ai/api/mcp","hostedMcpUrl":null,"toolCount":9,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"ai.sdgoods/sdgoods-mcp-e0bac6f88f","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_categories","description":"列出固件分类（运营维护的 Category 表，slug 为小写）。公开，无需登录。上传固件前先查可用分类。","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"list_categories","displayName":"list_categories","title":"list_categories","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"whoami","description":"返回当前登录用户（id/email/nickname/handle/uid/role/github）。需要登录。","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"whoami","displayName":"whoami","title":"whoami","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"my_firmwares","description":"列出我上传的固件（最近 60 条，含状态/分区/截图）。需要登录。","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"my_firmwares","displayName":"my_firmwares","title":"my_firmwares","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"upload_firmware","description":"上传并提交一个固件。服务端直传对象存储并建记录，AI 客户端只需把本地 .bin 读成 base64 传入即可。category 必须是 list_categories 返回的已有 slug。版本号写 version（独立字段，不要并入 name）。shots 可一并传固件截图（base64/data URL，≤4 张），服务端直传 shots 桶并关联，发布后即出现在固件详情页。status 默认 draft（草稿），可选 reviewing（待审）。需要登录。⚠️ 烧录内容二选一；**地址不要自己猜，平台按文件内容/分区表决定写到哪**：① 应用包（**推荐，开发者交这个**）：编译产物 build/<项目>.bin，**不带地址** —— 用 contentBase64 传；平台识别到应用描述结构（0x20 处魔数）后写 0x10000（本工程 factory 起始）。不要用 esptool merge_bin 合并后再传（那是给空片/救砖的整机镜像，不是应用包）。② 多分区 / 整机（官方装机包）：用 parts，每段自带 address（bootloader@0x0、part","inputSchema":{"type":"object","required":["name","category"],"properties":{"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"parts":{"type":"array","items":{"type":"object","required":["address","contentBase64"],"properties":{"address":{"type":"string"},"fileName":{"type":"string"},"contentBase64":{"type":"string"}}}},"shots":{"type":"array","items":{"type":"string"}},"descEn":{"type":"string"},"descZh":{"type":"string"},"status":{"enum":["draft","reviewing"],"type":"string"},"version":{"type":"string"},"category":{"type":"string"},"fileName":{"type":"string"},"hardware":{"enum":["cyb1","sdgoods","both"],"type":"string"},"githubUrl":{"type":"string"},"contentBase64":{"type":"string"}}},"logicalName":"upload_firmware","displayName":"upload_firmware","title":"upload_firmware","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_firmware","description":"更新**已有**固件（原地改同一条记录，不删不建）——下载量 / 刷机量 / 上架时间 / 审核记录全部保留，这正是它存在的理由：删掉重建会让「装过多少次」归零，已装设备的 OTA 也会把它当成全新固件。所有字段可选，给了才改（没给的字段不会被清空）。需要登录且是固件作者（管理员可改任意固件）。可改：name / category / version / descZh / descEn / tags / githubUrl / hardware，以及内容（contentBase64 或 parts，走与 upload_firmware 完全相同的闸门）与截图 shots。⚠️ shots 给了就**整组替换**（传空数组 = 清空截图），不给则完全不动；parts 同样整组替换，只改某一段也要把完整的一列发回来。⚠️ 审核中（reviewing）不可改 —— 请先 unpublish_firmware 撤回提审。⚠️ 已上架（published）固件改内容会立刻对市场与 OTA 生效（与网页改稿一致）；若要重新走审核，改完后 unpublish_firmware 下架再 submit_","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"parts":{"type":"array","items":{"type":"object","required":["address","contentBase64"],"properties":{"address":{"type":"string"},"fileName":{"type":"string"},"contentBase64":{"type":"string"}}}},"shots":{"type":"array","items":{"type":"string"}},"descEn":{"type":"string"},"descZh":{"type":"string"},"version":{"type":"string"},"category":{"type":"string"},"fileName":{"type":"string"},"hardware":{"enum":["cyb1","sdgoods","both"],"type":"string"},"githubUrl":{"type":"string"},"contentBase64":{"type":"string"}}},"logicalName":"update_firmware","displayName":"update_firmware","title":"update_firmware","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"submit_firmware","description":"把指定 id 的固件（草稿）提交审核。需要登录且是固件作者。","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"submit_firmware","displayName":"submit_firmware","title":"submit_firmware","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unpublish_firmware","description":"把自己的固件从市场下架（撤下已上架固件，或撤回正在审核的提审）。状态回到 draft，市场立刻不再展示；已上架固件会清空 publishedAt，并写一条 UNPUBLISH 审核时间线。作者可自助下架，不需要审核员。需要登录且是固件作者（管理员可操作任意固件）。注意：作者无法自助重新上架 —— 重新上线必须 submit_firmware 提审、由审核员通过。","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"reason":{"type":"string"}}},"logicalName":"unpublish_firmware","displayName":"unpublish_firmware","title":"unpublish_firmware","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_firmware","description":"删除自己的固件（不可恢复：分区、截图、审核与下载记录会一并级联删除）。为避免误删已上线内容，只允许删除 draft / rejected 状态的固件；正在审核或已上架的固件请先 unpublish_firmware 下架，再删除。需要登录且是固件作者（管理员可操作任意固件）。","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}},"logicalName":"delete_firmware","displayName":"delete_firmware","title":"delete_firmware","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"firmware_download","description":"查询自己某条固件的**刷机清单**（回执）：返回 parts（烧录地址 / 文件名 / sha256 / 大小 / 临时下载地址）与 declared 标志。发布后用它做「防砖验证」——确认应用包落在 0x10000、平台自动拼上了官方引导层（bootloader@0x0 + 分区表@0x8000 + otadata，declared:false；otadata 落点随模式走：单应用大表 @0xFF1000、多应用 @0x310000）。为什么要有它：REST 的 POST /api/firmwares/:id/download 只认网站登录 JWT，生产环境开发者只有 sdg_ 令牌、没有登录态，发布后无法核对落点。需要开发者令牌且是固件作者（管理员可查任意固件）。⚠️ 副作用与网页刷机一致：会累加一次 downloads/flashes 计数并写一条下载事件。","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"mode":{"enum":["single","multi"],"type":"string"}}},"logicalName":"firmware_download","displayName":"firmware_download","title":"firmware_download","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=-SDGOODS-&config=eyJ1cmwiOiAiaHR0cHM6Ly9zZGdvb2RzLmFpL2FwaS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22-SDGOODS-%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsdgoods.ai%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22-SDGOODS-%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsdgoods.ai%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=%E8%B0%B7%E4%BB%93SDGOODS%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0&connectorUrl=https%3A%2F%2Fsdgoods.ai%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"-SDGOODS-\" --url \"https://sdgoods.ai/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/sdgoods-mcp-e0bac6f88f","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/sdgoods-mcp-e0bac6f88f/tools/{tool}","mcpServerUrl":"https://sdgoods.ai/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/sdgoods-mcp-e0bac6f88f?live=1"}