Skip to content

Connectors · Work & projects

Lark Suite MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Lark Suite and the rest of your systems. It gives your agent 437 Lark Suite actions (161 reads, 196 writes and 80 that wait for a confirmation) and holds the Lark Suite credential itself, so the agent never does. It paces Lark Suite's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "lark_suite.drive_files.list",  intent: "check which Lark Suite account is connected"}# Folder · read · 1 upstream call
  • 437actionsin one signed file
  • 161readlook, never change
  • 196writecreate and update
  • 80wait for a yesdestructive, confirmed first

Set up

Connect Lark Suite in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Lark Suite.

    Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.

    • app_idLark App ID (Developer Console > your custom app > Credentials & Basic Info, starts with cli_)
    • app_secretLark App Secret
    • hostWhere your Lark Suite lives: your host
    account { op: "connections.requirements", service: "lark_suite" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "lark_suite.drive_files.list" }# folder · read · 1 upstream callcheck { action: "lark_suite.drive_files.delete", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Lark Suite at a glance

Sign-in
Session login. actionlake opens the session and renews it when it expires.
You provide
app_idapp_secret
Setup fields
host
Limits we pace to
20 calls a second, per connection
API covered
Lark Suite (Docs, Base, Wiki, Sheets, Drive, Messenger, Calendar, Tasks, Contacts, Approval) API Lark Open Platform server APIs (open-apis), tool definitions of larksuite/lark-openapi-mcp and response models of larksuite/oapi-sdk-go v3, fetched 2026-10-23open.larksuite.com
Built from
Lark Suite's documentation, read 23 October 2026GitHubGitHubopen.larksuite.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
145 of 161 reads, for up to 5 minutes; a write clears what it affects
Shared entities
13, so ask can line Lark Suite up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Lark Suite.

437 actions in 15 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 161readlook, never change
  • 196writecreate and update
  • 80destructivewait for a confirmation
  1. Contact

    69

    30 read · 23 write · 16 destructive

    Obtain the list of users directly under a department · Query the list of user groups · Create a user · Obtain single user's information

  2. Im

    66

    17 read · 38 write · 11 destructive

    Get chat history · Obtain groups where the user or bot is a member · Send message · Create a group

  3. Task

    50

    17 read · 21 write · 12 destructive

    List Tasklists · Create Task · Create Tasklist · Get Task Details

  4. Drive

    49

    20 read · 22 write · 7 destructive

    Folder · File · Folder · File

  5. Bitable

    46

    15 read · 20 write · 11 destructive

    Table · Table · Table · Table

  6. Sheets

    45

    14 read · 26 write · 5 destructive

    Spreadsheet · Spreadsheet · Spreadsheet · Sheet

  7. Calendar

    31

    12 read · 12 write · 7 destructive

    Get Event List · Query the calendar list · Create event · Get Event

  8. Approval

    29

    12 read · 12 write · 5 destructive

    Create an approval definition · Event interface · Party approval definition · Party approval instances

7 more areas · 52 actions
  • Docx 19
  • Wiki 14
  • Search 12
  • Base 3
  • Tenant 2
  • Board 1
  • Docs 1

Top actions

The Lark Suite API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 89 of Lark Suite's 90 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
lark_suite.drive_files.listFolderFolder.readcontent.file.list77 connectors
lark_suite.bitable_app_tables.listTableTable.readcontent.table.list21 connectors
lark_suite.wiki_spaces.listWiki spaceWiki space.readcontent.site.list16 connectors
lark_suite.calendar_calendar_events.listGet Event ListGet Event List.readcomm.event.list61 connectors
lark_suite.wiki_space_nodes.listNodeNode.readcontent.site_page.list11 connectors
lark_suite.im_messages.listGet chat historyGet chat history.readcomm.message.list42 connectors
lark_suite.task_tasklists.listList TasklistsList Tasklists.readwork.project.list109 connectors
lark_suite.im_chats.listObtain groups where the user or bot is a memberObtain groups where the user or bot is a member.readcomm.chat.list20 connectors
lark_suite.drive_files.deleteFileFile.destructivecontent.file.delete68 connectors
lark_suite.contact_users.createCreate a userCreate a user.writeidentity.user.create262 connectors
lark_suite.bitable_app_tables.createTableTable.writecontent.table.create16 connectors
lark_suite.calendar_calendar_events.createCreate eventCreate event.writecomm.event.create52 connectors

Try it

Prompts to paste into Claude.

Each one names the Lark Suite actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Lark Suite tasks are overdue, and who owns each one?

    callslark_suite.task_tasklists.tasks

  2. Writewrite

    Create a user in Lark Suite. Show me exactly what you will send before you save it.

    callslark_suite.contact_users.create

Governance for Lark Suite

Destructive actions wait for a yes.

