---
title: "Lark Suite MCP server for AI agents - actionlake"
description: "Give Claude 437 Lark Suite actions through one MCP server: contact, im, task, drive. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/lark-suite
updated: 2026-10-23
---

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.

[Connect Lark Suite free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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
```

- 437 actions in one signed file
- 161 read look, never change
- 196 write create and update
- 80 wait for a yes destructive, 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_id` Lark App ID (Developer Console > your custom app > Credentials & Basic Info, starts with cli_)
   - `app_secret` Lark App Secret
   - `host` Where 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 call
   check { 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_id` `app_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-23`open.larksuite.com`

**Built from**

Lark Suite's documentation, read 23 October 2026[GitHub](https://github.com/larksuite/lark-openapi-mcp/tree/main/src/mcp-tool/tools/en/gen-tools/zod) [GitHub](https://github.com/larksuite/oapi-sdk-go/tree/v3_main/service) [open.larksuite.com](https://open.larksuite.com/document/server-docs/docs/docs-overview)

**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.

- **161** read look, never change
- **196** write create and update
- **80** destructive wait 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.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `lark_suite.drive_files.list` Folder | Folder. | read | `content.file.list` 77 connectors |
| `lark_suite.bitable_app_tables.list` Table | Table. | read | `content.table.list` 21 connectors |
| `lark_suite.wiki_spaces.list` Wiki space | Wiki space. | read | `content.site.list` 16 connectors |
| `lark_suite.calendar_calendar_events.list` Get Event List | Get Event List. | read | `comm.event.list` 61 connectors |
| `lark_suite.wiki_space_nodes.list` Node | Node. | read | `content.site_page.list` 11 connectors |
| `lark_suite.im_messages.list` Get chat history | Get chat history. | read | `comm.message.list` 42 connectors |
| `lark_suite.task_tasklists.list` List Tasklists | List Tasklists. | read | `work.project.list` 109 connectors |
| `lark_suite.im_chats.list` Obtain groups where the user or bot is a member | Obtain groups where the user or bot is a member. | read | `comm.chat.list` 20 connectors |
| `lark_suite.drive_files.delete` File | File. | destructive | `content.file.delete` 68 connectors |
| `lark_suite.contact_users.create` Create a user | Create a user. | write | `identity.user.create` 262 connectors |
| `lark_suite.bitable_app_tables.create` Table | Table. | write | `content.table.create` 16 connectors |
| `lark_suite.calendar_calendar_events.create` Create event | Create event. | write | `comm.event.create` 52 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. Read read
   Which Lark Suite tasks are overdue, and who owns each one?
   calls `lark_suite.task_tasklists.tasks`
2. Write write
   Create a user in Lark Suite. Show me exactly what you will send before you save it.
   calls `lark_suite.contact_users.create`

Governance for Lark Suite

## Destructive actions wait for a yes.

80 Lark Suite actions are destructive. The first 10:

- File `lark_suite.drive_files.delete`
- Delete a user `lark_suite.contact_users.delete`
- Table `lark_suite.bitable_app_tables.delete`
- Delete Event `lark_suite.calendar_calendar_events.delete`
- Recall message `lark_suite.im_messages.delete`
- Delete Task `lark_suite.task_tasks.delete`
- Delete Tasklist `lark_suite.task_tasklists.delete`
- Delete a group `lark_suite.im_chats.delete`
- Delete shared calendar `lark_suite.calendar_calendars.delete`
- Delete a user group `lark_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.

do lark_suite.drive_files.delete confirm_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: "lead@example.com" },
    { match: "lark_suite.contact_users.delete", approver: "lead@example.com" },
    { match: "lark_suite.bitable_app_tables.delete", approver: "lead@example.com" }
  ]
}
```

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.

- 1 upstream call per action all 437 Lark Suite actions
- 437 actions page each page of a long list is one call
- 145 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Lark Suite action.

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

**Contact 69**

- `lark_suite.contact_custom_attrs.list` Obtain custom user fields read
- `lark_suite.contact_departments.batch` Obtain bulk department information read
- `lark_suite.contact_departments.children` Obtain the list of sub read
- `lark_suite.contact_departments.create` Create a department write
- `lark_suite.contact_departments.delete` Delete a department destructive
- `lark_suite.contact_departments.get` Obtain single department information read
- `lark_suite.contact_departments.list` Department read
- `lark_suite.contact_departments.parent` Obtain parent department information read
- `lark_suite.contact_departments.patch` Modify department information in part write
- `lark_suite.contact_departments.unbind_department_chat` Change department group to common group destructive
- `lark_suite.contact_departments.update` Update department information in whole write
- `lark_suite.contact_departments.update_department_id` Update DepartmentID destructive
- `lark_suite.contact_employee_type_enums.create` Add a workforce type write
- `lark_suite.contact_employee_type_enums.delete` Delete workforce types destructive
- `lark_suite.contact_employee_type_enums.list` Query the workforce type read
- `lark_suite.contact_employee_type_enums.update` Update the workforce type write
- `lark_suite.contact_functional_role_members.batch_create` Batch create role members destructive
- `lark_suite.contact_functional_role_members.batch_delete` Delete members from roles destructive
- `lark_suite.contact_functional_role_members.get` The administrative scope of a member under a query role read
- `lark_suite.contact_functional_role_members.list` Query all member information under the role read
- `lark_suite.contact_functional_role_members.scopes` Batch update role members scopes write
- `lark_suite.contact_functional_roles.create` Create role write
- `lark_suite.contact_functional_roles.delete` Delete role destructive
- `lark_suite.contact_functional_roles.update` Update role name write
- `lark_suite.contact_group_members.add` Add members to a user group write
- `lark_suite.contact_group_members.batch_add` Batch add user group members write
- `lark_suite.contact_group_members.batch_remove` Batch remove user group members destructive
- `lark_suite.contact_group_members.remove` Remove members from a user group destructive
- `lark_suite.contact_group_members.simplelist` List user group member read
- `lark_suite.contact_groups.create` Create a user group write
- `lark_suite.contact_groups.delete` Delete a user group destructive
- `lark_suite.contact_groups.get` Query a user group read
- `lark_suite.contact_groups.member_belong` Query the user group list to which the user belongs read
- `lark_suite.contact_groups.patch` Update a user group write
- `lark_suite.contact_groups.simplelist` Query the list of user groups read
- `lark_suite.contact_job_families.create` Create a job family write
- `lark_suite.contact_job_families.delete` Delete a job family destructive
- `lark_suite.contact_job_families.get` Query a job family read
- `lark_suite.contact_job_families.list` Query the list of job family read
- `lark_suite.contact_job_families.update` Update job family write
- `lark_suite.contact_job_levels.create` Create a job level write
- `lark_suite.contact_job_levels.delete` Delete a job level destructive
- `lark_suite.contact_job_levels.get` Query a job level read
- `lark_suite.contact_job_levels.list` Query the list of job level read
- `lark_suite.contact_job_levels.update` Update job level write
- `lark_suite.contact_job_titles.get` Query a job title read
- `lark_suite.contact_job_titles.list` Query the list of job titles read
- `lark_suite.contact_scopes.list` Obtain the contacts permission scope read
- `lark_suite.contact_units.bind_department` Associate a department with a unit write
- `lark_suite.contact_units.create` Create a unit write
- `lark_suite.contact_units.delete` Delete units destructive
- `lark_suite.contact_units.get` Obtain unit information read
- `lark_suite.contact_units.list` List units read
- `lark_suite.contact_units.list_department` List of departments bound to the unit read
- `lark_suite.contact_units.patch` Modify unit information write
- `lark_suite.contact_units.unbind_department` Dissociate a department with a unit destructive
- `lark_suite.contact_users.batch` Obtain multiple users' information read
- `lark_suite.contact_users.batch_get_id` Obtain user ID via email or mobile number read
- `lark_suite.contact_users.create` Create a user write
- `lark_suite.contact_users.delete` Delete a user destructive
- `lark_suite.contact_users.find_by_department` Obtain the list of users directly under a department read
- `lark_suite.contact_users.get` Obtain single user's information read
- `lark_suite.contact_users.list` User read
- `lark_suite.contact_users.patch` Modify user information in part write
- `lark_suite.contact_users.resurrect` Restore deleted users write
- `lark_suite.contact_users.update` User write
- `lark_suite.contact_users.update_user_id` Update UserID destructive
- `lark_suite.contact_work_cities.get` Query a work city read
- `lark_suite.contact_work_cities.list` Query the list of work cities read

**Im 66**

- `lark_suite.im_app_feed_card_batchs.delete` Delete app feed card destructive
- `lark_suite.im_app_feed_card_batchs.update` Update app feed card write
- `lark_suite.im_app_feed_cards.create` Create app feed card write
- `lark_suite.im_batch_messages.delete` Recall messages in batches destructive
- `lark_suite.im_batch_messages.get_progress` Query the overall progress of a batch message read
- `lark_suite.im_batch_messages.read_user` Query the number of pushers and readers of batch messages read
- `lark_suite.im_biz_entity_tag_relations.create` Bind tags with biz entity. Currently, tagging for chat is supported write
- `lark_suite.im_biz_entity_tag_relations.get` Query tags bind on entity read
- `lark_suite.im_biz_entity_tag_relations.update` Unbind tags from biz entity write
- `lark_suite.im_chat_announcements.get` Obtain group announcement information read
- `lark_suite.im_chat_announcements.patch` Update group announcement info write
- `lark_suite.im_chat_buttons.update` Update feed card button write
- `lark_suite.im_chat_managers.add_managers` Specify group administrators write
- `lark_suite.im_chat_managers.delete_managers` Delete group administrators destructive
- `lark_suite.im_chat_members.create` Add users or bots to a group write
- `lark_suite.im_chat_members.delete` Remove users or bots from a group destructive
- `lark_suite.im_chat_members.get` Obtain group member list read
- `lark_suite.im_chat_members.is_in_chat` Determine whether a user or bot is in a group read
- `lark_suite.im_chat_members.me_join` Users or bots join a group voluntarily write
- `lark_suite.im_chat_menu_items.patch` Patch chat menu item info write
- `lark_suite.im_chat_menu_trees.create` Add chat menu write
- `lark_suite.im_chat_menu_trees.delete` Delete chat menu destructive
- `lark_suite.im_chat_menu_trees.get` Get chat menus read
- `lark_suite.im_chat_menu_trees.sort` Sort chat menus write
- `lark_suite.im_chat_moderations.get` Obtains the group member speech scopes read
- `lark_suite.im_chat_moderations.update` Updates group speech scopes write
- `lark_suite.im_chat_tabs.create` Add chat tab write
- `lark_suite.im_chat_tabs.delete_tabs` Delete chat tab destructive
- `lark_suite.im_chat_tabs.list_tabs` Pull chat tabs read
- `lark_suite.im_chat_tabs.sort_tabs` Sort chat tab write
- `lark_suite.im_chat_tabs.update_tabs` Update chat tab write
- `lark_suite.im_chat_top_notices.delete_top_notice` Revoke group pinning destructive
- `lark_suite.im_chat_top_notices.put_top_notice` Update group pinning write
- `lark_suite.im_chats.create` Create a group write
- `lark_suite.im_chats.delete` Delete a group destructive
- `lark_suite.im_chats.get` Obtain group information read
- `lark_suite.im_chats.link` Get group share link write
- `lark_suite.im_chats.list` Obtain groups where the user or bot is a member read
- `lark_suite.im_chats.search` Search for groups visible to a user or bot read
- `lark_suite.im_chats.update` Update group information write
- `lark_suite.im_feed_cards.bot_time_sentive` Bot chat instant reminder write
- `lark_suite.im_feed_cards.patch` Instant reminder write
- `lark_suite.im_message_reactions.create` Add a reaction for a message write
- `lark_suite.im_message_reactions.delete` Delete a reaction for a message destructive
- `lark_suite.im_message_reactions.list` List message reactions read
- `lark_suite.im_messages.create` Send message write
- `lark_suite.im_messages.delete` Recall message destructive
- `lark_suite.im_messages.forward` Forward a message write
- `lark_suite.im_messages.get` Obtain the content of the specified message read
- `lark_suite.im_messages.list` Get chat history read
- `lark_suite.im_messages.merge_forward` Merge forward messages write
- `lark_suite.im_messages.patch` Update sent message card write
- `lark_suite.im_messages.push_follow_up` Push follow write
- `lark_suite.im_messages.read_users` Query the read status of message read
- `lark_suite.im_messages.reply` Reply message write
- `lark_suite.im_messages.update` Edit message write
- `lark_suite.im_messages.urgent_app` Send buzz messages in apps write
- `lark_suite.im_messages.urgent_phone` Send buzz messages via phone call write
- `lark_suite.im_messages.urgent_sms` Send buzz messages via SMS write
- `lark_suite.im_pins.create` Pin a message write
- `lark_suite.im_pins.delete` Unpin a message destructive
- `lark_suite.im_pins.list` Get pins in group read
- `lark_suite.im_tags.create` Create a tag. The tag ID will be returned write
- `lark_suite.im_tags.patch` Modify the name of the tag in different languages write
- `lark_suite.im_threads.forward` Forward a thread write
- `lark_suite.im_url_previews.batch_update` Update URL preview write

**Task 50**

- `lark_suite.task_attachments.delete` Delete Attachment destructive
- `lark_suite.task_attachments.get` Get Attachment read
- `lark_suite.task_attachments.list` List Attachment read
- `lark_suite.task_comments.create` Create Comment write
- `lark_suite.task_comments.delete` Delete Comment destructive
- `lark_suite.task_comments.get` Get Comment read
- `lark_suite.task_comments.list` List Comments read
- `lark_suite.task_comments.patch` Patch Comment write
- `lark_suite.task_custom_field_options.create` Create Custom Field Option write
- `lark_suite.task_custom_field_options.patch` Patch Custom Field Option write
- `lark_suite.task_custom_fields.add` Add Custom Field To Resource write
- `lark_suite.task_custom_fields.create` Create Custom Field write
- `lark_suite.task_custom_fields.get` Get Custom Field read
- `lark_suite.task_custom_fields.list` List Custom Field read
- `lark_suite.task_custom_fields.patch` Patch Custom Field write
- `lark_suite.task_custom_fields.remove` Remove Custom Field From Resource destructive
- `lark_suite.task_sections.create` Create Section write
- `lark_suite.task_sections.delete` Delete Section destructive
- `lark_suite.task_sections.get` Get Section read
- `lark_suite.task_sections.list` List Section read
- `lark_suite.task_sections.patch` Patch Section write
- `lark_suite.task_sections.tasks` List Tasks of Section read
- `lark_suite.task_task_subtasks.create` Create Subtask write
- `lark_suite.task_task_subtasks.list` List Subtask read
- `lark_suite.task_tasklist_activity_subscriptions.create` Create Activity Subscription write
- `lark_suite.task_tasklist_activity_subscriptions.delete` Delete Activity Subscription destructive
- `lark_suite.task_tasklist_activity_subscriptions.get` Get Activity Subscription read
- `lark_suite.task_tasklist_activity_subscriptions.list` List Activity Subscription read
- `lark_suite.task_tasklist_activity_subscriptions.patch` Patch Activity Subscription write
- `lark_suite.task_tasklists.add_members` Add Tasklist Members write
- `lark_suite.task_tasklists.create` Create Tasklist write
- `lark_suite.task_tasklists.delete` Delete Tasklist destructive
- `lark_suite.task_tasklists.get` Get Tasklist Details read
- `lark_suite.task_tasklists.list` List Tasklists read
- `lark_suite.task_tasklists.patch` Patch Tasklist write
- `lark_suite.task_tasklists.remove_members` Remove Tasklist Members destructive
- `lark_suite.task_tasklists.tasks` Get Tasks of Tasklist read
- `lark_suite.task_tasks.add_dependencies` Add Dependency write
- `lark_suite.task_tasks.add_members` Add members to task write
- `lark_suite.task_tasks.add_reminders` Add reminders to task write
- `lark_suite.task_tasks.add_tasklist` Add task to tasklist write
- `lark_suite.task_tasks.create` Create Task write
- `lark_suite.task_tasks.delete` Delete Task destructive
- `lark_suite.task_tasks.get` Get Task Details read
- `lark_suite.task_tasks.patch` Patch Task write
- `lark_suite.task_tasks.remove_dependencies` Remove Dependency destructive
- `lark_suite.task_tasks.remove_members` Remove members from task destructive
- `lark_suite.task_tasks.remove_reminders` Remove task reminders destructive
- `lark_suite.task_tasks.remove_tasklist` Remove task from tasklist destructive
- `lark_suite.task_tasks.tasklists` List tasklists of task read

**Drive 49**

- `lark_suite.drive_export_tasks.create` File write
- `lark_suite.drive_export_tasks.get` File read
- `lark_suite.drive_file_comment_replies.delete` Delete Reply destructive
- `lark_suite.drive_file_comment_replies.list` Get Replies List read
- `lark_suite.drive_file_comment_replies.update` Update Reply write
- `lark_suite.drive_file_comments.batch_query` Batch Query Comments read
- `lark_suite.drive_file_comments.create` Add a Global Comment write
- `lark_suite.drive_file_comments.get` Get a whole comment read
- `lark_suite.drive_file_comments.list` Get Document Comments in Pages read
- `lark_suite.drive_file_comments.patch` Solve or Restore a Comment write
- `lark_suite.drive_file_likes.list` Like read
- `lark_suite.drive_file_statistics.get` File read
- `lark_suite.drive_file_versions.create` Document Version write
- `lark_suite.drive_file_versions.delete` Document Version destructive
- `lark_suite.drive_file_versions.get` Document Version read
- `lark_suite.drive_file_versions.list` Document Version read
- `lark_suite.drive_file_view_records.list` File read
- `lark_suite.drive_files.copy` File write
- `lark_suite.drive_files.create_folder` Folder write
- `lark_suite.drive_files.create_shortcut` File write
- `lark_suite.drive_files.delete` File destructive
- `lark_suite.drive_files.delete_subscribe` Event destructive
- `lark_suite.drive_files.get_subscribe` Event read
- `lark_suite.drive_files.list` Folder read
- `lark_suite.drive_files.move` File write
- `lark_suite.drive_files.subscribe` Event write
- `lark_suite.drive_files.task_check` Folder read
- `lark_suite.drive_files.upload_finish` File write
- `lark_suite.drive_files.upload_prepare` File write
- `lark_suite.drive_import_tasks.create` File write
- `lark_suite.drive_import_tasks.get` File read
- `lark_suite.drive_media.batch_get_tmp_download_url` Media read
- `lark_suite.drive_media.upload_finish` Media write
- `lark_suite.drive_media.upload_prepare` Media write
- `lark_suite.drive_meta.batch_query` File read
- `lark_suite.drive_permission_members.auth` Member read
- `lark_suite.drive_permission_members.batch_create` Member write
- `lark_suite.drive_permission_members.create` Member write
- `lark_suite.drive_permission_members.delete` Member destructive
- `lark_suite.drive_permission_members.list` Member read
- `lark_suite.drive_permission_members.transfer_owner` Member destructive
- `lark_suite.drive_permission_members.update` Member write
- `lark_suite.drive_permission_public_passwords.create` Password write
- `lark_suite.drive_permission_public_passwords.delete` Password destructive
- `lark_suite.drive_permission_public_passwords.update` Password write
- `lark_suite.drive_v1_permission_publics.get` Permission Setting v1 read
- `lark_suite.drive_v1_permission_publics.patch` Permission Setting v1 write
- `lark_suite.drive_v2_permission_publics.get` Setting read
- `lark_suite.drive_v2_permission_publics.patch` Setting write

**Bitable 46**

- `lark_suite.bitable_app_dashboards.copy` Dashboards write
- `lark_suite.bitable_app_dashboards.list` Dashboards read
- `lark_suite.bitable_app_role_members.batch_create` Advanced Permission destructive
- `lark_suite.bitable_app_role_members.batch_delete` Advanced Permission destructive
- `lark_suite.bitable_app_role_members.create` Advanced Permission destructive
- `lark_suite.bitable_app_role_members.delete` Advanced Permission destructive
- `lark_suite.bitable_app_role_members.list` Advanced Permission read
- `lark_suite.bitable_app_roles.create` Base write
- `lark_suite.bitable_app_roles.delete` Advanced Permission destructive
- `lark_suite.bitable_app_roles.list` Base read
- `lark_suite.bitable_app_roles.update` Base write
- `lark_suite.bitable_app_table_fields.create` Field write
- `lark_suite.bitable_app_table_fields.delete` Field destructive
- `lark_suite.bitable_app_table_fields.list` Field read
- `lark_suite.bitable_app_table_fields.update` Field write
- `lark_suite.bitable_app_table_form_fields.list` Form read
- `lark_suite.bitable_app_table_form_fields.patch` Form write
- `lark_suite.bitable_app_table_forms.get` Form read
- `lark_suite.bitable_app_table_forms.patch` Form write
- `lark_suite.bitable_app_table_records.batch_create` Record write
- `lark_suite.bitable_app_table_records.batch_delete` Record destructive
- `lark_suite.bitable_app_table_records.batch_get` Record read
- `lark_suite.bitable_app_table_records.batch_update` Record write
- `lark_suite.bitable_app_table_records.create` Record write
- `lark_suite.bitable_app_table_records.delete` Record destructive
- `lark_suite.bitable_app_table_records.get` Base read
- `lark_suite.bitable_app_table_records.list` Base read
- `lark_suite.bitable_app_table_records.search` Record read
- `lark_suite.bitable_app_table_records.update` Record write
- `lark_suite.bitable_app_table_views.create` View write
- `lark_suite.bitable_app_table_views.delete` View destructive
- `lark_suite.bitable_app_table_views.get` View read
- `lark_suite.bitable_app_table_views.list` View read
- `lark_suite.bitable_app_table_views.patch` View write
- `lark_suite.bitable_app_tables.batch_create` Table write
- `lark_suite.bitable_app_tables.batch_delete` Table destructive
- `lark_suite.bitable_app_tables.create` Table write
- `lark_suite.bitable_app_tables.delete` Table destructive
- `lark_suite.bitable_app_tables.list` Table read
- `lark_suite.bitable_app_tables.patch` Table write
- `lark_suite.bitable_app_workflows.list` Automation read
- `lark_suite.bitable_app_workflows.update` Automation write
- `lark_suite.bitable_apps.copy` App write
- `lark_suite.bitable_apps.create` App write
- `lark_suite.bitable_apps.get` App read
- `lark_suite.bitable_apps.update` App write

**Sheets 45**

- `lark_suite.sheets_cells.batch_set_style` Batch set cell styles write
- `lark_suite.sheets_cells.merge` Merge cells write
- `lark_suite.sheets_cells.set_style` Set cell style write
- `lark_suite.sheets_cells.unmerge` Split merged cells write
- `lark_suite.sheets_dimensions.add` Add rows or columns at the end of a sheet write
- `lark_suite.sheets_dimensions.delete` Delete rows or columns destructive
- `lark_suite.sheets_dimensions.insert` Insert rows or columns write
- `lark_suite.sheets_dimensions.update` Update row or column properties write
- `lark_suite.sheets_metainfo.get` Get spreadsheet metadata read
- `lark_suite.sheets_properties.update` Update spreadsheet properties write
- `lark_suite.sheets_sheets.batch_update` Add, copy, delete or update sheets write
- `lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.create` Filter view write
- `lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.delete` Filter view destructive
- `lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.get` Filter view read
- `lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.query` Filter view read
- `lark_suite.sheets_spreadsheet_sheet_filter_view_conditions.update` Filter view write
- `lark_suite.sheets_spreadsheet_sheet_filter_views.create` Filter view write
- `lark_suite.sheets_spreadsheet_sheet_filter_views.delete` Filter view destructive
- `lark_suite.sheets_spreadsheet_sheet_filter_views.get` Filter view read
- `lark_suite.sheets_spreadsheet_sheet_filter_views.patch` Filter view write
- `lark_suite.sheets_spreadsheet_sheet_filter_views.query` Filter view read
- `lark_suite.sheets_spreadsheet_sheet_filters.create` Filter write
- `lark_suite.sheets_spreadsheet_sheet_filters.delete` Filter destructive
- `lark_suite.sheets_spreadsheet_sheet_filters.get` Filter read
- `lark_suite.sheets_spreadsheet_sheet_filters.update` Filter write
- `lark_suite.sheets_spreadsheet_sheet_float_images.create` Floating image write
- `lark_suite.sheets_spreadsheet_sheet_float_images.delete` Floating image destructive
- `lark_suite.sheets_spreadsheet_sheet_float_images.get` Floating image read
- `lark_suite.sheets_spreadsheet_sheet_float_images.patch` Floating image write
- `lark_suite.sheets_spreadsheet_sheet_float_images.query` Floating image read
- `lark_suite.sheets_spreadsheet_sheets.find` Cell read
- `lark_suite.sheets_spreadsheet_sheets.get` Sheet read
- `lark_suite.sheets_spreadsheet_sheets.move_dimension` Row Column write
- `lark_suite.sheets_spreadsheet_sheets.query` Sheet read
- `lark_suite.sheets_spreadsheet_sheets.replace` Cell write
- `lark_suite.sheets_spreadsheets.create` Spreadsheet write
- `lark_suite.sheets_spreadsheets.get` Spreadsheet read
- `lark_suite.sheets_spreadsheets.patch` Spreadsheet write
- `lark_suite.sheets_values.append` Append data after a range write
- `lark_suite.sheets_values.batch_get` Read multiple ranges read
- `lark_suite.sheets_values.batch_update` Write data to multiple ranges write
- `lark_suite.sheets_values.get` Read a single range read
- `lark_suite.sheets_values.prepend` Prepend data above a range write
- `lark_suite.sheets_values.update` Write data to a single range write
- `lark_suite.sheets_values.write_image` Write an image into a cell write

**Calendar 31**

- `lark_suite.calendar_calendar_acls.create` Create ACL write
- `lark_suite.calendar_calendar_acls.delete` Delete ACL destructive
- `lark_suite.calendar_calendar_acls.list` Obtain the ACL read
- `lark_suite.calendar_calendar_event_attendee_chat_members.list` Obtain the list of members of group invitees of an event read
- `lark_suite.calendar_calendar_event_attendees.batch_delete` Delete event invitees destructive
- `lark_suite.calendar_calendar_event_attendees.create` Create event invitees write
- `lark_suite.calendar_calendar_event_attendees.list` Obtain event invitee list read
- `lark_suite.calendar_calendar_event_meeting_chats.create` Create meeting chat write
- `lark_suite.calendar_calendar_event_meeting_chats.delete` Unbind meeting chat destructive
- `lark_suite.calendar_calendar_event_meeting_minutes.create` Create meeting minute write
- `lark_suite.calendar_calendar_events.create` Create event write
- `lark_suite.calendar_calendar_events.delete` Delete Event destructive
- `lark_suite.calendar_calendar_events.get` Get Event read
- `lark_suite.calendar_calendar_events.instance_view` Query event view read
- `lark_suite.calendar_calendar_events.instances` Get Event instances read
- `lark_suite.calendar_calendar_events.list` Get Event List read
- `lark_suite.calendar_calendar_events.patch` Update Event write
- `lark_suite.calendar_calendar_events.reply` Reply Event write
- `lark_suite.calendar_calendar_events.search` Search Event read
- `lark_suite.calendar_calendars.create` Create a shared calendar write
- `lark_suite.calendar_calendars.delete` Delete shared calendar destructive
- `lark_suite.calendar_calendars.get` Query calendar information read
- `lark_suite.calendar_calendars.list` Query the calendar list read
- `lark_suite.calendar_calendars.patch` Update calendar information write
- `lark_suite.calendar_calendars.primary` Query primary calendar information write
- `lark_suite.calendar_calendars.search` Search Calendar read
- `lark_suite.calendar_calendars.subscribe` Subscribe Calendar write
- `lark_suite.calendar_calendars.unsubscribe` Unsubscribe Calendar destructive
- `lark_suite.calendar_freebusy.list` Query availability of the primary calendar read
- `lark_suite.calendar_timeoff_events.create` Create Timeoff Event write
- `lark_suite.calendar_timeoff_events.delete` Delete Timeoff Event destructive

**Approval 29**

- `lark_suite.approval_approvals.create` Create an approval definition write
- `lark_suite.approval_approvals.get` View approval definitions read
- `lark_suite.approval_approvals.subscribe` Event interface write
- `lark_suite.approval_approvals.unsubscribe` Event interface destructive
- `lark_suite.approval_external_approvals.create` Party approval definition write
- `lark_suite.approval_external_approvals.get` Party approval definition read
- `lark_suite.approval_external_instances.check` Party approval instances read
- `lark_suite.approval_external_instances.create` Party approval instances write
- `lark_suite.approval_external_tasks.list` Party approval tasks read
- `lark_suite.approval_instance_comments.create` Create comments write
- `lark_suite.approval_instance_comments.delete` Delete comments destructive
- `lark_suite.approval_instance_comments.list` Receive comments read
- `lark_suite.approval_instance_comments.remove` Clear comments destructive
- `lark_suite.approval_instances.add_sign` Add approvers write
- `lark_suite.approval_instances.cancel` Revoke approval instances destructive
- `lark_suite.approval_instances.cc` Notify someone of approval instances write
- `lark_suite.approval_instances.create` Create an approval instance write
- `lark_suite.approval_instances.get` Obtain details of an approval instance read
- `lark_suite.approval_instances.list` Obtain IDs of multiple approval instances read
- `lark_suite.approval_instances.preview` Preview approval instances read
- `lark_suite.approval_instances.query` List of instances read
- `lark_suite.approval_instances.search_cc` List of cc information read
- `lark_suite.approval_instances.specified_rollback` Return approval task write
- `lark_suite.approval_tasks.approve` Agree to approval task write
- `lark_suite.approval_tasks.query` Query the user's task list read
- `lark_suite.approval_tasks.reject` Refuse to approve tasks write
- `lark_suite.approval_tasks.resubmit` Resubmit the task for approval write
- `lark_suite.approval_tasks.search` Query list of tasks read
- `lark_suite.approval_tasks.transfer` Transfer the approval task destructive

**Docx 19**

- `lark_suite.docx_chat_announcement_block_childrens.batch_delete` Block destructive
- `lark_suite.docx_chat_announcement_block_childrens.create` Block write
- `lark_suite.docx_chat_announcement_block_childrens.get` Block read
- `lark_suite.docx_chat_announcement_blocks.batch_update` Block write
- `lark_suite.docx_chat_announcement_blocks.get` Block read
- `lark_suite.docx_chat_announcement_blocks.list` Group announcement read
- `lark_suite.docx_chat_announcements.get` Group announcement read
- `lark_suite.docx_document_block_childrens.batch_delete` Block destructive
- `lark_suite.docx_document_block_childrens.create` Block write
- `lark_suite.docx_document_block_childrens.get` Block read
- `lark_suite.docx_document_block_descendants.create` Block write
- `lark_suite.docx_document_blocks.batch_update` Block write
- `lark_suite.docx_document_blocks.get` Block read
- `lark_suite.docx_document_blocks.list` Document read
- `lark_suite.docx_document_blocks.patch` Block write
- `lark_suite.docx_documents.convert` Block write
- `lark_suite.docx_documents.create` Document write
- `lark_suite.docx_documents.get` Document read
- `lark_suite.docx_documents.raw_content` Document read

**Wiki 14**

- `lark_suite.wiki_space_members.create` Space member write
- `lark_suite.wiki_space_members.delete` Space member destructive
- `lark_suite.wiki_space_members.list` Space member read
- `lark_suite.wiki_space_nodes.copy` Node write
- `lark_suite.wiki_space_nodes.create` Node write
- `lark_suite.wiki_space_nodes.list` Node read
- `lark_suite.wiki_space_nodes.move` Node write
- `lark_suite.wiki_space_nodes.move_docs_to_wiki` Docs write
- `lark_suite.wiki_space_nodes.update_title` Node write
- `lark_suite.wiki_space_setting.update` Space settings write
- `lark_suite.wiki_spaces.get` Wiki space read
- `lark_suite.wiki_spaces.get_node` Node read
- `lark_suite.wiki_spaces.list` Wiki space read
- `lark_suite.wiki_tasks.get` Docs read

**Search 12**

- `lark_suite.search_data_source_items.create` Data item write
- `lark_suite.search_data_source_items.delete` Data item destructive
- `lark_suite.search_data_source_items.get` Data item read
- `lark_suite.search_data_sources.create` Data source write
- `lark_suite.search_data_sources.delete` Data source destructive
- `lark_suite.search_data_sources.get` Data source read
- `lark_suite.search_data_sources.list` Data source read
- `lark_suite.search_data_sources.patch` Data source write
- `lark_suite.search_schemas.create` Data schema write
- `lark_suite.search_schemas.delete` Data schema destructive
- `lark_suite.search_schemas.get` Data schema read
- `lark_suite.search_schemas.patch` Data schema write

**Base 3**

- `lark_suite.base_app_roles.create` Advanced Permission write
- `lark_suite.base_app_roles.list` Advanced Permission read
- `lark_suite.base_app_roles.update` Advanced Permission write

**Tenant 2**

- `lark_suite.tenant_tenant_product_assign_infos.query` Obtain company assign information read
- `lark_suite.tenant_tenants.query` Obtains company information such as the company name and the company ID read

**Board 1**

- `lark_suite.board_whiteboard_nodes.list` Nodes read

**Docs 1**

- `lark_suite.docs_contents.get` Get docs content read

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.

## More connectors like Lark Suite

Shares the most action names with

- [Basecamp 32](https://actionlake.com/connectors/basecamp)
- [OpenProject 29](https://actionlake.com/connectors/openproject)
- [Smartsheet 27](https://actionlake.com/connectors/smartsheet)
- [JetBrains YouTrack 23](https://actionlake.com/connectors/jetbrains-youtrack)
- [Teamtailor 19](https://actionlake.com/connectors/teamtailor)
- [Zoho Projects 18](https://actionlake.com/connectors/zoho-projects)

Joins with, on shared entities

- [Odoo 6](https://actionlake.com/connectors/odoo)
- [ERPNext (Frappe) 6](https://actionlake.com/connectors/erpnext-frappe)
- [Confluence 5](https://actionlake.com/connectors/confluence)
- [Clio Manage 5](https://actionlake.com/connectors/clio-manage)
- [HaloPSA 4](https://actionlake.com/connectors/halopsa)
- [Slack 4](https://actionlake.com/connectors/slack)

Browse

- [All Work & projects connectors](https://actionlake.com/connectors/category/work-and-projects)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Lark Suite; the name is the vendor's own. Counts are from the Lark Suite service file, version 1.0.0.

## Give your agent Lark Suite today.

[Connect Lark Suite free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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

---

Source: https://actionlake.com/connectors/lark-suite
More: https://actionlake.com/llms.txt
