Skip to main content
Glama

泛微 E10 OA MCP 服务

通过 MCP (Model Context Protocol) 连接泛微 E10 OA,查询程序修改流程列表和详情。

快速开始

1. 安装

# Windows
setup.bat

# Linux / macOS
chmod +x setup.sh && ./setup.sh

或手动安装:

pip install -e .

2. 配置

复制 .env.example.env,填入实际配置:

WEAVER_BASE_URL=http://oa.yourcompany.com
WEAVER_CORPID=your_corpid
WEAVER_APP_KEY=your_app_key
WEAVER_APP_SECRET=your_app_secret
WEAVER_USER_ID=your_user_id          # E10 长数字格式
WEAVER_WORKFLOW_ID=your_workflow_id  # 程序修改流程的工作流ID

3. 启动

python -m weaver_mcp

4. 接入 MCP 客户端

在 MCP 客户端配置文件中添加(参考 mcp-config.example.json):

{
  "mcpServers": {
    "weaver-oa": {
      "command": "python",
      "args": ["-m", "weaver_mcp"],
      "cwd": "/path/to/weaver-mcp"
    }
  }
}

也可通过环境变量直接配置,无需 .env 文件。

Related MCP server: ConnectWise API Gateway MCP Server

MCP 工具列表

工具名

功能

说明

test_connection

测试连接

验证 OAuth2 认证和配置是否正确

list_program_modification_workflows

查询程序修改流程列表

支持 date_range 日期筛选

get_workflow_detail

获取流程详情

包含表单数据、审批记录

get_program_modification_details

组合查询

一步完成列表+详情

list_all_workflows

所有流程列表

支持 date_range 日期筛选

list_todo_workflows

待办流程列表

需后台授权

list_my_workflows

我的请求列表

需后台授权

list_processed_workflows

已办流程列表

需后台授权

query_employee

查询人员信息

需后台授权

日期筛选参数

date_range 可选值:

含义

TODAY

今天

CURRENT_WEEK

本周

CURRENT_MONTH

本月

CURRENT_SEASON

本季度

CURRENT_YEAR

本年

PRE_MONTH

上一月

PRE_YEAR

上一年

泛微后台配置

获取应用凭证

  1. 登录 E10 后台管理中心

  2. 进入 开放平台 → 开发者资料,获取 corpid

  3. 进入 开放平台 → 应用管理,创建应用,获取 app_keyapp_secret

授权 API 权限

路径:E10 后台 → 开放平台 → 应用管理 → 应用详情 → API 权限

需要授权的接口:

接口

必需

用途

getAllWorkflowRequestList

查询流程列表

getWorkflowRequest

获取流程详情

getToDoWorkflowRequestList

查询待办列表

getMyWorkflowRequestList

查询我的请求

getProcessedWorkflowRequestList

查询已办列表

queryEmployee

查询人员信息

获取用户 ID

E10 的 userId 是长数字格式(如 1234567890123456789),获取方式:

  • 在 E10 后台 → 人员管理中查看用户详情

  • 或授权 queryEmployee 接口后通过 API 查询

技术架构

weaver-mcp/
├── weaver_mcp/               # Python 包
│   ├── __init__.py
│   ├── __main__.py           # 入口点 (python -m weaver_mcp)
│   ├── config.py             # 配置加载
│   ├── weaver_client.py      # 泛微 API 客户端
│   └── main.py               # MCP 工具定义
├── .env                      # 实际配置(不提交)
├── .env.example              # 配置模板
├── mcp-config.example.json   # MCP 客户端配置示例
├── pyproject.toml            # Python 打包配置
├── requirements.txt          # 依赖清单
├── setup.bat / setup.sh      # 一键安装脚本
└── README.md

API 端点

类型

路径

方法

OAuth2 授权

/openserver/oauth2/authorize

GET

OAuth2 Token

/openserver/oauth2/access_token

POST

流程列表

/papi/openapi/api/workflow/list/paService/v1/getAllWorkflowRequestList

POST

流程详情

/papi/openapi/api/workflow/core/paService/v1/getWorkflowRequest

GET

人员查询

/papi/openapi/api/hrm/restful/queryEmployee

POST

环境要求

  • Python 3.10+

  • 网络可访问泛微 OA 服务器

Available Tools

10 tools
get_program_modification_detailsA

获取程序修改流程列表及其详情(组合查询)

自动完成"查列表 → 拿ID → 获取详情"的完整流程。 先查询程序修改流程列表,再批量获取每个流程的详细信息。

