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

Inventree MCP Plugin

MCP Server

InvenTree的MCP插件,通过标准化MCP工具暴露库存数据,使AI助手能够与库存交互。

工具数

28

提示词数

0

GitHub Stars

3

资源数

0
库存管理PythonClaude数据交互Claude DesktopClaude

安装说明

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

作者 / 组织

eljefedelrodeodeljefe

提供方

eljefedelrodeodeljefe

最后核验

2026/5/17 20:20

快速接入

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

命令预览

pip install inventree-mcp-plugin

详细介绍

invendree mcp插件

MCP(模型上下文协议)服务器插件 库存树.通过标准化的MCP工具公开InvenTree库存数据,允许像Claude这样的AI助手与您的库存进行交互。

特性

  • 零件:列出、搜索、创建和更新零件
  • 股票:列出、调整和转移库存项目
  • 位置:浏览库存位置层次结构
  • 分类:浏览零件类别层次结构
  • 订单:查看采购和销售订单
  • 物料清单:查看组件的物料清单
  • 构建:查看构建订单
  • 标签:列出和搜索零件标签

安装

pip install inventree-mcp-plugin

或者使用紫外线:

uv pip install inventree-mcp-plugin

配置

  1. 在InvenTree管理中启用插件 设置>插件设置
  2. 配置插件设置:

- 需要认证:MCP端点是否需要身份验证(默认值: true)

MCP端点位于: /plugin/inventree-mcp/mcp/

认证

需要认证 如果启用(默认),则对MCP端点的每个请求都必须包含有效的凭据。插件接受与InvenTree API相同的身份验证方法:

方法标题
API代币Authorization: Token
持票人Authorization: Bearer
基础Authorization: Basic
会话基于Cookie的(浏览器会话)

若要获得API令牌,请使用InvenTree web UI(设置>API令牌)或者以编程方式请求一个:

curl -s http://your-inventree-instance/api/user/token/ \
  -H "Authorization: Basic $(echo -n admin:inventree | base64)"
# Returns: {"token": "inv-..."}

未经身份验证的请求会收到带有HTTP 401的JSON-RPC错误响应。

用户设置和权限

该插件使用经过身份验证的用户的权限通过Django ORM访问InvenTree数据。InvenTree使用基于角色的权限系统:用户属于 群组,每个组都有 规则集 那笔赠款 view, add, change,以及 delete 跨9个角色类别的权限。

重要提示: 该插件目前绕过InvenTree的 RolePermission 检查,因为它直接使用ORM而不是REST API。这意味着任何经过身份验证的用户都可以访问所有工具,而不管其角色分配如何。对于生产使用,创建一个具有适当组成员资格的专用服务帐户,以建立明确的权限边界。

推荐用户配置文件

通过InvenTree管理中心创建这些组和用户(设置>管理中心>组):

只读MCP用户 --对于只需要查询数据的AI助手:

角色查看添加更改删除
部分
零件类别
库存项目
库存位置
构建
采购订单
销售订单

读写MCP用户 --对于也创建/修改数据的AI助手:

角色查看添加更改删除
部分
零件类别
库存项目
库存位置
构建
采购订单
销售订单

创建服务帐户

  1. 首选 管理中心>组 并创建一个组(例如。 mcp-readonlymcp-readwrite)
  2. 如上所示设置角色权限
  3. 首选 管理中心>用户 并创建新用户(例如。 mcp-service)
  4. 将用户分配到组
  5. 在处为用户生成API令牌 设置>API令牌

或者通过API(需要管理员帐户):

# 1. Create a group (admin token required)
curl -X POST http://your-inventree-instance/api/user/group/ \
  -H "Authorization: Token " \
  -H "Content-Type: application/json" \
  -d '{"name": "mcp-readonly"}'

# 2. Create a user assigned to that group
curl -X POST http://your-inventree-instance/api/user/ \
  -H "Authorization: Token " \
  -H "Content-Type: application/json" \
  -d '{"username": "mcp-service", "password": "a-strong-password", "group_ids": []}'

