MCPInstall

feishu-contact

飞书组织架构与 ID 转换。搜索成员、部门管理、ID 互转(OpenID/UserID/UnionID)。

Installs
72
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/alextangson/feishu_skills --skill feishu-contact
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads feishu-contact automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

飞书组织架构与 ID 转换

通过 Contact v3 API 实现成员搜索、部门管理和 ID 转换。


API 基础

Base URL: https://open.feishu.cn/open-apis/contact/v3
认证: Authorization: Bearer {tenant_access_token}

认证与 Token 获取

从 feishu_skills 根目录执行共享脚本:

TOKEN="$(./scripts/get_feishu_token.sh)"

请求头统一使用 Authorization: Bearer ${TOKEN}。

如果业务接口返回 token 无效、过期或 401,强制刷新后仅重试一次原请求:

TOKEN="$(./scripts/get_feishu_token.sh --force-refresh)"

环境变量:

  • FEISHU_APP_ID
  • FEISHU_APP_SECRET

本地缓存: ./.feishu_token_cache.json(未过期直接复用,默认提前 5 分钟刷新)


成员查询

API端点说明
搜索成员GET /users/batch_get_id通过邮箱/手机号获取 OpenID
获取职务GET /job_titles/{id}需在管理后台预先维护

部门管理

API端点方法请求体示例说明
获取部门/departments/{department_id}GET-查询单个部门详情
获取部门列表/departmentsGET-支持 parent_department_id 参数
获取父部门路径/departments/{department_id}/parentGET-获取部门层级路径
创建部门/departmentsPOST{"name":"新部门","parent_department_id":"0"}需管理员权限
更新部门/departments/{department_id}PUT{"name":"更新后的名称"}修改部门信息
删除部门/departments/{department_id}DELETE-删除空部门
入职成员/usersPOST{"name":"张三","mobile":"138...","department_ids":["od_xxx"]}创建用户
更新用户/users/{user_id}PUT{"name":"新名字"}修改用户信息
删除用户/users/{user_id}DELETE-移除用户
获取用户列表/usersGET-支持 department_id 过滤

⚠️ 创建部门和入职成员需最高权限,建议预发环境测试。


用户组管理

API端点方法请求体示例说明
获取用户组列表/groupsGET-查询所有用户组
获取用户组/groups/{group_id}GET-查询单个用户组
创建用户组/groupsPOST{"name":"项目组","description":"描述"}创建新用户组
更新用户组/groups/{group_id}PUT{"name":"新名称"}修改用户组
删除用户组/groups/{group_id}DELETE-删除用户组
获取组成员/groups/{group_id}/membersGET-查询组成员列表
添加组成员/groups/{group_id}/membersPOST{"member_id":"ou_xxx","member_type":"user"}添加用户到组
移除组成员/groups/{group_id}/members/{member_id}DELETE-从组移除用户

职级管理

API端点方法请求体示例说明
获取职级列表/job_familiesGET-查询所有职级
获取职级/job_families/{job_family_id}GET-查询单个职级
创建职级/job_familiesPOST{"name":"高级工程师"}创建新职级
更新职级/job_families/{job_family_id}PUT{"name":"资深工程师"}修改职级
删除职级/job_families/{job_family_id}DELETE-删除职级

角色管理

API端点方法请求体示例说明
获取角色列表/rolesGET-查询所有角色
创建角色/rolesPOST{"role_name":"管理员"}创建新角色
更新角色/roles/{role_id}PUT{"role_name":"超级管理员"}修改角色名称
删除角色/roles/{role_id}DELETE-删除角色
获取角色成员/roles/{role_id}/membersGET-查询角色下所有成员
批量添加角色成员/roles/{role_id}/members/batch_createPOST{"members":[{"member_id":"ou_xxx","member_type":"user"}]}批量添加成员
批量删除角色成员/roles/{role_id}/members/batch_deletePOST{"members":[{"member_id":"ou_xxx"}]}批量移除成员