80 Lark Suite actions are destructive. The first 10:

  • Filelark_suite.drive_files.delete
  • Delete a userlark_suite.contact_users.delete
  • Tablelark_suite.bitable_app_tables.delete
  • Delete Eventlark_suite.calendar_calendar_events.delete
  • Recall messagelark_suite.im_messages.delete
  • Delete Tasklark_suite.task_tasks.delete
  • Delete Tasklistlark_suite.task_tasklists.delete
  • Delete a grouplark_suite.im_chats.delete
  • Delete shared calendarlark_suite.calendar_calendars.delete
  • Delete a user grouplark_suite.contact_groups.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dolark_suite.drive_files.deleteconfirm_policy: human

File?

intent: the user asked me to file

run suspended · waiting for a named person · key lark-suite-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "lark-suite-agent",  allowed_actions: ["lark_suite.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "lark_suite.drive_files.delete", approver: "[email protected]" },    { match: "lark_suite.contact_users.delete", approver: "[email protected]" },    { match: "lark_suite.bitable_app_tables.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Lark Suite only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Lark Suite costs on actionlake.

Every Lark Suite action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Lark Suite refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 437 Lark Suite actions
  • 437actions pageeach page of a long list is one call
  • 145reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Lark Suite action.

437 actions by area: the id your agent calls, what it does, and its effect.

Contact69
  • lark_suite.contact_custom_attrs.listObtain custom user fieldsread
  • lark_suite.contact_departments.batchObtain bulk department informationread
  • lark_suite.contact_departments.childrenObtain the list of subread
  • lark_suite.contact_departments.createCreate a departmentwrite
  • lark_suite.contact_departments.deleteDelete a departmentdestructive
  • lark_suite.contact_departments.getObtain single department informationread
  • lark_suite.contact_departments.listDepartmentread
  • lark_suite.contact_departments.parentObtain parent department informationread
  • lark_suite.contact_departments.patchModify department information in partwrite
  • lark_suite.contact_departments.unbind_department_chatChange department group to common groupdestructive
  • lark_suite.contact_departments.updateUpdate department information in wholewrite
  • lark_suite.contact_departments.update_department_idUpdate DepartmentIDdestructive
  • lark_suite.contact_employee_type_enums.createAdd a workforce typewrite
  • lark_suite.contact_employee_type_enums.deleteDelete workforce typesdestructive
  • lark_suite.contact_employee_type_enums.listQuery the workforce typeread
  • lark_suite.contact_employee_type_enums.updateUpdate the workforce typewrite
  • lark_suite.contact_functional_role_members.batch_createBatch create role membersdestructive
  • lark_suite.contact_functional_role_members.batch_deleteDelete members from rolesdestructive
  • lark_suite.contact_functional_role_members.getThe administrative scope of a member under a query roleread
  • lark_suite.contact_functional_role_members.listQuery all member information under the roleread
  • lark_suite.contact_functional_role_members.scopesBatch update role members scopeswrite
  • lark_suite.contact_functional_roles.createCreate rolewrite
  • lark_suite.contact_functional_roles.deleteDelete roledestructive
  • lark_suite.contact_functional_roles.updateUpdate role namewrite
  • lark_suite.contact_group_members.addAdd members to a user groupwrite
  • lark_suite.contact_group_members.batch_addBatch add user group memberswrite
  • lark_suite.contact_group_members.batch_removeBatch remove user group membersdestructive
  • lark_suite.contact_group_members.removeRemove members from a user groupdestructive
  • lark_suite.contact_group_members.simplelistList user group memberread
  • lark_suite.contact_groups.createCreate a user groupwrite
  • lark_suite.contact_groups.deleteDelete a user groupdestructive
  • lark_suite.contact_groups.getQuery a user groupread
  • lark_suite.contact_groups.member_belongQuery the user group list to which the user belongsread
  • lark_suite.contact_groups.patchUpdate a user groupwrite
  • lark_suite.contact_groups.simplelistQuery the list of user groupsread
  • lark_suite.contact_job_families.createCreate a job familywrite
  • lark_suite.contact_job_families.deleteDelete a job familydestructive
  • lark_suite.contact_job_families.getQuery a job familyread
  • lark_suite.contact_job_families.listQuery the list of job familyread
  • lark_suite.contact_job_families.updateUpdate job familywrite
  • lark_suite.contact_job_levels.createCreate a job levelwrite
  • lark_suite.contact_job_levels.deleteDelete a job leveldestructive
  • lark_suite.contact_job_levels.getQuery a job levelread
  • lark_suite.contact_job_levels.listQuery the list of job levelread
  • lark_suite.contact_job_levels.updateUpdate job levelwrite
  • lark_suite.contact_job_titles.getQuery a job titleread
  • lark_suite.contact_job_titles.listQuery the list of job titlesread
  • lark_suite.contact_scopes.listObtain the contacts permission scoperead
  • lark_suite.contact_units.bind_departmentAssociate a department with a unitwrite
  • lark_suite.contact_units.createCreate a unitwrite
  • lark_suite.contact_units.deleteDelete unitsdestructive
  • lark_suite.contact_units.getObtain unit informationread
  • lark_suite.contact_units.listList unitsread
  • lark_suite.contact_units.list_departmentList of departments bound to the unitread
  • lark_suite.contact_units.patchModify unit informationwrite
  • lark_suite.contact_units.unbind_departmentDissociate a department with a unitdestructive
  • lark_suite.contact_users.batchObtain multiple users' informationread
  • lark_suite.contact_users.batch_get_idObtain user ID via email or mobile numberread
  • lark_suite.contact_users.createCreate a userwrite
  • lark_suite.contact_users.deleteDelete a userdestructive
  • lark_suite.contact_users.find_by_departmentObtain the list of users directly under a departmentread
  • lark_suite.contact_users.getObtain single user's informationread
  • lark_suite.contact_users.listUserread
  • lark_suite.contact_users.patchModify user information in partwrite
  • lark_suite.contact_users.resurrectRestore deleted userswrite
  • lark_suite.contact_users.updateUserwrite
  • lark_suite.contact_users.update_user_idUpdate UserIDdestructive
  • lark_suite.contact_work_cities.getQuery a work cityread
  • lark_suite.contact_work_cities.listQuery the list of work citiesread
Im66
  • lark_suite.im_app_feed_card_batchs.deleteDelete app feed carddestructive
  • lark_suite.im_app_feed_card_batchs.updateUpdate app feed cardwrite
  • lark_suite.im_app_feed_cards.createCreate app feed cardwrite
  • lark_suite.im_batch_messages.deleteRecall messages in batchesdestructive
  • lark_suite.im_batch_messages.get_progressQuery the overall progress of a batch messageread
  • lark_suite.im_batch_messages.read_userQuery the number of pushers and readers of batch messagesread
  • lark_suite.im_biz_entity_tag_relations.createBind tags with biz entity. Currently, tagging for chat is supportedwrite
  • lark_suite.im_biz_entity_tag_relations.getQuery tags bind on entityread
  • lark_suite.im_biz_entity_tag_relations.updateUnbind tags from biz entitywrite
  • lark_suite.im_chat_announcements.getObtain group announcement informationread
  • lark_suite.im_chat_announcements.patchUpdate group announcement infowrite
  • lark_suite.im_chat_buttons.updateUpdate feed card buttonwrite
  • lark_suite.im_chat_managers.add_managersSpecify group administratorswrite
  • lark_suite.im_chat_managers.delete_managersDelete group administratorsdestructive
  • lark_suite.im_chat_members.createAdd users or bots to a groupwrite
  • lark_suite.im_chat_members.deleteRemove users or bots from a groupdestructive
  • lark_suite.im_chat_members.getObtain group member listread
  • lark_suite.im_chat_members.is_in_chatDetermine whether a user or bot is in a groupread
  • lark_suite.im_chat_members.me_joinUsers or bots join a group voluntarilywrite
  • lark_suite.im_chat_menu_items.patchPatch chat menu item infowrite
  • lark_suite.im_chat_menu_trees.createAdd chat menuwrite
  • lark_suite.im_chat_menu_trees.deleteDelete chat menudestructive
  • lark_suite.im_chat_menu_trees.getGet chat menusread
  • lark_suite.im_chat_menu_trees.sortSort chat menuswrite
  • lark_suite.im_chat_moderations.getObtains the group member speech scopesread
  • lark_suite.im_chat_moderations.updateUpdates group speech scopeswrite
  • lark_suite.im_chat_tabs.createAdd chat tabwrite
  • lark_suite.im_chat_tabs.delete_tabsDelete chat tabdestructive
  • lark_suite.im_chat_tabs.list_tabsPull chat tabsread
  • lark_suite.im_chat_tabs.sort_tabsSort chat tabwrite
  • lark_suite.im_chat_tabs.update_tabsUpdate chat tabwrite
  • lark_suite.im_chat_top_notices.delete_top_noticeRevoke group pinningdestructive
  • lark_suite.im_chat_top_notices.put_top_noticeUpdate group pinningwrite
  • lark_suite.im_chats.createCreate a groupwrite
  • lark_suite.im_chats.deleteDelete a groupdestructive
  • lark_suite.im_chats.getObtain group informationread
  • lark_suite.im_chats.linkGet group share linkwrite
  • lark_suite.im_chats.listObtain groups where the user or bot is a memberread
  • lark_suite.im_chats.searchSearch for groups visible to a user or botread
  • lark_suite.im_chats.updateUpdate group informationwrite
  • lark_suite.im_feed_cards.bot_time_sentiveBot chat instant reminderwrite
  • lark_suite.im_feed_cards.patchInstant reminderwrite
  • lark_suite.im_message_reactions.createAdd a reaction for a messagewrite
  • lark_suite.im_message_reactions.deleteDelete a reaction for a messagedestructive
  • lark_suite.im_message_reactions.listList message reactionsread
  • lark_suite.im_messages.createSend messagewrite
  • lark_suite.im_messages.deleteRecall messagedestructive
  • lark_suite.im_messages.forwardForward a messagewrite
  • lark_suite.im_messages.getObtain the content of the specified messageread
  • lark_suite.im_messages.listGet chat historyread
  • lark_suite.im_messages.merge_forwardMerge forward messageswrite
  • lark_suite.im_messages.patchUpdate sent message cardwrite
  • lark_suite.im_messages.push_follow_upPush followwrite
  • lark_suite.im_messages.read_usersQuery the read status of messageread
  • lark_suite.im_messages.replyReply messagewrite
  • lark_suite.im_messages.updateEdit messagewrite
  • lark_suite.im_messages.urgent_appSend buzz messages in appswrite
  • lark_suite.im_messages.urgent_phoneSend buzz messages via phone callwrite
  • lark_suite.im_messages.urgent_smsSend buzz messages via SMSwrite
  • lark_suite.im_pins.createPin a messagewrite
  • lark_suite.im_pins.deleteUnpin a messagedestructive
  • lark_suite.im_pins.listGet pins in groupread
  • lark_suite.im_tags.createCreate a tag. The tag ID will be returnedwrite
  • lark_suite.im_tags.patchModify the name of the tag in different languageswrite
  • lark_suite.im_threads.forwardForward a threadwrite
  • lark_suite.im_url_previews.batch_updateUpdate URL previewwrite
Task50
  • lark_suite.task_attachments.deleteDelete Attachmentdestructive
  • lark_suite.task_attachments.getGet Attachmentread
  • lark_suite.task_attachments.listList Attachmentread
  • lark_suite.task_comments.createCreate Commentwrite
  • lark_suite.task_comments.deleteDelete Commentdestructive
  • lark_suite.task_comments.getGet Commentread
  • lark_suite.task_comments.listList Commentsread
  • lark_suite.task_comments.patchPatch Commentwrite
  • lark_suite.task_custom_field_options.createCreate Custom Field Optionwrite
  • lark_suite.task_custom_field_options.patchPatch Custom Field Optionwrite
  • lark_suite.task_custom_fields.addAdd Custom Field To Resourcewrite
  • lark_suite.task_custom_fields.createCreate Custom Fieldwrite
  • lark_suite.task_custom_fields.getGet Custom Fieldread
  • lark_suite.task_custom_fields.listList Custom Fieldread
  • lark_suite.task_custom_fields.patchPatch Custom Fieldwrite
  • lark_suite.task_custom_fields.removeRemove Custom Field From Resourcedestructive
  • lark_suite.task_sections.createCreate Sectionwrite
  • lark_suite.task_sections.deleteDelete Sectiondestructive
  • lark_suite.task_sections.getGet Sectionread
  • lark_suite.task_sections.listList Sectionread
  • lark_suite.task_sections.patchPatch Sectionwrite
  • lark_suite.task_sections.tasksList Tasks of Sectionread
  • lark_suite.task_task_subtasks.createCreate Subtaskwrite
  • lark_suite.task_task_subtasks.listList Subtaskread
  • lark_suite.task_tasklist_activity_subscriptions.createCreate Activity Subscriptionwrite
  • lark_suite.task_tasklist_activity_subscriptions.deleteDelete Activity Subscriptiondestructive
  • lark_suite.task_tasklist_activity_subscriptions.getGet Activity Subscriptionread
  • lark_suite.task_tasklist_activity_subscriptions.listList Activity Subscriptionread
  • lark_suite.task_tasklist_activity_subscriptions.patchPatch Activity Subscriptionwrite
  • lark_suite.task_tasklists.add_membersAdd Tasklist Memberswrite
  • lark_suite.task_tasklists.createCreate Tasklistwrite
  • lark_suite.task_tasklists.deleteDelete Tasklistdestructive
  • lark_suite.task_tasklists.getGet Tasklist Detailsread
  • lark_suite.task_tasklists.listList Tasklistsread
  • lark_suite.task_tasklists.patchPatch Tasklistwrite
  • lark_suite.task_tasklists.remove_membersRemove Tasklist Membersdestructive
  • lark_suite.task_tasklists.tasksGet Tasks of Tasklistread
  • lark_suite.task_tasks.add_dependenciesAdd Dependencywrite
  • lark_suite.task_tasks.add_membersAdd members to taskwrite
  • lark_suite.task_tasks.add_remindersAdd reminders to taskwrite
  • lark_suite.task_tasks.add_tasklistAdd task to tasklistwrite
  • lark_suite.task_tasks.createCreate Taskwrite
  • lark_suite.task_tasks.deleteDelete Taskdestructive
  • lark_suite.task_tasks.getGet Task Detailsread
  • lark_suite.task_tasks.patchPatch Taskwrite
  • lark_suite.task_tasks.remove_dependenciesRemove Dependencydestructive
  • lark_suite.task_tasks.remove_membersRemove members from taskdestructive
  • lark_suite.task_tasks.remove_remindersRemove task remindersdestructive
  • lark_suite.task_tasks.remove_tasklistRemove task from tasklistdestructive
  • lark_suite.task_tasks.tasklistsList tasklists of taskread
Drive49
  • lark_suite.drive_export_tasks.createFilewrite
  • lark_suite.drive_export_tasks.getFileread
  • lark_suite.drive_file_comment_replies.deleteDelete Replydestructive
  • lark_suite.drive_file_comment_replies.listGet Replies Listread
  • lark_suite.drive_file_comment_replies.updateUpdate Replywrite
  • lark_suite.drive_file_comments.batch_queryBatch Query Commentsread
  • lark_suite.drive_file_comments.createAdd a Global Commentwrite
  • lark_suite.drive_file_comments.getGet a whole commentread
  • lark_suite.drive_file_comments.listGet Document Comments in Pagesread
  • lark_suite.drive_file_comments.patchSolve or Restore a Commentwrite
  • lark_suite.drive_file_likes.listLikeread
  • lark_suite.drive_file_statistics.getFileread
  • lark_suite.drive_file_versions.createDocument Versionwrite
  • lark_suite.drive_file_versions.deleteDocument Versiondestructive
  • lark_suite.drive_file_versions.getDocument Versionread
  • lark_suite.drive_file_versions.listDocument Versionread
  • lark_suite.drive_file_view_records.listFileread
  • lark_suite.drive_files.copyFilewrite
  • lark_suite.drive_files.create_folderFolderwrite
  • lark_suite.drive_files.create_shortcutFilewrite
  • lark_suite.drive_files.deleteFiledestructive
  • lark_suite.drive_files.delete_subscribeEventdestructive
  • lark_suite.drive_files.get_subscribeEventread
  • lark_suite.drive_files.listFolderread
  • lark_suite.drive_files.moveFilewrite
  • lark_suite.drive_files.subscribeEventwrite
  • lark_suite.drive_files.task_checkFolderread
  • lark_suite.drive_files.upload_finishFilewrite
  • lark_suite.drive_files.upload_prepareFilewrite
  • lark_suite.drive_import_tasks.createFilewrite
  • lark_suite.drive_import_tasks.getFileread
  • lark_suite.drive_media.batch_get_tmp_download_urlMediaread
  • lark_suite.drive_media.upload_finishMediawrite
  • lark_suite.drive_media.upload_prepareMediawrite
  • lark_suite.drive_meta.batch_queryFileread
  • lark_suite.drive_permission_members.authMemberread
  • lark_suite.drive_permission_members.batch_createMemberwrite
  • lark_suite.drive_permission_members.createMemberwrite
  • lark_suite.drive_permission_members.deleteMemberdestructive
  • lark_suite.drive_permission_members.listMemberread
  • lark_suite.drive_permission_members.transfer_ownerMemberdestructive
  • lark_suite.drive_permission_members.updateMemberwrite
  • lark_suite.drive_permission_public_passwords.createPasswordwrite
  • lark_suite.drive_permission_public_passwords.deletePassworddestructive
  • lark_suite.drive_permission_public_passwords.updatePasswordwrite
  • lark_suite.drive_v1_permission_publics.getPermission Setting v1read
  • lark_suite.drive_v1_permission_publics.patchPermission Setting v1write
  • lark_suite.drive_v2_permission_publics.getSettingread
  • lark_suite.drive_v2_permission_publics.patchSettingwrite
Bitable46
  • lark_suite.bitable_app_dashboards.copyDashboardswrite
  • lark_suite.bitable_app_dashboards.listDashboardsread
  • lark_suite.bitable_app_role_members.batch_createAdvanced Permissiondestructive
  • lark_suite.bitable_app_role_members.batch_deleteAdvanced Permissiondestructive
  • lark_suite.bitable_app_role_members.createAdvanced Permissiondestructive
  • lark_suite.bitable_app_role_members.deleteAdvanced Permissiondestructive
  • lark_suite.bitable_app_role_members.listAdvanced Permissionread
  • lark_suite.bitable_app_roles.createBasewrite
  • lark_suite.bitable_app_roles.deleteAdvanced Permissiondestructive
  • lark_suite.bitable_app_roles.listBaseread
  • lark_suite.bitable_app_roles.updateBasewrite
  • lark_suite.bitable_app_table_fields.createFieldwrite
  • lark_suite.bitable_app_table_fields.deleteFielddestructive
  • lark_suite.bitable_app_table_fields.listFieldread
  • lark_suite.bitable_app_table_fields.updateFieldwrite
  • lark_suite.bitable_app_table_form_fields.listFormread
  • lark_suite.bitable_app_table_form_fields.patchFormwrite
  • lark_suite.bitable_app_table_forms.getFormread
  • lark_suite.bitable_app_table_forms.patchFormwrite
  • lark_suite.bitable_app_table_records.batch_createRecordwrite
  • lark_suite.bitable_app_table_records.batch_deleteRecorddestructive
  • lark_suite.bitable_app_table_records.batch_getRecordread
  • lark_suite.bitable_app_table_records.batch_updateRecordwrite
  • lark_suite.bitable_app_table_records.createRecordwrite
  • lark_suite.bitable_app_table_records.deleteRecorddestructive
  • lark_suite.bitable_app_table_records.getBaseread
  • lark_suite.bitable_app_table_records.listBaseread
  • lark_suite.bitable_app_table_records.searchRecordread
  • lark_suite.bitable_app_table_records.updateRecordwrite
  • lark_suite.bitable_app_table_views.createViewwrite
  • lark_suite.bitable_app_table_views.deleteViewdestructive
  • lark_suite.bitable_app_table_views.getViewread
  • lark_suite.bitable_app_table_views.listViewread
  • lark_suite.bitable_app_table_views.patchViewwrite
  • lark_suite.bitable_app_tables.batch_createTablewrite
  • lark_suite.bitable_app_tables.batch_deleteTabledestructive
  • lark_suite.bitable_app_tables.createTablewrite
  • lark_suite.bitable_app_tables.deleteTabledestructive
  • lark_suite.bitable_app_tables.listTableread
  • lark_suite.bitable_app_tables.patchTablewrite
  • lark_suite.bitable_app_workflows.listAutomationread
  • lark_suite.bitable_app_workflows.updateAutomationwrite
  • lark_suite.bitable_apps.copyAppwrite
  • lark_suite.bitable_apps.createAppwrite
  • lark_suite.bitable_apps.getAppread
  • lark_suite.bitable_apps.updateAppwrite
Sheets45
  • lark_suite.sheets_cells.batch_set_styleBatch set cell styleswrite
  • lark_suite.sheets_cells.mergeMerge cellswrite
  • lark_suite.sheets_cells.set_styleSet cell stylewrite
  • lark_suite.sheets_cells.unmergeSplit merged cellswrite
  • lark_suite.sheets_dimensions.addAdd rows or columns at the end of a sheetwrite
  • lark_suite.sheets_dimensions.deleteDelete rows or columnsdestructive
  • lark_suite.sheets_dimensions.insertInsert rows or columnswrite
  • lark_suite.sheets_dimensions.updateUpdate row or column propertieswrite
  • lark_suite.sheets_metainfo.getGet spreadsheet metadataread
  • lark_suite.sheets_properties.updateUpdate spreadsheet propertieswrite
  • lark_suite.sheets_sheets.batch_updateAdd, copy, delete or update sheetswrite
  • lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.createFilter viewwrite
  • lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.deleteFilter viewdestructive
  • lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.getFilter viewread
  • lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.queryFilter viewread
  • lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.updateFilter viewwrite
  • lark_suite.sheets_spreadsheet_sheet_filter_views.createFilter viewwrite
  • lark_suite.sheets_spreadsheet_sheet_filter_views.deleteFilter viewdestructive
  • lark_suite.sheets_spreadsheet_sheet_filter_views.getFilter viewread
  • lark_suite.sheets_spreadsheet_sheet_filter_views.patchFilter viewwrite
  • lark_suite.sheets_spreadsheet_sheet_filter_views.queryFilter viewread
  • lark_suite.sheets_spreadsheet_sheet_filters.createFilterwrite
  • lark_suite.sheets_spreadsheet_sheet_filters.deleteFilterdestructive
  • lark_suite.sheets_spreadsheet_sheet_filters.getFilterread
  • lark_suite.sheets_spreadsheet_sheet_filters.updateFilterwrite
  • lark_suite.sheets_spreadsheet_sheet_float_images.createFloating imagewrite
  • lark_suite.sheets_spreadsheet_sheet_float_images.deleteFloating imagedestructive
  • lark_suite.sheets_spreadsheet_sheet_float_images.getFloating imageread
  • lark_suite.sheets_spreadsheet_sheet_float_images.patchFloating imagewrite
  • lark_suite.sheets_spreadsheet_sheet_float_images.queryFloating imageread
  • lark_suite.sheets_spreadsheet_sheets.findCellread
  • lark_suite.sheets_spreadsheet_sheets.getSheetread
  • lark_suite.sheets_spreadsheet_sheets.move_dimensionRow Columnwrite
  • lark_suite.sheets_spreadsheet_sheets.querySheetread
  • lark_suite.sheets_spreadsheet_sheets.replaceCellwrite
  • lark_suite.sheets_spreadsheets.createSpreadsheetwrite
  • lark_suite.sheets_spreadsheets.getSpreadsheetread
  • lark_suite.sheets_spreadsheets.patchSpreadsheetwrite
  • lark_suite.sheets_values.appendAppend data after a rangewrite
  • lark_suite.sheets_values.batch_getRead multiple rangesread
  • lark_suite.sheets_values.batch_updateWrite data to multiple rangeswrite
  • lark_suite.sheets_values.getRead a single rangeread
  • lark_suite.sheets_values.prependPrepend data above a rangewrite
  • lark_suite.sheets_values.updateWrite data to a single rangewrite
  • lark_suite.sheets_values.write_imageWrite an image into a cellwrite
Calendar31
  • lark_suite.calendar_calendar_acls.createCreate ACLwrite
  • lark_suite.calendar_calendar_acls.deleteDelete ACLdestructive
  • lark_suite.calendar_calendar_acls.listObtain the ACLread
  • lark_suite.calendar_calendar_event_attendee_chat_members.listObtain the list of members of group invitees of an eventread
  • lark_suite.calendar_calendar_event_attendees.batch_deleteDelete event inviteesdestructive
  • lark_suite.calendar_calendar_event_attendees.createCreate event inviteeswrite
  • lark_suite.calendar_calendar_event_attendees.listObtain event invitee listread
  • lark_suite.calendar_calendar_event_meeting_chats.createCreate meeting chatwrite
  • lark_suite.calendar_calendar_event_meeting_chats.deleteUnbind meeting chatdestructive
  • lark_suite.calendar_calendar_event_meeting_minutes.createCreate meeting minutewrite
  • lark_suite.calendar_calendar_events.createCreate eventwrite
  • lark_suite.calendar_calendar_events.deleteDelete Eventdestructive
  • lark_suite.calendar_calendar_events.getGet Eventread
  • lark_suite.calendar_calendar_events.instance_viewQuery event viewread
  • lark_suite.calendar_calendar_events.instancesGet Event instancesread
  • lark_suite.calendar_calendar_events.listGet Event Listread
  • lark_suite.calendar_calendar_events.patchUpdate Eventwrite
  • lark_suite.calendar_calendar_events.replyReply Eventwrite
  • lark_suite.calendar_calendar_events.searchSearch Eventread
  • lark_suite.calendar_calendars.createCreate a shared calendarwrite
  • lark_suite.calendar_calendars.deleteDelete shared calendardestructive
  • lark_suite.calendar_calendars.getQuery calendar informationread
  • lark_suite.calendar_calendars.listQuery the calendar listread
  • lark_suite.calendar_calendars.patchUpdate calendar informationwrite
  • lark_suite.calendar_calendars.primaryQuery primary calendar informationwrite
  • lark_suite.calendar_calendars.searchSearch Calendarread
  • lark_suite.calendar_calendars.subscribeSubscribe Calendarwrite
  • lark_suite.calendar_calendars.unsubscribeUnsubscribe Calendardestructive
  • lark_suite.calendar_freebusy.listQuery availability of the primary calendarread
  • lark_suite.calendar_timeoff_events.createCreate Timeoff Eventwrite
  • lark_suite.calendar_timeoff_events.deleteDelete Timeoff Eventdestructive
Approval29
  • lark_suite.approval_approvals.createCreate an approval definitionwrite
  • lark_suite.approval_approvals.getView approval definitionsread
  • lark_suite.approval_approvals.subscribeEvent interfacewrite
  • lark_suite.approval_approvals.unsubscribeEvent interfacedestructive
  • lark_suite.approval_external_approvals.createParty approval definitionwrite
  • lark_suite.approval_external_approvals.getParty approval definitionread
  • lark_suite.approval_external_instances.checkParty approval instancesread
  • lark_suite.approval_external_instances.createParty approval instanceswrite
  • lark_suite.approval_external_tasks.listParty approval tasksread
  • lark_suite.approval_instance_comments.createCreate commentswrite
  • lark_suite.approval_instance_comments.deleteDelete commentsdestructive
  • lark_suite.approval_instance_comments.listReceive commentsread
  • lark_suite.approval_instance_comments.removeClear commentsdestructive
  • lark_suite.approval_instances.add_signAdd approverswrite
  • lark_suite.approval_instances.cancelRevoke approval instancesdestructive
  • lark_suite.approval_instances.ccNotify someone of approval instanceswrite
  • lark_suite.approval_instances.createCreate an approval instancewrite
  • lark_suite.approval_instances.getObtain details of an approval instanceread
  • lark_suite.approval_instances.listObtain IDs of multiple approval instancesread
  • lark_suite.approval_instances.previewPreview approval instancesread
  • lark_suite.approval_instances.queryList of instancesread
  • lark_suite.approval_instances.search_ccList of cc informationread
  • lark_suite.approval_instances.specified_rollbackReturn approval taskwrite
  • lark_suite.approval_tasks.approveAgree to approval taskwrite
  • lark_suite.approval_tasks.queryQuery the user's task listread
  • lark_suite.approval_tasks.rejectRefuse to approve taskswrite
  • lark_suite.approval_tasks.resubmitResubmit the task for approvalwrite
  • lark_suite.approval_tasks.searchQuery list of tasksread
  • lark_suite.approval_tasks.transferTransfer the approval taskdestructive
Docx19
  • lark_suite.docx_chat_announcement_block_childrens.batch_deleteBlockdestructive
  • lark_suite.docx_chat_announcement_block_childrens.createBlockwrite
  • lark_suite.docx_chat_announcement_block_childrens.getBlockread
  • lark_suite.docx_chat_announcement_blocks.batch_updateBlockwrite
  • lark_suite.docx_chat_announcement_blocks.getBlockread
  • lark_suite.docx_chat_announcement_blocks.listGroup announcementread
  • lark_suite.docx_chat_announcements.getGroup announcementread
  • lark_suite.docx_document_block_childrens.batch_deleteBlockdestructive
  • lark_suite.docx_document_block_childrens.createBlockwrite
  • lark_suite.docx_document_block_childrens.getBlockread
  • lark_suite.docx_document_block_descendants.createBlockwrite
  • lark_suite.docx_document_blocks.batch_updateBlockwrite
  • lark_suite.docx_document_blocks.getBlockread
  • lark_suite.docx_document_blocks.listDocumentread
  • lark_suite.docx_document_blocks.patchBlockwrite
  • lark_suite.docx_documents.convertBlockwrite
  • lark_suite.docx_documents.createDocumentwrite
  • lark_suite.docx_documents.getDocumentread
  • lark_suite.docx_documents.raw_contentDocumentread
Wiki14
  • lark_suite.wiki_space_members.createSpace memberwrite
  • lark_suite.wiki_space_members.deleteSpace memberdestructive
  • lark_suite.wiki_space_members.listSpace memberread
  • lark_suite.wiki_space_nodes.copyNodewrite
  • lark_suite.wiki_space_nodes.createNodewrite
  • lark_suite.wiki_space_nodes.listNoderead
  • lark_suite.wiki_space_nodes.moveNodewrite
  • lark_suite.wiki_space_nodes.move_docs_to_wikiDocswrite
  • lark_suite.wiki_space_nodes.update_titleNodewrite
  • lark_suite.wiki_space_setting.updateSpace settingswrite
  • lark_suite.wiki_spaces.getWiki spaceread
  • lark_suite.wiki_spaces.get_nodeNoderead
  • lark_suite.wiki_spaces.listWiki spaceread
  • lark_suite.wiki_tasks.getDocsread
Search12
  • lark_suite.search_data_source_items.createData itemwrite
  • lark_suite.search_data_source_items.deleteData itemdestructive
  • lark_suite.search_data_source_items.getData itemread
  • lark_suite.search_data_sources.createData sourcewrite
  • lark_suite.search_data_sources.deleteData sourcedestructive
  • lark_suite.search_data_sources.getData sourceread
  • lark_suite.search_data_sources.listData sourceread
  • lark_suite.search_data_sources.patchData sourcewrite
  • lark_suite.search_schemas.createData schemawrite
  • lark_suite.search_schemas.deleteData schemadestructive
  • lark_suite.search_schemas.getData schemaread
  • lark_suite.search_schemas.patchData schemawrite
Base3
  • lark_suite.base_app_roles.createAdvanced Permissionwrite
  • lark_suite.base_app_roles.listAdvanced Permissionread
  • lark_suite.base_app_roles.updateAdvanced Permissionwrite
Tenant2
  • lark_suite.tenant_tenant_product_assign_infos.queryObtain company assign informationread
  • lark_suite.tenant_tenants.queryObtains company information such as the company name and the company IDread
Board1
  • lark_suite.board_whiteboard_nodes.listNodesread
Docs1
  • lark_suite.docs_contents.getGet docs contentread

Questions

The Lark Suite MCP server, answered.

Is there a Lark Suite MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 437 Lark Suite actions across contact, im, task and drive, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Lark Suite.

What do I need to connect Lark Suite?

Lark App ID (Developer Console > your custom app > Credentials & Basic Info, starts with cli_) and Lark App Secret. Plus your host. The free call account { op: "connections.requirements", service: "lark_suite" } lists exactly what to paste.

Can an AI agent delete or change things in Lark Suite?

Only if its key allows it, and only with an explicit confirmation. 80 Lark Suite actions are destructive, including file, delete a user and table. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Lark Suite API limit?

actionlake paces every call to the limits in the Lark Suite service file: 20 calls a second per connection. Repeated reads are answered from cache (145 Lark Suite actions can be), which never reaches Lark Suite.

What does a Lark Suite action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (437 Lark Suite actions page). Cache hits, searches, dry runs and calls Lark Suite refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Lark Suite API does it cover?

The Lark Suite (Docs, Base, Wiki, Sheets, Drive, Messenger, Calendar, Tasks, Contacts, Approval) API Lark Open Platform server APIs (open-apis), tool definitions of larksuite/lark-openapi-mcp and response models of larksuite/oapi-sdk-go v3, fetched 2026-10-23 at open.larksuite.com by default, or the base URL set when you connect. It is built from Lark Suite's documentation as read on 23 October 2026. 437 actions in 15 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Lark Suite data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Lark Suite credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Lark Suite today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.