# Feishu Fetch Doc

> Use when fetching Feishu cloud document content as Markdown in Codex.

- Skill: `fakegeek92/feishu-fetch-doc` (Agent Skill, multi-file: 29 files)
- Install (CLI): `npx skillmds@latest add fakegeek92/feishu-fetch-doc`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fakegeek92/feishu-fetch-doc/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: FakeGeek92 (https://skillmd.com/u/fakegeek92)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/fakegeek92/feishu-fetch-doc

---


## Standalone Wrapper

- 共享环境变量：`FEISHU_APP_ID`、`FEISHU_APP_SECRET`，可选 `FEISHU_BASE_URL`、`FEISHU_OAUTH_STORE_DIR`
- 用户授权会持久化到共享 token store；同一 `FEISHU_APP_ID` 下其他已安装 skill 会复用，不需要各自重复授权
- 执行命令：`node scripts/fetch-doc.js '<json>'`
- 这个脚本内部仍然调用 Feishu 官方 MCP `fetch-doc`
- 相关配套 wrapper 现已提供：`feishu-doc-media`、`feishu-wiki`、`feishu-sheet`

下面开始是插件原始 skill 正文。


# feishu_mcp_fetch_doc

获取飞书云文档的 Markdown 内容（Lark-flavored 格式）。

## 重要：图片、文件、画板的处理

**文档中的图片、文件、画板需要通过 `feishu_doc_media`（action: download）工具单独获取！**

### 识别格式

返回的 Markdown 中，媒体文件以 HTML 标签形式出现：

- **图片**：
  ```html
  <image token="Z1FjxxxxxxxxxxxxxxxxxxxtnAc" width="1833" height="2491" align="center"/>
  ```

- **文件**：
  ```html
  <view type="1">
    <file token="Z1FjxxxxxxxxxxxxxxxxxxxtnAc" name="skills.zip"/>
  </view>
  ```

- **画板**：
  ```html
  <whiteboard token="Z1FjxxxxxxxxxxxxxxxxxxxtnAc"/>
  ```

### 获取步骤

1. 从 HTML 标签中提取 `token` 属性值
2. 调用 `feishu_doc_media` 下载：
   ```json
   {
     "action": "download",
     "resource_token": "提取的token",
     "resource_type": "media",
     "output_path": "/path/to/save/file"
   }
   ```

## 参数

- **`doc_id`**（必填）：支持直接传文档 URL 或 token
  - 直接传 URL：`https://xxx.feishu.cn/docx/Z1FjxxxxxxxxxxxxxxxxxxxtnAc`（系统自动提取 token）
  - 直接传 token：`Z1FjxxxxxxxxxxxxxxxxxxxtnAc`
  - 知识库 URL/token 也支持：`https://xxx.feishu.cn/wiki/Z1FjxxxxxxxxxxxxxxxxxxxtnAc` 或 `Z1FjxxxxxxxxxxxxxxxxxxxtnAc`

## Wiki URL 处理策略

知识库链接（`/wiki/TOKEN`）背后可能是云文档、电子表格、多维表格等不同类型的文档。当不确定类型时, **不能直接假设是云文档**，必须先查询实际类型。

### 处理流程

1. **先调用 `feishu_wiki_space_node`（action: get）解析 wiki token**：
   ```json
   { "action": "get", "token": "wiki_token_here" }
   ```
2. **从返回的 `node` 中获取 `obj_type`（实际文档类型）和 `obj_token`（实际文档 token）**
3. **根据 `obj_type` 调用对应工具**：

| obj_type | 工具 | 传参 |
|----------|------|------|
| `docx` | `feishu_mcp_fetch_doc` | doc_id = obj_token |
| `sheet` | `feishu_sheet` | spreadsheet_token = obj_token |
| `bitable` | `feishu_bitable_*` 系列 | app_token = obj_token |
| 其他 | 告知用户暂不支持该类型 | — |


### 示例

用户：`帮我看下这个文档 https://xxx.feishu.cn/wiki/ABC123`

1. 调用 `feishu_wiki_space_node`（action: get, token: ABC123）
2. 返回 `obj_type: "docx"`, `obj_token: "doxcnXYZ789"`
3. 调用 `feishu_mcp_fetch_doc`（doc_id: doxcnXYZ789）

## 工具组合

| 需求 | 工具 |
|------|------|
| 获取文档文本 | `feishu_mcp_fetch_doc` |
| 下载图片/文件/画板 | `feishu_doc_media`（action: download） |
| 解析 wiki token 类型 | `feishu_wiki_space_node`（action: get） |
| 读写电子表格 | `feishu_sheet` |
| 操作多维表格 | `feishu_bitable_*` 系列 |

