@larksuiteoapi/lark-mcp
Version:
Feishu/Lark OpenAPI MCP
439 lines (438 loc) • 25.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.imV2Tools = exports.imV2UrlPreviewBatchUpdate = exports.imV2TagPatch = exports.imV2TagCreate = exports.imV2FeedCardPatch = exports.imV2FeedCardBotTimeSentive = exports.imV2ChatButtonUpdate = exports.imV2BizEntityTagRelationUpdate = exports.imV2BizEntityTagRelationGet = exports.imV2BizEntityTagRelationCreate = exports.imV2AppFeedCardCreate = exports.imV2AppFeedCardBatchUpdate = exports.imV2AppFeedCardBatchDelete = void 0;
const zod_1 = require("zod");
exports.imV2AppFeedCardBatchDelete = {
project: 'im',
name: 'im.v2.appFeedCardBatch.delete',
sdkName: 'im.v2.appFeedCardBatch.delete',
path: '/open-apis/im/v2/app_feed_card/batch',
httpMethod: 'DELETE',
description: '[Feishu/Lark]-消息流-应用消息-删除应用消息流卡片-该接口用于删除应用消息流卡片',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
feed_cards: zod_1.z
.array(zod_1.z.object({
biz_id: zod_1.z.string().describe('业务 ID'),
user_id: zod_1.z
.string()
.describe('用户 ID(ID 类型与 user_id_type 的取值一致。如果是商店应用,因不支持获取用户 userID 权限,所以无法值使用 user_id 类型的用户 ID)'),
}))
.describe('应用消息卡片')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
},
};
exports.imV2AppFeedCardBatchUpdate = {
project: 'im',
name: 'im.v2.appFeedCardBatch.update',
sdkName: 'im.v2.appFeedCardBatch.update',
path: '/open-apis/im/v2/app_feed_card/batch',
httpMethod: 'PUT',
description: '[Feishu/Lark]-消息流-应用消息-更新应用消息流卡片-该接口用于更新消息流卡片的头像、标题、预览、标签状态、按钮等信息',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
feed_cards: zod_1.z
.array(zod_1.z.object({
app_feed_card: zod_1.z
.object({
biz_id: zod_1.z
.string()
.describe('业务 ID(非必填字段,开发者可自定义业务 ID 以方便管理数据;若不传入,则 API 响应体中会返回系统自动分配的业务 ID)')
.optional(),
title: zod_1.z
.string()
.describe('主标题(在用户界面中最多展示一行,自动省略超出部分的内容;不支持定义字号及颜色)')
.optional(),
avatar_key: zod_1.z.string().describe('头像 key').optional(),
preview: zod_1.z
.string()
.describe('预览信息(在用户界面中最多展示一行,自动省略超出部分的内容;支持多个字段拼接、特殊符号和 emoji;不支持定义字号及颜色)')
.optional(),
status_label: zod_1.z
.object({
text: zod_1.z.string().describe('标签文字'),
type: zod_1.z
.enum(['primary', 'secondary', 'success', 'danger'])
.describe('标签类型 Options:primary(主类型),secondary(次要类型),success(成功类型),danger(危险类型)'),
})
.describe('状态标签(非必填字段,如未选择该字段,则默认展示卡片触达时间)')
.optional(),
buttons: zod_1.z
.object({
buttons: zod_1.z
.array(zod_1.z.object({
multi_url: zod_1.z
.object({
url: zod_1.z.string().describe('默认 URL').optional(),
android_url: zod_1.z.string().describe('Android 平台 URL').optional(),
ios_url: zod_1.z.string().describe('iOS 平台 URL').optional(),
pc_url: zod_1.z.string().describe('PC URL').optional(),
})
.describe('跳转 URL(仅支持 https 协议)')
.optional(),
action_type: zod_1.z
.enum(['url_page', 'webhook'])
.describe('交互类型(按钮交互方式可配置跳转 URL 页面,也可配置 webhook 回调) Options:url_page(URLPage URL 页面),webhook(回调)'),
text: zod_1.z.object({ text: zod_1.z.string().describe('文本') }).describe('文字'),
button_type: zod_1.z
.enum(['default', 'primary', 'success'])
.describe('按钮类型 Options:default(默认),primary(主要),success(成功)')
.optional(),
action_map: zod_1.z.object({}).catchall(zod_1.z.any()).describe('action 字典').optional(),
}))
.describe('按钮组合'),
})
.describe('交互按钮(非必填字段,如未传入该字段,则不展示按钮;最多展示 2 个按钮)')
.optional(),
link: zod_1.z
.object({ link: zod_1.z.string().describe('卡片整体跳转链接(创建时该参数为必填参数)').optional() })
.describe('跳转链接')
.optional(),
time_sensitive: zod_1.z
.boolean()
.describe('即时提醒状态(设置为 true 后,卡片在消息列表临时置顶;设置为 false,消息卡片不置顶)')
.optional(),
notify: zod_1.z
.object({
close_notify: zod_1.z.boolean().describe('是否关闭通知').optional(),
custom_sound_text: zod_1.z.string().describe('自定义语音播报文本内容(仅支持移动端)').optional(),
with_custom_sound: zod_1.z
.boolean()
.describe('是否播报自定义语音(仅支持移动端;播报语音包暂不支持切换,默认为女声)')
.optional(),
})
.describe('通知设置,当前可设置通知是否关闭,为空时默认进行通知')
.optional(),
})
.describe('应用消息卡片'),
user_id: zod_1.z
.string()
.describe('用户 ID(ID 类型与 user_id_type 的取值一致。如果是商店应用,因不支持获取用户 userID 权限,所以无法值使用 user_id 类型的用户 ID)'),
update_fields: zod_1.z
.array(zod_1.z
.enum(['1', '2', '3', '10', '11', '12', '13', '101', '102', '103'])
.describe('Options:1(TITLE 标题),2(AVATAR_KEY 头像 key),3(PREVIEW 预览),10(STATUS_LABEL 状态标签),11(BUTTONS 按钮),12(LINK 跳转链接),13(TIME_SENSITIVE 即时提醒状态),101(DISPLAY_TIME_TO_CURRENT 展示时间更新到当前),102(RERANK_TO_CURRENT 排序时间更新到当前),103(WITH_NOTIFY 进行通知)'))
.describe('更新字段列表'),
}))
.describe('应用消息卡片')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
},
};
exports.imV2AppFeedCardCreate = {
project: 'im',
name: 'im.v2.appFeedCard.create',
sdkName: 'im.v2.appFeedCard.create',
path: '/open-apis/im/v2/app_feed_card',
httpMethod: 'POST',
description: '[Feishu/Lark]-消息流-应用消息-创建应用消息流卡片-应用消息流卡片是飞书为应用提供的消息触达能力,让应用可以直接在消息流发送消息,重要消息能更快触达用户',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
app_feed_card: zod_1.z
.object({
biz_id: zod_1.z
.string()
.describe('业务 ID(非必填字段,开发者可自定义业务 ID 以方便管理数据;若不传入,则 API 响应体中会返回系统自动分配的业务 ID)')
.optional(),
title: zod_1.z
.string()
.describe('主标题(在用户界面中最多展示一行,自动省略超出部分的内容;不支持定义字号及颜色)')
.optional(),
avatar_key: zod_1.z.string().describe('头像 key').optional(),
preview: zod_1.z
.string()
.describe('预览信息(在用户界面中最多展示一行,自动省略超出部分的内容;支持多个字段拼接、特殊符号和 emoji;不支持定义字号及颜色)')
.optional(),
status_label: zod_1.z
.object({
text: zod_1.z.string().describe('标签文字'),
type: zod_1.z
.enum(['primary', 'secondary', 'success', 'danger'])
.describe('标签类型 Options:primary(主类型),secondary(次要类型),success(成功类型),danger(危险类型)'),
})
.describe('状态标签(非必填字段,如未选择该字段,则默认展示卡片触达时间)')
.optional(),
buttons: zod_1.z
.object({
buttons: zod_1.z
.array(zod_1.z.object({
multi_url: zod_1.z
.object({
url: zod_1.z.string().describe('默认 URL').optional(),
android_url: zod_1.z.string().describe('Android 平台 URL').optional(),
ios_url: zod_1.z.string().describe('iOS 平台 URL').optional(),
pc_url: zod_1.z.string().describe('PC URL').optional(),
})
.describe('跳转 URL(仅支持 https 协议)')
.optional(),
action_type: zod_1.z
.enum(['url_page', 'webhook'])
.describe('交互类型(按钮交互方式可配置跳转 URL 页面,也可配置 webhook 回调) Options:url_page(URLPage URL 页面),webhook(回调)'),
text: zod_1.z.object({ text: zod_1.z.string().describe('文本') }).describe('文字'),
button_type: zod_1.z
.enum(['default', 'primary', 'success'])
.describe('按钮类型 Options:default(默认),primary(主要),success(成功)')
.optional(),
action_map: zod_1.z.object({}).catchall(zod_1.z.any()).describe('action 字典').optional(),
}))
.describe('按钮组合'),
})
.describe('交互按钮(非必填字段,如未传入该字段,则不展示按钮;最多展示 2 个按钮)')
.optional(),
link: zod_1.z
.object({
link: zod_1.z
.string()
.describe('链接**注意**:仅支持 HTTPS 协议,以及网页应用或小程序的 Applink(会校验 appid 是否正确)')
.optional(),
})
.describe('卡片整体跳转链接(创建时该参数为必填参数)')
.optional(),
time_sensitive: zod_1.z
.boolean()
.describe('即时提醒状态(设置为 true 后,卡片在消息列表临时置顶;设置为 false,消息卡片不置顶)')
.optional(),
notify: zod_1.z
.object({
close_notify: zod_1.z.boolean().describe('是否关闭通知').optional(),
custom_sound_text: zod_1.z.string().describe('自定义语音播报文本内容(仅支持移动端)').optional(),
with_custom_sound: zod_1.z
.boolean()
.describe('是否播报自定义语音(仅支持移动端;播报语音包暂不支持切换,默认为女声)')
.optional(),
})
.describe('通知设置,当前可设置通知是否关闭,为空时默认进行通知')
.optional(),
})
.describe('应用消息卡片')
.optional(),
user_ids: zod_1.z
.array(zod_1.z.string())
.describe('用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用,因不支持获取用户 userID 权限,所以无法值使用 user_id 类型的用户 ID)')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
},
};
exports.imV2BizEntityTagRelationCreate = {
project: 'im',
name: 'im.v2.bizEntityTagRelation.create',
sdkName: 'im.v2.bizEntityTagRelation.create',
path: '/open-apis/im/v2/biz_entity_tag_relation',
httpMethod: 'POST',
description: '[Feishu/Lark]-企业自定义群标签-绑定标签到群-绑定标签到业务实体。目前支持给会话打标签',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
tag_biz_type: zod_1.z.literal('chat').describe('业务类型 Options:chat(chat 会话类型)'),
biz_entity_id: zod_1.z.string().describe('业务实体 ID'),
tag_ids: zod_1.z.array(zod_1.z.string()).describe('标签 ID').optional(),
}),
},
};
exports.imV2BizEntityTagRelationGet = {
project: 'im',
name: 'im.v2.bizEntityTagRelation.get',
sdkName: 'im.v2.bizEntityTagRelation.get',
path: '/open-apis/im/v2/biz_entity_tag_relation',
httpMethod: 'GET',
description: '[Feishu/Lark]-企业自定义群标签-查询实体与标签的绑定关系-查询实体与标签的绑定关系',
accessTokens: ['tenant'],
schema: {
params: zod_1.z.object({
tag_biz_type: zod_1.z.literal('chat').describe('业务类型 Options:chat(chat类型)'),
biz_entity_id: zod_1.z.string().describe('业务实体id'),
}),
},
};
exports.imV2BizEntityTagRelationUpdate = {
project: 'im',
name: 'im.v2.bizEntityTagRelation.update',
sdkName: 'im.v2.bizEntityTagRelation.update',
path: '/open-apis/im/v2/biz_entity_tag_relation',
httpMethod: 'PUT',
description: '[Feishu/Lark]-企业自定义群标签-解绑标签与群-从业务实体上解绑标签',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
tag_biz_type: zod_1.z.literal('chat').describe('业务类型 Options:chat(chat类型)'),
biz_entity_id: zod_1.z.string().describe('业务实体id'),
tag_ids: zod_1.z.array(zod_1.z.string()).describe('标签id').optional(),
}),
},
};
exports.imV2ChatButtonUpdate = {
project: 'im',
name: 'im.v2.chatButton.update',
sdkName: 'im.v2.chatButton.update',
path: '/open-apis/im/v2/chat_button',
httpMethod: 'PUT',
description: '[Feishu/Lark]-消息流-群聊或机器人消息-更新消息流卡片按钮-为群组消息、机器人消息的消息流卡片添加、更新、删除快捷操作按钮',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
user_ids: zod_1.z
.array(zod_1.z.string())
.describe('用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用,因不支持获取用户 user ID 权限,所以无法使用 user_id 类型的用户 ID)')
.optional(),
chat_id: zod_1.z.string().describe('群 ID'),
buttons: zod_1.z
.object({
buttons: zod_1.z
.array(zod_1.z.object({
multi_url: zod_1.z
.object({
url: zod_1.z.string().describe('默认 URL').optional(),
android_url: zod_1.z.string().describe('Android 平台 URL').optional(),
ios_url: zod_1.z.string().describe('iOS 平台 URL').optional(),
pc_url: zod_1.z.string().describe('PC URL').optional(),
})
.describe('跳转 URL(仅支持 https 协议)')
.optional(),
action_type: zod_1.z
.enum(['url_page', 'webhook'])
.describe('交互类型(按钮交互方式可配置跳转 URL 页面,也可配置 webhook 回调) Options:url_page(URLPage URL 页面),webhook(回调)'),
text: zod_1.z.object({ text: zod_1.z.string().describe('文本') }).describe('文字'),
button_type: zod_1.z
.enum(['default', 'primary', 'success'])
.describe('按钮类型 Options:default(默认),primary(主要),success(成功)')
.optional(),
action_map: zod_1.z.object({}).catchall(zod_1.z.any()).describe('action 字典').optional(),
}))
.describe('按钮组合,该字段为全量更新字段,若未传入字段原有值,则会清空字段数据。例如:- 在保持原有按钮的字段配置的前提下,新增一个按钮配置会添加一个按钮。- 在原有按钮的字段配置上做更新,会更新该按钮。- 清空原有按钮的字段配置,会删除该按钮'),
})
.describe('交互按钮(非必填字段,如未传入该字段,则不展示按钮;最多展示 2 个按钮)')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
},
};
exports.imV2FeedCardBotTimeSentive = {
project: 'im',
name: 'im.v2.feedCard.botTimeSentive',
sdkName: 'im.v2.feedCard.botTimeSentive',
path: '/open-apis/im/v2/feed_cards/bot_time_sentive',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-消息流-群聊或机器人消息-机器人单聊即时提醒-可将机器人对话在消息列表中置顶展示,打开飞书首页即可处理重要任务',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
time_sensitive: zod_1.z
.boolean()
.describe('即时提醒状态(设置为 true 后,卡片在消息列表临时置顶;设置为 false,消息卡片不置顶)'),
user_ids: zod_1.z
.array(zod_1.z.string())
.describe('用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用,因不支持获取用户 user ID 权限,所以无法使用 user_id 类型的用户 ID)'),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型') }),
},
};
exports.imV2FeedCardPatch = {
project: 'im',
name: 'im.v2.feedCard.patch',
sdkName: 'im.v2.feedCard.patch',
path: '/open-apis/im/v2/feed_cards/:feed_card_id',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-消息流-群聊或机器人消息-即时提醒-即时提醒能力是飞书在消息列表中提供的强提醒能力,当有重要通知或任务需要及时触达用户,可将群组或机器人对话在消息列表中置顶展示,打开飞书首页即可处理重要任务',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
time_sensitive: zod_1.z
.boolean()
.describe('即时提醒状态(设置为 true 后,卡片在消息列表临时置顶;设置为 false,消息卡片不置顶)'),
user_ids: zod_1.z
.array(zod_1.z.string())
.describe('用户 ID 列表(ID 类型与 user_id_type 的取值一致。如果是商店应用,因不支持获取用户 user ID 权限,所以无法使用 user_id 类型的用户 ID)'),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型') }),
path: zod_1.z.object({ feed_card_id: zod_1.z.string().describe('消息卡片 id,当前只支持群聊类型') }),
},
};
exports.imV2TagCreate = {
project: 'im',
name: 'im.v2.tag.create',
sdkName: 'im.v2.tag.create',
path: '/open-apis/im/v2/tags',
httpMethod: 'POST',
description: '[Feishu/Lark]-企业自定义群标签-创建标签-创建标签并返回标签 ID',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
create_tag: zod_1.z
.object({
tag_type: zod_1.z.literal('tenant').describe('标签类型 Options:tenant(租户类型标签)'),
name: zod_1.z.string().describe('标签默认名称'),
i18n_names: zod_1.z
.array(zod_1.z.object({ locale: zod_1.z.string().describe('语言'), name: zod_1.z.string().describe('名称').optional() }))
.describe('i18n多语言标签名称集合')
.optional(),
})
.describe('创建标签'),
}),
},
};
exports.imV2TagPatch = {
project: 'im',
name: 'im.v2.tag.patch',
sdkName: 'im.v2.tag.patch',
path: '/open-apis/im/v2/tags/:tag_id',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-企业自定义群标签-修改标签-修改标签在各个语言下的名称',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
patch_tag: zod_1.z
.object({
id: zod_1.z.string().describe('标签 ID').optional(),
name: zod_1.z.string().describe('标签名称').optional(),
i18n_names: zod_1.z
.array(zod_1.z.object({ locale: zod_1.z.string().describe('语言'), name: zod_1.z.string().describe('名称').optional() }))
.describe('i18n 多语言名称集合')
.optional(),
})
.describe('编辑标签')
.optional(),
}),
path: zod_1.z.object({ tag_id: zod_1.z.string().describe('标签 ID') }),
},
};
exports.imV2UrlPreviewBatchUpdate = {
project: 'im',
name: 'im.v2.urlPreview.batchUpdate',
sdkName: 'im.v2.urlPreview.batchUpdate',
path: '/open-apis/im/v2/url_previews/batch_update',
httpMethod: 'POST',
description: '[Feishu/Lark]-消息-URL 预览-更新 URL 预览-该接口用于主动更新 ,调用后会重新触发一次客户端拉取,需要回调服务返回更新后的数据',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
preview_tokens: zod_1.z
.array(zod_1.z.string())
.describe('URL 预览的 preview_tokens 列表。需要通过回调获取 preview_tokens。**注意**:单个 token 限制更新频率为 1次/5秒'),
open_ids: zod_1.z
.array(zod_1.z.string())
.describe('需要更新 URL 预览的用户 open_id。若不传,则默认更新 URL 预览所在会话的所有成员;若用户不在 URL 所在会话,则无法触发更新该用户对应的 URL 预览结果。获取方式参见')
.optional(),
}),
},
};
exports.imV2Tools = [
exports.imV2AppFeedCardBatchDelete,
exports.imV2AppFeedCardBatchUpdate,
exports.imV2AppFeedCardCreate,
exports.imV2BizEntityTagRelationCreate,
exports.imV2BizEntityTagRelationGet,
exports.imV2BizEntityTagRelationUpdate,
exports.imV2ChatButtonUpdate,
exports.imV2FeedCardBotTimeSentive,
exports.imV2FeedCardPatch,
exports.imV2TagCreate,
exports.imV2TagPatch,
exports.imV2UrlPreviewBatchUpdate,
];