Skip to main content
Glama

Feishu MCP Server

base_v2.ts22.2 kB
import { z } from 'zod'; export type baseV2ToolName = 'base.v2.appRole.create' | 'base.v2.appRole.list' | 'base.v2.appRole.update'; export const baseV2AppRoleCreate = { project: 'base', name: 'base.v2.appRole.create', sdkName: 'base.v2.appRole.create', path: '/open-apis/base/v2/apps/:app_token/roles', httpMethod: 'POST', description: '[Feishu/Lark]-多维表格-高级权限-自定义角色-新增自定义角色-新增多维表格高级权限中自定义的角色', accessTokens: ['tenant', 'user'], schema: { data: z.object({ role_name: z.string().describe('自定义权限的名字'), table_roles: z .array( z.object({ table_perm: z .number() .describe( '数据表权限。**提示**:**协作者可编辑自己的记录** 和 **可编辑指定字段** 是 **可编辑记录** 的特殊情况,可通过指定 `rec_rule` 或 `field_perm` 参数实现相同的效果。 Options:0(NoPerm 无权限),1(Read 仅可阅读),2(Edit 可编辑),4(Admin 可管理)', ), table_name: z.string().describe('数据表名称').optional(), table_id: z .string() .describe( '多维表格数据表的唯一标识。获取方式:- 你可通过多维表格 URL 获取 `table_id`,下图高亮部分即为当前数据表的 `table_id`- 也可通过接口获取 `table_id` ', ) .optional(), rec_rule: z .object({ conditions: z .array( z.object({ field_name: z .string() .describe('条件字段的名称。记录筛选条件是“创建人包含访问者本人”时,此参数值为 ""'), operator: z .enum(['is', 'isNot', 'contains', 'doesNotContain', 'isEmpty', 'isNotEmpty']) .describe( '条件运算符 Options:is(等于),isNot(不等于),contains(包含),doesNotContain(不包含),isEmpty(为空),isNotEmpty(不为空)', ) .optional(), values: z .array(z.string()) .describe( '条件的值,可以是单个值或多个值的数组。详情参考', ) .optional(), }), ) .describe('记录筛选条件,用于指定可编辑或可阅读的记录') .optional(), conjunction: z.enum(['and', 'or']).describe('多个筛选条件的关系 Options:and(与),or(或)').optional(), other_perm: z .number() .describe( '其他记录权限,仅在 `table_perm` 为 2 (数据表权限为可编辑)时生效。- 当 `other_perm` 为 1 时,表示未命中 `rec_rule` 的记录仅可阅读,不可编辑- 当 `other_perm` 为 0 时,表示既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。即你可以通过 `other_rec_rule` 进一步指定可阅读的记录范围。 Options:0(NoPerm 禁止查看),1(Read 仅可阅读)', ) .optional(), }) .describe('记录筛选条件,当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录') .optional(), other_rec_rule: z .object({ conditions: z .array( z.object({ field_name: z .string() .describe('条件字段的名称。记录筛选条件是“创建人包含访问者本人”时,此参数值为 ""'), operator: z .enum(['is', 'isNot', 'contains', 'doesNotContain', 'isEmpty', 'isNotEmpty']) .describe( '条件运算符 Options:is(等于),isNot(不等于),contains(包含),doesNotContain(不包含),isEmpty(为空),isNotEmpty(不为空)', ) .optional(), values: z .array(z.string()) .describe( '条件的值,可以是单个值或多个值的数组。详情参考', ) .optional(), }), ) .describe('记录筛选条件,用于指定可阅读的记录') .optional(), conjunction: z.enum(['and', 'or']).describe('多个筛选条件的关系 Options:and(与),or(或)').optional(), }) .describe( '记录筛选条件,在 `rec_rule.other_perm` 为 0 时生效。对于未命中 `rec_rule` 的记录,通过 `other_rec_rule` 指定可阅读记录范围;此时,既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), field_perm: z .record(z.any()) .describe( '字段权限,仅在 `table_perm` 为 1和 2 时生效。用于设置字段可编辑或可阅读。类型为 map,key 是字段名称,value 是字段权限。对于未设置的字段,默认无权限。value 枚举值有:- `1`:可阅读- `2`:可添加- `3`:可编辑', ) .optional(), allow_add_record: z .boolean() .describe('新增记录权限,仅在 `table_perm` 为 2 时生效,用于设置记录是否可以新增') .optional(), allow_delete_record: z .boolean() .describe('删除记录权限,仅在 `table_perm` 为 2 时生效,用于设置记录是否可以删除') .optional(), view_perm: z.number().describe('设置视图的权限。 Options:1(Read 可阅读),2(Edit 可编辑)').optional(), view_rules: z .record(z.any()) .describe( '可读的视图集合,仅在 view_perm 为 1 (视图为可阅读)时生效。- 未设置时,表示所有视图可读。- 设置后,表示设置的视图可读,未设置的视图无权限。该参数类型为 map,其中 key 是,value 是视图对应的权限。value 枚举值有:- `0`:无权限- `1`:可阅读**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), field_action_rules: z .record(z.any()) .describe( '设置字段的权限,仅可配置单多选字段、附件字段。可选的点位有:- `select_option_edit` : 选项配置点位,配置是否可增删改单、多选选项,未设置表示无权限。- `attachment_export`: 附件操作权限点位,配置是否可导出附件,未设置表示可导出。该参数类型为两层 map 结构,其中 key 是字段点位权限,value 是字段权限集合。字段权限集合也是一个 map 结构,其中 key 是字段名称,value 是字段点位权限:- `0`:无权限- `1`:有权限**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), }), ) .describe('针对数据表的权限设置'), block_roles: z .array( z.object({ block_id: z .string() .describe( '多维表格仪表盘的唯一标识,以 blk 开头。获取方式:- 在多维表格的 URL 地址栏中,`block_id` 是下图中高亮部分: - 通过接口获取', ), block_perm: z.number().describe('设置仪表盘的权限 Options:0(NoPerm 无权限),1(Read 可阅读)'), }), ) .describe('针对仪表盘的权限设置') .optional(), base_rule: z .record(z.any()) .describe( '多维表格点位的权限。- 未设置时,表示自定义角色拥有所有点位权限。- 设置时,可设置以下两种权限: - `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格 - `copy`: 设置是否可以复制多维表格内容该参数类型为 map,其中 key 是权限点位名称,value 是权限开关。value 枚举值有:- `0`:无权限- `1`:有权限**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), }), path: z.object({ app_token: z .string() .describe( '多维表格 App 的唯一标识。不同形态的多维表格,其 `app_token` 的获取方式不同:- 如果多维表格的 URL 以 ==**feishu.cn/base**== 开头,该多维表格的 `app_token` 是下图高亮部分: - 如果多维表格的 URL 以 ==**feishu.cn/wiki**== 开头,你需调用知识库相关接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时,`obj_token` 字段的值才是多维表格的 `app_token`。了解更多,参考', ), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const baseV2AppRoleList = { project: 'base', name: 'base.v2.appRole.list', sdkName: 'base.v2.appRole.list', path: '/open-apis/base/v2/apps/:app_token/roles', 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(), }), path: z.object({ app_token: z .string() .describe( '多维表格 App 的唯一标识。不同形态的多维表格,其 `app_token` 的获取方式不同:- 如果多维表格的 URL 以 ==**feishu.cn/base**== 开头,该多维表格的 `app_token` 是下图高亮部分: - 如果多维表格的 URL 以 ==**feishu.cn/wiki**== 开头,你需调用知识库相关接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时,`obj_token` 字段的值才是多维表格的 `app_token`。了解更多,参考', ), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const baseV2AppRoleUpdate = { project: 'base', name: 'base.v2.appRole.update', sdkName: 'base.v2.appRole.update', path: '/open-apis/base/v2/apps/:app_token/roles/:role_id', httpMethod: 'PUT', description: '[Feishu/Lark]-多维表格-高级权限-自定义角色-更新自定义角色-更新多维表格高级权限中自定义的角色', accessTokens: ['tenant', 'user'], schema: { data: z.object({ role_name: z.string().describe('自定义角色名称'), table_roles: z .array( z.object({ table_perm: z .number() .describe( '数据表权限。**提示**:**协作者可编辑自己的记录** 和 **可编辑指定字段** 是 **可编辑记录** 的特殊情况,可通过指定 `rec_rule` 或 `field_perm` 参数实现相同的效果。 Options:0(NoPerm 无权限),1(Read 仅可阅读),2(Edit 可编辑),4(Admin 可管理)', ), table_name: z.string().describe('数据表名称').optional(), table_id: z .string() .describe( '多维表格数据表的唯一标识。获取方式:- 你可通过多维表格 URL 获取 `table_id`,下图高亮部分即为当前数据表的 `table_id`- 也可通过接口获取 `table_id` ', ) .optional(), rec_rule: z .object({ conditions: z .array( z.object({ field_name: z .string() .describe('条件字段的名称。记录筛选条件是“创建人包含访问者本人”时,此参数值为 ""'), operator: z .enum(['is', 'isNot', 'contains', 'doesNotContain', 'isEmpty', 'isNotEmpty']) .describe( '条件运算符 Options:is(等于),isNot(不等于),contains(包含),doesNotContain(不包含),isEmpty(为空),isNotEmpty(不为空)', ) .optional(), values: z .array(z.string()) .describe( '条件的值,可以是单个值或多个值的数组。详情参考', ) .optional(), }), ) .describe('记录筛选条件,用于指定可编辑或可阅读的记录') .optional(), conjunction: z.enum(['and', 'or']).describe('多个筛选条件的关系 Options:and(与),or(或)').optional(), other_perm: z .number() .describe( '其他记录权限,仅在 `table_perm` 为 2 (数据表权限为可编辑)时生效。- 当 `other_perm` 为 1 时,表示未命中 `rec_rule` 的记录仅可阅读,不可编辑- 当 `other_perm` 为 0 时,表示既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。即你可以通过 `other_rec_rule` 进一步指定可阅读的记录范围。 Options:0(NoPerm 禁止查看),1(Read 仅可阅读)', ) .optional(), }) .describe( '记录筛选条件,当 `table_perm` 为 1 或 2 时生效。用于指定可编辑或可阅读的记录。- rec_rule字段未设置、且 `table_perm `不变的情况下,保持旧值。- 字段 value 为 {} 的情况下,表示设置为默认值,即全部可编辑或可阅读,具体权限需结合 table_perm 参数', ) .optional(), other_rec_rule: z .object({ conditions: z .array( z.object({ field_name: z .string() .describe('条件字段的名称。记录筛选条件是“创建人包含访问者本人”时,此参数值为 ""'), operator: z .enum(['is', 'isNot', 'contains', 'doesNotContain', 'isEmpty', 'isNotEmpty']) .describe( '条件运算符 Options:is(等于),isNot(不等于),contains(包含),doesNotContain(不包含),isEmpty(为空),isNotEmpty(不为空)', ) .optional(), values: z .array(z.string()) .describe( '条件的值,可以是单个值或多个值的数组。详情参考', ) .optional(), }), ) .describe('记录筛选条件,用于指定可阅读的记录') .optional(), conjunction: z.enum(['and', 'or']).describe('多个筛选条件的关系 Options:and(与),or(或)').optional(), }) .describe( '记录筛选条件,在 `table_perm` 为 2 且`rec_rule.other_perm` 为 0 时生效。- 对于未命中 `rec_rule` 的记录,通过 `other_rec_rule` 指定可阅读记录范围;此时,既未命中 `rec_rule`、也未命中 `other_rec_rule` 的记录会被禁止阅读。- `other_rec_rule` 字段未设置、且 `table_perm` 与 `rec_rule` 不变的情况下,将会保持旧值不变。- `other_rec_rule` 字段设置为 {} 时,且 `table_perm` 与`rec_rule` 不变的情况下,表示设置为默认值,即非`rec_rule` 记录全部可阅读。**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), field_perm: z .record(z.any()) .describe( '字段权限,仅在 `table_perm` 为 1和 2 时生效。用于设置字段可编辑或可阅读。类型为 map,key 是字段名称,value 是字段权限。对于未设置的多维表格字段,则为无权限。更新时,`field_perm` 未传值时,将保留旧值不变。`field_perm` 传{}时,则将所有字段设置为默认值可编辑或者可阅读,默认值需结合`table_perm `字段。value 枚举值有:- `1`:可阅读- `2`:可添加- `3`:可编辑', ) .optional(), allow_add_record: z .boolean() .describe('新增记录权限,仅在 `table_perm` 为 2 时生效,用于设置记录是否可以新增') .optional(), allow_delete_record: z .boolean() .describe('删除记录权限,仅在 `table_perm` 为 2 时生效,用于设置记录是否可以删除') .optional(), view_perm: z.number().describe('设置视图的编辑权限。 Options:1(Read 可阅读),2(Edit 可编辑)').optional(), view_rules: z .record(z.any()) .describe( '可读的视图集合,仅在 `view_perm` 为 1 (视图为可阅读)时生效。更新时,未设置该字段`view_rules `,且 `view_perm` 未变化的情况下,将保留旧值。设置该字段`view_rules `为{},且 `view_perm` 为1的情况下,会将所有视图置为可读。该参数类型为 map,其中 key 是,value 是视图对应的权限。value 枚举值有:- `0`:无权限- `1`:可阅读**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), field_action_rules: z .record(z.any()) .describe( '更新字段的权限,仅可配置单多选字段、附件字段。可选的点位有:- `select_option_edit` : 选项配置点位,配置是否可增删改单、多选选项,未设置表示无权限。- `attachment_export`: 附件操作权限点位,配置是否可导出附件,未设置表示可导出。该参数类型为两层 map 结构,其中 key 是字段点位权限,value 是字段权限集合。字段权限集合也是一个 map 结构,其中 key 是字段名称,value 是字段点位权限:- `0`:无权限- `1`:有权限**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), }), ) .describe('针对数据表的权限设置,未设置该字段的情况下,保持旧值不变'), block_roles: z .array( z.object({ block_id: z .string() .describe( '多维表格仪表盘的唯一标识,以 blk 开头。获取方式:- 在多维表格的 URL 地址栏中,`block_id` 是下图中高亮部分: - 通过接口获取', ), block_perm: z.number().describe('仪表盘的权限 Options:0(NoPerm 无权限),1(Read 可阅读)'), }), ) .describe( '针对仪表盘的权限设置。更新是,未设置该字段的情况下,保持旧值不变。设置`block_roles`为{}时,将所有仪表盘更新为默认权限,即所有仪表盘无权限', ) .optional(), base_rule: z .record(z.any()) .describe( '多维表格点位的权限。更新时,未设置`base_rule`字段时,所有点位保持旧值。设置`base_rule`字段为{}时,会将所有点位设置为默认值,即所有点位有权限。可设置以下两种权限:- `base_complex_edit` : 设置是否可以创建副本、下载、打印多维表格- `copy`: 设置是否可以复制多维表格内容该参数类型为 map,其中 key 是权限点位名称,value 是权限开关。value 枚举值有:- `0`:无权限- `1`:有权限**注意**:仅高级权限为 v2 版本的多维表格支持该参数。是否是 v2 版本可调用查看', ) .optional(), }), path: z.object({ app_token: z .string() .describe( '多维表格 App 的唯一标识。不同形态的多维表格,其 `app_token` 的获取方式不同:- 如果多维表格的 URL 以 ==**feishu.cn/base**== 开头,该多维表格的 `app_token` 是下图高亮部分: - 如果多维表格的 URL 以 ==**feishu.cn/wiki**== 开头,你需调用知识库相关接口获取多维表格的 app_token。当 `obj_type` 的值为 `bitable` 时,`obj_token` 字段的值才是多维表格的 `app_token`。了解更多,参考', ), role_id: z .string() .describe( '多维表格高级权限中自定义角色的唯一标识,以 rol 开头。获取方式:通过接口获取', ), }), useUAT: z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(), }, }; export const baseV2Tools = [baseV2AppRoleCreate, baseV2AppRoleList, baseV2AppRoleUpdate];

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