Skip to main content
Glama
larksuite

Feishu/Lark OpenAPI MCP

Official
by larksuite
acs_v1.ts10.5 kB
import { z } from 'zod'; export type acsV1ToolName = | 'acs.v1.accessRecord.list' | 'acs.v1.device.list' | 'acs.v1.ruleExternal.create' | 'acs.v1.ruleExternal.delete' | 'acs.v1.ruleExternal.deviceBind' | 'acs.v1.ruleExternal.get' | 'acs.v1.user.get' | 'acs.v1.user.list' | 'acs.v1.user.patch' | 'acs.v1.visitor.create' | 'acs.v1.visitor.delete'; export const acsV1AccessRecordList = { project: 'acs', name: 'acs.v1.accessRecord.list', sdkName: 'acs.v1.accessRecord.list', path: '/open-apis/acs/v1/access_records', httpMethod: 'GET', description: '[Feishu/Lark]-Smart Access Control-Access Record-Get access record list', accessTokens: ['tenant'], schema: { params: z.object({ page_size: z.number().optional(), page_token: z.string().optional(), from: z.number().describe('Record start time, in seconds'), to: z.number().describe('Record the end time, in seconds,Limit: to-from < 30 days'), device_id: z.string().describe('Device ID, Used to access recognition records of a specified device').optional(), user_id_type: z.enum(['user_id', 'union_id', 'open_id']).describe('User ID type').optional(), }), }, }; export const acsV1DeviceList = { project: 'acs', name: 'acs.v1.device.list', sdkName: 'acs.v1.device.list', path: '/open-apis/acs/v1/devices', httpMethod: 'GET', description: '[Feishu/Lark]-Smart Access Control-Device-Get device list', accessTokens: ['tenant'], schema: {}, }; export const acsV1RuleExternalCreate = { project: 'acs', name: 'acs.v1.ruleExternal.create', sdkName: 'acs.v1.ruleExternal.create', path: '/open-apis/acs/v1/rule_external', httpMethod: 'POST', description: '[Feishu/Lark]-Smart Access Control-Rule-Create or update rule-rule create or update rule', accessTokens: ['user'], schema: { data: z.object({ rule: z .object({ id: z.string().describe('rule id').optional(), name: z.string().describe('rule name').optional(), devices: z .array( z.object({ id: z.string().describe('device id').optional(), name: z.string().describe('device name').optional(), }), ) .describe('devices included') .optional(), user_count: z.string().describe('employees num').optional(), users: z .array( z.object({ user_type: z .number() .describe('user type Options:1(user employee),2(department),10(tenant all staff),11(guest visitor)'), user_id: z.string().describe('user id').optional(), user_name: z.string().describe('user name').optional(), phone_num: z.string().describe('phone num').optional(), department_id: z.string().describe('department id').optional(), }), ) .describe('employees list') .optional(), visitor_count: z.string().describe('visitors num').optional(), visitors: z .array( z.object({ user_type: z .number() .describe('user type Options:1(user employee),2(department),10(tenant all staff),11(guest visitor)'), user_id: z.string().describe('visitor id').optional(), user_name: z.string().describe('visitor name').optional(), phone_num: z.string().describe('phone num').optional(), department_id: z.string().describe('department id').optional(), }), ) .describe('visitors list') .optional(), remind_face: z.boolean().describe('is remind face entry').optional(), opening_time: z .object({ valid_day: z .object({ start_day: z.number().describe('start date'), end_day: z.number().describe('end date') }) .describe('valid date') .optional(), weekdays: z.array(z.number()).describe('valid week').optional(), day_times: z .array( z.object({ start_hhmm: z.number().describe('start time'), end_hhmm: z.number().describe('end time'), }), ) .describe('valid time') .optional(), }) .describe('opening time period') .optional(), is_temp: z.boolean().describe('is temporary rule').optional(), }) .describe('rule info'), }), params: z .object({ rule_id: z.string().describe('rule id,create if null,update if no null').optional(), user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('User ID type').optional(), }) .optional(), useUAT: z.boolean().describe('Use user access token, otherwise use tenant access token').optional(), }, }; export const acsV1RuleExternalDelete = { project: 'acs', name: 'acs.v1.ruleExternal.delete', sdkName: 'acs.v1.ruleExternal.delete', path: '/open-apis/acs/v1/rule_external', httpMethod: 'DELETE', description: '[Feishu/Lark]-Smart Access Control-Rule-Delete rule-rule delete', accessTokens: ['user'], schema: { params: z.object({ rule_id: z.string() }), useUAT: z.boolean().describe('Use user access token, otherwise use tenant access token').optional(), }, }; export const acsV1RuleExternalDeviceBind = { project: 'acs', name: 'acs.v1.ruleExternal.deviceBind', sdkName: 'acs.v1.ruleExternal.deviceBind', path: '/open-apis/acs/v1/rule_external/device_bind', httpMethod: 'POST', description: '[Feishu/Lark]-Smart Access Control-Rule-Device bind rule-device bind rules', accessTokens: ['user'], schema: { data: z.object({ device_id: z.string().describe('device id'), rule_ids: z.array(z.string()).describe('rule list'), }), useUAT: z.boolean().describe('Use user access token, otherwise use tenant access token').optional(), }, }; export const acsV1RuleExternalGet = { project: 'acs', name: 'acs.v1.ruleExternal.get', sdkName: 'acs.v1.ruleExternal.get', path: '/open-apis/acs/v1/rule_external', httpMethod: 'GET', description: '[Feishu/Lark]-Smart Access Control-Rule-Get rule info-rule info get', accessTokens: ['user'], schema: { params: z .object({ device_id: z.string().optional(), user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('User ID type').optional(), }) .optional(), useUAT: z.boolean().describe('Use user access token, otherwise use tenant access token').optional(), }, }; export const acsV1UserGet = { project: 'acs', name: 'acs.v1.user.get', sdkName: 'acs.v1.user.get', path: '/open-apis/acs/v1/users/:user_id', httpMethod: 'GET', description: '[Feishu/Lark]-Smart Access Control-User Management-Get individual user information', accessTokens: ['tenant'], schema: { params: z .object({ user_id_type: z.enum(['user_id', 'union_id', 'open_id']).describe('User ID type').optional() }) .optional(), path: z.object({ user_id: z.string().describe('User ID') }), }, }; export const acsV1UserList = { project: 'acs', name: 'acs.v1.user.list', sdkName: 'acs.v1.user.list', path: '/open-apis/acs/v1/users', httpMethod: 'GET', description: '[Feishu/Lark]-Smart Access Control-User Management-Get user list', accessTokens: ['tenant'], schema: { params: z .object({ page_size: z.number().optional(), page_token: z.string().optional(), user_id_type: z.enum(['user_id', 'union_id', 'open_id']).describe('User ID type').optional(), }) .optional(), }, }; export const acsV1UserPatch = { project: 'acs', name: 'acs.v1.user.patch', sdkName: 'acs.v1.user.patch', path: '/open-apis/acs/v1/users/:user_id', httpMethod: 'PATCH', description: '[Feishu/Lark]-Smart Access Control-User Management-Modify parts of user information', accessTokens: ['tenant'], schema: { data: z.object({ feature: z.object({ card: z.number().optional() }).optional() }).optional(), params: z .object({ user_id_type: z.enum(['user_id', 'union_id', 'open_id']).describe('User ID type').optional() }) .optional(), path: z.object({ user_id: z.string().describe('User ID') }), }, }; export const acsV1VisitorCreate = { project: 'acs', name: 'acs.v1.visitor.create', sdkName: 'acs.v1.visitor.create', path: '/open-apis/acs/v1/visitors', httpMethod: 'POST', description: '[Feishu/Lark]-Smart Access Control-Visitor-Add visitor-visitor add', accessTokens: ['user'], schema: { data: z.object({ user: z .object({ user_type: z .number() .describe('user type Options:1(user employee),2(department),10(tenant all staff),11(guest visitor)'), user_id: z.string().describe('visitor id').optional(), user_name: z.string().describe('visitor name').optional(), phone_num: z.string().describe('phone num').optional(), department_id: z.string().describe('department id').optional(), }) .describe('visitor info'), }), params: z .object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('User ID type').optional() }) .optional(), useUAT: z.boolean().describe('Use user access token, otherwise use tenant access token').optional(), }, }; export const acsV1VisitorDelete = { project: 'acs', name: 'acs.v1.visitor.delete', sdkName: 'acs.v1.visitor.delete', path: '/open-apis/acs/v1/visitors/:visitor_id', httpMethod: 'DELETE', description: '[Feishu/Lark]-Smart Access Control-Visitor-Delete visitor-visitor delete', accessTokens: ['user'], schema: { params: z .object({ user_id_type: z.enum(['open_id', 'union_id', 'user_id']).describe('User ID type').optional() }) .optional(), path: z.object({ visitor_id: z.string().describe('visitor id') }), useUAT: z.boolean().describe('Use user access token, otherwise use tenant access token').optional(), }, }; export const acsV1Tools = [ acsV1AccessRecordList, acsV1DeviceList, acsV1RuleExternalCreate, acsV1RuleExternalDelete, acsV1RuleExternalDeviceBind, acsV1RuleExternalGet, acsV1UserGet, acsV1UserList, acsV1UserPatch, acsV1VisitorCreate, acsV1VisitorDelete, ];

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/larksuite/lark-openapi-mcp'

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