Skip to main content
skill CX Codex

mcp-lark — Claude Code skill: FeiShu and Lark via MCP

Connects your agent to the FeiShu (Lark) MCP server so it can handle chats, mail, cloud docs, tables, tasks and calendars.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add aahl/skills --skill mcp-lark -a claude-code
Open on GitHub

What mcp-lark does

The skill sits on top of FeiShu (Lark) OpenAPI MCP server. First you log in to the Lark MCP Configuration Platform, add MCP services there and grab the resulting URL — skip that and nothing runs. The URLs go into LARK_MCP_SERVERS, each followed by a colon and the scenario it covers: chats and mails, cloud documents, and so on. Separate multiple servers with semicolons.

Values are read from .env in the workspace first, then from system environment variables. If neither has them, the agent asks you and writes the answer into .env. To see what tools a server exposes, run npx -y mcporter list 'open.larksuite.com/mcp/stream/<token>' --all-parameters; add --json and a jq filter to inspect one tool's schema. Calling a tool goes through npx -y mcporter call 'open.larksuite.com/mcp/stream/<token>.<tool_name>' with arguments like param1:"value1".

A references/message_create.md file inside the skill covers how message content is sent. The author recommends npx -y mcporter over a bare mcporter for compatibility. One thing to watch: the token in an MCP URL is effectively a key to your workspace, so keep .env out of git.

What it helps with

  • send a message to a FeiShu chat from the agent
  • pull rows out of a Lark multidimensional table
  • create a task or a calendar event
  • locate and read a cloud document
  • map several MCP servers to scenarios in one variable

Example prompts for the agent

  • List the tools on the Lark MCP server for chats and mails
  • Send a FeiShu chat message with today's release summary
  • Fetch rows from the multidimensional table and build a report

How to install mcp-lark

1Skills CLI (Vercel)

npx skills add aahl/skills --skill mcp-lark -a claude-code

2Manually: put the files in place

~/.claude/skills/mcp-lark/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/mcp-lark/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about mcp-lark

How do I install mcp-lark in Claude?

Run npx skills add aahl/skills --skill mcp-lark -a claude-code. The skill then lives at ~/.claude/skills/mcp-lark/SKILL.md.

What does mcp-lark do?

It wires your agent to the FeiShu (Lark) MCP server: users, chats, mail, cloud documents, multidimensional tables, tasks and calendars. Calls go through mcporter.

What has to be set up before the first run?

Add MCP services on the Lark MCP Configuration Platform, get the URL, then put it in LARK_MCP_SERVERS inside the workspace .env.

Source text

SKILL.md · MIT
---
name: mcp-lark
description: Based on FeiShu(飞书) / Lark's OpenAPI MCP server, manage user information, chats, emails, cloud documents, multidimensional tables, tasks, calendars, etc.
---

# MCP Lark / FeiShu
Need to login to the Lark MCP Configuration Platform to add MCP services, obtain the MCP URL, and configure it into environment variables.
- Lark MCP docs: https://open.larksuite.com/document/mcp_open_tools/call-feishu-mcp-server-in-remote-mode
- 飞书 MCP 文档: https://open.feishu.cn/document/mcp_open_tools/end-user-call-remote-mcp-server

## Environment variables
Prioritize fetching from `.env` under the workspace, then use system environment variables. If not configured, ask the user for input and update it to `.env`.
```shell
# Configure multiple MCP service URLs and usage scenarios in environment variables
LARK_MCP_SERVERS='
open.larksuite.com/mcp/stream/xxx:Chats and Mails;
open.larksuite.com/mcp/stream/yyy:Cloud documents;
'
```

## List of available tools
```shell
npx -y mcporter list 'open.larksuite.com/mcp/stream/<token>' --all-parameters

# Get the schema of the specified tool
npx -y mcporter list 'open.larksuite.com/mcp/stream/<token>' --json | jq '.tools[] | select(.name == "<tool_name>")'
```

## Call specified tool
```shell
npx -y mcporter call 'open.larksuite.com/mcp/stream/<token>.<tool_name>' param1:"value1" foo:"bar"
```

## References
- Sent message content: references/message_create.md

## About `mcporter`
To improve compatibility, use `npx -y mcporter` instead of `mcporter` when executing commands.

© aahl · MIT · aahl/skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor