JPI MCP服务器

Just Plan It (JPI)的模型上下文协议(MCP)服务器,为AI助手提供与JPI作业调度和资源管理系统的交互功能。

  • by etep82
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 etep82/jpi-mcp

使用说明

JPI MCP服务器

模型上下文协议(MCP)服务器 Just Plan It(JPI) API集成。该服务器使AI助手能够与JPI作业调度和资源管理系统进行交互。

特性

  • 69 MCP工具 涵盖所有JPI API端点
  • 所有JPI实体的完整CRUD操作
  • 批量操作,实现高效批量更新
  • 跨作业任务操作
  • 类型安全的TypeScript实现
  • 全面的错误处理

快速开始

先决条件

克劳德代码CLI

claude mcp add jpi \
  --transport stdio \
  --env JPI_API_TOKEN=your-api-token-here \
  --scope user \
  -- npx -y jpi-mcp

克劳德桌面

添加到您的Claude Desktop配置文件中:

{
  "mcpServers": {
    "jpi": {
      "command": "npx",
      "args": ["-y", "jpi-mcp"],
      "env": {
        "JPI_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

直接CLI使用

对于其他CLI工具或直接使用shell:

Unix/macOS/Linux:

JPI_API_TOKEN=your-token npx -y jpi-mcp

Windows PowerShell:

$env:JPI_API_TOKEN="your-token"; npx -y jpi-mcp

Windows CMD:

set JPI_API_TOKEN=your-token && npx -y jpi-mcp

环境变量

变量 必填 默认 描述
JPI_API_TOKEN 是 - 您的JPI API令牌
JPI_BASE_URL 没有 https://api.just-plan-it.com JPI API 基础 URL

建筑

jpi-mcp/
├── src/
│   ├── index.ts          # MCP server setup, 69 tool definitions, request handlers
│   ├── client.ts         # JpiClient class - HTTP client for JPI API v1
│   └── types/            # TypeScript types matching JPI API schemas
│       ├── index.ts      # Re-exports all types
│       ├── enums.ts      # OrderStatus, Strategy, TaskStatus, EventType, etc.
│       ├── schemas.ts    # Common schemas (Identifier, HyperLink, ResourceGroupConstraint)
│       ├── jobs.ts       # Job, Task, JobComponentReference types
│       ├── components.ts # Component, ComponentTask types
│       ├── templates.ts  # JobTemplate, TemplateTask, TemplateComponentReference types
│       ├── resources.ts  # Resource, ResourceGroup, ResourceCategory types
│       ├── settings.ts   # Application settings types
│       └── events.ts     # JPI event/change log types
└── package.json

关键概念

工作和任务

  • 工作:包含一个或多个任务的生产订单或工作订单
  • 任务:作业中的单个操作(例如切割、焊接、涂漆)
  • 前任:任务开始前必须完成的任务
  • 任务连接:用于调度协调的链接任务

组件和参考

  • 组件:可由作业引用的可重用任务模板
  • JCR(工作组件参考):将组件链接到作业,自动创建任务
  • TCR(模板组件参考):将组件链接到作业模板

资源层次结构

Resource Categories
    └── Resource Groups
            └── Resources (machines, workers, etc.)

时间单位

重要: JPI API中的所有时间字段都在 秒,而不是分钟。

字段 单位 示例
ProductionTimePerUnit 秒数 3600 =1小时
SetupTime 秒数 900 =15分钟
TeardownTime 秒数 600 =10分钟
TransferTime 秒数 300 =5分钟

字段命名约定

所有API字段都使用 帕斯卡命名法 以精确地匹配JPI API(例如。, DueDate, TaskNo, ResourceGroupConstraints).

可用工具(共69个)

助手(1个工具)

工具 说明
jpi_api_info 获取API信息和可用端点

组件(9个工具)

工具 说明
jpi_list_components 列出所有组件
jpi_create_component 创建新组件
jpi_get_component 按GUID获取组件
jpi_update_component 更新组件
jpi_delete_component 删除组件
jpi_get_component_task 获取组件任务
jpi_add_component_task 向组件添加任务
jpi_update_component_task 更新组件任务
jpi_delete_component_task 删除组件任务

工作(27工具)

工具 说明
jpi_list_jobs 列出所有作业
jpi_list_jobs_summary 列出没有任务详细信息的作业(约小80%)
jpi_list_jobs_at_risk 列出有错过截止日期风险的工作
jpi_create_job 创建包含任务的新作业
jpi_get_job 按GUID获取作业
jpi_update_job 更新作业
jpi_delete_job 删除作业
jpi_get_task 获取工作任务
jpi_add_task 向作业中添加任务
jpi_update_task 更新作业任务
jpi_delete_task 删除作业任务
jpi_get_jcr 获取作业组件参考
jpi_add_jcr 向作业添加JCR
jpi_update_jcr 更新JCR
jpi_delete_jcr 删除JCR
jpi_create_jobs_batch 创建多个作业
jpi_update_jobs_batch 更新多个作业
jpi_delete_jobs_batch 删除多个作业
jpi_add_tasks_batch 向作业中添加多个任务
jpi_update_tasks_batch 更新多个任务
jpi_delete_tasks_batch 删除多个任务
jpi_add_jcrs_batch 添加多个JCR
jpi_update_jcrs_batch 更新多个JCR
jpi_delete_jcrs_batch 删除多个JCR
jpi_create_tasks_cross_jobs 跨多个作业创建任务
jpi_update_tasks_cross_jobs 跨多个作业更新任务
jpi_delete_tasks_cross_jobs 跨多个作业删除任务

作业模板(13个工具)

工具 说明
jpi_list_templates 列出所有模板
jpi_create_template 创建新模板
jpi_get_template 按GUID获取模板
jpi_update_template 更新模板
jpi_delete_template 删除模板
jpi_get_template_task 获取模板任务
jpi_add_template_task 将任务添加到模板
jpi_update_template_task 更新模板任务
jpi_delete_template_task 删除模板任务
jpi_get_tcr 获取模板组件引用
jpi_add_tcr 将TCR添加到模板中
jpi_update_tcr 更新TCR
jpi_delete_tcr 删除TCR

JPI事件(2个工具)

工具 说明
jpi_get_events 获取时间戳后的事件(更改日志)
jpi_get_events_filtered 获取按类型筛选的事件

资源类别(5个工具)

工具 说明
jpi_list_resource_categories 列出所有类别
jpi_create_resource_category 创建类别
jpi_get_resource_category 获取类别
jpi_update_resource_category 更新类别
jpi_delete_resource_category 删除类别

资源组(5个工具)

工具 说明
jpi_list_resource_groups 列出所有组
jpi_create_resource_group 创建组
jpi_get_resource_group 组建一个团队
jpi_update_resource_group 更新组
jpi_delete_resource_group 删除组

资源(5个工具)

工具 说明
jpi_list_resources 列出所有资源
jpi_create_resource 创建资源
jpi_get_resource 获取资源
jpi_update_resource 更新资源
jpi_delete_resource 删除资源

设置(2个工具)

工具 说明
jpi_get_settings 获取应用程序设置
jpi_update_settings 更新设置

使用示例

使用任务创建作业

{
  "Name": "Production Order 001",
  "JobNo": "PO-001",
  "DueDate": "2024-12-31T17:00:00",
  "ReleaseDate": "2024-12-01T08:00:00",
  "Strategy": "Asap",
  "OrderStatus": "Released",
  "Customer": "ACME Corp",
  "Quantity": 100,
  "Tasks": [
    {
      "TaskNo": "T010",
      "Name": "Laser Cutting",
      "ProductionTimePerUnit": 60,
      "SetupTime": 900,
      "ResourceGroupConstraints": [
        {
          "ResourceGroup": "resource-group-guid-here"
        }
      ]
    },
    {
      "TaskNo": "T020",
      "Name": "Welding",
      "ProductionTimePerUnit": 120,
      "PredecessorTaskNos": ["T010"],
      "ResourceGroupConstraints": [
        {
          "ResourceGroup": "welding-group-guid"
        }
      ]
    }
  ]
}

更新任务状态

{
  "jobGuid": "job-guid-here",
  "taskGuid": "task-guid-here",
  "TaskStatus": "Started"
}

批量创建作业

{
  "jobs": [
    { "Name": "Job 1", "Tasks": [...] },
    { "Name": "Job 2", "Tasks": [...] },
    { "Name": "Job 3", "Tasks": [...] }
  ]
}

枚举和类型

订单状态

值 描述
Quoted 工作已报价但未订购
Ordered 作业已订购但未发布
Released 工作已发布,可投入生产
Standby 作业处于待机状态

策略

值 描述
Asap 尽快安排
Jit 准时制日程安排
ASAP_PLUS 带缓冲区的ASAP
JIT_PLUS 带缓冲区的JIT

任务状态

值 描述
Planned 任务已计划
Started 任务已启动
Finished 任务已完成
None 无状态
Standby 任务处于待机状态

错误处理

所有工具都返回结构化错误响应:

{
  "error": true,
  "status": 400,
  "statusText": "Bad Request",
  "message": "JPI API Error: 400 Bad Request",
  "body": {
    "details": "Validation failed for field 'Name'"
  }
}

发展

构建

npm run build

观看模式

npm run dev

在本地运行

JPI_API_TOKEN=your-token npm start

来源

git clone https://github.com/anthropics/jpi-mcp.git
cd jpi-mcp
npm install
npm run build
npm start

API 参考

此MCP服务器包装JPI REST API v1。关于API的详细文件:

许可证

麻省理工学院

贡献

欢迎投稿!请打开问题或提交拉取请求。