Args: page_no: 页码,从1开始 page_size: 每页条数(默认5,避免请求过多)

Returns: 包含流程列表和每个流程详情的 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
page_noNo
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool performs a multi-step read operation (query list, then batch-fetch details) and returns a JSON string. It also explains why the default page_size is 5 ('避免请求过多'), adding useful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: purpose, workflow behavior, then args and return type. Each sentence adds value, and the key information is front-loaded. There is no repetition of schema fields beyond useful semantic annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter composite read tool, the description covers the operation, argument semantics, and return format sufficiently, especially given that an output schema is indicated. It could be slightly stronger by explicitly routing to sibling tools for single-step needs, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by documenting both parameters: page_no starts at 1, and page_size has a default of 5 with a rationale. This gives the agent the semantic meaning needed to invoke the tool correctly, which the bare input schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '获取程序修改流程列表及其详情' (get program modification workflow list and its details), and explicitly identifies it as a combined query. This clearly distinguishes it from siblings like list_program_modification_workflows and get_workflow_detail by covering the whole list→detail flow in one call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys that this tool is for when you need both the list and the details, describing the automatic 'list → ID → detail' flow. It does not explicitly name alternatives or state when not to use it, but the combined-query framing makes the intended usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_workflow_detailA

获取流程详情

根据流程请求ID获取流程的详细信息,包括表单数据、审批记录等。 这是获取程序修改具体内容的核心接口。

Args: request_id: 流程请求ID(从流程列表返回的 requestid 字段获取) is_get_form_data: 是否获取表单数据,默认true is_get_request_log: 是否获取签字意见,默认true

Returns: 流程详情 JSON 字符串,包含表单字段值、审批意见、流转日志等

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes
is_get_form_dataNo
is_get_request_logNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that the operation returns a JSON string containing form field values, approval opinions, and routing logs, and it explains what the two boolean flags toggle. It does not mention error cases, permissions, or side effects, but the read-only nature is clearly indicated by '获取'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured: a purpose statement, an Args block, and a Returns block. Information is front-loaded and each section has a clear role. The first line merely repeats the tool name and the 'core interface' sentence is mildly promotional, but the overall density is good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and the presence of an output schema, the description is largely complete: it covers parameter semantics, the source of request_id, and the general return content. It could add guidance on when to set the booleans false or how to handle errors, but those are minor gaps for a read-only detail lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates in the Args section. It explains that request_id comes from the workflow list's requestid field and clarifies the meaning and defaults of is_get_form_data and is_get_request_log. Some details, like the booleans' defaults, are redundant with the schema, but the added semantics are non-obvious and useful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '获取流程详情' and '根据流程请求ID获取流程的详细信息,包括表单数据、审批记录等'. It also identifies itself as the core interface for getting program modification content. However, it does not explicitly disambiguate from the sibling get_program_modification_details, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context well: the request_id should come from the workflow list's requestid field, and this tool is the core way to get the actual modification content. But it never explicitly states when not to use it, what conditions select this tool over sibling list/detail tools, or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_all_workflowsA

获取所有流程列表(支持按流程类型和日期筛选)

获取当前用户可见的所有流程列表。

Args: page_no: 页码,从1开始 page_size: 每页条数 date_range: 日期筛选,可选值: TODAY(今天), CURRENT_WEEK(本周), CURRENT_MONTH(本月), CURRENT_SEASON(本季度), CURRENT_YEAR(本年), PRE_MONTH(上一月), PRE_YEAR(上一年) 留空则不筛选日期 workflow_id: 工作流模板ID,留空则使用默认配置的程序修改流程ID。 已知流程类型ID: - 程序修改审批: 1228999200920870994 - 研发报工: 1230367835375575122 - 研发日志: 1222687239679377410 - 出差申请流程: 1105613930453606403 - 报销申请: 1117917637315977296 - 备件业务审批: 1296790062983503878 - 合同类项目立项: 1295604918247448577 all_types: 为 True 时返回所有流程类型(不按 workflowid 过滤)

