Connects Claude to your Feishu workspace so you can pull docs, tables, and wiki pages into conversations and push edits back without leaving Claude.
Best for: Teams using Feishu who want to analyze or update docs through Claude without context switching.
---
name: feishu-doc
description: |
Feishu document read/write operations + comment management. Activate when user mentions Feishu docs, cloud docs, docx links, or document comments.
---
# Feishu Document Tool
Single tool `feishu_doc` with action parameter for all document operations including comment management.
## Token Extraction
From URL `https://xxx.feishu.cn/docx/ABC123def` → `doc_token` = `ABC123def`
From URL `https://xxx.feishu.cn/docs/doccn123c` → `doc_token` = `doccn123c`
## Actions
### Read Document
```json
{ "action": "read", "doc_token": "ABC123def" }
```
Returns: title, plain text content, block statistics. Check `hint` field - if present, structured content (tables, images) exists that requires `list_blocks`.
### Write Document (Replace All)
```json
{ "action": "write", "doc_token": "ABC123def", "content": "# Title\n\nMarkdown content..." }
```
Replaces entire document with markdown content. Supports: headings, lists, code blocks, quotes, links, images (`` auto-uploaded), bold/italic/strikethrough.
**Limitation:** Markdown tables are NOT supported.
### Create + Write (Atomic, Recommended)
```json
{
"action": "create_and_write",
"title": "New Document",
"content": "# Title\n\nMarkdown content..."
}
```
With folder:
```json
{
"action": "create_and_write",
"title": "New Document",
"content": "# Title\n\nMarkdown content...",
"folder_token": "fldcnXXX"
}
```
Creates the document and writes content in one call. Prefer this over separate `create` + `write`.
### Append Content
```json
{ "action": "append", "doc_token": "ABC123def", "content": "Additional content" }
```
Appends markdown to end of document.
### Create Document
```json
{ "action": "create", "title": "New Document" }
```
With folder:
```json
{ "action": "create", "title": "New Document", "folder_token": "fldcnXXX" }
```
Creates an empty document (title only).
### List Blocks
```json
{ "action": "list_blocks", "doc_token": "ABC123def" }
```
Returns full block data including tables, images. Use this to read structured content.
### Get Single Block
```json
{ "action": "get_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }
```
### Update Block Text
```json
{ "action": "update_block", "doc_token": "ABC123def", "block_id": "doxcnXXX", "content": "New text" }
```
### Delete Block
```json
{ "action": "delete_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }
```
### List Comments
```json
{ "action": "list_comments", "doc_token": "ABC123def", "page_size": 50 }
```
Returns all comments for the document. Use `page_token` for pagination. Comments include `is_whole` field to distinguish between whole-document comments (true) and block-level comments (false).
### Get Single Comment
```json
{ "action": "get_comment", "doc_token": "ABC123def", "comment_id": "comment_xxx" }
```
### Create Comment
```json
{ "action": "create_comment", "doc_token": "ABC123def", "content": "Comment text" }
```
### List Comment Replies
```json
{ "action": "list_comment_replies", "doc_token": "ABC123def", "comment_id": "comment_xxx", "page_size": 50 }
```
`page_size` should be a positive integer. If omitted, tool defaults to `50`.
### Comment Write Scope
Current tool provides documented comment write action `create_comment` (global comment creation).
For replies, use `list_comment_replies` for retrieval; the reply creation endpoint is not exposed in current SDK surface.
## Reading Workflow
1. Start with `action: "read"` - get plain text + statistics
2. Check `block_types` in response for Table, Image, Code, etc.
3. If structured content exists, use `action: "list_blocks"` for full data
## Configuration
```yaml
channels:
feishu:
tools:
doc: true # default: true
```
**Note:** `feishu_wiki` depends on this tool - wiki page content is read/written via `feishu_doc`.
## Permissions
Required: `docx:document`, `docx:document:readonly`, `docx:document.block:convert`, `drive:drive`
For comment operations:
- Read comments: `docx:document.comment:read`
- Write comments: `docx:document.comment` (optional, for create_comment)
Creator's repository · m1heng/clawdbot-feishu