Andon SOP MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Andon SOP MCP Server查询最近一周的异常报表"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Andon SOP MCP Server
这是一个面向 WorkBuddy 的本地 MCP Server,用于连接 MES 系统,提供 SOP 上传辅助工具和异常报表查询工具。
当前项目通过 MCP stdio 协议与 WorkBuddy 通信,通过 HTTP REST 接口访问 MES 后端。
架构
WorkBuddy
|
| MCP Protocol (stdio)
v
本地 MCP Server(本项目)
|
| HTTP REST / 登录鉴权
v
MES 系统Related MCP server: Industrial MCP Agent Platform
环境要求
Node.js >= 18
npm
WorkBuddy
可访问的 MES 后端服务
MES 登录账号和密码,或可用的 MES 鉴权配置
快速开始
1. 安装依赖
进入项目根目录:
cd D:\svn-workspace\andon_sop-mcp安装依赖:
npm install2. 配置 MES 连接
配置文件位于:
config\mes-config.json示例:
{
"mes": {
"baseUrl": "http://localhost:9998",
"auth": {
"type": "login",
"username": "superadmin",
"password": "1234554321",
"loginUrl": "/main/login",
"contentType": "application/x-www-form-urlencoded"
},
"timeout": 300000,
"queryTimeoutMs": 25000,
"retry": 3,
"writeIntervalMs": 2400
},
"tools": {
"likeSelectMaterielList": true,
"selectCategoryTreeList": true,
"uploadSop": true
}
}字段说明:
字段 | 说明 |
| MES 后端地址。如果 MES 不在本机,不要使用 |
| 当前使用 |
| MES 用户名。 |
| MES 密码。 |
| MES 登录接口路径。 |
| 普通请求超时时间,单位毫秒。 |
| 查询类请求超时时间,单位毫秒。 |
| 网络失败后的重试次数。 |
| 写入类接口调用间隔,用于避开 MES 防重复提交限制。 |
| 控制 MCP 工具是否启用, |
3. 编译
npm run build编译后入口文件是:
dist\src\index.js4. 本地手动启动测试
$env:MES_CONFIG_PATH="D:\svn-workspace\andon_sop-mcp\config\mes-config.json"
node D:\svn-workspace\andon_sop-mcp\dist\src\index.js如果看到类似日志,说明 MCP Server 已启动:
MES TaskReport MCP Server starting...
Config loaded from: D:\svn-workspace\andon_sop-mcp\config\mes-config.json
Registered 3 tools: likeSelectMaterielList, selectCategoryTreeList, uploadSop
MES TaskReport MCP Server is ready. Waiting for requests...这是 stdio MCP,启动后会等待客户端连接,终端没有继续输出是正常的。测试结束后按 Ctrl + C 退出。
WorkBuddy 配置
在 WorkBuddy 的自定义 MCP 配置中填写:
{
"mcpServers": {
"andon-sop-mcp": {
"type": "stdio",
"command": "node",
"args": [
"D:\\svn-workspace\\andon_sop-mcp\\dist\\src\\index.js"
],
"cwd": "D:\\svn-workspace\\andon_sop-mcp",
"env": {
"MES_CONFIG_PATH": "D:\\svn-workspace\\andon_sop-mcp\\config\\mes-config.json"
}
}
}
}说明:
字段 | 说明 |
| 固定使用 |
| 启动命令,这里是 |
| MCP 编译后的入口文件。 |
| 项目根目录,即 |
| 指定 |
Windows 路径写到 JSON 中时,\ 要写成 \\。
可用工具
Tool | 用途 |
| 按物料名称模糊分页查询物料,返回物料 ID、名称、编码。 |
| 查询 SOP 分类列表,返回分类 ID 和分类名称。 |
| 上传 SOP 文件到 MES。 |
典型使用流程
上传 SOP
准备或生成 SOP 文件,并拿到本地文件路径
file_path。如果只有物料名称,调用
likeSelectMaterielList查询物料,让用户选择正确物料,使用表格中的物料 ID 作为materielId。如果没有 SOP 分类 ID,调用
selectCategoryTreeList查询分类,让用户选择正确分类,使用表格中的分类 ID 作为esopCategoryId。确认
version、procedureId。参数齐全后调用
uploadSop。
uploadSop 必需参数:
参数 | 说明 |
| 本地 SOP 文件路径,MCP Server 所在机器必须能读取。 |
| SOP 版本号。 |
| 物料 ID。 |
| 工序 ID。 |
| SOP 分类 ID。 |
不要猜测 materielId、procedureId、esopCategoryId。如果用户没有明确提供,应先查询或追问。
Skills
项目内置了 WorkBuddy 使用流程说明:
skills\mes-sop-abnormal-workflows\SKILL.md该技能重点说明:
上传 SOP 应按什么流程调用 MCP 工具
哪些 ID 不能猜,必须查询或询问用户
自包含打包
项目提供 scripts\bundle.mjs,用于把 MCP Server 打包成单个 JS 文件:
npm run bundle输出文件:
andon_sop-mcp.js这种方式适合分发给其他电脑使用。对方仍需要:
Node.js >= 18
config\mes-config.jsonWorkBuddy MCP 配置指向打包后的 JS 文件
如果执行 npm run bundle 报找不到 esbuild,先执行:
npm install项目结构
andon_sop-mcp/
├─ config/
│ ├─ mes-config.json # MES 实际连接配置
│ ├─ mes-config.example.json # MES 配置示例
│ └─ 说明.txt # WorkBuddy 配置简要说明
├─ docs/
│ └─ workbuddy配置教程.md # WorkBuddy 详细配置教程
├─ scripts/
│ └─ bundle.mjs # esbuild 打包脚本
├─ skills/
│ └─ mes-sop-abnormal-workflows/
│ └─ SKILL.md # WorkBuddy 业务流程技能说明
├─ src/
│ ├─ index.ts # MCP Server 入口
│ ├─ tools/
│ │ ├─ index.ts # 工具注册
│ │ ├─ like_select_materiel_list.ts
│ │ ├─ select_category_tree_list.ts
│ │ ├─ upload_sop.ts
│ │ └─ query_abnormal_report_page.ts
│ ├─ services/
│ │ ├─ mesClient.ts # MES HTTP 客户端
│ │ ├─ authService.ts # 登录和 token 管理
│ │ └─ entityResolverService.ts
│ ├─ types/
│ │ ├─ api.ts
│ │ └─ toolContent.ts
│ └─ utils/
│ └─ logger.ts # 日志输出到 stderr,避免干扰 MCP stdio
├─ test/
├─ package.json
└─ tsconfig.json常见问题
MCP error -32000: Connection closed
通常表示 WorkBuddy 启动了本地 MCP 进程,但 MCP 进程马上退出。
优先检查:
是否执行过
npm run build。dist\src\index.js是否存在。WorkBuddy 配置里的
cwd是否是项目根目录。MES_CONFIG_PATH是否指向真实存在的config\mes-config.json。mes-config.json是否是合法 JSON。node命令是否可用。
MES 接口连不上
检查 config\mes-config.json:
"baseUrl": "http://localhost:9998"如果 MES 后端不在本机,必须改成真实 MES 地址。
工具没有出现
检查 config\mes-config.json 的 tools 配置。设置为 false 的工具不会注册。
开发命令
# 编译 TypeScript
npm run build
# 运行测试
npm test
# 启动 MCP Server
npm start
# 打包成单个 JS 文件
npm run bundle扩展工具
新增 MCP 工具时:
在
src\tools下新增工具文件。导出
name、description、inputSchema、handler。在
src\tools\index.ts中注册。在
config\mes-config.json的tools中增加开关。添加对应测试。
Available Tools
12 toolsauditProductionTaskA
批量下达生产任务,调用 /productionTask/audit。调用本工具前必须先调用 queryProductionTaskList 查询生产任务并让用户选择要下达的任务。只有 checkStatus 为 0(未下达)的生产任务允许下达;其他状态不能下达。本工具会在下达前校验每个生产任务的 checkStatus。
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | 要下达的生产任务列表。必须来自 queryProductionTaskList 查询结果,支持批量下达。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description covers validation behavior (checking checkStatus before release) and preconditions. However, it does not disclose error handling (e.g., partial failures, atomicity) or side effects beyond validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose first, then prerequisites, then constraints. Each sentence adds value without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details about the return value or output, especially since there is no output schema. The description covers preconditions and validation but does not explain what the tool returns (e.g., success/failure details).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with detailed field descriptions. The description reinforces that tasks must come from queryProductionTaskList and checkStatus must be 0, but these are already implicit in the schema. No new semantic constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '批量下达生产任务' (batch release production tasks) and specifies the API endpoint. It also distinguishes itself from siblings like reverseAuditProductionTask, which likely reverts releases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states that queryProductionTaskList must be called first, tasks must be selected by the user, and only tasks with checkStatus=0 are allowed. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispatchToStationA
将一个或多个 SOP 派发到工位机。调用本工具前必须先调用 querySopList 查询并选择 SOP,ids 来自 SOP 记录 id;还必须先调用 queryWorkstationList 查询并选择工位机,stationId 和 stationName 必须来自同一条工位机记录。本工具支持批量派发,会把多个 SOP id 用英文逗号拼接为 ids。
| Name | Required | Description | Default |
|---|---|---|---|
| sops | Yes | 要派发的 SOP 列表。必须来自 querySopList 查询结果,支持批量派发。 | |
| stationId | Yes | 工位机ID。必须来自 queryWorkstationList 返回的同一条工位机记录 id。 | |
| stationName | Yes | 工位机名称。必须来自 queryWorkstationList 返回的同一条工位机记录。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states the action and prerequisites but fails to disclose side effects, success/error behavior, or whether it is destructive. The mismatch between description (comma-separated ids) and schema (array) adds opacity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states purpose, the second provides usage guidance. No redundant information, though the mention of 'ids' could be aligned with the schema to avoid confusion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers purpose, prerequisites, and batch support, it lacks information about return values (no output schema) and has a discrepancy between described concatenation and actual array input. This leaves some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions on all parameters. The description adds value by emphasizing data source consistency (ids from querySopList, stationId/stationName from same workstation record) and batch dispatching behavior. This goes beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Dispatch one or more SOPs to workstation' with a specific verb and resource. It distinguishes from sibling tools like querySopList and uploadSop by focusing on dispatching. However, the mention of 'ids concatenated with commas' contradicts the actual schema which expects an array of objects, causing minor confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states prerequisites: must call querySopList and queryWorkstationList first, and ensures stationId and stationName come from the same record. It also mentions batch support. It doesn't explicitly state when not to use, but the context is clear given prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
likeSelectMaterielListA
按 MES 表单配置动态分页查询物料列表。会先读取 Materiel 表单字段配置,构建查询参数,查询 /materiel/queryPageMap,并使用数据字典翻译展示值。调用 uploadSop 前可先用本工具查询物料,并从返回的 Work Buddy 查询上下文中读取记录 id 作为 materielId。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,从 1 开始。默认 1。 | |
| limit | No | 每页数量,默认 10,最大 100。 | |
| contain | No | 初始化表单字段时只包含指定字段,默认空。 | |
| exclude | No | 初始化表单字段时排除指定字段,默认空。 | |
| filters | No | 动态查询条件。key 必须是 Materiel 表单字段 field;文本字段模糊查,时间字段传 {start,end} 范围查。例如按物料名称查传 {"name":"关键字"},按物料编码查传 {"code":"关键字"}。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes reading form config, querying an endpoint, and using data dictionary. No annotations exist, so description carries full burden. It implies read-only but doesn't explicitly state safety, auth requirements, or rate limits. Adequate but missing some details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-loaded with main action and process details. Every sentence adds value without redundancy. Concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and annotations. Description explains internal logic but does not detail the return format (e.g., fields in material records). For a query tool, the agent may need to know what properties are available. Gaps in safety and output details reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds value by explaining the process (reading form config) which gives context to contain/exclude parameters, and the filters parameter is well-described. The description enhances understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it queries material lists with dynamic pagination according to MES form configuration. It specifies the endpoint, data dictionary translation, and a specific use case (before uploadSop). This distinguishes it from siblings which query SOPs, tasks, workstations, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to use before uploadSop to retrieve materielId. While it doesn't explicitly list when not to use, the context implies it's for material queries, and siblings handle other entities. Clear usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previewSopFileA
预览 SOP 文件异常标注点图片。调用本工具前应先调用 queryAbnormalDrawingList 查询 SOP 异常图纸/异常标注点列表,并让用户选择要查看的记录 id。本工具会访问 /attachment/getMapById,根据返回实体中的文件路径字段拼接前端可访问的图片 URL。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 异常图纸/异常标注点记录ID,必须来自 queryAbnormalDrawingList 返回记录的 id。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It reveals the internal API call to /attachment/getMapById and explains URL construction. Although it doesn't mention safety (read-only) or auth, the description offers sufficient transparency for a preview tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences. It front-loads the purpose and proceeds with usage instructions. Every sentence earns its place with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter with 100% schema coverage and no output schema, the description provides complete context: it explains the prerequisite step, the internal call, and the result (a frontend-accessible URL). For a simple preview tool, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the id parameter. However, the description adds meaning beyond schema by tying the id to a specific source (queryAbnormalDrawingList results) and explaining its role, which helps the agent use the parameter correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to preview abnormal marked points in SOP files. It uses a specific verb ('preview') and resource ('SOP file abnormal marking points'), and distinguishes it from sibling tools by explicitly mentioning a prerequisite call to queryAbnormalDrawingList.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: after calling queryAbnormalDrawingList and after user selects a record id. It provides clear context but does not mention when not to use it or list alternatives, which is acceptable given the straightforward workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryAbnormalDrawingListA
分页查询SOP异常图纸列表。会先调用 /form/initFieldData 读取 AbnormalDrawing 表单字段配置,再调用 /attachment/queryPageMap 查询分页数据;分页查询 className 固定为 Attachment,并固定传入 fileType=abnormalDrawing。返回的 Work Buddy 查询上下文会包含每条记录的 id,方便后续选择异常图纸记录继续操作。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,从 1 开始。默认 1。 | |
| limit | No | 每页数量,默认 10,最大 100。 | |
| contain | No | 初始化表单字段时只包含指定字段,默认空。 | |
| exclude | No | 初始化表单字段时排除指定字段,默认空。 | |
| filters | No | 动态查询条件。key 必须是 AbnormalDrawing 表单字段 field;文本字段模糊查,时间字段传 {start,end} 范围查。fileType 不需要传,本工具会固定为 abnormalDrawing。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses internal API calls, fixed parameters (className, fileType), and that returned context includes record IDs. No annotations provided, so description carries burden; it offers good insight beyond basic functionality, though omits error handling and auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: front-loads main purpose, then explains internal steps. Could be slightly shorter, but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key aspects: pagination, internal process, fixed parameters, and returned context (ids). Lacks output schema, but description compensates with details. Sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema: explains filters parameter semantics (field names, fuzzy/range matching), and that fileType is fixed. With 100% schema coverage, baseline is 3, but description enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: paginated query of SOP abnormal drawing list. It details the internal process (two API calls) and fixed parameters, distinguishing it from sibling tools like auditProductionTask and querySopList.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While it describes what it does, it lacks conditions, exclusions, or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryProductionTaskListA
分页查询生产任务列表。会先调用 /form/initFieldData 读取 ProductionTask 表单字段配置,再调用 /productionTask/queryPageMap 查询分页数据,并使用数据字典翻译展示值。返回的 Work Buddy 查询上下文会包含每条记录的 id,方便后续按生产任务记录继续操作。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,从 1 开始。默认 1。 | |
| limit | No | 每页数量,默认 10,最大 100。 | |
| contain | No | 初始化表单字段时只包含指定字段,默认空。 | |
| exclude | No | 初始化表单字段时排除指定字段,默认空。 | |
| filters | No | 动态查询条件。key 必须是 ProductionTask 表单字段 field;文本字段模糊查,时间字段传 {start,end} 范围查。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description discloses the internal flow (two API calls, data dictionary translation) and notes that the returned context includes record IDs. It does not explicitly state read-only behavior, but as a query tool it is implicitly safe. The description adds value beyond the annotations gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences), front-loaded with the main purpose, and every sentence adds necessary detail. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the internal flow and mentions that returned records include IDs, but lacks details on pagination metadata (e.g., total pages) or complete response structure. Since no output schema exists, more detail on the return format would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline 3. The description adds value by explaining the filters parameter format (fuzzy text, range for time fields) and the purpose of contain/exclude for field initialization, which goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '分页查询生产任务列表' (paged query for production task list), specific verb+resource. It distinguishes from sibling tools like auditProductionTask (audit) and dispatchToStation (dispatch) by being a query-only tool, which is evident from the context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing production tasks with pagination, but does not explicitly state when to use this tool compared to siblings like querySopList or queryWorkstationList. No exclusions or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
querySopListA
分页查询 SOP 列表。会先调用 /form/initFieldData 读取 ESOPAttachment 表单字段配置,再调用 /esopAttachment/queryPageMap 查询分页数据,并使用数据字典翻译展示值。返回的 Work Buddy 查询上下文会包含每条记录的 id,方便后续按 SOP 记录继续操作。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,从 1 开始。默认 1。 | |
| limit | No | 每页数量,默认 10,最大 100。 | |
| contain | No | 初始化表单字段时只包含指定字段,默认空。 | |
| exclude | No | 初始化表单字段时排除指定字段,默认空。 | |
| filters | No | 动态查询条件。key 必须是 ESOPAttachment 表单字段 field;文本字段模糊查,时间字段传 {start,end} 范围查。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the internal API calls, data dictionary translation, and that returned context includes record IDs. However, it does not mention rate limits or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise with three sentences. Each sentence provides value: purpose, internal workflow, and output context. It is front-loaded but slightly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not specify the full return format or pagination metadata. It mentions record IDs but lacks details on total count, page indicators, or example output. Adequate for a paginated query but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. The description adds context that filters use ESOPAttachment form fields, with text fuzzy search and time range syntax, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries SOP list with pagination, detailing internal calls and data processing. It is distinct from sibling tools like auditProductionTask or dispatchToStation, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does and mentions returned context for further operations, but does not provide explicit guidance on when to use it versus alternatives or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryWorkstationListA
查询工位机列表。会读取 AndonSysUser 表单配置,查询 /user/queryPageMap,并固定带上 accountType=1。返回的 Work Buddy 查询上下文会包含每条工位机记录的 id,方便后续选择工位机。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,从 1 开始。默认 1。 | |
| limit | No | 每页数量,默认 20,最大 100。 | |
| contain | No | 初始化表单字段时只包含指定字段,默认空。 | |
| exclude | No | 初始化表单字段时排除指定字段,默认空。 | |
| filters | No | 动态查询条件。key 必须是 AndonSysUser 表单字段 field;文本字段模糊查,时间字段传 {start,end} 范围查。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses reading a form config, using a specific endpoint, and always adding accountType=1. It is read-only but does not mention auth needs, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every sentence adds value. No redundant or vague information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions that the returned context includes id for each workstation, which is useful for selection. However, no output schema is provided, and the description lacks details on pagination metadata or other fields returned. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining that filters key must be AndonSysUser form fields, and that text fields use fuzzy match while time fields use range. This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '查询工位机列表' (query workstation list) and provides specific details about the underlying endpoint, fixed parameter, and returned context. It distinguishes from siblings like auditProductionTask or dispatchToStation, which are clearly different tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing workstations and mentions returning context for selection, but does not explicitly state when not to use or name alternatives. However, sibling tools are all distinct, so no confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverseAuditProductionTaskA
批量反下达生产任务,调用 /productionTask/reverseAudit。调用本工具前必须先调用 queryProductionTaskList 查询生产任务并让用户选择要反下达的任务。只有 checkStatus 为 1(已下达)的生产任务允许反下达;其他状态不能反下达。本工具会在反下达前校验每个生产任务的 checkStatus。
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | Yes | 要反下达的生产任务列表。必须来自 queryProductionTaskList 查询结果,支持批量反下达。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses validation behavior (checks checkStatus before reversal), but does not detail side effects, reversibility, or success/failure responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, no fluff. Purpose and prerequisite are front-loaded. Every sentence adds essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites and validation adequately for a simple batch tool. No output schema, but missing error handling or return format details are acceptable given tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage. Description adds meaningful value by requiring data to come from queryProductionTaskList and explaining the checkStatus constraint, going beyond schema basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '批量反下达生产任务' (batch reverse-audit production tasks) and specifies the API endpoint. It distinguishes itself from sibling tools like 'auditProductionTask' by focusing on reverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite: must call queryProductionTaskList first. Specifies that only tasks with checkStatus=1 are allowed, providing clear when-to-use guidance and preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saveCategoryA
新增 SOP 分类。调用前应先使用 selectCategoryTreeList 查询分类树,让用户选择父分类;将选择数据中的 id 作为 parentId。未传 parentId 时默认创建到 ROOT。
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | 新分类名称。 | |
| parentId | No | 父分类ID,来自 selectCategoryTreeList 返回的 Work Buddy 分类选择数据;不传则默认 ROOT。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the creation action, the dependency on selectCategoryTreeList, and the default ROOT parent. While it doesn't mention permissions or side effects, the tool is simple (non-destructive create) and the description is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences in Chinese, front-loaded with purpose. No redundant words; every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters, no output schema, and no annotations, the description covers purpose, prerequisite call, parameter usage, and default behavior thoroughly. An agent can use it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds value by specifying that parentId comes from selectCategoryTreeList and that omitting it defaults to ROOT. This complements the schema well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '新增 SOP 分类' (create a new SOP category), with a specific verb (add/create) and resource (SOP category). This distinguishes it from sibling tools like selectCategoryTreeList (query categories) and uploadSop (upload files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to first call selectCategoryTreeList to let the user select a parent category and use its id as parentId. Also explains default behavior when parentId is omitted. This provides clear when-to-use and step-by-step guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selectCategoryTreeListB
查询 SOP 分类树并扁平化展示。展示给用户时只显示层级和分类名称;Work Buddy 可从结果中的选择数据读取 id 作为 esopCategoryId。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that the tree is flattened but does not disclose any additional behavioral traits such as access permissions, rate limits, or how the tree is constructed. For a query tool, more detail on the nature of the returned data would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that front-load the main purpose and then provide a brief usage note. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description covers the basic purpose and output usage. However, it does not specify the exact shape of the output (e.g., fields like id, level, name) which would be useful for the agent to integrate the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so there is nothing for the description to clarify. With 100% schema coverage (trivially), the description adds no further meaning, but this is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('查询' meaning query) and resource ('SOP 分类树' meaning SOP category tree) and specifies that the output is flattened. It is specific enough to distinguish from siblings like saveCategory or querySopList, though no explicit differentiation is given.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance: when displaying to users, only show level and category name, and that Work Buddy can use the id from results as esopCategoryId. However, it does not discuss when to use this tool versus alternatives or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uploadSopB
上传 SOP 文件到 MES 系统。只有在所有参数齐全后才能调用。
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | SOP 版本号。 | |
| file_path | Yes | 本地 SOP 文件路径,必须是 MCP Server 所在机器可读取的路径。 | |
| materielId | Yes | 物料ID,来自 likeSelectMaterielList 返回的物料ID。 | |
| esopCategoryId | Yes | SOP 分类ID,来自 selectCategoryTreeList 返回的分类ID。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states the upload action but does not mention whether it overwrites existing files, success/failure behavior, required permissions, or any side effects. This is insufficient for a file upload tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences without unnecessary words. The first sentence states the purpose, the second adds a usage condition. However, it is very brief and could include more useful information without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, error conditions, or file processing details. For an upload tool, this leaves the agent without critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a description. The tool description adds no additional meaning beyond the schema, such as format constraints or dependencies between parameters. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '上传 SOP 文件到 MES 系统' (upload SOP file to MES system), using a specific verb and resource. It effectively distinguishes from sibling tools like previewSopFile or querySopList which are read-only or list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is '只有在所有参数齐全后才能调用' (only call when all parameters are complete), which is a trivial condition. No context is provided on when to use this tool versus alternatives, nor any prerequisites like needing IDs from likeSelectMaterielList or selectCategoryTreeList (though schema mentions sources).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose targeting different entities or actions. Query tools are differentiated by entity type (production task, SOP, workstation, etc.) and action tools are uniquely named (audit, dispatch, upload). There is no ambiguity or overlap.
Tool names follow a consistent verb_noun pattern in camelCase (e.g., queryProductionTaskList, auditProductionTask). Some names like 'likeSelectMaterielList' and 'dispatchToStation' deviate slightly but remain understandable. Overall predictable.
With 12 tools covering production task management, SOP file operations, workstation dispatch, material queries, and category management, the count is well-scoped for the server's purpose. Each tool earns its place without redundancy.
Core workflows are covered: querying, creating (category, SOP), approving tasks, and dispatching. However, missing update and delete operations for several entities (e.g., no update for production tasks or categories) leave notable gaps that may require agents to work around.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Support & Service Management
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for Product Management
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server enabling CAD interaction with Creo Parametric and knowledge base retrieval from Volcengine.6MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for integrating manufacturing systems (MES/ERP/quality/maintenance) with LLM agents, enabling event ingestion, incident triage, approval workflows, and RAG-based knowledge retrieval.MIT
- AlicenseAqualityBmaintenanceMCP server that unifies real-time telemetry from industrial systems into a single queryable interface, enabling production visibility, anomaly detection, and operational insights.5190MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for HolmesGPT that provides runbook search, gap detection, AI-assisted drafting, and root cause analysis by integrating with Confluence and Git providers.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/guansuian/sop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server