Skip to main content
Glama

Feishu MCP Server

task_v1.ts35.4 kB
import { z } from 'zod'; export type taskV1ToolName = | 'task.v1.task.batchDeleteCollaborator' | 'task.v1.task.batchDeleteFollower' | 'task.v1.taskCollaborator.create' | 'task.v1.taskCollaborator.delete' | 'task.v1.taskCollaborator.list' | 'task.v1.taskComment.create' | 'task.v1.taskComment.delete' | 'task.v1.taskComment.get' | 'task.v1.taskComment.list' | 'task.v1.taskComment.update' | 'task.v1.task.complete' | 'task.v1.task.create' | 'task.v1.task.delete' | 'task.v1.taskFollower.create' | 'task.v1.taskFollower.delete' | 'task.v1.taskFollower.list' | 'task.v1.task.get' | 'task.v1.task.list' | 'task.v1.task.patch' | 'task.v1.taskReminder.create' | 'task.v1.taskReminder.delete' | 'task.v1.taskReminder.list' | 'task.v1.task.uncomplete'; export const taskV1TaskBatchDeleteCollaborator = { project: 'task', name: 'task.v1.task.batchDeleteCollaborator', sdkName: 'task.v1.task.batchDeleteCollaborator', path: '/open-apis/task/v1/tasks/:task_id/batch_delete_collaborator', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-执行者-批量删除执行者-该接口用于批量删除执行者', accessTokens: ['tenant', 'user'], schema: { data: z.object({ id_list: z .array(z.string()) .describe( '执行者的用户ID列表。传入的值为 user_id 或 open_id,由user_id_type 决定。user_id和open_id的获取可见文档', ) .optional(), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskBatchDeleteFollower = { project: 'task', name: 'task.v1.task.batchDeleteFollower', sdkName: 'task.v1.task.batchDeleteFollower', path: '/open-apis/task/v1/tasks/:task_id/batch_delete_follower', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-关注人-批量删除关注人-该接口用于批量删除关注人', accessTokens: ['tenant', 'user'], schema: { data: z.object({ id_list: z.array(z.string()).describe('要删除的关注人ID列表').optional() }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCollaboratorCreate = { project: 'task', name: 'task.v1.taskCollaborator.create', sdkName: 'task.v1.taskCollaborator.create', path: '/open-apis/task/v1/tasks/:task_id/collaborators', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-执行者-新增执行者-该接口用于新增任务执行者,一次性可以添加多个执行者。只有任务的创建者和执行者才能添加执行者,关注人无权限添加', accessTokens: ['tenant', 'user'], schema: { data: z.object({ id: z .string() .describe( '任务执行者的 ID。传入的值为 user_id 或 open_id,由user_id_type 决定。user_id和open_id的获取可见文档。<md-alert>已经废弃,为了向前兼容早期只支持单次添加一个人的情况而保留,但不再推荐使用,建议使用id_list字段</md-alert>', ) .optional(), id_list: z .array(z.string()) .describe( '执行者的用户ID列表。传入的值为 user_id 或 open_id,由user_id_type 决定。user_id和open_id的获取可见文档', ) .optional(), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z .string() .describe( '任务 ID,可通过时响应体中的id字段获取', ), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCollaboratorDelete = { project: 'task', name: 'task.v1.taskCollaborator.delete', sdkName: 'task.v1.taskCollaborator.delete', path: '/open-apis/task/v1/tasks/:task_id/collaborators/:collaborator_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-历史版本(不推荐)-任务-执行者-删除指定执行者-该接口用于删除任务执行者', accessTokens: ['tenant', 'user'], schema: { params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务 ID'), collaborator_id: z.string().describe('任务执行者 ID(Open ID或User ID,由user_id_type指定)'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCollaboratorList = { project: 'task', name: 'task.v1.taskCollaborator.list', sdkName: 'task.v1.taskCollaborator.list', path: '/open-apis/task/v1/tasks/:task_id/collaborators', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-执行者-获取执行者列表-该接口用于查询任务执行者列表,支持分页,最大值为50', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页大小').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional(), }), path: z.object({ task_id: z.string().describe('任务 ID').optional() }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCommentCreate = { project: 'task', name: 'task.v1.taskComment.create', sdkName: 'task.v1.taskComment.create', path: '/open-apis/task/v1/tasks/:task_id/comments', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-评论-创建评论-该接口用于创建和回复任务的评论。当parent_id字段为0时,为创建评论;当parent_id不为0时,为回复某条评论', accessTokens: ['tenant', 'user'], schema: { data: z.object({ content: z .string() .describe('评论内容。<md-alert>评论内容和富文本评论内容同时存在时只使用富文本评论内容。</md-alert>') .optional(), parent_id: z.string().describe('评论的父ID,创建评论时若不为空则为某条评论的回复,若为空则不是回复').optional(), create_milli_time: z.string().describe('评论创建的时间戳,单位为毫秒,用于展示,创建时不用填写').optional(), rich_content: z .string() .describe( '富文本评论内容。语法格式参见', ) .optional(), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCommentDelete = { project: 'task', name: 'task.v1.taskComment.delete', sdkName: 'task.v1.taskComment.delete', path: '/open-apis/task/v1/tasks/:task_id/comments/:comment_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-历史版本(不推荐)-任务-评论-删除评论-该接口用于通过评论ID删除评论', accessTokens: ['tenant', 'user'], schema: { path: z.object({ task_id: z.string().describe('任务ID'), comment_id: z.string().describe('评论ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCommentGet = { project: 'task', name: 'task.v1.taskComment.get', sdkName: 'task.v1.taskComment.get', path: '/open-apis/task/v1/tasks/:task_id/comments/:comment_id', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-评论-获取评论详情-该接口用于通过评论ID获取评论详情', accessTokens: ['tenant', 'user'], schema: { params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务ID'), comment_id: z.string().describe('评论ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCommentList = { project: 'task', name: 'task.v1.taskComment.list', sdkName: 'task.v1.taskComment.list', path: '/open-apis/task/v1/tasks/:task_id/comments', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-评论-获取评论列表-该接口用于查询任务评论列表,支持分页,最大值为100', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页大小').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), list_direction: z .number() .describe( '评论排序标记,可按照评论时间从小到大查询,或者评论时间从大到小查询,不填默认按照从小到大 Options:0(Down 按照回复时间从小到大查询),1(Up 按照回复时间从大到小查询)', ) .optional(), user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional(), }), path: z.object({ task_id: z.string().describe('任务id').optional() }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCommentUpdate = { project: 'task', name: 'task.v1.taskComment.update', sdkName: 'task.v1.taskComment.update', path: '/open-apis/task/v1/tasks/:task_id/comments/:comment_id', httpMethod: 'PUT', description: '[Feishu/Lark]-历史版本(不推荐)-任务-评论-更新评论-该接口用于更新评论内容', accessTokens: ['tenant', 'user'], schema: { data: z.object({ content: z.string().describe('新的评论内容').optional(), rich_content: z.string().describe('新的富文本评论内容(优先使用)').optional(), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务ID'), comment_id: z.string().describe('评论 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskComplete = { project: 'task', name: 'task.v1.task.complete', sdkName: 'task.v1.task.complete', path: '/open-apis/task/v1/tasks/:task_id/complete', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-完成任务-该接口用于将任务状态修改为“已完成”。完成任务是指整个任务全部完成,而不支持执行者分别完成任务,执行成功后,任务对所有关联用户都变为完成状态', accessTokens: ['tenant', 'user'], schema: { path: z.object({ task_id: z .string() .describe( '任务 ID,可通过时响应体中的id字段获取', ), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskCreate = { project: 'task', name: 'task.v1.task.create', sdkName: 'task.v1.task.create', path: '/open-apis/task/v1/tasks', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-创建任务-该接口可以创建一个任务,支持填写任务的基本信息,包括任务的标题,描述及协作者等。在此基础上,创建任务时可以设置截止时间和重复规则,将任务设置为定期执行的重复任务。通过添加协作者,则可以让其他用户协同完成该任务。此外,接口也提供了一些支持自定义内容的字段,调用方可以实现定制化效果,如完成任务后跳转到指定结束界面', accessTokens: ['tenant', 'user'], schema: { data: z.object({ summary: z .string() .describe( '任务的标题,类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户,请使用rich_summary字段。创建任务时,任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空,需要至少填充其中一个字段。<md-alert>任务标题和任务富文本标题同时存在时只使用富文本标题。</md-alert>', ) .optional(), description: z .string() .describe( '任务的描述,类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户,请使用rich_description字段。<md-alert>任务备注和任务富文本备注同时存在时只使用富文本备注。</md-alert>', ) .optional(), extra: z .string() .describe( '附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息,但对外不显示,可使用该字段进行存储。该数据会在获取任务详情时,原样返回给用户', ) .optional(), due: z .object({ time: z.string().describe('表示截止时间的Unix时间戳(单位为秒)').optional(), timezone: z .string() .describe( '截止时间对应的时区。传入值需要符合IANA Time Zone Database标准,规范见', ) .optional(), is_all_day: z .boolean() .describe( '标记任务是否为全天任务。包括如下取值:- true:表示是全天任务,全天任务的截止时间为当天 UTC 时间的 0 点。- false:表示不是全天任务', ) .optional(), }) .describe('任务的截止时间设置') .optional(), origin: z .object({ platform_i18n_name: z .string() .describe( '任务来源的名称。用于在任务中心详情页展示。需要提供一个字典,支持多种语言名称映射。应用在使用不同语言时,导入来源也将展示对应的内容。详细参见:', ), href: z .object({ url: z .string() .describe( '具体链接地址。URL仅支持解析http、https。详细参见:', ) .optional(), title: z.string().describe('链接对应的标题').optional(), }) .describe('任务关联的来源平台详情页链接') .optional(), }) .describe('任务关联的第三方平台来源信息'), can_edit: z .boolean() .describe( '此字段用于控制该任务在飞书任务中心是否可编辑,默认为false<md-alert>已经废弃,向前兼容故仍然保留,但不推荐使用</md-alert>', ) .optional(), custom: z .string() .describe( '自定义完成配置。此字段用于设置完成任务时的页面跳转,或展示提示语。详细参见:', ) .optional(), collaborator_ids: z .array(z.string()) .describe( '创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id ,由user_id_type 决定。user_id和open_id的获取可见文档:', ) .optional(), follower_ids: z .array(z.string()) .describe( '创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id ,由user_id_type 决定。user_id和open_id的获取可见文档:', ) .optional(), repeat_rule: z .string() .describe('重复任务的规则表达式。语法格式参见 4.3.10小节') .optional(), rich_summary: z .string() .describe( '富文本任务标题。语法格式参见。创建任务时,任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空,需要至少填充其中一个字段', ) .optional(), rich_description: z .string() .describe( '富文本任务备注。语法格式参见', ) .optional(), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskDelete = { project: 'task', name: 'task.v1.task.delete', sdkName: 'task.v1.task.delete', path: '/open-apis/task/v1/tasks/:task_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-删除任务-该接口用于删除任务', accessTokens: ['tenant', 'user'], schema: { path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskFollowerCreate = { project: 'task', name: 'task.v1.taskFollower.create', sdkName: 'task.v1.taskFollower.create', path: '/open-apis/task/v1/tasks/:task_id/followers', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-关注人-新增关注人-该接口用于新增任务关注人。可以一次性添加多位关注人。关注人ID要使用表示用户的ID', accessTokens: ['tenant', 'user'], schema: { data: z.object({ id: z.string().describe('任务关注人 ID').optional(), id_list: z.array(z.string()).describe('要删除的关注人ID列表').optional(), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskFollowerDelete = { project: 'task', name: 'task.v1.taskFollower.delete', sdkName: 'task.v1.taskFollower.delete', path: '/open-apis/task/v1/tasks/:task_id/followers/:follower_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-历史版本(不推荐)-任务-关注人-删除指定关注人-该接口用于删除任务关注人', accessTokens: ['tenant', 'user'], schema: { params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务 ID'), follower_id: z.string().describe('任务关注人 ID(Open ID或User ID,由user_id_type指定)'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskFollowerList = { project: 'task', name: 'task.v1.taskFollower.list', sdkName: 'task.v1.taskFollower.list', path: '/open-apis/task/v1/tasks/:task_id/followers', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-关注人-获取关注人列表', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页大小').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), user_id_type: z.enum(['user_id', 'union_id', 'open_id']).describe('用户ID类型').optional(), }), path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskGet = { project: 'task', name: 'task.v1.task.get', sdkName: 'task.v1.task.get', path: '/open-apis/task/v1/tasks/:task_id', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-查询指定任务-该接口用于获取任务详情,包括任务标题、描述、时间、来源等信息', accessTokens: ['tenant', 'user'], schema: { params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskList = { project: 'task', name: 'task.v1.task.list', sdkName: 'task.v1.task.list', path: '/open-apis/task/v1/tasks', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-查询所有任务-以分页的方式获取任务列表。当使用user_access_token时,获取与该用户身份相关的所有任务。当使用tenant_access_token时,获取以该应用身份通过“创建任务“接口创建的所有任务(并非获取该应用所在租户下所有用户创建的任务)。本接口支持通过任务创建时间以及任务的完成状态对任务进行过滤', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页大小').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), start_create_time: z .string() .describe('范围查询任务时,查询的起始时间。不填时默认起始时间为第一个任务的创建时间') .optional(), end_create_time: z .string() .describe('范围查询任务时,查询的结束时间。不填时默认结束时间为最后一个任务的创建时间') .optional(), task_completed: z .boolean() .describe( '可用于查询时过滤任务完成状态。true表示只返回已完成的任务,false表示只返回未完成的任务。不填时表示同时返回两种完成状态的任务', ) .optional(), user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional(), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskPatch = { project: 'task', name: 'task.v1.task.patch', sdkName: 'task.v1.task.patch', path: '/open-apis/task/v1/tasks/:task_id', httpMethod: 'PATCH', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-更新任务-该接口用于修改任务的标题、描述、时间、来源等相关信息', accessTokens: ['tenant', 'user'], schema: { data: z.object({ task: z .object({ summary: z .string() .describe( '任务的标题,类型为文本字符串。如果要在任务标题中插入 URL 或者 @某个用户,请使用rich_summary字段。创建任务时,任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空,需要至少填充其中一个字段。<md-alert>任务标题和任务富文本标题同时存在时只使用富文本标题。</md-alert>', ) .optional(), description: z .string() .describe( '任务的描述,类型为文本字符串。如果要在任务描述中插入 URL 或者 @某个用户,请使用rich_description字段。<md-alert>任务备注和任务富文本备注同时存在时只使用富文本备注。</md-alert>', ) .optional(), extra: z .string() .describe( '附属信息。接入方可以传入base64 编码后的自定义的数据。用户如果需要对当前任务备注信息,但对外不显示,可使用该字段进行存储。该数据会在获取任务详情时,原样返回给用户', ) .optional(), due: z .object({ time: z.string().describe('表示截止时间的Unix时间戳(单位为秒)').optional(), timezone: z .string() .describe( '截止时间对应的时区。传入值需要符合IANA Time Zone Database标准,规范见', ) .optional(), is_all_day: z .boolean() .describe( '标记任务是否为全天任务。包括如下取值:- true:表示是全天任务,全天任务的截止时间为当天 UTC 时间的 0 点。- false:表示不是全天任务', ) .optional(), }) .describe('任务的截止时间设置') .optional(), origin: z .object({ platform_i18n_name: z .string() .describe( '任务来源的名称。用于在任务中心详情页展示。需要提供一个字典,支持多种语言名称映射。应用在使用不同语言时,导入来源也将展示对应的内容。详细参见:', ), href: z .object({ url: z .string() .describe( '具体链接地址。URL仅支持解析http、https。详细参见:', ) .optional(), title: z.string().describe('链接对应的标题').optional(), }) .describe('任务关联的来源平台详情页链接') .optional(), }) .describe('任务关联的第三方平台来源信息') .optional(), can_edit: z .boolean() .describe( '此字段用于控制该任务在飞书任务中心是否可编辑,默认为false<md-alert>已经废弃,向前兼容故仍然保留,但不推荐使用</md-alert>', ) .optional(), custom: z .string() .describe( '自定义完成配置。此字段用于设置完成任务时的页面跳转,或展示提示语。详细参见:', ) .optional(), followers: z .array( z.object({ id: z.string().describe('任务关注人 ID').optional(), id_list: z.array(z.string()).describe('要删除的关注人ID列表').optional(), }), ) .describe('任务的关注者') .optional(), collaborators: z .array( z.object({ id: z .string() .describe( '任务执行者的 ID。传入的值为 user_id 或 open_id,由user_id_type 决定。user_id和open_id的获取可见文档。<md-alert>已经废弃,为了向前兼容早期只支持单次添加一个人的情况而保留,但不再推荐使用,建议使用id_list字段</md-alert>', ) .optional(), id_list: z .array(z.string()) .describe( '执行者的用户ID列表。传入的值为 user_id 或 open_id,由user_id_type 决定。user_id和open_id的获取可见文档', ) .optional(), }), ) .describe('任务的执行者') .optional(), collaborator_ids: z .array(z.string()) .describe( '创建任务时添加的执行者用户id列表。传入的值为 user_id 或 open_id ,由user_id_type 决定。user_id和open_id的获取可见文档:', ) .optional(), follower_ids: z .array(z.string()) .describe( '创建任务时添加的关注者用户id列表。传入的值为 user_id 或 open_id ,由user_id_type 决定。user_id和open_id的获取可见文档:', ) .optional(), repeat_rule: z .string() .describe( '重复任务的规则表达式。语法格式参见 4.3.10小节', ) .optional(), rich_summary: z .string() .describe( '富文本任务标题。语法格式参见。创建任务时,任务标题(summary字段)和任务富文本标题(rich_summary字段)不能同时为空,需要至少填充其中一个字段', ) .optional(), rich_description: z .string() .describe( '富文本任务备注。语法格式参见', ) .optional(), }) .describe('被更新的任务实体基础信息'), update_fields: z .array(z.string()) .describe( '指定需要更新的任务字段。可以更新的字段包括:<md-enum><md-enum-item key="summary" >任务标题(普通文本)</md-enum-item><md-enum-item key="rich_summary" >任务标题(富文本)</md-enum-item><md-enum-item key="description" >任务描述(普通文本)</md-enum-item><md-enum-item key="rich_description" >任务描述(富文本)</md-enum-item><md-enum-item key="due" >任务截止时间</md-enum-item><md-enum-item key="extra" >任务附属信息</md-enum-item><md-enum-item key="custom" >任务自定义完成规则</md-enum-item><md-enum-item key="follower_ids" >任务关注人ID列表</md-enum-item><md-enum-item key="collaborator_ids" >任务执行者ID列表</md-enum-item><md-enum-item key="repeat_rule" >任务重复规则</md-enum-item></md-enum>', ), }), params: z.object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }), path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskReminderCreate = { project: 'task', name: 'task.v1.taskReminder.create', sdkName: 'task.v1.taskReminder.create', path: '/open-apis/task/v1/tasks/:task_id/reminders', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-提醒-新增提醒时间-该接口用于创建任务的提醒时间。提醒时间在截止时间基础上做偏移,但是偏移后的结果不能早于当前时间', accessTokens: ['tenant', 'user'], schema: { data: z.object({ relative_fire_minute: z .number() .describe( '相对于截止时间的提醒时间(如提前 30 分钟,截止时间后 30 分钟,则为 -30) 任务没有截止时间则为全天任务(截止时间为0)', ), }), path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskReminderDelete = { project: 'task', name: 'task.v1.taskReminder.delete', sdkName: 'task.v1.taskReminder.delete', path: '/open-apis/task/v1/tasks/:task_id/reminders/:reminder_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-历史版本(不推荐)-任务-提醒-删除提醒时间-删除提醒时间,返回结果状态', accessTokens: ['tenant', 'user'], schema: { path: z.object({ task_id: z.string().describe('任务 ID'), reminder_id: z.string().describe('任务提醒时间设置的 ID(即 reminder.id)'), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskReminderList = { project: 'task', name: 'task.v1.taskReminder.list', sdkName: 'task.v1.taskReminder.list', path: '/open-apis/task/v1/tasks/:task_id/reminders', httpMethod: 'GET', description: '[Feishu/Lark]-历史版本(不推荐)-任务-提醒-查询提醒时间列表-返回提醒时间列表,支持分页,最大值为50', accessTokens: ['tenant', 'user'], schema: { params: z.object({ page_size: z.number().describe('分页大小').optional(), page_token: z .string() .describe( '分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果', ) .optional(), }), path: z.object({ task_id: z.string().describe('任务 ID').optional() }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1TaskUncomplete = { project: 'task', name: 'task.v1.task.uncomplete', sdkName: 'task.v1.task.uncomplete', path: '/open-apis/task/v1/tasks/:task_id/uncomplete', httpMethod: 'POST', description: '[Feishu/Lark]-历史版本(不推荐)-任务-任务管理-取消完成任务-该接口用于取消任务的已完成状态', accessTokens: ['tenant', 'user'], schema: { path: z.object({ task_id: z.string().describe('任务 ID') }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const taskV1Tools = [ taskV1TaskBatchDeleteCollaborator, taskV1TaskBatchDeleteFollower, taskV1TaskCollaboratorCreate, taskV1TaskCollaboratorDelete, taskV1TaskCollaboratorList, taskV1TaskCommentCreate, taskV1TaskCommentDelete, taskV1TaskCommentGet, taskV1TaskCommentList, taskV1TaskCommentUpdate, taskV1TaskComplete, taskV1TaskCreate, taskV1TaskDelete, taskV1TaskFollowerCreate, taskV1TaskFollowerDelete, taskV1TaskFollowerList, taskV1TaskGet, taskV1TaskList, taskV1TaskPatch, taskV1TaskReminderCreate, taskV1TaskReminderDelete, taskV1TaskReminderList, taskV1TaskUncomplete, ];

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/Xumingmingming/feishu-mcp-server'

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