# 3. Get a token for the new user
curl -s http://your-inventree-instance/api/user/token/ \
  -H "Authorization: Basic $(echo -n mcp-service:a-strong-password | base64)"

工具权限参考

简单的工具

工具发明树角色最小权限
list_parts, get_part, search_parts零件视图
create_part零件,零件类别添加(零件),查看(类别)
update_part部分更改
list_stock_items, get_stock_item库存项目查看
adjust_stock库存项目更改
transfer_stock库存项目、库存位置更改(库存)、查看(位置)
list_locations, get_location, get_location_tree库存位置查看
list_categories, get_category, get_category_tree零件类别视图
list_purchase_orders, get_purchase_order采购订单查看
list_sales_orders, get_sales_order销售订单查看
list_bom_items, get_bom_for_part零件视图
list_build_orders, get_build_order构建视图
list_tags, search_tags--查看

组合工具

工具发明树角色最小权限
delete_parts部分删除
stock_by_category_and_location库存项目、零件类别、库存位置视图
stock_pivot库存项目、零件类别、库存位置视图

与MCP客户端一起使用

该插件使用 可流式传输的HTTP 运输。端点为:

http://your-inventree-instance/plugin/inventree-mcp/mcp/

每个请求都必须包括 Authorization 带有InvenTree API令牌的标头(请参阅 认证).

克劳德代码

添加服务器 claude mcp add 命令。使用 --scope project 将配置存储在 .mcp.json (已检查到仓库中)或对于仅本地配置省略它。

claude mcp add --transport http inventree \
  --header "Authorization: Token YOUR_INVENTREE_TOKEN" \
  http://your-inventree-instance/plugin/inventree-mcp/mcp/

为了避免以纯文本形式存储令牌,请使用环境变量:

claude mcp add --transport http inventree \
  --header "Authorization: Token ${INVENTREE_TOKEN}" \
  http://your-inventree-instance/plugin/inventree-mcp/mcp/

或者手动将配置添加到 .mcp.json (项目范围)或 ~/.claude.json (用户范围):

{
  "mcpServers": {
    "inventree": {
      "type": "http",
      "url": "http://your-inventree-instance/plugin/inventree-mcp/mcp/",
      "headers": {
        "Authorization": "Token YOUR_INVENTREE_TOKEN"
      }
    }
  }
}

克劳德桌面版

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "inventree": {
      "type": "http",
      "url": "http://your-inventree-instance/plugin/inventree-mcp/mcp/",
      "headers": {
        "Authorization": "Token YOUR_INVENTREE_TOKEN"
      }
    }
  }
}

编辑配置文件后重新启动Claude Desktop。

双子星命令行工具

谷歌的 双子星命令行工具 支持MCP服务器。通过设置文件添加服务器 ~/.gemini/settings.json:

{
  "mcpServers": {
    "inventree": {
      "httpUrl": "http://your-inventree-instance/plugin/inventree-mcp/mcp/",
      "headers": {
        "Authorization": "Token YOUR_INVENTREE_TOKEN"
      }
    }
  }
}

ChatGPT桌面

ChatGPT桌面支持开发人员模式下的MCP(需要ChatGPT Plus、Pro、Business或Enterprise)。在下启用开发人员模式 设置>高级,然后通过添加服务器 设置>连接器.

添加自定义连接器时,请提供:

  • 网址: http://your-inventree-instance/plugin/inventree-mcp/mcp/
  • 身份验证: 令牌--值: YOUR_INVENTREE_TOKEN

用例

MCP连接到AI助手后使用的常见提示。按原样粘贴它们——你的AI将自动使用InvenTree MCP工具,而不是发出原始HTTP请求。

