feishu-wiki-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@feishu-wiki-mcpshow my knowledge spaces"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
飞书 MCP 使用指南(feishu-wiki-mcp)
本项目是面向 MCP 客户端的飞书服务网关,运行时通过飞书开放平台 API 提供标准化工具调用。
运行时:Node.js >= 20 + stdio transport(
@modelcontextprotocol/sdk)入口:
build/index.js当前版本:
1.3.1包名:
@akaknele/feishu-wiki-mcp当前可用 Tool:36 个
一、部署与启动方式
1. 开发构建与本地运行
npm install
npm run build
npm start -- --app-id <APP_ID> --app-secret <APP_SECRET>2. OAuth 模式(用于用户授权)
适用于需要用户级权限(user token)的场景:
npm start -- --app-id <APP_ID> --app-secret <APP_SECRET> --oauth --port 30012b. 预置 Token 模式(无浏览器,适合第三方 MCP 客户端)
当第三方应用(Claude Desktop、Cursor 等)安装 MCP 无法弹出浏览器时,可提前获取 user token 后通过参数或环境变量传入,完全跳过 OAuth 授权流程:
# 命令行参数
feishu-wiki-mcp --app-id <APP_ID> --app-secret <APP_SECRET> \
--user-token <USER_ACCESS_TOKEN> \
--refresh-token <REFRESH_TOKEN>
# 或环境变量(推荐)
FEISHU_APP_ID=cli_xxx \
FEISHU_APP_SECRET=secret_xxx \
FEISHU_USER_TOKEN=u-xxx \
FEISHU_REFRESH_TOKEN=ur-xxx \
feishu-wiki-mcpMCP 客户端配置示例:
{
"mcpServers": {
"feishu-wiki-mcp": {
"command": "feishu-wiki-mcp",
"args": ["--app-id", "<APP_ID>", "--app-secret", "<APP_SECRET>"],
"env": {
"FEISHU_USER_TOKEN": "<USER_ACCESS_TOKEN>",
"FEISHU_REFRESH_TOKEN": "<REFRESH_TOKEN>"
}
}
}
}token 过期后会自动用
refresh_token刷新;refresh_token 也过期则报错,需重新获取。
2c. 如何获取 User Token
预置模式需要提前拿到 user_access_token 和 refresh_token,有以下三种方式:
方式一:运行一次 --oauth,从缓存文件提取(推荐)
在有浏览器的机器上完成一次授权:
feishu-wiki-mcp --app-id cli_xxx --app-secret xxx --oauth --port 3001授权成功后读取缓存文件:
cat ~/.feishu-wiki-mcp-token.json输出示例:
{
"access_token": "u-xxx...",
"refresh_token": "ur-xxx...",
"expires_at": 1234567890000,
"refresh_expires_at": 9876543210000
}将 access_token 和 refresh_token 填入环境变量即可。refresh_token 有效期约 30 天,MCP 会自动续期 access_token,正常使用无感知。
方式二:飞书开放平台 API 调试台(无需写代码)
打开 open.feishu.cn → 进入你的应用
左侧菜单选择 "开发工具 → API 调试台"
右上角鉴权方式选择 "用户身份(user_access_token)",点击授权登录
授权完成后,调试台会自动填入 token,复制即可
方式三:手动 OAuth 换 token(Shell 脚本)
适合自动化脚本场景,需要一个可访问的回调地址(本地 localhost 即可):
# 替换为你的 App ID / Secret
APP_ID="cli_xxx"
APP_SECRET="xxx"
PORT=3001
# Step 1:用浏览器打开授权 URL,完成后从地址栏取 code 参数
SCOPES="wiki:wiki docx:document drive:drive bitable:bitable im:message contact:user.id:readonly"
echo "请用浏览器访问以下地址完成授权:"
echo "https://open.feishu.cn/open-apis/authen/v1/index?app_id=${APP_ID}&redirect_uri=http%3A%2F%2Flocalhost%3A${PORT}%2Fcallback&scope=$(python3 -c "import urllib.parse; print(urllib.parse.quote('${SCOPES}'))")"
echo ""
read -p "粘贴回调 URL 中的 code 参数值: " CODE
# Step 2:获取 app_access_token
APP_TOKEN=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal" \
-H "Content-Type: application/json" \
-d "{\"app_id\":\"${APP_ID}\",\"app_secret\":\"${APP_SECRET}\"}" | jq -r .app_access_token)
# Step 3:用 code 换 user_access_token + refresh_token
curl -s -X POST "https://open.feishu.cn/open-apis/authen/v1/oidc/access_token" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${APP_TOKEN}" \
-d "{\"grant_type\":\"authorization_code\",\"code\":\"${CODE}\"}" | jq '{access_token: .data.access_token, refresh_token: .data.refresh_token}'运行后输出的 access_token 和 refresh_token 即可填入环境变量。
Token 有效期说明
Token | 有效期 | 过期行为 |
| ~2 小时 | MCP 自动用 refresh_token 续期 |
| ~30 天 | 需重新走上述任一方式获取 |
3. 安装后直接运行
npm install -g @akaknele/feishu-wiki-mcp@1.3.1
feishu-wiki-mcp --app-id <APP_ID> --app-secret <APP_SECRET>或使用 npx:
npx @akaknele/feishu-wiki-mcp@1.3.1 --app-id <APP_ID> --app-secret <APP_SECRET>4. MCP 客户端接入(示例)
{
"mcpServers": {
"feishu-wiki-mcp": {
"command": "feishu-wiki-mcp",
"args": ["--app-id", "<APP_ID>", "--app-secret", "<APP_SECRET>"]
}
}
}OAuth 模式示例:
{
"mcpServers": {
"feishu-wiki-mcp": {
"command": "feishu-wiki-mcp",
"args": ["--app-id", "<APP_ID>", "--app-secret", "<APP_SECRET>", "--oauth", "--port", "3001"]
}
}
}Related MCP server: lark-mcp
二、外网网络(OAuth)要求
若在企业内网/防火墙下运行,需要放行:
https://open.feishu.cnhttps://openapi.*.feishu.cn(飞书 API 域名)
OAuth 回调地址默认为:
http://localhost:3001/callback
因此对应机器的 3001 端口需要可访问(对本机浏览器即可),并且回调 URL 能回传到该本机实例。
三、核心流程
启动服务并通过参数选择 tenant 模式或 OAuth 模式
MCP 客户端请求对应 tool
服务器内部自动获取并刷新 token(
~/.feishu-wiki-mcp-token.json)使用 token 调用飞书接口并返回结构化 JSON
四、工具清单(36)
工具清单质量说明
每个工具都以 MCP tool schema 的实际参数定义为准,返回值默认为飞书 API 的 JSON 响应文本。
知识库(Wiki)
工具 | 用途 | 必填参数 | 可选参数 |
| 列出当前用户可见知识库 | 无 |
|
| 获取知识库详情 |
| 无 |
| 列出知识库子节点(默认顶层) |
|
|
| 通过 wiki token 或文档 token 获取节点 |
|
|
| 创建知识库节点(文档/表格等) |
|
|
| 在知识库内移动节点 |
|
|
| 将云空间文档移动进知识库 |
|
|
| 更新节点标题 |
| 无 |
| 复制节点(可跨库) |
|
|
| 搜索知识库节点 |
|
|
| 🆕 一步创建带 Markdown 内容的 wiki 文档(上传→转换→移入知识库) |
|
|
文档(Docx)
工具 | 用途 | 必填参数 | 可选参数 |
| 获取文档纯文本内容 |
| 无 |
| 搜索云文档 |
|
|
| 导入 Markdown 创建飞书文档(自动上传 → 转换 docx)。🆕 v1.3: 可选传入 |
|
|
| 列出文档所有块 |
|
|
| 获取指定块详情 |
|
|
| 在指定父块下插入子块。🆕 v1.3: 补全所有 block_type 文档 + 客户端参数校验 |
|
|
| 更新指定块内容(PATCH) |
| 无 |
| 删除父块下指定区间的子块 |
| 无 |
多维表格(Bitable)
工具 | 用途 | 必填参数 | 可选参数 |
| 创建多维表格应用 | 无 |
|
| 列出应用内表 |
|
|
| 创建数据表 |
|
|
| 列出表字段 |
|
|
| 条件筛选记录 |
|
|
| 新增记录 |
| 无 |
| 更新记录 |
| 无 |
IM 与联系人
工具 | 用途 | 必填参数 | 可选参数 |
| 发送消息(文本/卡片等) |
| 无 |
| 获取聊天历史 |
|
|
| 获取用户/机器人群聊列表 | 无 |
|
| 创建群聊 | 无 |
|
| 获取群成员 |
|
|
| 批量通过邮箱/手机号查用户 ID | 无 |
|
权限与删除
工具 | 用途 | 必填参数 | 可选参数 |
| 为云文档添加协作者权限 |
| 无 |
| 将 wiki 节点移出到云空间根目录(第一步);之后用 |
| 无 |
| 🆕 上传文件到云空间(base64),获取 |
|
|
| 删除云空间文件(移至回收站) |
| 无 |
说明
fields(Bitable 相关)通常使用字段名/系统键映射值;建议先用bitable_list_fields明确 schema 后再写入。im_send_message的content按对应msg_type要求传入 JSON 字符串。doc_import:先上传 md 文件获取file_token,再创建导入任务转换为 docx,轮询等待最多 30 秒。v1.3 新增space_id+parent_wiki_token参数,导入后可自动移入知识库。wiki_create_node_with_markdown:一步到位创建带内容的 wiki 文档。内部自动完成:上传 Markdown → 转换为 docx → 移入知识库。适合 AI Agent 快速创建结构化文档。doc_create_blocks:v1.3 新增客户端参数校验,block_type 与字段名不匹配时会返回明确错误提示(如block_type=4 需要字段 "heading2"),避免飞书 API 返回笼统的invalid param。支持的 block_type:2=text, 3-9=heading1-7, 11=bullet, 12=ordered, 14=code, 15=quote, 22=divider, 27=image, 31=table, 34=callout。drive_upload_file:上传 base64 编码的文件到云空间,返回file_token,可配合doc_create_blocks的 image block(block_type=27)在文档中插入图片。wiki_delete_node:飞书无公开 wiki 删除 API。本工具将节点移出 wiki 至云空间根目录(step1),之后需通过drive_delete_file删除底层文件(step2)。需要 wiki node token,可从wiki_list_nodes返回的node_token字段获取。
五、安全与生产部署
最小可运行参数清单
启动参数(必备)
--app-id:飞书应用 ID(必填,可用FEISHU_APP_ID环境变量代替)--app-secret:飞书应用 Secret(必填,可用FEISHU_APP_SECRET代替)--oauth:启动浏览器 OAuth 授权模式(可选)--port:OAuth 回调端口(可选,默认3001)--user-token:预置用户 access token,跳过浏览器授权(可选,可用FEISHU_USER_TOKEN代替)--refresh-token:预置 refresh token,token 过期时自动刷新(可选,可用FEISHU_REFRESH_TOKEN代替)
推荐环境变量
FEISHU_APP_IDFEISHU_APP_SECRETFEISHU_USER_TOKEN(预置模式,无需浏览器)FEISHU_REFRESH_TOKEN(配合 user token 自动续期)FEISHU_OAUTH=true/false(已废弃,建议改用 user token 模式)
示例 .env
FEISHU_APP_ID=cli_xxx
FEISHU_APP_SECRET=secret_xxx
FEISHU_OAUTH=true
FEISHU_MCP_PORT=3001示例启动脚本(避免在命令行直接暴露明文)
set -a
source .env
set +a
if [ "${FEISHU_OAUTH}" = "true" ]; then
feishu-wiki-mcp --app-id "$FEISHU_APP_ID" --app-secret "$FEISHU_APP_SECRET" --oauth --port "${FEISHU_MCP_PORT:-3001}"
else
feishu-wiki-mcp --app-id "$FEISHU_APP_ID" --app-secret "$FEISHU_APP_SECRET"
fi版本与发布一致性
当前代码版本:
1.3.1(package.json中version)MCP 运行主文件:
build/index.js发布示例(建议保持一致):
npm version patch # 或 npm version 1.0.7
npm run build # 确保生成 build/index.js
npm publish --access public
# 标签建议与版本一致
git tag v1.0.7
git push --tags安全与生产环境建议
端口访问控制
OAuth 回调默认地址固定为
http://localhost:${port}/callback(当前实现不支持自定义 callback host/path)。生产部署中建议只对内网开放
3001,并通过反向代理对外暴露时加 IP 白名单/鉴权。避免将该端口放到公开网段;如需公网访问,建议使用 VPN 或 SSH 隧道到内网服务端。
token 文件权限
用户 token 缓存在
~/.feishu-wiki-mcp-token.json。建议设置严格权限:
chmod 600 ~/.feishu-wiki-mcp-token.json
chown "$USER" ~/.feishu-wiki-mcp-token.json建议使用独立运行用户,避免多人共享 HOME 目录。
需要强制重新登录时,删除该文件可清除会话缓存。
日志脱敏
运行时禁止在 shell 中开启
set -x,避免把APP_SECRET打印到日志。当前日志仅输出错误描述,不应泄露 token 明文;如你接入统一日志系统,请开启敏感字段脱敏(如
app_secret、token)。
回调地址与 HTTPS 要求
本地开发/单机场景:
http://localhost:<port>/callback是可用的。生产场景若通过反向代理对外网开放,建议使用 HTTPS 并把代理层回调地址映射为该本机回调,同时在飞书应用配置中放行对应可访问域名。
若需自定义公网 callback(非 localhost),需修改
doOAuthFlow中redirectUri逻辑并重新构建发布。
六、发布(如需维护 npm)
npm version patch # 或指定版本号
npm login --registry https://registry.npmjs.org
npm publish --access public
git tag v1.0.7
git push --tags七、故障排查
feishu-wiki-mcp命令未找到:先确认全局安装成功,npm bin -g在PATH启动报 token 错误:检查 APP_ID / APP_SECRET 是否正确、应用是否开通对应权限
OAuth 首次无效:检查 callback URL 是否可达、端口放行是否正常、浏览器可打开授权链接
Token 缓存文件:
~/.feishu-wiki-mcp-token.json(每个用户一份,按需清理可强制重新登录)
八、当前版本行为边界
当前实现基于
@modelcontextprotocol/sdk的 stdio transport,适配本地/远程 MCP 客户端调用已实现 36 个工具,按需在服务端扩展后可追加
九、Changelog
v1.3.0
新增
wiki_create_node_with_markdown:一步到位在知识库中创建带 Markdown 内容的文档节点。内部自动完成:上传 Markdown → 转换为 docx → 移入知识库指定位置。AI Agent 只需一次调用即可完成之前需要 3 步(create_node → list_blocks → create_blocks)的操作。新增
drive_upload_file:支持 base64 编码文件上传到飞书云空间,返回file_token,可用于在文档中插入图片等场景。增强
doc_import:新增space_id+parent_wiki_token可选参数,导入 Markdown 后自动将文档移入知识库,省去手动调用wiki_move_docs_to_wiki。增强
doc_create_blocks:补全所有 block_type 文档:新增 11=bullet、12=ordered、15=quote、22=divider 等类型的完整 JSON 示例
新增客户端参数校验:block_type 与字段名不匹配时返回明确错误提示(如
block_type=4 需要字段 "heading2"),不再依赖飞书 API 笼统的invalid param错误
v1.2.0
bugfix
doc_import:修复创建空文档的问题。现在正确实现三步流程:① 上传 md 文件获取file_token→ ② 创建导入任务(md→docx)→ ③ 轮询等待,内容完整导入。bugfix
wiki_delete_node:飞书无公开 wiki 删除端点(DELETE 返回 404)。改为两步删除工作流:本工具先将节点移出 wiki 至云空间根目录,再配合drive_delete_file彻底删除底层文件。
v1.1.0
新增 5 个 Docx Blocks 操作工具:
doc_list_blocks、doc_get_block、doc_create_blocks、doc_update_block、doc_delete_blocks,支持对飞书文档内容的完整 CRUD新增
wiki_delete_node、drive_delete_file删除工具OAuth 改进:支持
--user-token/--refresh-token参数和FEISHU_USER_TOKEN/FEISHU_REFRESH_TOKEN环境变量,第三方 MCP 客户端无需浏览器即可授权环境变量支持
FEISHU_APP_ID/FEISHU_APP_SECRET
v1.0.7
初始版本,27 个工具(Wiki、Bitable、IM、权限)
Available Tools
36 toolsbitable_create_appC
创建多维表格应用
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 多维表格名称 | |
| folder_token | No | 目标文件夹 token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'create' with no explanation of side effects, required permissions, whether the operation is reversible, or what the response looks like. As a mutation tool, it lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the verb. It contains no filler, but it is somewhat under-specified. Still, it earns its place and is not tautological.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and only two parameters, the description is too sparse. It does not mention return values, prerequisites (e.g., whether folder_token is required), or behavior in edge cases. A creation tool with this description is incomplete for an agent to use reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters have basic descriptions ('多维表格名称' for name and '目标文件夹 token' for folder_token). The description does not add meaning beyond the schema, so the baseline of 3 applies. It does not compensate for any ambiguity but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '创建多维表格应用' clearly states the action (create) and resource (Bitable app), distinguishing it from sibling tools like bitable_create_table (create table) and bitable_create_record (create record). However, it is a brief phrase without additional scope or detail, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., having a folder token) or that this should be used before creating tables/records. No when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitable_create_recordC
在多维表格中创建一条记录
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | 字段数据,key 为字段名,value 为对应值 | |
| table_id | Yes | 数据表 ID | |
| app_token | Yes | 多维表格 app_token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavioral traits. It only states the tool creates a record, but does not mention side effects, required permissions, whether the operation is idempotent, or what the response contains. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but arguably under-specified. It is not verbose, yet it lacks any additional helpful structure or elaboration, making it borderline between adequate conciseness and excessive terseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, a nested fields object, and no output schema or annotations, the description is too sparse. It does not explain constraints on field values, what happens on success/failure, or the format of the created record. The agent would need to infer too much for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage, so the baseline is 3. The description itself adds no extra semantic information beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '在多维表格中创建一条记录' clearly states the action (create) and resource (a record in a bitable). It distinguishes from siblings like bitable_update_record and bitable_search_records by its explicit 'create' verb, though it doesn't name alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to use this tool versus alternatives, nor any prerequisites or context. The only implied usage is from the tool name and description, which is insufficient for an agent to make a confident selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitable_create_tableC
在多维表格中新建数据表
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 表名 | |
| fields | No | 初始字段列表 | |
| app_token | Yes | 多维表格 app_token | |
| default_view_name | No | 默认视图名 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral details such as required permissions, side effects, or return behavior. It is a bare statement of creation with no additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (7 characters) and lacks substantive information. While concise, it is under-specified for a tool with four parameters and no output schema, making it less useful than a minimal viable description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four parameters and no output schema, the description should mention at least the expected return or additional operational context. It does not, leaving the agent without information about the operation's outcome or requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all parameters (name, fields, app_token, default_view_name), so the baseline is 3. The description adds no parameter-specific meaning, relying entirely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (新建) and resource (数据表) within the Bitable context, distinguishing it from sibling tools like bitable_create_app and bitable_create_record. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, and no mention of prerequisites such as needing an existing app_token. It only states the action with no exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitable_list_fieldsB
获取多维表格数据表的所有字段
| Name | Required | Description | Default |
|---|---|---|---|
| table_id | Yes | 数据表 ID | |
| app_token | Yes | 多维表格 app_token | |
| page_size | No | 分页大小 | |
| page_token | No | 分页标记 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'get all fields' and does not disclose pagination behavior, permission requirements, or whether all fields are returned in a single call or page-by-page. The schema reveals page_size/page_token, but the description adds no behavioral context beyond the literal action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that states the core function without fluff. It is appropriately sized for a simple list operation, though it lacks any structural breakdown or additional context that could help the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, pagination semantics, or how this tool fits into the broader workflow (e.g., you would first list tables then list fields). For a tool with pagination parameters, some mention of paging behavior is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description does not add any additional meaning about how parameters relate to the operation, but it also does not need to compensate since the schema is fully descriptive. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('获取') and the resource ('多维表格数据表的所有字段'), which is specific and unambiguous. It distinguishes itself from sibling tools like bitable_list_tables by targeting fields rather than table metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or related tools such as bitable_list_tables or bitable_search_records. The usage context is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitable_list_tablesB
列出多维表格中的所有数据表
| Name | Required | Description | Default |
|---|---|---|---|
| app_token | Yes | 多维表格 app_token | |
| page_size | No | 分页大小 | |
| page_token | No | 分页标记 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic action without disclosing pagination behavior, return format, or explicit read-only nature. The phrase '所有数据表' could mislead about pagination, given the presence of page_size and page_token parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly conveys the core purpose with no redundant information. It earns its place perfectly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no output schema, and no annotations, the description is too thin. It omits return value details and pagination mechanics, both critical for correct invocation. The schema partly compensates for parameter meaning, but overall context is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (app_token, page_size, page_token) having a clear Chinese description. The tool description itself adds no extra meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '列出多维表格中的所有数据表' clearly specifies the action (list) and resource (all tables in a Bitable app). It distinguishes from sibling tools like bitable_list_fields (which lists fields) and bitable_create_table (which creates a table).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention prerequisites (like needing an app_token) or contrast with other listing tools. The usage context is only implied by the tool's obvious purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitable_search_recordsC
搜索多维表格中的记录
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 排序规则 | |
| filter | No | 筛选条件 | |
| table_id | Yes | 数据表 ID | |
| app_token | Yes | 多维表格 app_token | |
| page_size | No | 分页大小,最大 500 | |
| page_token | No | 分页标记 | |
| field_names | No | 返回的字段名列表 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a search/read operation but does not mention response format, pagination behavior, filtering semantics, or any side effects. This is minimal beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and free of fluff. While it is appropriately brief, it omits important behavioral context, but that is more a completeness issue than a conciseness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, nested filter/sort objects) and the absence of both annotations and an output schema, the two-word description is far from complete. It does not explain what results look like, how pagination works, or how search differs from plain listing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself provides detailed descriptions for all parameters including filter, sort, pagination, and field selection. The description adds no extra parameter meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '搜索多维表格中的记录' clearly states a specific action (search) on a specific resource (records in a multidimensional table). It distinguishes itself from sibling tools that create or update records, though it does not explicitly contrast with a potential 'list records' function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as bitable_list_tables or bitable_create_record. It lacks context about use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitable_update_recordC
更新多维表格中的一条记录
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | 要更新的字段数据 | |
| table_id | Yes | 数据表 ID | |
| app_token | Yes | 多维表格 app_token | |
| record_id | Yes | 记录 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations to rely on, the description carries the full burden of behavioral disclosure. It only says 'update a record' without indicating whether the update is partial or full, what happens to omitted fields, or any permission and rate-limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise, though it would benefit from more content; however, for sheer efficiency it earns a strong score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four required parameters, a nested object, and no output schema or annotations. The description only states the basic action, leaving the agent without information on update semantics, return format, or error conditions—insufficient for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions cover all four parameters (app_token, table_id, record_id, fields), providing 100% coverage. The tool description adds no additional parameter-level detail, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation (update) and the resource (a record in a bitable), which is specific enough to distinguish it from sibling tools that create, search, or list records. However, it does not explicitly contrast with alternatives, so it just misses a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There is no mention of prerequisites, typical scenarios, or why one would choose this over other bitable tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contact_batch_get_user_idB
通过邮箱或手机号获取用户 ID
| Name | Required | Description | Default |
|---|---|---|---|
| emails | No | 邮箱列表,最多 50 个 | |
| mobiles | No | 手机号列表,最多 50 个 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It does not mention what happens with multiple inputs, whether results are batch or first-match, error handling, rate limits, or edge cases. This is a bare statement of functionality with no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's purpose with no wasted words. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the tool returns, but it does not. It also doesn't clarify the optionality of parameters (schema shows none required) or any constraints. For a simple two-parameter tool, this description is too incomplete to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes each parameter (100% coverage), so the baseline is 3. The description only restates 'emails or mobiles' without adding any extra meaning, such as whether at least one is required or behavior when both are provided. It neither detracts nor adds value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving a user ID via email or mobile number. It uses a specific verb ('获取') and resource ('用户 ID'), and is easily distinguished from sibling tools, which are all focused on bitable, wiki, docs, im, or drive operations rather than user contact lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, or any mention of prerequisites or typical use cases. The sibling tools do not include a similar contact lookup, but the description does not indicate under what circumstances this tool should be chosen, providing no usage context at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_create_blocksA
在飞书文档指定块下插入子块。
支持的 block_type 及对应字段名: 2=文本段落(text) 示例: {"block_type":2,"text":{"elements":[{"text_run":{"content":"段落文本"}}]}} 3=H1(heading1) 示例: {"block_type":3,"heading1":{"elements":[{"text_run":{"content":"一级标题"}}]}} 4=H2(heading2) 示例: {"block_type":4,"heading2":{"elements":[{"text_run":{"content":"二级标题"}}]}} 5=H3(heading3), 6=H4(heading4), 7=H5(heading5), 8=H6(heading6), 9=H7(heading7) — 格式同上 11=无序列表(bullet) 示例: {"block_type":11,"bullet":{"elements":[{"text_run":{"content":"列表项"}}]}} 12=有序列表(ordered) 示例: {"block_type":12,"ordered":{"elements":[{"text_run":{"content":"步骤一"}}]}} 14=代码块(code) 示例: {"block_type":14,"code":{"elements":[{"text_run":{"content":"print('hi')"}}],"style":{"language":49}}} 15=引用(quote) 示例: {"block_type":15,"quote":{"elements":[{"text_run":{"content":"引用文本"}}]}} 34=高亮块(callout) 示例: {"block_type":34,"callout":{"elements":[{"text_run":{"content":"提示内容"}}]}} 22=分割线(divider) 示例: {"block_type":22,"divider":{}}
文本样式(text_element_style): bold=加粗, italic=斜体, underline=下划线, strikethrough=删除线, inline_code=行内代码 示例: {"text_run":{"content":"加粗文字","text_element_style":{"bold":true}}}
注意: elements 数组中可包含多个 text_run 实现混合样式。每种块的字段名必须与 block_type 对应(如 block_type=4 用 heading2, block_type=11 用 bullet)。
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 插入位置(0-based),不填则追加到末尾 | |
| block_id | Yes | 父块 ID(通常用文档根块 ID,即 document_id) | |
| children | Yes | 要插入的块数组,每个元素为飞书 Block 对象(含 block_type 及对应内容字段) | |
| document_id | Yes | 文档 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It provides extensive detail on block_type mappings, field name correspondence, examples, and styling options. It does not disclose potential errors or permissions, but the core behavior is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized with line breaks and examples. Every section adds value, though it could be slightly trimmed. It is front-loaded with the main purpose and then details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with nested children and multiple block types, the description covers the key mappings and examples. It lacks some edge cases like error handling but is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even with 100% schema coverage, the description significantly adds meaning beyond the schema. It explains the children structure with block_type examples, field names, and style syntax, which is essential for constructing valid payloads.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inserts child blocks under a specified block in Feishu docs, using a specific verb and resource. It differentiates from sibling tools like doc_update_block and doc_delete_blocks by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context for creating doc blocks and distinguishes from update/delete siblings, but does not explicitly mention when not to use or alternative tools. Clear context for insertion is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_delete_blocksA
删除飞书文档指定父块下的子块(按位置区间)
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | 父块 ID | |
| end_index | Yes | 删除结束位置(不含) | |
| document_id | Yes | 文档 ID | |
| start_index | Yes | 删除起始位置(含,0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It clearly indicates a destructive operation (delete) and scopes it to child blocks of a parent, which is useful. However, it does not disclose whether the deletion is permanent, cascades to deeper nesting, or requires specific permissions, which is a gap for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with the verb first, followed by the resource and scope. It contains no fluff or redundancy, making it concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with four required parameters and no output schema. The description covers the purpose and scope but omits details such as return values, reversibility, or likelihood of irreversible changes. Given the lack of annotations, a bit more context would improve completeness, but the description is adequate for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all four parameters described (e.g., start_index inclusive 0-based, end_index exclusive). The description's '按位置区间' (by position range) adds no additional semantic value beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '删除' (delete), the resource '飞书文档' (Feishu document), and the specific target '指定父块下的子块' (child blocks under a specified parent block). It also specifies the method '按位置区间' (by position range), which distinguishes it from sibling tools like doc_update_block or doc_create_blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: to delete child blocks under a parent block by position range. It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous enough for an agent to infer the appropriate situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_get_blockC
获取飞书文档中指定块的详细信息
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | 块 ID | |
| document_id | Yes | 文档 ID | |
| document_revision_id | No | 文档版本 ID,-1 表示最新版本 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read operation but does not mention whether it is read-only, any authorization needs, error behavior, or the format of the returned '详细信息'. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. It contains no redundant information and is appropriately sized for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the purpose is clear, the description lacks crucial context: what '详细信息' actually includes, how it relates to sibling tools (e.g., doc_list_blocks, doc_get_raw_content), and the absence of an output schema increases the need for description. An agent would be uncertain about the expected return structure and when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all three parameters, achieving 100% coverage. The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取飞书文档中指定块的详细信息' clearly states the tool retrieves detailed information for a specific block in a Feishu document, using a specific verb ('获取') and resource ('块'). It distinguishes from sibling tools like doc_list_blocks by focusing on a single block's details, but it does not explicitly mention alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as doc_list_blocks or doc_get_raw_content. It lacks any contextual triggers, exclusions, or prerequisites, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_get_raw_contentA
获取飞书文档的纯文本内容
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | 文档 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns plain text content, which is a useful behavioral trait (stripping formatting). However, it does not mention permissions, whether the entire document is returned, or potential limitations like pagination or encoding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise phrase with no wasted words. It is immediately clear and front-loaded, fitting the notion that 'every sentence earns its place' — actually every phrase does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter read tool with no output schema, the description provides adequate context: it tells what the tool does and what it returns (plain text). It does not explicitly detail return format or error cases, but the simplicity of the operation makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single parameter 'document_id' as '文档 ID' with 100% coverage. The description adds no additional parameter-level detail beyond 'document_id is required', so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb + resource: '获取飞书文档的纯文本内容' (get the plain text content of a Feishu document). This distinguishes it from sibling tools like doc_get_block (returns a block) and doc_list_blocks (lists blocks) by emphasizing plain text as opposed to structured blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use the tool (when plain text of a document is needed) but does not explicitly mention alternatives or exclusions. For example, it does not contrast with doc_get_block or doc_list_blocks, leaving some ambiguity for an agent deciding between these related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_importA
导入 Markdown 内容创建飞书文档(自动上传文件并转换为 docx)。可选传入 space_id + parent_wiki_token 直接写入知识库,省去手动调用 wiki_move_docs_to_wiki
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | Markdown 内容 | |
| space_id | No | 目标知识库 ID,传入后文档会自动移入知识库 | |
| file_name | No | 文件名(不含扩展名,最多 27 字符) | |
| folder_token | No | 目标文件夹 token,不填则放到云空间根目录 | |
| parent_wiki_token | No | 知识库父节点 wiki token,不填则放在知识库顶层 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that the tool automatically uploads the file and converts to docx, and implies that without space_id, a subsequent wiki_move_docs_to_wiki call would be needed. However, it lacks details on permissions, default folder behavior, return values, or error conditions, which are expected for a creation/upload tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the primary purpose, then adds the optional usage in a dependent clause. Every word contributes, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 params, 1 required, no output schema), the description covers the main use case, the wiki shortcut, and a key behavioral trait. It does not explain the default destination when neither space_id nor folder_token is provided, nor does it describe the return value, but it is generally sufficient for an agent to select and invoke the tool correctly in most scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining that space_id and parent_wiki_token work together to write directly into the wiki, and that file_name relates to the docx filename. This contextualizes the parameters beyond their individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: importing Markdown content to create a Feishu document, with the specific behavioral detail of automatically uploading and converting to docx. It also distinguishes itself from the sibling wiki_move_docs_to_wiki by noting the direct wiki integration saves a manual step, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance by mentioning the optional space_id + parent_wiki_token to directly write to the knowledge base, and explicitly says this saves the need to manually call wiki_move_docs_to_wiki. This gives clear when-to-use context, though it does not discuss alternatives like wiki_create_node_with_markdown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_list_blocksA
列出飞书文档中的所有块(支持分页)
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | 分页大小,最大 500 | |
| page_token | No | 分页标记 | |
| document_id | Yes | 文档 ID | |
| document_revision_id | No | 文档版本 ID,-1 表示最新版本 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. Listing is clearly a read-only operation, but the description does not explicitly state that it has no side effects or that only blocks at the top level are returned. It also doesn't mention any caveats like the need for authentication or what happens with very large documents besides pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the main purpose and pagination capability. It is front-loaded and contains no redundant information, earning every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what the response contains. It only says 'list all blocks' without detailing the block structure, whether nested blocks are included, or how pagination responses are shaped. This is insufficient for a complex data type like document blocks, especially given the 4 parameters and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter documented (page_size, page_token, document_id, document_revision_id). The tool description does not add any extra meaning to the parameters; it only repeats the pagination concept already present in page_size and page_token descriptions. Given the high schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('list') and resource ('all blocks in Feishu document'), clearly distinguishing it from sibling tools like doc_get_block (single block) and doc_create_blocks (creating). It also mentions pagination, which is a key feature of this listing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving all blocks in a document, and the mention of pagination suggests suitability for large documents. However, it does not explicitly state when to use this tool versus alternatives like doc_get_block for a single block or wiki_list_nodes for wiki content. No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_searchC
搜索飞书云文档
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 返回数量,最大 50 | |
| offset | No | 偏移量 | |
| owner_ids | No | 文档所有者 open_id 列表 | |
| docs_types | No | 文档类型 | |
| search_key | Yes | 搜索关键词 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'search Feishu cloud documents' without mentioning return format, pagination, authentication, or any operational nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, which is not effective conciseness but rather under-specification. A single phrase does not provide enough structure for a tool with five parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has five parameters, no output schema, and no annotations, the description is severely inadequate. It fails to explain what is searched, how filters work, or what results are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters documented in the input schema. The description adds no parameter detail, but the baseline of 3 applies because the schema already provides complete semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search) and the resource (Feishu cloud documents). However, it does not distinguish itself from the sibling tool 'wiki_search', which also performs search but on wiki nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like 'wiki_search'. The description gives no context on search scope, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doc_update_blockA
更新飞书文档中指定块的内容(PATCH)。update_text_elements 用于文本块;其他块类型传对应的 update_* 字段
| Name | Required | Description | Default |
|---|---|---|---|
| update | Yes | 更新内容对象,如 {"update_text_elements":{"elements":[{"text_run":{"content":"新内容"}}]}} | |
| block_id | Yes | 要更新的块 ID | |
| document_id | Yes | 文档 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It mentions 'PATCH' and the block-type-dependent update fields, but does not describe side effects, permissions, idempotency, or what happens on failure. The description mostly restates the tool's purpose without revealing operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted text. The first sentence fronts the action verb and resource, and the second adds a practical usage hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and parameter usage but omits return values, error conditions, and any prerequisites. With no output schema or annotations, these gaps make the tool's overall behavior incomplete, though the essential update semantics are clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters, and the description adds the mapping of update_text_elements to text blocks and directs other block types to use corresponding update_* fields. This goes beyond the schema's example, though it does not enumerate all possible update field types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a specified block's content in a Feishu document via PATCH. This specific verb+resource distinguishes it from sibling doc_* tools like doc_create_blocks, doc_delete_blocks, and doc_get_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for modifying existing blocks and provides guidance on constructing the update parameter (update_text_elements for text blocks, other update_* fields for other types). However, it does not explicitly contrast with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_add_permissionC
为云文档添加协作者权限
| Name | Required | Description | Default |
|---|---|---|---|
| perm | Yes | 权限角色 | |
| type | Yes | 文档类型 | |
| token | Yes | 文档 token | |
| member_id | Yes | 协作者 ID | |
| member_type | Yes | 协作者 ID 类型 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'add permissions' without explaining side effects, idempotency, reversibility, or required authentication. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. It is efficient with no wasted words, though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 required parameters, no annotations, and no output schema. The description is minimal, providing no context on return values, error cases, or operational details. This is incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, including enums for type, member_type, and perm. The tool description adds no additional parameter meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description "为云文档添加协作者权限" clearly states the action (add) and resource (collaborator permissions) but does not explicitly distinguish from sibling tools like drive_upload_file or drive_delete_file. It is specific enough but lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. It is a single statement with no context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_delete_fileA
删除云空间中的文件或文档(移至回收站)
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 文件类型 | |
| file_token | Yes | 文件 token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that deletion moves to recycle bin (non-permanent), which is valuable. However, it omits other behavioral aspects such as permission requirements, impact on shared links, or error handling, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose and includes a meaningful behavioral qualifier. Every word earns its place, with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with fully documented parameters, the description covers the essential behavioral context (move to recycle bin) and resource scope. It does not explain return values or errors, but these are not critical for a straightforward delete operation. Slightly incomplete but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'type' and 'file_token' adequately described. The description adds no further parameter-specific details, so it does not enhance beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '删除云空间中的文件或文档(移至回收站)' explicitly states the action (delete), the resource (files/documents in cloud space), and adds a key qualifier (move to recycle bin). This clearly distinguishes it from sibling delete tools like wiki_delete_node, which targets wiki nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for cloud drive files but provides no explicit guidance on when to use this tool over alternatives (e.g., wiki_delete_node for wiki nodes) or any exclusions. The context is clear but lacks direct comparison or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_upload_fileA
上传文件到飞书云空间(可用于获取 file_token 以在文档中插入图片等)。支持 base64 编码内容上传
| Name | Required | Description | Default |
|---|---|---|---|
| base64 | Yes | 文件的 base64 编码内容 | |
| file_name | Yes | 文件名(含扩展名,如 image.png) | |
| parent_node | No | 目标文件夹 token,不填则上传到云空间根目录 | |
| parent_type | No | 上传目标类型,默认 explorer(云空间) | explorer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds useful behavioral context by stating the tool supports base64 content and that the upload can be used to obtain a file_token, hinting at the tool's output. However, it does not mention permissions, overwrite behavior, file size limits, or a full response schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and contains no filler. Each sentence adds unique information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description partially compensates by hinting at the file_token output. However, it lacks explicit details about the full response structure and potential error cases, making it slightly incomplete for a no-output-schema tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema's field descriptions; it only references base64 content and file_token, which are already implied in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: '上传文件到飞书云空间' (upload file to Feishu cloud space), and distinguishes the tool from siblings by being the only upload-related drive tool among the listed siblings. It also adds a specific use case (getting file_token for document images).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies a clear use case: '可用于获取 file_token 以在文档中插入图片等' (can be used to obtain file_token for inserting images in documents), which tells the agent when to use it. However, it does not explicitly list alternatives or exclusion conditions, though no direct alternative upload tool exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_create_chatB
创建飞书群聊
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 群名称 | |
| owner_id | No | 群主 ID | |
| chat_type | No | 群类型 | |
| description | No | 群描述 | |
| user_id_list | No | 邀请的用户 ID 列表 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It simply states 'create' but does not disclose side effects, required permissions, validation rules, or expected output. The schema provides parameter constraints but not behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no extraneous content. It is highly concise and front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with 5 parameters and no output schema, the description is incomplete. It does not mention what the tool returns (e.g., chat ID), any prerequisites, or how errors are surfaced. More context is needed for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are described in the schema with 100% coverage. The description adds no additional meaning beyond the schema's property descriptions, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '创建飞书群聊' clearly states the action (create) and resource (Feishu group chat). It distinguishes the tool from siblings like im_list_chats (listing) and im_send_message (sending messages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There is no mention of preconditions, scenarios, or exclusions. The agent must infer usage solely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_get_chat_membersC
获取群成员列表
| Name | Required | Description | Default |
|---|---|---|---|
| chat_id | Yes | 群 ID | |
| page_size | No | 分页大小 | |
| page_token | No | 分页标记 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely states the action without revealing pagination behavior, permissions, or whether the operation is read-only. The lack of detail means the agent cannot anticipate limitations or side effects, which is a significant gap for a tool with pagination parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase with no filler or redundancy. It is extremely concise and front-loaded with the core purpose. However, its brevity borders on under-specification, but for the purpose it fulfills, there is zero wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should compensate by explaining response structure, pagination limits, or error conditions. It does not. The tool has 3 parameters and a pagination mechanism that is entirely unexplained. While the core purpose is clear, the lack of behavioral and return-value context leaves the description incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (chat_id, page_size, page_token) have individual descriptions. The tool description adds no extra meaning beyond the schema, but since the schema is complete, the baseline of 3 applies. No additional parameter nuances are disclosed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取群成员列表' (get group member list) clearly states the action (get) and resource (group member list). It is distinct from sibling tools like im_list_chats or im_send_message, though it does not explicitly differentiate itself. The verb and object are clear, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical contexts, or why one would choose this over other IM tools. There are no exclusions or alternative references, leaving the agent without directional help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_list_chatsB
获取用户或机器人所在的群列表
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | 分页大小 | |
| sort_type | No | 排序方式 | |
| page_token | No | 分页标记 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the full burden of disclosing behavior. It only states 'get list' without revealing any behavioral details such as whether it is a read-only operation, how pagination works, sorting semantics, or any side effects. The description adds no information beyond the obvious purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. It communicates the core purpose without unnecessary words or repetition. It is appropriately sized for a straightforward list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with three optional parameters and no output schema. The description tells what the tool does but does not explain return format, pagination behavior, or default sorting. Given the lack of annotations and output schema, the description is minimally adequate but leaves some gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameters (page_size, sort_type, page_token), each with a description. The tool description adds no parameter-specific detail, but with full schema coverage, the baseline is 3. The description is acceptable because the schema already explains the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving the list of groups (chats) that the user or bot belongs to. The verb '获取' (get) and the resource '群列表' (group list) are specific, and the scope ('用户或机器人所在') is explicit. This distinguishes it from sibling tools like im_send_message or im_list_messages, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, restrictions, or situations where another tool (e.g., im_get_chat_members) would be more appropriate. The intended context is only implied by the name and description, but no explicit usage direction is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_list_messagesA
获取会话(单聊/群聊)的历史消息
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | 结束时间(秒级时间戳) | |
| page_size | No | 分页大小 | |
| sort_type | No | 排序方式 | |
| page_token | No | 分页标记 | |
| start_time | No | 开始时间(秒级时间戳) | |
| container_id | Yes | 会话 ID(chat_id 或 thread_id) | |
| container_id_type | No | 会话类型 | chat |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states what the tool does (get messages) but does not disclose read-only nature, pagination behavior, time filters, or any side effects. The description adds minimal value beyond the tool name for behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded, with no unnecessary words or filler, making it an efficient and well-structured description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich with parameter descriptions, and the description clearly identifies the tool's core function. However, with no output schema and no mention of pagination or time-filter options in the description, an agent might lack full context on response format or edge cases. Combined with the schema, it is adequately complete for a straightforward list tool, but gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information beyond what the schema already provides. However, the schema itself is self-explanatory with descriptions for each parameter, so no further compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取会话(单聊/群聊)的历史消息' clearly states the tool retrieves historical messages from a conversation, distinguishing it from siblings like im_list_chats (which lists chats) and im_send_message (which sends messages). The verb '获取' + resource '历史消息' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving chat history but does not explicitly state when to use this tool versus alternatives like im_list_chats. No exclusion criteria or alternative tool references are provided, but the context of 'historical messages' gives reasonable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
im_send_messageA
发送飞书消息(支持文本、富文本、卡片等)
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | 消息内容 JSON 字符串,如 {"text":"hello"} | |
| msg_type | Yes | 消息类型 | |
| receive_id | Yes | 接收者 ID(open_id/user_id/chat_id/email) | |
| receive_id_type | Yes | 接收者 ID 类型 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure burden. It only states the tool sends messages and lists supported types. It fails to mention authentication requirements, side effects (e.g., message delivery), response behavior, or error scenarios. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose and supported types without waste. Every word adds value, and it is appropriately sized for a straightforward tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is brief but covers the basic action. However, it omits expected return values (e.g., message_id) or possible constraints (e.g., message size limits). Given the tool's simplicity and full schema coverage, it is minimally viable but lacks depth for robust decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description's mention of message types ('文本、富文本、卡片等') partially aligns with the msg_type enum but adds no new meaning beyond the schema. It does not clarify content formatting or receive_id_type semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('发送' / send) and resource ('飞书消息' / Feishu message), and mentions supported types (text, rich text, cards). This distinguishes it from sibling tools like im_list_messages (list) and im_create_chat (create chat).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for sending messages but does not explicitly state when to use this tool versus alternatives like im_list_messages or im_create_chat. It offers no exclusions or context about prerequisites, making the guidance only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_copy_nodeA
复制知识库中的节点到另一个位置(可跨知识库)
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | 新文档标题 | |
| space_id | Yes | 源知识库 ID | |
| node_token | Yes | 要复制的节点 token | |
| target_space_id | No | 目标知识库 ID | |
| target_parent_token | No | 目标父节点 token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the transparency burden. It conveys that this is a non-destructive copy operation and that cross-knowledge-base copying is allowed. However, it omits behavioral details such as whether child nodes are recursively copied, how the title parameter is used, or what happens when target_space_id/target_parent_token are not provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that is front-loaded with the core action and key qualifier (cross-knowledge-base). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and no annotations, so the description should fill more gaps. It does not explain whether copying includes child nodes, what the output/return value is, or how the optional parameters behave when omitted. This is a significant shortfall for a moderately complex operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — every parameter has an individual description. The tool description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (copy), the resource (nodes in a knowledge base), and the scope (can cross knowledge bases). The verb 'copy' distinguishes it from sibling tools like wiki_move_node and wiki_create_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'copy' and the mention of cross-knowledge-base capability, but there are no explicit when-to-use vs. alternative instructions. It does not mention when to prefer this over wiki_move_node or wiki_create_node, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_create_nodeC
在知识库中创建新节点(文档、表格等)
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | 文档标题 | |
| obj_type | Yes | 文档类型 | |
| space_id | Yes | 知识库 ID | |
| node_type | No | 节点类型:origin=实体节点, shortcut=快捷方式 | origin |
| parent_node_token | No | 父节点 token,不填则创建在顶层 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It only states the basic create action and reveals no side effects, permission requirements, response behavior, or implications for the knowledge base hierarchy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. It contains no filler, redundant phrasing, or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the one-line description is insufficient for a tool with 5 parameters and meaningful options like node_type (origin/shortcut) and parent_node_token. It doesn't explain what a node represents, the difference between node types, or what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds no parameter-specific meaning, but it also does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: creating a new node in the knowledge base, with examples (document, spreadsheet, etc.). It distinguishes from sibling operations like move/delete/update, though it doesn't explicitly differentiate from wiki_create_node_with_markdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like wiki_create_node_with_markdown or wiki_copy_node. It does not mention prerequisites, exclusions, or context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_create_node_with_markdownA
在知识库中一步创建带 Markdown 内容的文档节点。内部自动完成:上传 Markdown → 转换为 docx → 移入知识库指定位置。适合需要快速创建有内容的 wiki 文档的场景
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | 文档标题(不含扩展名,最多 27 字符) | |
| markdown | Yes | Markdown 内容 | |
| space_id | Yes | 知识库 ID | |
| parent_node_token | No | 父节点 wiki token,不填则创建在知识库顶层 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It explicitly discloses the internal chain: '上传 Markdown → 转换为 docx → 移入知识库指定位置', which is valuable behavioral information. It omits failure modes or permissions but is notably transparent about the workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: one sentence for the primary action and internal steps, one for the use case. There is no redundant information, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core behavior and internal pipeline, which is sufficient for a moderately complex tool with no output schema. It does not cover return values or error handling, but that is not critical given the tool's straightforward creation purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description does not add parameter-level details beyond what the schema already provides, but it does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '创建' (create) and resource '文档节点' (document node) with Markdown content in a knowledge base. It distinguishes from sibling tools like wiki_create_node by emphasizing the one-step internal conversion pipeline and 'Markdown 内容'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: '适合需要快速创建有内容的 wiki 文档的场景' (suitable for scenarios needing quick creation of wiki docs with content). It does not explicitly mention alternatives, but the scenario guidance is sufficient for basic decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_delete_nodeA
将知识库节点移出 wiki(移至云空间根目录),移出后可用 drive_delete_file 彻底删除底层文件。飞书无公开 wiki 删除 API,需两步操作
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | 知识库 ID | |
| node_token | Yes | 要移出的节点 wiki token(非 obj_token/document_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the behavior: it does not delete the node but moves it out, and explains the two-step workflow due to API limitations. It also explains the underlying file remains and can be deleted later, which is important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action and outcome, plus essential information about the two-step deletion. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity move operation with no annotations and no output schema, the description covers the purpose, effect, limitation, and follow-up action. It could mention potential side effects on child nodes or permission requirements, but these are not critical for the primary use case, so it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with descriptions for both space_id and node_token, including a clarification that node_token is not obj_token/document_id. The tool description adds no extra parameter meaning, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves a wiki node out of the wiki to the cloud space root directory, which is a specific, distinct action. It also differentiates from sibling tools like wiki_move_node by specifying 'out of the wiki' and from drive_delete_file by noting it is a prerequisite step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains when to use this tool (when wanting to delete a wiki node, since Feishu has no public API for direct wiki deletion) and provides the next step (use drive_delete_file). This gives clear usage context and points to an alternative, satisfying the dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_get_nodeA
通过 wiki 节点 token 或文档 token 获取节点详细信息
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | wiki 节点 token 或云文档 token | |
| obj_type | No | 文档类型,使用文档 token 查询时需要传入 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosure. The verb 'get' implies a read-only operation, and the mention of two token types adds useful scope. However, it does not describe error behavior, permissions, or any other edge-case traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the purpose without superfluous words. It is front-loaded with the action and resource, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality and token types, but with no output schema, it does not explain the structure of the returned details. It also lacks information about prerequisites beyond having a token, which may be sufficient for a straightforward get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters, including an enum and descriptions. The description adds minimal extra value by restating that tokens can be of two types, which is already implied by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'get node detailed information' via a wiki node token or document token. It is specific and distinct from sibling tools like wiki_list_nodes (listing) and wiki_get_space (getting space), as it focuses on retrieving details for a single node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use this tool: when you have a wiki node token or a document token to fetch node details. It explicitly mentions both token types, which helps distinguish from similar tools, but it does not name alternatives or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_get_spaceB
获取指定知识库的详细信息(名称、描述、类型、可见性)
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | 知识库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. Beyond the stated purpose of retrieving details, it does not disclose potential errors, permission requirements, or the exact return format. The operation is implicitly read-only, but this is not made explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and resource, followed by a parenthetical list of return fields. It contains no unnecessary words or filler, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter tool with one parameter and no output schema, the description provides enough context by listing the fields returned (name, description, type, visibility). It is complete for the tool's simplicity, though it could hint at edge cases or authentication needs. The sibling context and parameter schema cover the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a description for the only parameter (space_id as '知识库 ID'), giving 100% coverage of the parameter. The tool description does not add further semantic detail beyond what the schema already states, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb '获取' (get) with a clear resource '知识库' (knowledge base) and specifies the scope of details returned (name, description, type, visibility). This distinguishes it from sibling tools like wiki_list_spaces (list) and wiki_get_node (get node), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided for when to use this tool versus alternatives. The sibling tools include wiki_list_spaces for listing spaces and wiki_get_node for getting nodes, but the description does not explicitly state that this tool is for fetching a single space by ID or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_list_nodesA
列出知识库中指定父节点下的子节点。不传 parent_node_token 则列出顶层节点
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | 知识库 ID | |
| page_size | No | 分页大小,最大 50 | |
| page_token | No | 分页标记 | |
| parent_node_token | No | 父节点 token,不填则列出顶层节点 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It explains the core listing behavior and the null-parent case, but it omits details such as pagination behavior, whether only direct children are returned, and the return format. This leaves some ambiguity for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence (or two clauses) that is front-loaded with the core purpose and includes the key usage nuance. There is no wasted wording or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but with no output schema and no annotations, the description should explain more about the return value and any pagination behavior. It covers the basic operation but leaves gaps such as what the returned nodes include and whether pagination is automatic or manual, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% as all four parameters have descriptions. The tool description adds little beyond the schema, except for clarifying the parent_node_token behavior, which is already documented in the schema. Thus the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists child nodes under a specified parent node in the knowledge base, with a specific verb ('list') and resource ('child nodes'). It also specifies the behavior when parent_node_token is omitted, effectively distinguishing it from sibling tools like wiki_get_node or wiki_list_spaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool (to list child nodes) and gives a specific usage note about omitting parent_node_token to get top-level nodes. It does not explicitly mention alternatives or exclusions, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_list_spacesA
列出当前用户可见的所有飞书知识库
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | 分页大小,最大 50 | |
| page_token | No | 分页标记,首次请求不填 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only states the basic function and does not mention pagination behavior, that it is read-only, or what the response contains. These are important details for a tool with page_size and page_token parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that clearly states the tool's purpose without extraneous words. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with well-documented parameters, the description is adequate but leaves gaps. It does not explain pagination flow or describe the return structure (e.g., fields of the space objects). The absence of an output schema increases the need for such context, making this minimally sufficient rather than fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the two parameters (page_size and page_token), each with descriptions in the schema. The tool description adds no additional parameter-specific meaning, so it does not exceed the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb '列出' (list), a specific resource '知识库' (knowledge bases), and a scope '当前用户可见' (visible to current user). This distinguishes it from sibling tools like wiki_get_space (which fetches a single space) and wiki_list_nodes (which lists nodes within a space).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies its use case: enumerating all knowledge bases available to the current user. It does not explicitly state when not to use it or name alternatives, but the specific scope and resource make the intended usage evident without confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_move_docs_to_wikiB
将云空间中的文档移动到知识库中
| Name | Required | Description | Default |
|---|---|---|---|
| obj_type | Yes | 文档类型 | |
| space_id | Yes | 目标知识库 ID | |
| obj_token | Yes | 要移动的文档 token | |
| parent_wiki_token | No | 目标父节点 wiki token,不填则放在顶层 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'move' but does not specify whether the original document is removed, whether the operation is reversible, required permissions, or potential side effects on links or references. This lack of detail leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It efficiently communicates the core purpose without restating schema information or adding filler. This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no annotations, no output schema), the description is too minimal. It fails to explain the overall workflow, such as how to obtain the target space_id or what happens to the original document. The schema covers parameter syntax but not contextual details like prerequisites or side effects, leaving the tool description incomplete for an agent to use reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already explained in the schema. The description adds no additional meaning to the parameters, making the baseline score of 3 appropriate. The description does not help clarify the relationship between parameters or any special formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '将云空间中的文档移动到知识库中' clearly states the specific action (move documents) with a source (cloud space) and target (knowledge base). This distinguishes it from sibling tools like wiki_move_node, which likely operate within the wiki, by specifying the cross-domain move context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as wiki_move_node. It does not mention prerequisites, exclusions, or conditions under which this tool is preferred. The purpose implies a usage context, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_move_nodeC
将知识库中的节点移动到另一个位置(可跨知识库)
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | 源知识库 ID | |
| node_token | Yes | 要移动的节点 token | |
| target_space_id | No | 目标知识库 ID(跨库移动时需要) | |
| target_parent_token | No | 目标父节点 token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
没有注解信息,描述需承担全部行为披露。描述提到可跨知识库,但未说明移动是否删除原节点、是否需要权限、是否可逆、对子节点的影响等关键行为。对于移动操作,这些是重要信息,缺失导致透明度不足。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
一句话描述,简洁明了,没有冗余信息,信息密度高,且核心信息前置。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
考虑到没有注解、没有输出 schema,且是移动操作,描述显得过于简洁。缺少对返回值、错误情况、权限要求等上下文的说明。虽然 schema 参数描述完整,但整体上下文仍不充分。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
schema 中对所有 4 个参数提供了描述,覆盖率 100%,基线为 3。描述本身没有额外解释参数,但也没有必要,因为 schema 已经承担了参数含义。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述使用明确的动词“移动”和资源“节点”,并指出可跨知识库,与创建、复制、删除等兄弟工具区分开来。虽然没有明确命名替代工具,但动作清楚,目的明确。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述仅说明功能,没有提供何时使用该工具与替代工具(如 wiki_copy_node 或 wiki_move_docs_to_wiki)的指导。没有例外情况或前置条件,使用场景完全依赖用户推测。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_searchB
搜索飞书知识库中的节点
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 | |
| space_id | No | 限定搜索的知识库 ID | |
| page_size | No | 分页大小 | |
| page_token | No | 分页标记 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action 'search'. It fails to disclose any behavioral details such as return format, pagination behavior, filtering logic, or whether the operation is read-only, placing the full burden on the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words, effectively stating the tool's purpose. It is front-loaded and concise, though it is minimal to the point of omitting valuable context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description is not complete enough. It only states the basic action and does not explain what results are returned, how to use pagination, or when to choose this tool over siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all four parameters (query, space_id, page_size, page_token). The description adds no extra parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '搜索飞书知识库中的节点' clearly identifies the action (search) and the resource (nodes in the Feishu wiki), distinguishing it from sibling tools like wiki_list_nodes (list) and wiki_get_node (get) by using the verb 'search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance is provided. The verb 'search' implies usage for finding nodes by keywords, but the description does not explicitly contrast with list/get tools or mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_update_titleB
更新知识库节点的标题
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | 新标题 | |
| space_id | Yes | 知识库 ID | |
| node_token | Yes | 节点 token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it only restates the tool's basic function without revealing side effects, permission requirements, or whether existing data is overwritten. This adds no insight beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is well-structured and immediately comprehensible, though it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and lacks context about the operation's effect, return value, or any prerequisites. Since there is no output schema or annotations, the tool would benefit from explaining what happens after the update and any required permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all three parameters meaningfully described (title, space_id, node_token). The description adds no additional parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (update) and the target resource (knowledge base node's title). It is distinct from sibling tools like wiki_create_node, wiki_move_node, and wiki_delete_node, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It merely states the action, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
36 tool updates
v1.3.1- First observed
bitable_create_app - First observed
bitable_create_record - First observed
bitable_create_table - First observed
bitable_list_fields - First observed
bitable_list_tables - First observed
bitable_search_records - First observed
bitable_update_record - First observed
contact_batch_get_user_id - First observed
doc_create_blocks - First observed
doc_delete_blocks - First observed
doc_get_block - First observed
doc_get_raw_content - First observed
doc_import - First observed
doc_list_blocks - First observed
doc_search - First observed
doc_update_block - First observed
drive_add_permission - First observed
drive_delete_file - First observed
drive_upload_file - First observed
im_create_chat - First observed
im_get_chat_members - First observed
im_list_chats - First observed
im_list_messages - First observed
im_send_message - First observed
wiki_copy_node - First observed
wiki_create_node - First observed
wiki_create_node_with_markdown - First observed
wiki_delete_node - First observed
wiki_get_node - First observed
wiki_get_space - First observed
wiki_list_nodes - First observed
wiki_list_spaces - First observed
wiki_move_docs_to_wiki - First observed
wiki_move_node - First observed
wiki_search - First observed
wiki_update_title
TDQS
Scored across 36 tools
Most tools have distinct domain+resource targets, but wiki_create_node_with_markdown and doc_import overlap significantly (both import Markdown to wiki), and wiki_create_node vs wiki_create_node_with_markdown could confuse. The detailed descriptions help, but some boundary ambiguity remains.
All tools follow a consistent domain_verb_noun pattern in snake_case (e.g., bitable_create_app, wiki_list_nodes, im_send_message). Even longer names like wiki_move_docs_to_wiki retain the predictable prefix structure, with no mixed conventions.
With 36 tools, the set is heavy and exceeds the 25-tool threshold for appropriate count. The server is named wiki-mcp but includes many unrelated tools for IM, contacts, and bitable, making it feel over-scoped and broad rather than focused.
The core wiki lifecycle is well covered (list, get, create, move, copy, update title, delete), and document block operations add depth. However, there are notable gaps: no bitable delete record, no wiki node content update beyond title, and no full-document replacement, leaving some workflows incomplete.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA zero-configuration MCP server enabling AI assistants to interact with Feishu (Lark) workspace through OAuth authentication, supporting document operations, content creation, and advanced file management.12 npmMIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to search, read, create, and update Feishu/Lark documents and wiki pages. It facilitates seamless document management and wiki searches through OAuth-authenticated API access.12 npm-
- AlicenseBqualityFmaintenanceAn MCP server that exposes Feishu/Lark capabilities as function tools to MCP-compatible agents like Hermes and Claude Desktop. It provides 57 tools for messaging, document management, calendar operations, and task management through both hand-written fallback tools and bridged OpenClaw SDK functionality.532MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Feishu/Lark API integration, enabling AI agents to send messages, manage groups, create and edit documents and spreadsheets, and search knowledge bases.MIT