Skip to main content
Glama
Wulnut
by Wulnut

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLog levelINFO
LARK_APP_IDNoLark app ID (optional)
LARK_APP_SECRETNoLark app secret (optional)
FEISHU_PROJECT_KEYNoDefault project key (optional)
FEISHU_PROJECT_USER_KEYYesYour user key for Feishu project
FEISHU_PROJECT_PLUGIN_IDNoPlugin ID for plugin authentication
FEISHU_PROJECT_USER_TOKENNoStatic token (valid 24h) for testing
FEISHU_PROJECT_PLUGIN_SECRETNoPlugin secret for plugin authentication

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_projectsA
列出所有可用的飞书项目空间。

当你不知道项目的 project_key 时,先调用此工具获取项目列表。
返回的列表包含项目名称和对应的 project_key。

Args:
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 格式的项目列表,格式为 {project_name: project_key}。
    失败时返回错误信息。

Examples:
    # 查看有哪些项目可用
    list_projects()
create_taskA
在指定项目中创建新的工作项(任务/Issue)。

这是创建飞书项目工作项的主要工具。系统会自动处理字段值的转换
(如将 "P0" 转换为对应的选项 Key)。

Args:
    name: 工作项标题,必填。
    project: 项目标识符(可选)。可以是:
            - 项目名称(如 "SR6D2VA-7552-Lark")
            - project_key(如 "project_xxx")
            如不指定,则使用环境变量 FEISHU_PROJECT_KEY 配置的默认项目。
    work_item_type: 工作项类型名称(可选),如 "需求管理"、"Issue管理"、"项目管理" 等名。
                   如不指定,默认使用项目中的第一个可用类型。
    priority: 优先级,可选值: P0(最高), P1, P2(默认), P3(最低)。
    description: 工作项描述,支持纯文本。
    assignee: 负责人的姓名或邮箱。如不指定则为空。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    成功时返回 "创建成功,Issue ID: xxx"。
    失败时返回错误信息。

Examples:
    # 使用默认项目创建任务
    create_task(name="修复登录页面崩溃问题", priority="P0")

    # 指定项目和工作项类型创建任务
    create_task(
        project="SR6D2VA-7552-Lark",
        work_item_type="Issue管理",
        name="修复登录页面崩溃问题",
        priority="P0",
        assignee="张三"
    )
get_tasksA
获取项目中的工作项列表(支持全量获取或按条件过滤)。

这是通用的任务获取工具,具备以下特性:
1. 无过滤参数时,返回项目的全部工作项
2. 支持按任务名称关键词进行高效搜索(推荐)
3. 支持按状态、优先级、负责人进行灵活过滤
4. 支持按关联工作项 ID 或名称过滤(查找与指定工作项关联的项)
5. 如果项目不存在某个字段(如状态),会自动跳过该过滤条件
6. 支持指定工作项类型(如 "需求管理"、"Issue管理"、"项目管理" 等)

Args:
    project: 项目标识符(可选)。可以是:
            - 项目名称(如 "Project Management")
            - project_key(如 "project_xxx")
            如不指定,则使用环境变量 FEISHU_PROJECT_KEY 配置的默认项目。
    work_item_type: 工作项类型名称(可选),如 "需求管理"、"Issue管理"、"项目管理" 等。
                   如果不指定,默认使用 "问题管理" 类型。
    name_keyword: 任务名称关键词(可选,支持模糊搜索,推荐使用)。
                  例如:"SG06VA" 可以搜索所有包含该关键词的任务。
    status: 状态过滤(多个用逗号分隔),如 "待处理,进行中"(可选)。
    priority: 优先级过滤(多个用逗号分隔),如 "P0,P1"(可选)。
    owner: 负责人过滤(姓名或邮箱)(可选)。
    related_to: 关联工作项 ID 或名称(可选)。用于查找与指定工作项关联的其他工作项。
               - 如果是整数或数字字符串,直接作为工作项 ID 使用
               - 如果是非数字字符串,自动搜索该名称对应的工作项(精确匹配优先)
               例如:related_to="SG06VA1" 或 related_to=6288163810
    page_num: 页码,从 1 开始(默认 1)。
    page_size: 每页数量(默认 50,最大 100)。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 格式的工作项列表,包含 id, name, status, priority, owner。
    失败时返回错误信息。

Examples:
    # 获取默认项目的全部工作项
    get_tasks()

    # 获取"需求管理"类型的工作项
    get_tasks(project="Project Management", work_item_type="需求管理")

    # 按名称关键词搜索(推荐,高效)
    get_tasks(name_keyword="SG06VA")

    # 获取指定优先级的任务
    get_tasks(priority="P0,P1")

    # 查找与指定工作项关联的工作项(通过名称)
    get_tasks(related_to="SG06VA1", work_item_type="Issue管理")

    # 查找与指定工作项关联的工作项(通过 ID)
    get_tasks(
        project="Project Management",
        work_item_type="需求管理",
        related_to=6181818812
    )

    # 指定项目并组合多个条件过滤
    get_tasks(
        project="Project Management",
        work_item_type="需求管理",
        name_keyword="SG06VA",
        status="进行中",
        priority="P0"
    )
