Lark MCP Server
MCP server for Lark Open Platform that enables messaging, document management, spreadsheet operations, and task management through natural language.
README
Lark MCP Server
MCP server for Lark Open Platform. Supports Claude Desktop (stdio) and HTTP multi-session transports. ~42 tools across messages, docs (Base/Bitable, Sheets, Documents), and tasks.
Setup
1. Create a Lark Internal App
- Go to https://open.larksuite.com/app → Create app → Internal app
- Note down App ID and App Secret
- Under "Permissions & Scopes", enable required permissions (see table below)
- Under "Version Management & Release", publish the app
2. Required Permissions
| Feature | Required Permissions |
|---|---|
| Messages | im:message, im:message:send_as_bot, im:chat:readonly |
| Base/Bitable | bitable:app, bitable:app:readonly |
| Sheets | sheets:spreadsheet, sheets:spreadsheet:readonly |
| Documents | docx:document, docx:document:readonly |
| Tasks | task:task, task:task:write |
3. Install
npm install
npm run build
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
LARK_APP_ID |
Yes | — | Lark internal app ID |
LARK_APP_SECRET |
Yes | — | Lark internal app secret |
LARK_BASE_URL |
No | https://open.larksuite.com/open-apis |
Use https://open.feishu.cn/open-apis for China region |
PORT |
No | 3000 |
HTTP server port |
LARK_RATE_LIMIT |
No | 50 |
Max requests per second |
Copy .env.example to .env and fill in your values:
cp .env.example .env
# Edit .env with your Lark app credentials
Usage
Claude Desktop (stdio)
Add to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"lark": {
"command": "node",
"args": ["/path/to/lark-mcp/dist/cli.js", "mcp"],
"env": {
"LARK_APP_ID": "cli_xxxx",
"LARK_APP_SECRET": "xxxx"
}
}
}
}
Or with CLI args:
node dist/cli.js mcp --app-id cli_xxxx --app-secret xxxx
HTTP Server (multi-session)
node dist/cli.js mcp --app-id cli_xxxx --app-secret xxxx --mode http --port 3000
Connect via MCP client to http://localhost:3000/mcp.
Docker
docker build -t lark-mcp .
# Using env file
docker run --rm --env-file .env -p 3000:3000 lark-mcp
# Or passing env vars directly
docker run --rm -e LARK_APP_ID=cli_xxxx -e LARK_APP_SECRET=xxxx lark-mcp
# HTTP mode
docker run --rm --env-file .env -p 3000:3000 lark-mcp --mode http
Available Tools & Presets
Presets
| Preset | Description |
|---|---|
preset.default |
All ~42 tools |
preset.readonly |
Read-only GET tools only |
preset.messages |
Messages + chats (10 tools) |
preset.docs |
Base + Sheets + Documents (22 tools) |
preset.tasks |
Tasks + tasklists (10 tools) |
Use with: node dist/cli.js mcp --tools preset.readonly ...
Tool Reference
Messages (7 tools)
lark_message_send— Send message to user or chatlark_message_get— Get message by IDlark_message_list— List messages in a chatlark_message_update— Edit a messagelark_message_delete— Delete a messagelark_message_reply— Reply to a messagelark_message_forward— Forward a message
Chats (3 tools)
lark_chat_list— List chatslark_chat_get— Get chat infolark_chat_members— List chat members
Base/Bitable (10 tools)
lark_base_create,lark_base_get— App managementlark_base_table_list,lark_base_table_create— Table managementlark_base_record_list,lark_base_record_get,lark_base_record_create,lark_base_record_update,lark_base_record_delete— Record CRUDlark_base_field_list— List fields
Sheets (6 tools)
lark_sheet_create,lark_sheet_get,lark_sheet_list— Spreadsheet managementlark_sheet_values_read,lark_sheet_values_write,lark_sheet_values_append— Value operations
Documents (6 tools)
lark_document_create,lark_document_get— Document managementlark_document_content— Get raw text contentlark_document_blocks_list,lark_document_block_create,lark_document_block_update— Block operations
Tasks (10 tools)
lark_task_create,lark_task_get,lark_task_list,lark_task_update,lark_task_delete— Task CRUDlark_task_complete— Complete a tasklark_task_add_members,lark_task_remove_members— Member managementlark_tasklist_list,lark_tasklist_create— Tasklist management
List all tools
node dist/cli.js tools
node dist/cli.js tools --project messages
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.