Returns: 所有流程列表 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
page_noNo
all_typesNo
page_sizeNo
date_rangeNo
workflow_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses current-user scoping, default workflow_id behavior, all_types override behavior, date-range options, and that the return value is a JSON string. It does not mention potential errors or rate limits, but the read-only fetch nature is clear from the verb '获取'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The Args-style structure is clean and front-loaded with the tool's purpose. There is minor redundancy between the first two sentences, both stating the 'all workflows list' idea, but the content is otherwise efficient and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for invoking the tool: it covers all parameters, provides known IDs, explains filtering behavior, and notes the return type. An output schema exists, so detailed return-field documentation is not required. The main gap is the lack of explicit guidance on how this tool relates to the sibling workflow-list tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining every parameter: page_no, page_size, date_range with enumerated allowed values, workflow_id with known process type IDs, and all_types semantics. This adds substantial meaning beyond the bare schema names and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation: '获取当前用户可见的所有流程列表' (get all workflows visible to the current user), supported by type/date filtering. The 'all' scope distinguishes it from sibling list tools focused on my/todo/processed/program-modification workflows. The verb and resource are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys the tool's context—listing all workflows visible to the current user—but does not explicitly state when to prefer this tool over list_my_workflows, list_todo_workflows, list_processed_workflows, or get_workflow_detail. Usage must be inferred from the name and scope rather than stated directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_workflowsA

获取我的请求流程列表

获取当前用户发起的流程列表。

Args: page_no: 页码,从1开始 page_size: 每页条数 workflow_id: 工作流模板ID,留空则使用默认配置 all_types: 为 True 时返回所有流程类型

Returns: 我的请求流程列表 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
page_noNo
all_typesNo
page_sizeNo
workflow_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses the return format as a JSON string and explains the all_types parameter's effect. However, it does not mention auth requirements, error behavior, ordering, or explicitly confirm read-only status, leaving some transparency gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with a clear Args section. The first sentence '获取我的请求流程列表' is somewhat redundant with the tool name, but the following sentence adds meaningful scope, so there is only minor waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 undocumented parameters, no annotations, and multiple sibling list tools, the description provides adequate parameter semantics and return information. It lacks explicit sibling differentiation and behavioral caveats, but an output schema exists, reducing the need to describe return values in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description fully compensates by explaining all four parameters: page_no starts at 1, page_size controls count, workflow_id defaults to a configured template when empty, and all_types=true returns all workflow types. This goes well beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '获取当前用户发起的流程列表' (get workflows initiated by the current user). This clearly distinguishes the tool from siblings like list_all_workflows, list_todo_workflows, and list_processed_workflows by defining the exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use the tool: when the current user's own initiated workflows are needed. It does not explicitly name alternatives or provide when-not-to-use guidance, but the scope is clear enough for an agent to select it among the sibling list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_processed_workflowsB

获取已办(归档)流程列表

获取当前用户已处理的流程列表。

Args: page_no: 页码,从1开始 page_size: 每页条数 workflow_id: 工作流模板ID,留空则使用默认配置 all_types: 为 True 时返回所有流程类型