探索库存

  • *显示顶级零件类别以及每个类别有多少个子类别。*
  • *列出“被动件”类别中的所有零件。按子类别对它们进行分组,并告诉我哪些当前处于非活动状态。*
  • *在零件名称和描述中搜索与“电机驱动器”相关的任何内容。*
  • *给我完整的类别树,这样我就可以了解库存是如何组织的。*

库存水平

  • *哪些零件现在没有库存?列出他们的姓名、ID和类别。*
  • *显示存储在“主仓库”位置及其子位置的所有库存物品。*
  • *我需要将50个零件#142从“架子A”转移到“架子B”。执行并确认。*
  • *调整88号零件的库存——增加200个单位以反映新的交付。*

零件和物料清单

  • *获取210号零件的完整物料清单,并估算建造25个单元所需的总组件数量。*
  • *305号零件依赖于哪些子组件?显示BOM树。*
  • *在类别#12中创建一个名为“肖特基二极管40V 1A”的新零件,其IPN为“D-SS14”,并将其标记为可购买。*
  • *找到所有标记为“过时”的零件并将其停用。在进行任何更改之前,请先显示列表。*

订单和构建

  • *列出所有未完成的采购订单,并总结正在订购的内容以及来自哪些供应商。*
  • *当前构建订单的状态如何?是否有过期或被阻止的?*
  • *向我展示34号采购订单的行项目,并告诉我哪些零件尚未收到。*
  • *过去30天内下达了哪些销售订单,订单状态如何?*

清理和维护

  • *查找所有未激活且没有库存的零件。与我确认列表后删除它们。*
  • *列出当前正在使用的所有标签,并告诉我哪些标签应用于少于3个部分——这些标签可能是重复的或拼写错误。*
  • *显示所有标记为装配但BOM表为空的零件。*

可用工具

简单--单资源CRUD

零件

工具说明
list_parts列出带有可选类别/活动过滤器的零件
get_part获取详细的零件信息
search_parts按名称或描述搜索零件
create_part创建新零件
update_part更新现有零件

股票

工具说明
list_stock_items使用可选过滤器列出库存项目
get_stock_item获取详细的库存商品信息
adjust_stock添加或删除库存数量
transfer_stock将库存转移到其他位置

位置

工具说明
list_locations列出库存位置
get_location获取位置详细信息
get_location_tree获取分层位置树

分类

工具说明
list_categories列出零件类别
get_category获取类别详细信息
get_category_tree获取分层类别树

订单

工具说明
list_purchase_orders列出采购订单
get_purchase_order获取包含行项目的采购订单
list_sales_orders列出销售订单
get_sales_order获取包含行项目的销售订单

物料清单和构建

工具说明
list_bom_items列出物料清单项目
get_bom_for_part获取零件的完整BOM
list_build_orders列出构建订单
get_build_order获取构建订单详细信息

标签

工具说明
list_tags列出所有标签
search_tags按名称搜索标签

组合式——多资源运营

工具说明
delete_parts按ID删除多个零件(带安全检查)
stock_by_category_and_location按类别和位置划分的库存数量枢轴
stock_pivot具有完整类别/位置层次结构路径的库存数量枢轴

发展

先决条件

安装prek并设置git挂钩:

prek install
# Clone the repository
git clone https://github.com/eljefedelrodeodeljefe/inventree-mcp-plugin.git
cd inventree-mcp-plugin

# Install dependencies
uv sync --dev

# Run linting
uv run ruff check .
uv run ruff format --check .

# Run unit tests (mocked, no InvenTree required)
uv run pytest -v

集成测试

A. docker-compose.dev.yml 包括旋转a 一次性 InvenTree实例已挂载PostgreSQL、Redis和插件卷。所有状态都存在于Docker卷中,这些卷在拆卸时会被销毁。

集成先决条件

  • Docker和Docker Compose v2+

快速开始

# Start InvenTree and seed the demo dataset
./scripts/integration-test.sh up

# MCP endpoint is now live at:
#   http://localhost:8000/plugin/inventree-mcp/mcp/