add_task_commentA
为指定工作项添加一条评论(纯文本)。

适用场景:
- 需要在工作项下沉淀沟通结论、会议纪要、处理记录
- 希望 Agent 在更新字段之外留下“可审计的文字说明”

Args:
    issue_id: 工作项 ID,必填。
    content: 评论内容(纯文本),必填。内容为空会报错。
    project: 项目标识符(可选)。可以是项目名称或 project_key。
             不传则使用环境变量默认项目。
    work_item_type: 工作项类型名称(可选)。不传则使用默认类型。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 字符串。
    - success=true 时,data 至少包含 comment_id。
    - 失败时返回纯文本错误信息(由 with_error_handling 统一处理)。

Examples:
    add_task_comment(issue_id=123, content="已与研发确认:本周五前完成联调")
list_task_commentsA
获取指定工作项下的评论列表。

Args:
    issue_id: 工作项 ID。
    page_num: 页码,从 1 开始(默认 1)。
    page_size: 每页数量(默认 20,最大值由服务端限制)。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用环境变量 FEISHU_PROJECT_KEY 指定的默认项目。
    work_item_type: 工作项类型名称(可选)。不传则使用默认类型。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。
    data 格式:
    {
      "total": int,
      "page_num": int,
      "page_size": int,
      "items": [
        {
          "comment_id": str|int,
          "author": Any,
          "create_time": Any,
          "content": str
        }
      ]
    }

Examples:
    list_task_comments(issue_id=123, page_num=1, page_size=20)
update_task_commentA
更新指定评论内容(纯文本)。

Args:
    issue_id: 工作项 ID。
    comment_id: 评论 ID。
    content: 新的评论内容(纯文本)。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用环境变量 FEISHU_PROJECT_KEY 指定的默认项目。
    work_item_type: 工作项类型名称(可选)。不传则使用默认类型。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式:
    {
      "issue_id": int,
      "comment_id": str
    }

    失败时返回纯文本错误信息(由 with_error_handling 统一处理),常见原因包括:
    - comment_id 不存在
    - 当前用户无权限编辑该评论
    - 评论内容为空

Examples:
    update_task_comment(issue_id=123, comment_id="c1", content="补充:已完成回归测试")
delete_task_commentA
删除指定评论。

Args:
    issue_id: 工作项 ID。
    comment_id: 评论 ID。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用环境变量 FEISHU_PROJECT_KEY 指定的默认项目。
    work_item_type: 工作项类型名称(可选)。不传则使用默认类型。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式:
    {
      "issue_id": int,
      "comment_id": str
    }

    失败时返回纯文本错误信息(由 with_error_handling 统一处理),常见原因包括:
    - comment_id 不存在
    - 当前用户无权限删除该评论

Examples:
    delete_task_comment(issue_id=123, comment_id="c1")
get_task_transition_requirementsA

获取将指定工作项流转到目标状态前的必填信息要求。

该工具用于在执行状态流转前,先询问系统:从当前状态流转到 target_status 需要补全哪些字段。
常见场景包括:
- 流转到“已完成/已关闭”时需要填写“解决方案”“原因”“验证人”等字段
- 流转到某些阶段需要指定角色负责人(role owners)或填写额外信息

本工具仅负责:
1) project/work_item_type 参数解析(project_name 与 project_key 分支)
2) 委托 WorkflowProvider 解析状态名并调用 WorkflowAPI.get_transition_required_info
3) 返回统一的 JSON envelope(success/data),便于 LLM 稳定解析

注意:
- 成功时返回 JSON 字符串(success=true)。
- 失败时返回纯文本错误信息(由 with_error_handling 统一处理),不会返回 JSON。

Args:
    issue_id: 工作项 ID,必填。
    target_status: 目标状态名称(人类可读),必填。例如:"已完成"、"待处理"。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用环境变量 FEISHU_PROJECT_KEY 指定的默认项目。
    work_item_type: 工作项类型名称(可选)。例如:"问题管理"、"Issue管理"。
    mode: 工作流查询模式(可选)。透传给后端接口,用于控制必填项返回策略。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式至少包含:
    {
      "required_fields": [ ... ]
    }

    失败时返回纯文本错误信息(由 with_error_handling 统一处理),常见原因包括:
    - target_status 无法匹配(会提示“可选状态”)
    - 当前用户无权限查询该工作项的工作流信息
    - 网络/系统异常

Examples:
    # 查询将 Issue 123 流转到“已完成”前需要填哪些字段
    get_task_transition_requirements(issue_id=123, target_status="已完成")