ID 转换(核心)

飞书三种 ID 体系:

ID 类型说明使用场景
open_id应用内唯一同一应用内识别用户
user_id企业内唯一企业内部系统对接
union_id跨应用唯一同一开发者的多个应用间

Contact v3 ID 转换

API端点方法请求体示例说明
批量获取用户 ID/users/batch_get_idPOST{"emails":["a@b.com"],"mobiles":["138xxx"]}通过邮箱/手机获取 OpenID
批量获取部门 ID/departments/batch_get_idPOST{"department_ids":["od_xxx"]}部门 ID 转换
获取用户/users/{user_id}GET-通过 ID 获取用户信息
获取用户信息(批量)/users/batch_getGET-参数:user_ids=ou_1,ou_2

ID 转换最佳实践:

通过 GET /users/{user_id} 接口可一次性获取用户的所有 ID 类型(open_id/user_id/union_id),无需单独转换。

示例:

GET /contact/v3/users/ou_xxx?user_id_type=open_id

响应包含:

{
  "data": {
    "user": {
      "open_id": "ou_xxx",
      "user_id": "7c43cd5f",
      "union_id": "on_xxx"
    }
  }
}

其他

API端点方法说明
获取职务列表/job_titlesGET查询所有预设职务
获取职务/job_titles/{job_title_id}GET查询单个职务详情
获取办公地点/placesGET用于人员地理分布分析
获取人员类型/employee_typesGET查询人员类型列表
获取自定义属性/custom_attr_eventsGET查询自定义属性变更事件
获取授权范围/scopesGET查询应用可访问的部门/用户范围
外部成员访问/application/v1/applications/{app_id}/user_usableGET控制供应商/外包访问权限

事件订阅

通讯录支持 17 个变更事件:

事件类型说明
contact.user.created_v3用户创建
contact.user.updated_v3用户信息更新
contact.user.deleted_v3用户删除
contact.dept.created_v3部门创建
contact.dept.updated_v3部门更新
contact.dept.deleted_v3部门删除
contact.employee_type.created_v3人员类型创建
contact.employee_type.updated_v3人员类型更新
contact.employee_type.deleted_v3人员类型删除
contact.job_family.created_v3职级创建
contact.job_family.updated_v3职级更新
contact.job_family.deleted_v3职级删除

最佳实践

  1. ID 转换优先用 Spark API(更简洁)
  2. 缓存常用 ID(减少 API 调用)
  3. 组织架构变更必须预发测试

FAQ

What does the feishu-contact skill do?

飞书组织架构与 ID 转换。搜索成员、部门管理、ID 互转(OpenID/UserID/UnionID)。

How do I install feishu-contact?

Run npx skills add https://github.com/alextangson/feishu_skills --skill feishu-contact in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/feishu-contact/ (personal) or .claude/skills/feishu-contact/ (project).

Which AI agents can use feishu-contact?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is feishu-contact safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains feishu-contact?

It is published by alextangson in alextangson/feishu_skills. It has 72 recorded installs.

More from alextangson/feishu_skills

View all →

feishu-calendar

alextangson/feishu_skills

飞书日历。创建日程、查询日程、更新日程。

feishu-bitable

alextangson/feishu_skills

飞书多维表格操作。记录 CRUD、字段管理、视图、权限、公式、关联。

feishu-card

alextangson/feishu_skills

飞书交互卡片。构建和发送带按钮/选择器的消息卡片。

feishu-im

alextangson/feishu_skills

飞书消息与群管理。发送消息、建群、置顶、加急、撤回、群菜单/Tab/公告。

feishu-doc-writer

alextangson/feishu_skills

飞书文档写入。Markdown 转 Block、创建文档块、处理并发,支持 Mermaid 绘图块。

Docs & Writing112 installs

feishu-task

alextangson/feishu_skills

Open the skill to read its SKILL.md instructions.

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。