Returns: 已办流程列表 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
page_noNo
all_typesNo
page_sizeNo
workflow_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden of behavioral disclosure. It only states that the tool returns a JSON string and mentions arguments; it does not explicitly state that the operation is read-only, how pagination behaves, what 'archived' means, or what errors or edge cases to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose statement followed by Args and Returns sections. The argument details are concise and easy to scan. The first sentence is slightly redundant with the second, but the overall structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and all parameters are described, the core invocation details are covered. However, with no annotations and several overlapping sibling tools, the description is missing guidance on alternatives and deeper behavioral context, leaving the agent to infer when this specific list is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by explaining every parameter: page_no starts at 1, page_size is per-page count, workflow_id defaults to the default configuration when blank, and all_types returns all workflow types when True. This adds meaning well beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving a list of '已办(归档)流程' (processed/archived workflows) and further restricts it to '当前用户已处理' (current user's processed items). This gives a specific verb, resource, and scope, but it doesn't explicitly contrast the tool with sibling tools like list_todo_workflows or list_all_workflows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for a current user's processed/archived workflows, but it provides no explicit guidance on when to choose this tool over siblings such as list_todo_workflows, list_my_workflows, or list_all_workflows. There are no exclusion criteria or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_program_modification_workflowsA

查询程序修改流程列表

使用配置的 workflowid 查询该工作流类型的所有流程实例。 返回流程列表,每个流程包含 requestId(用于获取详情)、标题、状态、创建人等。

Args: page_no: 页码,从1开始,默认1 page_size: 每页条数,默认20 date_range: 日期筛选,可选值: TODAY(今天), CURRENT_WEEK(本周), CURRENT_MONTH(本月), CURRENT_SEASON(本季度), CURRENT_YEAR(本年), PRE_MONTH(上一月), PRE_YEAR(上一年) 留空则不筛选日期

Returns: 流程列表 JSON 字符串,包含 requestId 列表

ParametersJSON Schema
NameRequiredDescriptionDefault
page_noNo
page_sizeNo
date_rangeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the non-obvious server-side 'configured workflowid' behavior, describes the returned item fields, and documents date_range filter semantics. It does not mention errors, authentication, or pagination metadata, but for a read-only listing these are relatively minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with a one-line summary, followed by concise Args and Returns sections. There is slight redundancy between the statement that each workflow contains requestId and the Returns line saying the JSON contains a requestId list, but this does not meaningfully bloat the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with three optional parameters and an output schema, the description is nearly complete. It documents every parameter, defaults, filter values, and returned fields. The only notable gap is that the 'configured workflowid' is not explained in terms of where that configuration lives, but this is minor given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema property descriptions are absent (0% coverage), and the description fully compensates. It states page_no starts at 1 and defaults to 1, page_size defaults to 20, enumerates all date_range allowed values, and explains that leaving date_range blank disables date filtering.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with '查询程序修改流程列表' and clarifies that it lists all workflow instances for the configured program-modification workflow type. It gives a clear verb+resource and distinguishes itself from get_program_modification_details by noting each returned item includes a requestId used to fetch details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope is implied: the tool lists program-modification workflow instances using a configured workflowid, so the use case is inferable. However, it gives no explicit guidance about when to prefer this over sibling tools like list_my_workflows or list_all_workflows, and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_todo_workflowsA

获取待办流程列表

获取当前用户待处理的流程列表。

Args: page_no: 页码,从1开始 page_size: 每页条数 workflow_id: 工作流模板ID,留空则使用默认配置 all_types: 为 True 时返回所有流程类型的待办(不按 workflowid 过滤)

Returns: 待办流程列表 JSON 字符串

ParametersJSON Schema
NameRequiredDescriptionDefault
page_noNo
all_typesNo
page_sizeNo
workflow_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It clarifies that the tool returns a JSON string and explains the all_types filtering behavior, but it does not explicitly state side effects, authorization requirements, pagination semantics, or error behavior. This is adequate for a read-style list tool but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and logically structured: a direct headline, a fuller purpose statement, parameter explanations, and a return note. There is minor redundancy between the first line and the second, but the overall structure is clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward list tool with four optional parameters and an output schema available, the description covers purpose, parameter semantics, and return format. It would be more complete with explicit selection guidance against sibling tools, but the core calling context is adequately addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates by explaining every parameter: page_no starts at 1, page_size is items per page, workflow_id is a template ID with default behavior, and all_types changes filtering behavior. This adds real meaning beyond the bare schema titles and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action and scope: '获取当前用户待处理的流程列表' (get the current user's pending workflow list). It is distinguishable from siblings like list_processed_workflows and list_all_workflows by the 'pending/current user' framing, but it does not explicitly name or differentiate those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but gives no guidance on when to choose it over list_my_workflows, list_processed_workflows, list_all_workflows, or other siblings. There are no explicit usage conditions, exclusions, or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_employeeA

查询泛微 E10 人员信息

通过姓名模糊查询或账号精确查询人员,返回人员ID(userId)等信息。 userId 用于流程列表和流程详情查询。

Args: name_like: 人员姓名(支持模糊查询),如"张三" account: 账号(登录名/手机/邮箱) page_size: 页大小,默认50

Returns: 人员信息 JSON 字符串,包含 id(userId)、username、job_num 等

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
name_likeNo
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and mostly delivers: it discloses matching semantics ('姓名模糊查询或账号精确查询' — fuzzy vs exact), the return shape (JSON containing id/userId, username, job_num), and the default page_size of 50. It omits edge behaviors such as what happens when both or neither filter is supplied, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tight and well-structured: a one-line purpose statement, a two-line behavior note, then clearly separated Args and Returns sections. Each sentence carries distinct information (purpose, matching behavior, downstream use, parameter semantics, return format) with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter read-only query with an output schema present, the description covers purpose, all parameter semantics, return content, and downstream usage. The only gaps are edge-case behavior (no filters supplied, both filters supplied) and pagination semantics beyond the default, which are minor for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it documents all three parameters with meaning beyond the bare schema: name_like supports fuzzy matching, account is explicitly '登录名/手机/邮箱' (login name/phone/email), and page_size has a stated default of 50. Every parameter receives semantic context the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource — '查询泛微 E10 人员信息' (query Weaver E10 personnel) — then specifies the two query modes (fuzzy by name, exact by account) and the key return value (userId). The resource is personnel, which is unambiguous against the eight workflow/sibling tools, and the note that 'userId 用于流程列表和流程详情查询' situates it as the lookup step before workflow queries, further distinguishing it from the workflow siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to call this tool: userId is needed for workflow list/detail queries ('userId 用于流程列表和流程详情查询'), implying this is the prerequisite lookup for the workflow sibling tools. It does not, however, explicitly state when not to use it or name an alternative, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_work_reportA

提交研发报工流程

创建并提交一条研发报工,表单字段自动填充(研发项目、部门、人员等)。 工作内容根据月份自动选择,也可手动指定。

Args: report_date: 报工日期,格式 YYYY-MM-DD(如 2026-08-14) work_content: 工作内容简述,留空则根据月份自动选择: 1-4月:启动知识库构建,开发知识库问答前端界面... 5-8月:工艺参数预警:基于历史数据建立波动预警模型... 9-12月:AI闭环控制,连续制造物料追踪 project_hours: 项目工时,默认8

Returns: 创建结果 JSON 字符串,包含 requestId

ParametersJSON Schema
NameRequiredDescriptionDefault
report_dateYes
work_contentNo
project_hoursNo8

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the mutation (create + submit), auto-filling of fields, month-dependent default behavior, and the return format (JSON with requestId). It does not mention permissions or failure modes, but the core behavioral contract is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in listed sections (Args, Returns) with no fluff. Every sentence adds value: process overview, parameter details, and return format. Front-loaded with the action, then details follow logically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation tool with no annotations, the description is fairly complete: it covers all parameters, the auto-fill behavior, and the return. It lacks explicit prerequisites (e.g., authentication or existing project setup), but the auto-fill hints that context is supplied elsewhere. The presence of an output schema further reduces the need to detail return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It explains report_date format (YYYY-MM-DD), work_content default logic with explicit month ranges, and project_hours default (8). This goes well beyond the schema, which only names the parameters without hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb phrase '创建并提交一条研发报工' (create and submit a research work report), naming both the action and the resource. It distinguishes itself from all sibling tools, which are all query/workflow-oriented, by being the only submission tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is clear: it creates and submits a work report, with automatic field population. It also explains the month-based auto-selection of work content and the option to override it manually. However, it does not explicitly state when not to use it, though no sibling competes for this exact task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_connectionA

测试与泛微 OA 的连接是否正常

尝试获取 access_token 并返回服务器信息,用于验证配置是否正确。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the behavioral disclosure burden. It explains that the tool attempts to obtain an access_token and returns server information, which accurately implies a read-only connectivity check. It does not detail error behavior, but that is minor for this simple diagnostic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two concise sentences, with the core purpose front-loaded and a supporting detail following. Every sentence adds useful information with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter diagnostic tool that has an output schema, the description fully explains the action taken and the intended use case. An agent has everything it needs to invoke and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description need not explain parameter semantics. The schema already documents the empty argument list with 100% coverage, so the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, '测试' (test), and a specific resource, the connection to 泛微 OA, and further clarifies the mechanism by attempting to obtain an access_token. This clearly distinguishes it from the data/workflow sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this to verify that the configuration is correct. It does not explicitly list alternatives or when not to use it, but the zero-parameter diagnostic purpose makes the appropriate usage obvious relative to the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv1.0.0
    • First observedget_program_modification_details
    • First observedget_workflow_detail
    • First observedlist_all_workflows
    • First observedlist_my_workflows
    • First observedlist_processed_workflows
    • First observedlist_program_modification_workflows
    • First observedlist_todo_workflows
    • First observedquery_employee
    • First observedsubmit_work_report
    • First observedtest_connection

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have clear, distinct purposes, especially the status-specific workflow lists (todo, my, processed, all) and the composite detail fetcher. Some overlap exists between list_program_modification_workflows and list_all_workflows with the default workflow id, but descriptions are detailed enough to guide selection.

Naming Consistency5/5

Tool names consistently follow a verb_noun snake_case pattern, such as list_*, get_*, query_*, and submit_*. Minor asymmetry like get_workflow_detail versus list_*_workflows is negligible and does not hurt predictability.

Tool Count5/5

Ten tools is a reasonable, well-scoped surface for an OA workflow integration. Each tool covers a distinct need: connection testing, employee lookup, workflow listing by status, workflow details, and report submission.

Completeness3/5

Read-oriented workflow coverage is solid with list, detail, and status-specific queries, plus one submission workflow. However, there are notable gaps: no approve/reject actions for todo workflows, no generic process submission, and no update/cancel operations for existing workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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/initialdhz/weaver-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server