transition_task_statusA

将指定工作项流转到目标状态。

该工具用于执行飞书项目工作项的状态流转(Workflow Transition)。
它会根据 target_status(人类可读的状态名称)自动解析出对应的 state_key / transition_id,
并调用后端的 workflow state_change 接口完成流转。

使用建议:
- 在调用本工具前,建议先调用 get_task_transition_requirements 获取必填字段要求。
- fields 参数当前仅支持 list[dict] 透传(最小实现),用于满足流转前的必填字段。
  例如:[{"field_key": "field_x", "field_value": "y"}]。

注意:
- 成功时返回 JSON 字符串(success=true)。
- 失败时返回纯文本错误信息(由 with_error_handling 统一处理),不会返回 JSON。

Args:
    issue_id: 工作项 ID,必填。
    target_status: 目标状态名称(人类可读),必填。
    fields: 流转时需要提交的字段列表(可选)。元素为 dict,直接透传给后端。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用环境变量默认项目。
    work_item_type: 工作项类型名称(可选)。
    mode: 流转模式(可选)。当前仅透传给 Provider,预留未来扩展。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式至少包含:
    {
      "issue_id": int,
      "target_status": str
    }

    失败时返回纯文本错误信息(由 with_error_handling 统一处理),常见原因包括:
    - target_status 无法匹配(会提示“可选状态”)
    - 流转失败(后端返回权限/参数错误等)

Examples:
    # 直接流转(无额外字段)
    transition_task_status(issue_id=123, target_status="已完成")

    # 带必填字段流转
    transition_task_status(
        issue_id=123,
        target_status="已完成",
        fields=[{"field_key": "field_resolution", "field_value": "已修复"}],
    )
list_child_tasksA

列出指定父工作项下的子任务(通过“空间关联关系”规则实现)。

背景说明:
- 飞书项目中的“父子/子任务”通常不是一个固定字段,而是通过“关联关系规则(Relation Rule)”实现。
- 同一个项目空间可能存在多条关联规则(例如:"子任务"、"关联"、"阻塞")。
  因此本工具支持 relation_name 参数用于选择具体规则。

本工具的行为:
1) 解析 project / work_item_type 参数(支持 project_name 与 project_key 两种输入)。
2) 通过 HierarchyProvider 选择关联规则:
   - 若 relation_name 传入:按名称精确匹配。
   - 若未传:若规则只有 1 条则自动选择;若 >1 条则报错提示需要指定。
3) 调用 RelationAPI.work_item_list 获取关联的 work_item_ids。

注意:
- 成功时返回 JSON 字符串(success=true)。
- 失败时返回纯文本错误信息(由 with_error_handling 统一处理),不会返回 JSON。

Args:
    parent_issue_id: 父工作项 ID(必填)。
    relation_name: 关联规则名称(可选)。规则多于 1 条时建议必填。
    page_num: 页码,从 1 开始(默认 1)。
    page_size: 每页数量(默认 20)。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用环境变量 FEISHU_PROJECT_KEY 指定的默认项目。
    work_item_type: 工作项类型名称(可选)。例如:"问题管理"、"Issue管理"。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式:
    {
      "work_item_ids": [int, ...]
    }

Examples:
    # 获取父任务 123 的子任务列表(自动选择唯一规则)
    list_child_tasks(parent_issue_id=123)

    # 指定关联规则名称
    list_child_tasks(parent_issue_id=123, relation_name="子任务")
bind_child_tasksB

将多个工作项绑定为指定父工作项的“子任务”(通过关联关系规则实现)。

Args:
    parent_issue_id: 父工作项 ID(必填)。
    child_issue_ids: 子工作项 ID 列表(必填)。
    relation_name: 关联规则名称(可选)。当存在多条规则时建议必填。
    project: 项目标识符(可选)。可以是项目名称或 project_key;不传则使用默认项目。
    work_item_type: 工作项类型名称(可选)。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式:
    {
      "parent_issue_id": int,
      "child_issue_ids": [int, ...],
      "relation_name": str
    }

失败时返回纯文本错误信息(由 with_error_handling 统一处理)。
unbind_child_tasksA

解绑指定父工作项的子任务关系(按关联关系规则整体解绑)。

当前最小实现:
- 调用 RelationAPI.delete 删除父工作项在该规则下的关联关系(服务端语义通常为“清空该规则下的绑定”)。

Args:
    parent_issue_id: 父工作项 ID(必填)。
    relation_name: 关联规则名称(可选)。
    project: 项目标识符(可选)。
    work_item_type: 工作项类型名称(可选)。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY)。

Returns:
    JSON 字符串。

    成功时(success=true)data 格式:
    {
      "parent_issue_id": int,
      "relation_name": str
    }

