Token导航 LogoToken导航TokenDH.com
partsbox MCP logo
运维云端stdio官方级别未说明来源级核验

partsbox MCP

MCP Server

PartsBox MCP Server是一个基于FastMCP的模型上下文协议服务器,用于通过API管理电子元件库存系统,支持零件、库存、批次、存储位置、项目和订单的全面管理。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
PythonClaudeAPI集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

nickweedon

提供方

nickweedon

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python partsbox_mcp_server.py

详细介绍

PartsBox MCP服务器

使用FastMCP的PartsBox API的模型上下文协议(MCP)服务器。该服务器使AI助手能够与您的电子元件PartsBox库存管理系统进行交互。

概述

零件箱 是电子元件的库存管理系统。此MCP服务器提供以下工具:

  • 管理零件及其元数据
  • 跟踪库存水平和位置
  • 处理批次和库存条目
  • 管理存储位置
  • 处理项目和BOM(物料清单)
  • 处理订单并接收库存

需求

  • Python 3.10+
  • uv包管理器
  • PartsBox API密钥(在设置|数据中生成)

设置

1.安装依赖项

uv sync

2.设置环境变量

创建一个 .env 项目根目录中的文件:

PARTSBOX_API_KEY=partsboxapi_your_api_key_here

安全说明: 小心保护API密钥,因为它提供了对PartsBox数据库的完全访问。

环境变量

变量默认值描述
PARTSBOX_API_KEY(必需)您的PartsBox API密钥
PARTSBOX_MCP_DEBUGtrue启用定时/日志中间件
PARTSBOX_MCP_MASK_ERRORSfalse向客户端隐藏内部错误详细信息
PARTSBOX_BLOB_STORAGE_ROOT/mnt/blob-storage资源文件共享存储目录的路径
PARTSBOX_BLOB_STORAGE_MAX_SIZE_MB100blob存储的最大文件大小(MB)
PARTSBOX_BLOB_STORAGE_TTL_HOURS24存储Blob的默认生存时间(小时)

3.运行服务器

uv run python partsbox_mcp_server.py

API概述

PartsBox API是面向操作的(而非REST),并提供:

零部件管理

  • 创建、检索、更新和删除零件
  • 管理替代品和元部件
  • 处理自定义字段

库存管理

  • 添加和删除库存
  • 在不同地点之间移动库存
  • 更新库存条目
  • 按零件或存储位置检索库存

大量

  • 获取并更新批次数据
  • 跟踪批次信息

存储

  • 管理存储位置
  • 归档和恢复位置
  • 按地点汇总库存

项目

  • 创建和管理BOM
  • 处理物料清单条目
  • 跟踪项目构建

订单

  • 创建和管理订单
  • 添加订单条目
  • 从订单中接收库存
  • 管理订单生命周期

可用工具

零件API

工具说明
list_parts使用分页和JMESPath查询列出所有部分
get_part获取特定零件的详细信息
create_part创建新零件
update_part更新现有零件
delete_part删除零件
add_meta_part_ids向元部件添加成员
remove_meta_part_ids从元部件中删除成员
add_substitute_ids向零件添加替代品
remove_substitute_ids从零件中删除替代品
get_part_storage按存储位置获取汇总库存
get_part_lots获取零件的单个批次条目
get_part_stock获取零件的总库存计数

API库存

工具说明
add_stock将库存添加到库存
remove_stock从库存中删除库存
move_stock在不同地点之间移动库存
update_stock更新库存条目

大量API

工具说明
list_lots列出所有批次
get_lot获取批次详细信息
update_lot更新批次信息

存储API

工具说明
list_storage_locations列出所有存储位置
get_storage_location获取存储位置详细信息
update_storage_location更新存储位置元数据
rename_storage_location重命名存储位置
change_storage_settings修改存储设置(完整、单个零件、仅现有零件)
archive_storage_location将存储位置存档
restore_storage_location恢复存档位置
list_storage_parts按零件列出某个位置的汇总库存
list_storage_lots列出某个地点的各个地块

API项目

工具说明
list_projects列出所有项目/BOM
get_project获取项目详细信息
create_project创建新项目
update_project更新项目元数据
delete_project删除项目
archive_project归档项目
restore_project还原已存档的项目
get_project_entries获取项目的BOM条目
add_project_entries向项目BOM添加条目
update_project_entries更新物料清单条目
delete_project_entries从BOM表中删除条目
get_project_builds获取项目的构建历史记录
get_build获取构建详细信息
update_build更新构建信息

订单API

工具说明
list_orders列出所有订单
get_order获取订单详细信息
create_order创建新订单
get_order_entries获取订单中的行项目
add_order_entries向订单中添加项目
delete_order_entry从订单中删除项目
receive_order处理收到的库存

文件API

工具说明
get_image下载零件图像进行显示(可选择调整大小)
get_image_info无需下载即可获取图像的元数据
get_image_size_estimate调整大小后估计尺寸和大小
get_file下载文件(数据表、图像等)
get_file_url获取文件的下载URL
get_image_resource将图像存储在共享存储中并返回资源标识符
get_file_resource将文件存储在共享存储中并返回资源标识符

