mcpField
F
feishu-doc

feishu-doc

github.com/m1hengDocuments4.2k1.9k installsUpdated 30w ago
Repository

About feishu-doc

A guide to the `feishu_doc` tool for working with Feishu documents, including reading, creating, editing, block management, and comments. It supports Markdown content but not Markdown tables.

Key features

  1. 01Read document text and statistics
  2. 02Create, replace, or append content
  3. 03Read and edit document blocks
  4. 04Manage document comments
  5. 05Write content using Markdown

Use cases

  1. 01Read Feishu documents and structured blocks
  2. 02Create and populate a document
  3. 03Append or replace document content
  4. 04Review or add document comments

MCP support

The skill describes a single `feishu_doc` tool with action parameters for document operations. MCP clients can use it to read and write Feishu documents, manage blocks, and handle comments.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/m1heng/clawdbot-feishu --skill feishu-doc

After installing, type/feishu-docin Claude Code to confirm it loaded.

Bundled filesreferences/block-types.md

Details

From the project README

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
{ "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)
{ "action": "write", "doc_token": "ABC123def", "content": "# Title\n\nMarkdown content..." }

Replaces entire document with markdown content. Supports: headings, lists, code blocks, quotes, links, images (![](url) auto-uploaded), bold/italic/strikethrough.

Limitation: Markdown tables are NOT supported.

Create + Write (Atomic, Recommended)
{
  "action": "create_and_write",
  "title": "New Document",
  "content": "# Title\n\nMarkdown content..."
}

With folder:

{
  "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
{ "action": "append", "doc_token": "ABC123def", "content": "Additional content" }

Appends markdown to end of document.

Create Document
{ "action": "create", "title": "New Document" }

With folder:

{ "action": "create", "title": "New Document", "folder_token": "fldcnXXX" }

Creates an empty document (title only).

List Blocks
{ "action": "list_blocks", "doc_token": "ABC123def" }

Returns full block data including tables, images. Use this to read structured content.

Get Single Block
{ "action": "get_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }
Update Block Text
{ "action": "update_block", "doc_token": "ABC123def", "block_id": "doxcnXXX", "content": "New text" }
Delete Block
{ "action": "delete_block", "doc_token": "ABC123def", "block_id": "doxcnXXX" }
List Comments
{ "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
{ "action": "get_comment", "doc_token": "ABC123def", "comment_id": "comment_xxx" }
Create Comment
{ "action": "create_comment", "doc_token": "ABC123def", "content": "Comment text" }
List Comment Replies
{ "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

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)

Comments

Markdown supported