失败时返回纯文本错误信息(由 with_error_handling 统一处理)。
get_task_detailA
获取单个工作项的完整详情。

当你需要查看工作项的所有字段信息时使用此工具。
返回的详情包含所有可用字段(包括自定义字段)。
用户相关字段(如负责人、创建者等)会自动转换为人名以提高可读性。

Args:
    issue_id: 工作项 ID,必填。
    project: 项目标识符(可选)。可以是:
            - 项目名称(如 "SR6D2VA-7552-Lark")
            - project_key(如 "project_xxx")
            如不指定,则使用环境变量 FEISHU_PROJECT_KEY 配置的默认项目。
    work_item_type: 工作项类型名称(可选),如 "需求管理"、"Issue管理"、"项目管理" 等。
                   如不指定,默认使用项目中的第一个可用类型。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 格式的完整工作项详情。
    失败时返回错误信息。

Examples:
    # 获取工作项详情(使用默认项目)
    get_task_detail(issue_id=12345)

    # 指定项目和工作项类型
    get_task_detail(
        issue_id=12345,
        project="SR6D2VA-7552-Lark",
        work_item_type="Issue管理"
    )
update_taskA
更新工作项的字段。

可以同时更新多个字段,这些字段可以通过 fields_json 一次性传入。

Args:
    issue_id: 要更新的工作项 ID。
    project: 项目标识符(可选)。
    work_item_type: 工作项类型名称(可选)。
    name: 新标题(可选)。
    priority: 新优先级(可选)。
    description: 新描述(可选)。
    status: 新状态(可选)。
    assignee: 新负责人(可选)。
    field_name: 单个自定义字段名称(可选)。
    field_value: 单个自定义字段值(可选)。
    fields_json: JSON 格式的字段字典(可选),用于批量更新多个自定义字段。
                 例如: '{"Soc Vendor": "Amlogic", "DDR 大小": "128MB"}'
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    成功时返回 "更新成功"。
batch_update_tasksA

批量更新工作项字段(支持单个或多个工作项)。

Args:
    issue_ids: 要更新的工作项 ID 列表。
    issue_id: 单个工作项 ID(与 issue_ids 二选一,方便单项操作)。
    project: 项目标识符(名称或 Key)。
    work_item_type: 工作项类型名称。
    name: 新标题。
    priority: 新优先级(如 P0, P1, P2)。
    description: 新描述。
    status: 新状态。
    assignee: 新负责人(姓名或邮箱)。
    field_name: 自定义字段名称,需配合 field_value 使用。
    field_value: 自定义字段值。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 格式结果,包含 success 状态和后台任务 ID 列表。
get_task_optionsA
获取字段的可用选项列表。

当你不确定某个字段有哪些可选值时,使用此工具查询。
这对于了解状态流转、优先级选项等非常有用。

Args:
    field_name: 字段名称,如 "status", "priority"。
    project: 项目标识符(可选)。可以是项目名称或 project_key。
            如不指定,则使用环境变量 FEISHU_PROJECT_KEY 配置的默认项目。
    work_item_type: 工作项类型名称(可选),如 "需求管理"、"Issue管理"、"项目管理" 等。
                   如不指定,默认使用项目中的第一个可用类型。
    user_key: (可选) 飞书用户标识符 (X-USER-KEY),用于以特定用户身份进行操作。

Returns:
    JSON 格式的选项列表,格式为 {label: value}。
    失败时返回错误信息。

Examples:
    # 查看状态字段有哪些可选值(使用默认项目)
    get_task_options(field_name="status")

    # 查看优先级字段有哪些可选值
    get_task_options(field_name="priority")

    # 指定工作项类型查看选项
    get_task_options(field_name="status", project="Project Management", work_item_type="需求管理")

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation3/5

Most tools target distinct operations (create, list, comment, transition), but update_task and batch_update_tasks overlap significantly since batch_update_tasks also supports single-item updates. Additionally, update_task exposes a status field that partially overlaps with transition_task_status, and get_tasks' related_to filter overlaps with list_child_tasks.

Naming Consistency4/5

The dominant verb_noun pattern is consistent throughout, and most names are self-explanatory. Minor deviations exist: list_projects/list_task_comments vs get_tasks/get_task_detail use both 'list' and 'get' for similar listing operations, and create_task vs add_task_comment mix 'create' and 'add'.

Tool Count4/5

At 16 tools, the surface is slightly above the typical 3-15 well-scoped range but still appropriate for the breadth of Feishu project workflows. Each tool serves a plausible need, so the count is not excessive.

Completeness4/5

The tool set covers the core lifecycle well: project discovery, task create/get/update, comments CRUD, status transition requirements and execution, child-task binding, and field option lookup. The main gap is the absence of a delete_task tool, and there is no direct way to create or manage projects, though that may be out of scope.

Maintenance

ActivityInactive
ResponsivenessNo issues