# Get an admin API token (useful for curl/httpie testing)
./scripts/integration-test.sh token

测试账户

up 命令种子InvenTree的 演示数据集 并创建专用MCP服务帐户:

用户名密码用途
admininventree超级用户——完全访问权限,用于管理任务
mcp-servicemcp-serviceMCP服务帐户--通过管理中心分配角色
mcp-readonlymcp-readonly无角色--用于验证权限拒绝
allaccessnolimits演示用户--完全权限
readerreadonly演示用户--仅供查看

之后 up,配置 mcp-readwrite 通过管理中心访问组的角色权限(管理中心>组>mcp读写>规则集).看 用户设置和权限 对于推荐的角色矩阵。

为不同用户获取令牌:

./scripts/integration-test.sh token           # mcp-service (default)
./scripts/integration-test.sh token admin     # admin superuser
./scripts/integration-test.sh token readonly  # mcp-readonly (no roles)

重置状态

# Wipe all data and re-seed (keeps containers running)
./scripts/integration-test.sh reset

这运行 invoke dev.delete-data 紧随其后 invoke dev.setup-test -i,无需重新构建容器,即可为您带来全新的体验。

拆除

# Stop containers and delete all volumes
./scripts/integration-test.sh down

冒烟测试

该脚本包括一个经过身份验证的烟雾测试套件,用于端到端验证MCP端点:

./scripts/integration-test.sh smoke

这会自动获得一个令牌并进行测试:

  1. 未经身份验证的请求被拒绝(401)
  2. 已验证 initialize 成功
  3. 已验证 tools/list 返回已注册的工具
  4. 已验证 tools/call 为了 list_parts 成功

手动MCP测试

在堆栈运行时,首先获取一个令牌,然后测试端点:

# Get a token
TOKEN=$(./scripts/integration-test.sh token)

# Initialize the MCP session
curl -X POST http://localhost:8000/plugin/inventree-mcp/mcp/ \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ${TOKEN}" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": { "name": "test", "version": "0.1.0" }
    }
  }'

# List available tools
curl -X POST http://localhost:8000/plugin/inventree-mcp/mcp/ \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ${TOKEN}" \
  -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'

# Call a tool
curl -X POST http://localhost:8000/plugin/inventree-mcp/mcp/ \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ${TOKEN}" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": { "name": "list_parts", "arguments": { "limit": 5 } }
  }'

脚本引用

./scripts/integration-test.sh up               # Start stack, seed data, create MCP users
./scripts/integration-test.sh reset            # Wipe data, re-seed, re-create MCP users
./scripts/integration-test.sh token            # Print mcp-service API token
./scripts/integration-test.sh token admin      # Print admin API token
./scripts/integration-test.sh token readonly   # Print mcp-readonly API token
./scripts/integration-test.sh smoke            # Run authenticated smoke tests
./scripts/integration-test.sh status           # Check if InvenTree is healthy
./scripts/integration-test.sh down             # Tear down + delete volumes

释放

发布是自动化的 python语义发布。它解析自上次标记以来的常规提交消息,确定下一个版本更新(patch, minor,或 major),更新中的版本 pyproject.toml,生成 CHANGELOG.md,创建一个git标签,并发布GitHub版本。

工作流程需要手动触发,以避免在每次合并时创建版本 main.

从GitHub用户界面

  1. 首选 行动→ 发布
  2. 点击 运行工作流
  3. 选择 main 分支并确认

从命令行

gh workflow run release.yml --ref main

要观看跑步直到完成:

gh workflow run release.yml --ref main && gh run watch --exit-status

当地干跑

在不做任何更改的情况下预览下一个版本:

uv run semantic-release version --print

许可证

麻省理工学院

目录标签

目录标签

库存管理PythonClaude数据交互本地部署AI集成供应链管理自动化工具

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

token

工具数量(toolCount,工具数)

28

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP