From lark-cli-dev
Build/debug/extend the lark-cli MCP bridge in cmd/mcp/. Triggers MCP tool add/remove/refine, Claude Desktop disconnects, tool schema changes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lark-cli-dev:lark-cli-mcpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A focused skill for working on the **built-in MCP server** that ships
A focused skill for working on the built-in MCP server that ships
inside lark-cli (added in cmd/mcp/).
Activate this skill whenever the user is working on:
cmd/mcp/*.go.Build closure and the actual shortcut.Do not activate for general lark-cli work (other cmd/*,
shortcuts/*). That's a job for the shortcut-explorer agent or
plain code reading.
MCP host ──stdio JSON-RPC──▶ lark-cli mcp serve
│
│ os/exec
▼
lark-cli <shortcut>
│
│ HTTPS
▼
Lark/Feishu Open API
The bridge is stateless. Every tools/call spawns a fresh
subprocess. Auth, profile, rate limiting, output formatting all
live in the spawned process — the MCP layer just translates args
and forwards stdout.
fmt.Println, log.Print, or
any direct write to stdout from inside cmd/mcp/. Use s.logf
(writes to stderr) instead.cmd/mcp/protocol.go rolls the
wire types by hand. Keep go.mod clean.shortcuts/<domain>/*.go. The CLI
parser will exit non-zero on unknown flags and the host model
sees a confusing error. Confirm before shipping.| Need | File / command |
|---|---|
| Add a tool | cmd/mcp/tools.go + /mcp-add command |
| See current catalogue | lark-cli mcp tools |
| Run handshake without Claude | /mcp-test |
| Rebuild + install | /mcp-rebuild |
| Architecture deep-dive | references/architecture.md |
| Cookbook for new tools | references/tool-builder-cookbook.md |
| Common shortcut flag patterns | references/shortcut-flags-quickref.md |
go build -o ~/bin/lark-cli .
~/bin/lark-cli mcp tools # 1) catalogue parses
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| ~/bin/lark-cli mcp serve # 2) JSON-RPC handshake
Both must succeed. If you changed a tool, also issue a tools/call
for it with safe arguments (preferring shortcuts that support
--dry-run).
npx claudepluginhub larkcowork/lark-cowork-plugins --plugin lark-cli-devCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.