Lark MCP Server
Official Feishu/Lark OpenAPI MCP server. Wraps Lark Open Platform APIs as MCP tools for messaging, docs, Base, and calendar automation.
The Lark OpenAPI MCP server is the official Model Context Protocol implementation maintained by the Lark Suite team. It encapsulates Feishu (China) and Lark (international) Open Platform API interfaces as MCP tools so that AI assistants can directly call them to automate scenarios like document processing, conversation management, group chat operations, Base (multi-dimensional table) records, and calendar scheduling.
The server is distributed as the npm package @larksuiteoapi/lark-mcp and runs locally via npx. It supports two authentication modes: a tenant access token (app-level permissions, the default) and a user access token obtained through OAuth login. It can switch between the Feishu (open.feishu.cn) and Lark (open.larksuite.com) domains, and supports stdio, streamable HTTP, and SSE transport modes.
Tools can be selected individually (e.g. im.v1.message.create, calendar.v4.calendar.list) or activated via preset bundles such as preset.default, preset.light, preset.im.default, preset.base.default, preset.base.batch, preset.doc.default, and preset.calendar.default. File upload/download and direct rich-document editing are not currently supported.
Tools
| Tool | Description |
|---|---|
im.v1.message.create |
Send a message to a user, chat, or group in Lark/Feishu. |
im.v1.chat.create |
Create a new chat (group) in Lark/Feishu. |
preset.im.default |
Preset bundle of instant messaging tools (group management, message sending, etc.). |
preset.calendar.default |
Preset bundle for calendar event creation, listing, and scheduling. |
preset.base.default |
Preset bundle for Lark Base operations: create tables, manage records, query views. |
preset.base.batch |
Batch operations for Lark Base, including bulk create and update records. |
preset.doc.default |
Preset bundle for Lark Docs operations (read documents, manage metadata). |
preset.default |
Default tool set containing all preset tools. |
preset.light |
Lightweight tool set with the most commonly used tools, optimized for lower token usage. |
calendar.v4.calendar.list |
List calendars available to the authenticated identity. |
Prerequisites
- Node.js LTS installed
- A Feishu/Lark application with App ID and App Secret (created in the Lark Open Platform developer console)
- For user-identity calls: an OAuth redirect URL configured (default
http://localhost:3000/callback)
Basic configuration (tenant/app identity)
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"lark-mcp": {
"command": "npx",
"args": [
"-y",
"@larksuiteoapi/lark-mcp",
"mcp",
"-a", "<your_app_id>",
"-s", "<your_app_secret>"
]
}
}
}
User identity (OAuth login)
First, authenticate the user:
npx -y @larksuiteoapi/lark-mcp login -a cli_xxxx -s your_secret
Then enable user mode in your config by adding --oauth and --token-mode user_access_token to the args.
Selecting tools or presets
Use the -t flag to limit which tools are exposed:
"args": [
"-y", "@larksuiteoapi/lark-mcp", "mcp",
"-a", "<app_id>",
"-s", "<app_secret>",
"-t", "preset.im.default,preset.calendar.default"
]
International (Lark) vs China (Feishu)
By default the server targets Feishu. For Lark International add:
"--domain", "https://open.larksuite.com"
Environment variables (alternative to flags)
APP_ID,APP_SECRETUSER_ACCESS_TOKENLARK_TOOLS,LARK_DOMAIN,LARK_TOKEN_MODE
Transport modes
--mode stdio (default), --mode streamable (HTTP for team/remote sharing), or --mode sse.
- Send Lark messages or post into specific group chats from an AI agent (incident alerts, daily summaries, approval pings)
- Create and manage Lark Base records in bulk, for example syncing CRM leads or ticket data into a multi-dimensional table
- Read Lark Docs content and have an AI assistant summarize, translate, or extract action items
- Schedule meetings, list upcoming events, and create calendar invites for teammates via natural language
- Auto-create new group chats with the right members for new projects or customer escalations
- "Send a message to the #release-notes Lark group with this week's deploy summary."
- "Create a new Lark Base record in the Leads table for Acme Corp with status 'New' and owner Alice."
- "List my Lark calendar events for tomorrow and reschedule the 2pm one to Friday."
- "Create a Lark group chat called 'Project Phoenix' with bob@, carol@, and dave@."
- "Pull the latest Lark Doc titled 'Q3 Roadmap' and summarize the open action items."
- Official and maintained by the Lark Suite team at ByteDance
- Broad coverage of the Lark Open Platform: messaging, Base, Docs, calendar, contacts
- Flexible authentication (tenant or user OAuth) and multiple transports (stdio, streamable, SSE)
- Preset bundles like
preset.lightlet you keep the tool list small and reduce token overhead
- File upload/download and direct rich-document editing are not supported
- Requires creating and configuring a Lark/Feishu developer application with appropriate API scopes
- Large default tool set can consume significant context tokens unless you filter with
-t
- Slack MCP server for Slack-based messaging automation
- Microsoft Teams / Graph MCP servers for Microsoft 365 collaboration
- Community Feishu MCP forks such as
KAIpany/Lark-MCP-KAIpany(unofficial)