MCP资源

资源通过URI模板提供对文件和图像的只读访问:

资源URI描述
partsbox://image/{file_id}直接在Claude Desktop中下载和渲染零件图像
partsbox://file/{file_id}下载文件(数据表、PDF等)
partsbox://file-url/{file_id}获取下载URL而不获取文件

file_id 从零件数据(例如 part/img-id 字段返回 get_partlist_parts).

共享资源存储

服务器提供基于资源的文件存储方法(get_image_resourceget_file_resource)它允许通过映射的Docker卷与其他MCP服务器共享文件。这对于需要在服务之间传递文件的多容器工作流非常有用。

运作原理

  1. 文件从PartsBox下载并存储在共享blob存储目录中
  2. 每个文件都有一个唯一的资源标识符(格式: blob://TIMESTAMP-HASH.EXT)
  3. 其他MCP服务器可以使用标识符直接从映射的卷访问这些文件
  4. 使用SHA256哈希自动对文件进行重复数据消除
  5. 文件在可配置的TTL后过期(默认值:24小时)

配置

使用环境变量配置共享存储:

变量默认值描述
PARTSBOX_BLOB_STORAGE_ROOT/mnt/blob-storage共享存储目录的路径
PARTSBOX_BLOB_STORAGE_MAX_SIZE_MB100最大文件大小(MB)
PARTSBOX_BLOB_STORAGE_TTL_HOURS24默认生存时间(小时)

Docker卷设置

要启用MCP服务器之间的资源共享,请装载共享卷:

# docker-compose.yml
version: '3.8'
services:
  partsbox-mcp:
    image: partsbox-mcp:latest
    volumes:
      - blob-storage:/mnt/blob-storage
    environment:
      - PARTSBOX_BLOB_STORAGE_ROOT=/mnt/blob-storage

  other-mcp-server:
    image: other-mcp:latest
    volumes:
      - blob-storage:/mnt/blob-storage

volumes:
  blob-storage:

用法示例

# Store an image in shared storage
response = get_image_resource("img_resistor_10k")
# Returns: ResourceResponse(
#   success=True,
#   resource_id="blob://1733437200-a3f9d8c2b1e4f6a7.png",
#   filename="img_resistor_10k.png",
#   mime_type="image/png",
#   size_bytes=65536,
#   sha256="a3f9d8c2...",
#   expires_at="2024-12-08T12:00:00Z"
# )

# Other MCP servers can now access the file at:
# /mnt/blob-storage/17/33/blob://1733437200-a3f9d8c2b1e4f6a7.png

JMESPath查询支持

所有列表操作都支持用于过滤和投影的JMESPath查询。此服务器通过自定义函数扩展了标准JMESPath,用于安全的null处理和数据转换:

自定义函数

功能说明示例
nvl(value, default)如果值为null,则返回默认值nvl("part/name", '')
int(value)转换为整数(失败时为null)int("custom-field/qty")
str(value)将任何值转换为字符串str("part/id")
regex_replace(pattern, repl, value)正则表达式查找和替换regex_replace('[^0-9]', '', "value")

空安全查询

重要: 许多PartsBox字段都可以为空。使用 nvl() 为了防止在筛选这些字段时出错:

# UNSAFE - fails if "part/name" is null
query="[?contains(\"part/name\", 'resistor')]"

# SAFE - handles null values
query="[?contains(nvl(\"part/name\", ''), 'resistor')]"

查询示例

# Search parts by name (null-safe)
query="[?contains(nvl(\"part/name\", ''), 'capacitor')]"

# Filter by manufacturer
query="[?nvl(\"part/manufacturer\", '') == 'Texas Instruments']"

# Combine conditions
query="[?contains(nvl(\"part/name\", ''), 'resistor') && \"stock/total\" > `0`]"

# Sort results
query="sort_by(@, &\"part/name\")"

重要说明

认证

所有API请求都需要在授权标头中传递API密钥:

Authorization: APIKey partsboxapi_[your-key]

时间戳

PartsBox将时间戳存储为64位UNIX UTC时间戳。时区转换是您的责任。

库存计算

PartsBox不存储总库存计数。库存盘点是通过遍历库存历史来计算的。

速率限制

可能会强制执行费率限制。为您的使用计划潜在的速率限制。

API限制

  • 无法使用API创建用户界面应用程序(仅限自动化)
  • 商业计划用户获得标准支持
  • 免费帐户用户不应期望收到电子邮件回复

克劳德集成

此MCP服务器与Claude Desktop和Claude Code(CLI)配合使用。看 使用MCPServer.md 了解详细的配置说明。

相关资源

开发中

该项目旨在与vscode和devcontainers插件配合使用。我还建议运行claude——在devcontainer中危险地跳过权限一次,以获得最佳结果😁

目录标签

目录标签

PythonClaudeAPI集成电子元件管理本地部署库存跟踪BOM管理自动化工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP