Back to MCP Servers

Lark MCP Server

Official Feishu/Lark OpenAPI MCP server. Wraps Lark Open Platform APIs as MCP tools for messaging, docs, Base, and calendar automation.

Collaboration by ByteDance / Lark Suite OAuth2 active
Overview

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.
Setup Guide

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_SECRET
  • USER_ACCESS_TOKEN
  • LARK_TOOLS, LARK_DOMAIN, LARK_TOKEN_MODE

Transport modes

--mode stdio (default), --mode streamable (HTTP for team/remote sharing), or --mode sse.

Use Cases
  • 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
Example Prompts
  • "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."
Pros
  • 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.light let you keep the tool list small and reduce token overhead
Limitations
  • 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
Alternatives