Lark and Feishu MCP Server Setup for Claude Code, Cursor and Other Apps
Lets Claude and other assistants send Lark and Feishu messages and work with docs, Bases, the Wiki and calendars.
This is Lark's own server for the Feishu and Lark Open Platform. You create a Lark app, put its app ID and secret in the config, and your assistant can then act through that app, or as you after a one-time sign-in. By default it turns on 19 common tools for chats, Bases, documents and the Wiki. Many more platform APIs can be switched on by name, and the project warns that those have not been tested with assistants.
Good for
- Teams on Lark or Feishu who want Claude to post messages and summarize chats
- Ops and project managers who keep data in Lark Base tables
- Anyone who wants Claude to read, search and share Lark docs and Wiki pages
- Developers building on the Lark Open Platform
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install @larksuiteoapi/lark MCP
Claude Code
- 1
Copy this prompt.
Add the @larksuiteoapi/lark MCP server to Claude Code. Run this command: claude mcp add lark -- npx -y @larksuiteoapi/lark-mcp mcp -a <your_app_id> -s <your_app_secret> Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js, Lark or Feishu app ID and secret.
Create an app in the Lark or Feishu developer console and replace the two placeholders with its app ID and secret. For the international Lark, add the domain option with https://open.larksuite.com. To act as a user, run the package's login command first and add the OAuth option.
Built from the package data we hold. Not yet tested by us.
Tools
Sends a chat message
Posts a message to a person or group chat as your app or as you.
Try: “Send "standup moved to 10:30" to the Design group.”
Write ·
im_v1_message_createReads messages in a chat
Returns the message history of a chat.
Try: “Show the latest messages in the Launch channel.”
Network ·
im_v1_message_listCreates a group chat
Starts a new group chat with the name and members you give.
Try: “Create a group chat called Q4 Planning.”
Write ·
im_v1_chat_createLists group chats
Returns the group chats the app or you can see.
Try: “List my group chats.”
Network ·
im_v1_chat_listLists who is in a group chat
Returns the members of a given group chat.
Try: “Who is in the Launch group?”
Network ·
im_v1_chatMembers_getCreates a Base
Creates a new Base, Lark's database-style workspace.
Try: “Create a Base called Bug Tracker.”
Write ·
bitable_v1_app_createAdds a table to a Base
Creates a data table inside an existing Base.
Try: “Add a table called Releases to the Bug Tracker Base.”
Write ·
bitable_v1_appTable_createLists tables in a Base
Returns the tables that exist in a Base.
Try: “What tables are in the Bug Tracker Base?”
Network ·
bitable_v1_appTable_listLists the columns of a table
Returns the fields of a Base table, with their types.
Try: “What columns does the Releases table have?”
Network ·
bitable_v1_appTableField_listSearches rows in a table
Finds records in a Base table that match your filters.
Try: “Find open bugs assigned to Maya.”
Network ·
bitable_v1_appTableRecord_searchAdds a row to a table
Creates a new record in a Base table.
Try: “Add a bug titled "Login fails on Safari" to the table.”
Write ·
bitable_v1_appTableRecord_createEdits a row in a table
Changes the values of an existing record in a Base table.
Try: “Mark bug 42 as fixed.”
Write ·
bitable_v1_appTableRecord_updateReads a document as plain text
Returns the text content of a Lark document.
Try: “Read the Q3 roadmap doc and summarize it.”
Network ·
docx_v1_document_rawContentImports a file as a document
Turns a file into a new Lark document.
Try: “Import this Markdown file as a Lark doc.”
Write ·
docx_builtin_importSearches documents
Finds Lark documents that match your search words.
Try: “Find docs about onboarding.”
Network ·
docx_builtin_searchShares a file with someone
Adds a person or group as a collaborator on a file with a permission level.
Try: “Give Sam edit access to the roadmap doc.”
Write ·
drive_v1_permissionMember_createGets a Wiki page
Returns the details of a node in a Lark Wiki space.
Try: “Open the Wiki page for the on-call guide.”
Network ·
wiki_v2_space_getNodeSearches the Wiki
Finds Wiki pages that match your search words.
Try: “Search the Wiki for deployment checklist.”
Network ·
wiki_v1_node_searchFinds user IDs from emails or phones
Looks up Lark user IDs for the emails or phone numbers you give.
Try: “Get the Lark ID for dana@example.com.”
Network ·
contact_v3_user_batchGetId
Read from the source code
Permissions
medium risk · 5 things to watch
Medium risk
The assistant can send messages, edit Base records, import documents and change who can access files, as your Lark app or as you. Give the app only the permissions you need, and keep the default tool set unless you must enable more.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
The app secret sits in the config arguments
The setup passes the app ID and secret as command arguments, so they appear in your client config and in process lists. Keep the config private and rotate the secret if it leaks. github.com
It can message people and change file access
Default tools send messages, edit Base records and add collaborators to files. Restrict the app's permissions in the Lark console to what you need. github.com
The tools option can enable delete actions
The tool catalog covers many more APIs than the default 19, including ones that delete. The project says those untested APIs may not work well with assistants. Enable them only by name. registry.npmjs.org
HTTP modes can listen on every interface
Streamable and SSE modes listen on localhost by default, but the host option accepts 0.0.0.0. Keep it on localhost. github.com
The project calls this a beta
The README says features and APIs may change between versions. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only switch is documented. You can limit the tool list with the tools option and the app's own permissions in the Lark console. |
|---|---|
| Talks to | Feishu or Lark Open Platform (open.feishu.cn, or open.larksuite.com with the domain option) |
| Sign-in and keys | App ID and app secret go in the command arguments. A signed-in user token is stored locally after the login command. |
Questions
Is the Lark MCP server official?
Yes. The README calls it the Feishu/Lark official OpenAPI MCP tool, and it comes from the larksuite organization.
What do I need before installing?
A Feishu or Lark app with its app ID and app secret, created in the developer console, plus Node.js. Add the permissions your use case needs to the app.
Does it work with Lark outside China?
Yes. Add the domain option with https://open.larksuite.com for the international Lark. The default domain is open.feishu.cn.
Can it act as me instead of the app?
Yes. Run the login command once to sign in with your Lark account, then add the OAuth option to the server arguments. You can also pass a user token directly, but it expires after 2 hours.
How many tools does it have?
The default set has 19 tools. The 0.5.1 package ships 1,274 in its catalog (1,271 generated API tools and 3 built-in ones), and you turn extra ones on by name, so the list on this page is partial.
How do I turn on more tools?
Use the tools option with tool names or a preset such as the calendar or task preset. The project warns that non-preset APIs have not been compatibility tested.
Why does it ask me to sign in again?
A user token expires. With the OAuth option on, the server asks you to sign in again when it does.
What is the difference between Lark and Feishu?
The server talks to either one through a domain option. The default is https://open.feishu.cn (Feishu). For the international Lark, pass https://open.larksuite.com. Create your app on the matching developer platform.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
@larksuiteoapi/lark-mcp- Registry
- npm
- Transport
- stdio
- Auth
- API key
- Version
- 0.5.1
- License
- MIT
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- github.com · github.com
- www.npmjs.com · npmjs.com
- registry.npmjs.org · registry.npmjs.org