JPI MCP服务器
模型上下文协议(MCP)服务器 Just Plan It(JPI) API集成。该服务器使AI助手能够与JPI作业调度和资源管理系统进行交互。
特性
- 69 MCP工具 涵盖所有JPI API端点
- 所有JPI实体的完整CRUD操作
- 批量操作,实现高效批量更新
- 跨作业任务操作
- 类型安全的TypeScript实现
- 全面的错误处理
快速开始
先决条件
- Node.js 18+
- JPI API令牌(从 只是计划一下)
克劳德代码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的详细文件:
许可证
麻省理工学院
贡献
欢迎投稿!请打开问题或提交拉取请求。