mcpField
L
lark-contact

lark-contact

larksuiteProductivity17.9k468.9k installsUpdated today
Repository

About lark-contact

lark-contact is an Agent Skill for Lark (Feishu) contact lookup, aimed at AI agents that need to find colleagues or bots by name, email or keyword. It separates the user and bot identity paths and maps each need to a lark-cli command.

Key features

  1. 01Search employees by name or email for open_id
  2. 02Search bots or agents by keyword
  3. 03Fetch profiles by known open_id
  4. 04Batch query colleagues' personal status and descriptions
  5. 05Command mapping for user and bot identities

Use cases

  1. 01Confirm a contact's open_id before sending a message
  2. 02Decide whether an ambiguous name refers to a person or a bot
  3. 03Present multiple search matches to the user before side-effecting actions

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/larksuite/cli --skill lark-contact

After installing, type/lark-contactin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
lark-contact-get-user.md
lark-contact-search-bot.md
lark-contact-search-user.md

Details

From the project README

选哪个命令

user 身份和 bot 身份是两条完全独立的路径。先确定当前身份,再按下表选命令:

想做什么user 身份bot 身份
按姓名 / 邮箱搜员工拿 open_id+search-user不支持
按关键词搜索当前用户可见的机器人 / 智能体+search-bot不支持
已知 open_id 取他人资料+search-user --user-ids <id>+get-user --user-id <id>
查看自己+get-user 或 +search-user --user-ids me不支持
查同事的个人状态 / 签名user_profiles batch_query不支持

已知 open_id 只是想发消息 / 排日程,不必经过 contact —— 直接 lark-im / lark-calendar。

名字没说清是人还是机器人 / 智能体

用户给的名字常常不表明类型。例如「和 reviewDuck 约个会」里的 reviewDuck 可能是同事昵称,也可能是机器人。

  • 名字含 bot / agent / AI / 助手 / 机器人 / 智能体 / assistant 等明显特征时,反过来先搜机器人更快
  • 不确定的话两边都搜一下

典型场景

找张三给他发消息:先搜,确认 open_id,再发:

lark-cli contact +search-user --query "张三" --has-chatted --as user
lark-cli im +messages-send --user-id ou_xxx --text "Hi!"

批量查同事的个人状态 / 个性签名(先用 schema 看参数)。

lark-cli schema contact.user_profiles.batch_query
lark-cli contact user_profiles batch_query \
  --params '{"user_id_type":"open_id"}' \
  --data '{"user_ids":["ou_xxx","ou_yyy"],"query_option":{"include_personal_status":true,"include_description":true}}' \
  --as user

搜索命中多条且后续操作有副作用(发消息、邀请会议等),把候选列给用户挑;不要擅自选第一条。

搜索机器人 / 智能体

+search-bot 使用 user 身份按关键词搜索当前用户可见的机器人,返回 ou_ 开头的机器人 open_id。参数细节等见 lark-contact-search-bot.md。

lark-cli contact +search-bot --query '会议助手' --as user
lark-cli contact +search-bot --queries '会议助手,日报助手,审批助手' --as user

注意事项

  • 41050 / Permission denied 受当前身份的可见范围限制(三条命令都可能遇到)。细节见 lark-shared。
  • 跨租户用户(is_cross_tenant=true)多数业务字段为空字符串,这是飞书可见性规则,下游做空值兜底。
  • ID 类型:+get-user 可通过 --user-id-type 使用 open_id、union_id 或 user_id;+search-user 使用用户 open_id;+search-bot 不支持按 ID 查询,它按关键词搜索并返回机器人 open_id。

不在本 skill 范围

Comments

Markdown supported