SiYuan MCP Server
Provides tools for managing SiYuan Note notebooks, documents, blocks, attributes, searches, file operations, exports, notifications, system info, templates, conversions, and resources.
Click on "Install 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., "@SiYuan MCP Serverlist all notebooks"
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.
🧠 SiYuan MCP Server
让 Claude、Cursor、Codex 等 AI 客户端安全地读取和操作思源笔记。
siyuan-mcp 是一个基于 Model Context Protocol 的思源笔记 MCP 服务器。它通过思源 Kernel API 提供笔记本、文档、内容块、全文搜索、原生数据库、资源文件和导出等能力,并针对 AI 自动化场景增加了结构化返回、安全注解与默认防护。
当前版本:1.1.1
✨ 核心亮点
能力 | 说明 |
📚 笔记本与文档 | 创建、浏览、搜索、重命名、移动和删除 |
🧱 内容块 | Markdown/DOM 插入、更新、移动、折叠、引用和批量操作 |
🔎 搜索 | 文档标题搜索、全文块搜索和 SQL 查询 |
🗃️ 原生数据库 | 创建 AV 数据库、字段、条目、单元格和批量更新 |
📎 文件与资源 | Multipart 上传、工作空间文件读写和二进制 Base64 返回 |
🧩 模板与转换 | Template、Sprig、Pandoc、Markdown 和资源导出 |
🛡️ 可选防护 | 删除类操作保护开关、路径白名单和响应上限 |
🤖 MCP 友好 |
|
项目目前提供约 69 个面向 AI 使用场景设计的工具。它选择性封装稳定且实用的思源接口,不追求暴露全部内核私有 API。
Related MCP server: SiYuan Note MCP Server
🧭 工作原理
flowchart LR
A["AI 客户端<br/>Claude / Cursor / Codex"] -->|MCP stdio| B["SiYuan MCP Server"]
B -->|HTTP + Token| C["SiYuan Kernel API"]
C --> D["笔记本 / 文档 / 内容块"]
C --> E["数据库 AV"]
C --> F["资源 / 模板 / 导出"]所有调试信息只写入 stderr,stdout 始终保留给 MCP JSON-RPC,避免客户端因混入普通日志而断开连接。
🚀 快速开始
🤖 让智能体自动配置
只需复制下面的提示词,并填写 MCP 客户端和思源 Token。默认连接本机 127.0.0.1:6806;使用其他地址时再修改 HOST 和 PORT。
请帮我配置最新版 siyuan-mcp。
用户配置:
- MCP 客户端:{{填写 Codex、Claude Desktop、Cursor 等}}
- 思源 API Token:{{填写 Token}}
- SIYUAN_HOST:127.0.0.1
- SIYUAN_PORT:6806
请直接执行:
1. 检查 Node.js 是否已安装且版本不低于 18。
- 如果 Node.js 未安装或版本低于 18,只告诉我需要安装或升级 Node.js,然后停止。
- 不要尝试用其他方式绕过 Node.js 要求。
2. 自动找到当前 MCP 客户端的配置文件,保留已有配置,只新增或更新名为 `siyuan_note` 的 MCP 配置:
- command: `npx`
- args: `["-y", "siyuan-mcp@latest"]`
- env:
- `SIYUAN_HOST`
- `SIYUAN_PORT`
- `SIYUAN_TOKEN`
3. 安全要求:
- 不要覆盖、删除或重排其他 MCP 配置。
- 不要在回复中回显完整 Token。
- 不要把 Token 写入项目代码、仓库文件、临时脚本或日志。
- Token 只能写入 MCP 客户端的用户级配置文件。
4. 配置完成后,尝试让当前 MCP 客户端重新加载 MCP 配置。
- 如果当前客户端支持在设置里重启/刷新 MCP 配置,请提示我去设置里执行该操作,然后停止,等我完成后再继续测试。
- 如果当前客户端必须完整重启才能加载新的 MCP,请明确告诉我“需要重启客户端”,然后停止。
- 不要为了测试连接而手写 MCP JSON-RPC 脚本、临时 Node 脚本或自定义客户端。
5. MCP 重新加载成功后,只使用当前 MCP 客户端已经加载的 `siyuan_note` MCP 能力测试连接:
- 优先直接调用 `list_notebooks` 工具。
- 如果客户端只暴露了等价的 notebooks 资源而没有暴露工具函数,可以读取该 notebooks 资源。
- 不要调用其他工具或读取其他内容。
6. 最后只告诉我:
- 配置是否成功;
- 是否需要在设置里重启/刷新 MCP,或是否需要完整重启客户端;
- 当前已开启的笔记本名称。
除非 Node.js 不满足要求、找不到配置文件、需要你去设置里重启/刷新 MCP、或必须完整重启客户端,否则不要中途询问,直接完成配置。1. 准备环境
Node.js
>= 18已启动的思源笔记
思源 API Token
API Token 获取位置:
思源笔记 → 设置 → 关于 → API Token
2. 使用 npx 启动
npx -y siyuan-mcp@latestMCP 服务器通常由 AI 客户端自动启动,不需要单独打开终端常驻运行。
3. 配置 MCP 客户端
{
"mcpServers": {
"siyuan_note": {
"command": "npx",
"args": ["-y", "siyuan-mcp@latest"],
"env": {
"SIYUAN_HOST": "127.0.0.1",
"SIYUAN_PORT": "6806",
"SIYUAN_TOKEN": "your-api-token-here"
}
}
}
}该配置形式可用于 Cursor、Claude Desktop 以及其他支持 stdio MCP 的客户端。不同客户端的配置文件位置可能不同,但 command、args 和 env 内容基本一致。
为兼容旧版配置,推荐继续使用 SIYUAN_HOST、SIYUAN_PORT 和 SIYUAN_TOKEN。连接远程实例、反向代理或带路径前缀的实例时,可以使用 SIYUAN_URL 覆盖 HOST/PORT:
{
"env": {
"SIYUAN_URL": "https://siyuan.example.com",
"SIYUAN_TOKEN": "your-api-token-here"
}
}4. 验证连接
连接后可以让 AI 尝试:
检查思源连接状态,并列出当前打开的笔记本。或者直接调用:
check_siyuan_statuslist_notebooksget_version
🧰 功能地图
📚 笔记本
工具 | 用途 |
| 列出所有笔记本及打开状态 |
| 创建笔记本 |
| 打开或关闭笔记本 |
| 重命名笔记本 |
| 读取或保存配置 |
| 删除笔记本,属于危险操作 |
📄 文档与文档树
工具 | 用途 |
| 使用 Markdown 创建文档 |
| 按标题搜索文档 |
| 浏览指定路径下的文档 |
| 重命名文档 |
| 移动文档 |
| 获取人类可读路径 |
| 获取底层存储路径 |
| 删除文档 |
🧱 内容块
支持 Markdown 和思源 DOM 两种输入格式。
工具 | 用途 |
| 在指定锚点插入块 |
| 在父块前后插入子块 |
| 更新块内容 |
| 调整块位置 |
| 批量插入 |
| 批量更新 |
| 获取块元数据 |
| 获取 Kramdown 源码 |
| 获取块面包屑 |
| 折叠或展开 |
| 转移块引用 |
| 操作块属性 |
insert_block 需要至少提供一个位置参数:
nextIDpreviousIDparentID
🔎 搜索与查询
全文搜索
search_blocks 使用思源原生全文搜索,支持:
普通关键词
查询语法
正则表达式
文档路径过滤
块类型过滤
分页、排序和按文档分组
SQL 查询
sql_query 会将 SQL 原样交给思源 Kernel API,不限制语句类型,也不会自动补充 LIMIT。调用写入、删除或结构变更语句前,请自行确认影响;查询大量数据时应主动添加 LIMIT。
示例:
SELECT id, content, hpath, updated
FROM blocks
WHERE type = 'd'
ORDER BY updated DESC
LIMIT 20优先使用 search_docs 和 search_blocks。只有在需要精确字段、聚合或复杂过滤时才建议使用 SQL。
🗃️ 原生数据库支持
数据库工具直接操作思源 Attribute View(AV),不是 Markdown 表格。
工具 | 用途 |
| 插入 AV 块并初始化数据库存储 |
| 分页渲染数据库 |
| 获取字段定义 |
| 重命名数据库 |
| 添加字段 |
| 删除字段 |
| 添加非绑定条目 |
| 设置单元格 |
| 批量设置单元格 |
| 删除条目 |
创建数据库
{
"parentID": "20260628160104-6d71dw0",
"name": "项目清单",
"columns": [
{
"name": "状态",
"type": "select"
},
{
"name": "完成",
"type": "checkbox"
},
{
"name": "备注",
"type": "text"
}
]
}创建过程会自动完成:
生成合法 AV ID。
插入
NodeAttributeView块。调用
renderAttributeView创建数据库存储。设置数据库名称。
创建附加字段。
如果初始化失败,服务器会尝试回滚已插入的数据库块。
添加条目
{
"avID": "20260628163701-rc230o0",
"blockID": "20260628163701-7rmjwsl",
"titles": [
"整理需求",
"实现功能",
"发布版本"
]
}更新单元格
set_database_cell 的 value 使用思源 AV Value 结构。
文本字段示例:
{
"avID": "数据库 ID",
"keyID": "字段 ID",
"itemID": "条目 ID",
"value": {
"text": {
"content": "已经完成"
}
}
}复选框字段示例:
{
"value": {
"checkbox": {
"checked": true
}
}
}常用字段类型包括:
text、number、date、select、mSelect、url、email、phone、mAsset、checkbox、created 和 updated。
📎 文件与资源
资源上传
upload_asset 使用真正的 HTTP Multipart 表单,不会把文件路径误当作 JSON 发送。
{
"assetsDirPath": "/assets/",
"files": [
"C:\\Users\\me\\Pictures\\diagram.png"
]
}本地文件必须位于 SIYUAN_MCP_UPLOAD_ROOTS 允许的目录中。
工作空间文件
工具 | 用途 |
| 获取文本、JSON 或二进制文件 |
| Multipart 写入文件或创建目录 |
| 浏览目录 |
| 重命名文件 |
| 删除文件 |
返回策略:
JSON:直接返回结构化对象
文本:返回 UTF-8 字符串
二进制:返回 Base64、MIME 类型和字节数
put_file 支持三种输入方式:
filePath:本地文件路径file:UTF-8 文本contentBase64:Base64 数据
🛡️ 安全设计
可选的危险操作保护
删除类操作默认可用。若希望 MCP 只允许创建、读取和普通更新,可显式开启保护:
SIYUAN_MCP_PROTECT_DESTRUCTIVE=true只有该参数显式为 true 或 1 时,以下操作才会被拒绝:
删除笔记本、文档和内容块
删除数据库字段或条目
覆盖、移动或删除工作空间文件
未配置、设为 false 或设为 0 时,删除类操作正常可用。
升级提醒:旧变量
SIYUAN_MCP_ALLOW_DESTRUCTIVE已不再参与判断。若希望继续保持“拒绝删除”的行为,请改为SIYUAN_MCP_PROTECT_DESTRUCTIVE=true。
SQL 直接执行
sql_query 默认允许思源 Kernel API 支持的 SQL,不再区分“安全 SQL”和“危险 SQL”,也不自动添加行数限制。建议在查询语句中自行添加 LIMIT,并谨慎执行写入或结构变更语句。
旧变量 SIYUAN_MCP_ALLOW_UNSAFE_SQL 和 SIYUAN_MCP_SQL_MAX_ROWS 已不再使用。
工作空间写入白名单
默认允许:
/data/assets,/temp自定义:
SIYUAN_MCP_WRITE_PATH_PREFIXES=/data/assets,/data/templates,/temp本地上传目录白名单
默认只允许 MCP 进程当前目录。
Windows:
SIYUAN_MCP_UPLOAD_ROOTS=C:\Users\me\Pictures;C:\Users\me\DocumentsLinux/macOS:
SIYUAN_MCP_UPLOAD_ROOTS=/home/me/Pictures:/home/me/Documents连接地址
SIYUAN_HOST 和 SIYUAN_URL 均可指向本机或远程实例,HTTP 与 HTTPS 都可以使用,MCP 不额外限制协议。通过公网或不可信网络连接时,仍建议由部署者使用 HTTPS 保护 API Token 和传输内容。
⚙️ 环境变量
变量 | 默认值 | 说明 |
| — | 完整思源 URL,优先于 HOST/PORT |
|
| 思源主机 |
|
| 思源端口 |
| 空 | 思源 API Token |
|
| 显式设为 |
|
| 工作空间写入白名单 |
| 当前目录 | 本地上传目录白名单 |
|
| 单次 API 请求超时(2 分钟) |
|
| 最大响应字节数 |
|
| MCP 文本预览长度 |
|
| 向 stderr 输出端点、状态和耗时 |
调试模式不会输出请求 Token 或笔记正文。
🐳 Docker
本项目采用 MCP stdio 传输。容器必须由 MCP 客户端以前台交互模式启动,因此需要 -i。
使用已发布镜像
Docker Hub 镜像为 zhizhiqq/siyuan-mcp。使用 latest 可获得最新版,也可以固定版本标签以确保环境可复现:
docker pull zhizhiqq/siyuan-mcp:latest
# 当前版本:
docker pull zhizhiqq/siyuan-mcp:v1.1.1MCP 客户端配置
下面的配置用于连接运行在宿主机上的思源:
{
"mcpServers": {
"siyuan_note": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--add-host",
"host.docker.internal:host-gateway",
"-e",
"SIYUAN_HOST=host.docker.internal",
"-e",
"SIYUAN_PORT=6806",
"-e",
"SIYUAN_TOKEN",
"zhizhiqq/siyuan-mcp:latest"
],
"env": {
"SIYUAN_TOKEN": "your-api-token-here"
}
}
}
}注意:
容器内的
127.0.0.1指向容器自身。访问宿主机思源应使用
host.docker.internal。--add-host=host.docker.internal:host-gateway让 Linux 也能使用相同的宿主机地址;Docker Desktop 已原生支持该地址。必须保留
-i,MCP 通过容器的 stdin/stdout 通信。--rm会在进程停止后自动删除容器。stdio MCP 不应使用普通后台 Compose 服务代替客户端进程。
docker compose run --rm siyuan-mcp-server可用于手工连通性检查。
在 Docker 中上传本地文件
容器不能直接读取任意宿主机文件。需要将允许上传的宿主机目录以只读方式挂载到 /uploads,并设置 SIYUAN_MCP_UPLOAD_ROOTS=/uploads。在上方配置的镜像名称之前加入:
[
"--mount",
"type=bind,src=/宿主机/文件绝对路径,dst=/uploads,readonly",
"-e",
"SIYUAN_MCP_UPLOAD_ROOTS=/uploads"
]请将 /宿主机/文件绝对路径 替换为实际绝对路径。只有该挂载目录内的文件能够上传。
本地构建镜像
如需从当前仓库自行构建,而不是使用 Docker Hub 镜像:
docker build -t siyuan-mcp-server .然后将 MCP 配置中的 zhizhiqq/siyuan-mcp:latest 替换为 siyuan-mcp-server。
📦 本地安装
git clone https://github.com/xgq18237/siyuan_mcp_server.git
cd siyuan_mcp_server
npm ci
npm run build
node dist/index.js本地源码配置示例:
{
"mcpServers": {
"siyuan_note": {
"command": "node",
"args": [
"C:\\path\\to\\siyuan_mcp_server\\dist\\index.js"
],
"env": {
"SIYUAN_HOST": "127.0.0.1",
"SIYUAN_PORT": "6806",
"SIYUAN_TOKEN": "your-api-token-here"
}
}
}
}🧪 开发与检查
npm ci
npm run check
npm test命令 | 说明 |
| 使用 |
| TypeScript 严格类型检查 |
| 构建到 |
| 执行类型检查并重新构建 |
| 清理后重新构建 |
| 构建测试 Docker 镜像 |
涉及真实思源数据的集成验证应在隔离笔记本中进行,并在完成后清理临时文档、数据库、资源与导出文件。
项目结构
siyuan_mcp_server/
├─ src/
│ ├─ index.ts # MCP 服务与资源
│ ├─ siyuan-client.ts # JSON / Multipart / 二进制传输层
│ └─ tools.ts # 工具定义、安全策略与调用实现
├─ dist/ # 编译后的发布文件
├─ Dockerfile
├─ docker-compose.yml
├─ env.example
└─ package.json🔧 常见问题
MCP 客户端无法连接
依次确认:
思源是否正在运行。
SIYUAN_HOST、SIYUAN_PORT是否正确;使用远程反向代理时再检查SIYUAN_URL。API Token 是否有效。
Node.js 是否满足版本要求。
是否有普通日志写入 stdout。
可以先在浏览器打开:
http://127.0.0.1:6806返回 401、403 或鉴权失败
重新复制思源“设置 → 关于”中的 API Token,并重启 MCP 进程。不要在 Token 前后加入引号以外的空格。
删除工具提示危险操作保护已开启
当前 MCP 进程显式开启了保护。需要恢复删除能力时,移除该变量或设置:
SIYUAN_MCP_PROTECT_DESTRUCTIVE=false上传文件提示不在允许目录
将文件移动到允许目录,或配置:
SIYUAN_MCP_UPLOAD_ROOTS=允许的本地目录Docker 中无法访问思源
不要使用 127.0.0.1 访问宿主机,改用:
SIYUAN_HOST=host.docker.internal数据库块存在但无法正常显示
数据库不仅需要 AV 块,还需要对应的 AV 存储。请使用 create_database,它会自动调用 renderAttributeView 完成初始化。
输出过大被截断
优先使用分页、搜索条件或 SQL LIMIT。必要时调整:
SIYUAN_MCP_MAX_RESPONSE_BYTES
SIYUAN_MCP_MAX_TEXT_CHARS🤝 贡献
欢迎提交 Issue 和 Pull Request。新增工具时建议同时考虑:
是否适合 AI 自动调用
是否属于危险或破坏性操作
是否需要分页和输出上限
是否应返回结构化数据
是否涉及 Multipart 或二进制响应
是否会把敏感内容写入日志
📄 License
Available Tools
69 toolsadd_database_columnC
添加数据库字段
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| icon | No | 字段图标 | |
| name | Yes | 字段名称 | |
| type | Yes | 字段类型 | |
| previousKeyID | No | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readonly (write operation) and non-destructive, but description adds no behavioral details (e.g., whether it modifies the database schema, requires permissions, or has side effects). Without annotations, this would be worse, but annotation already conveys basic 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 extremely short (one phrase). While it is concise, it sacrifices informativeness. It could include a brief summary without being verbose.
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 5 parameters and no output schema, the description fails to explain return values, side effects, or the broader context of database column addition. Incomplete for effective agent 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?
Schema covers 100% of parameters with descriptions, so the description adds no additional meaning. Baseline score of 3 is appropriate given high schema coverage.
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?
Description is a clear verb+resource phrase '添加数据库字段' (add database column), accurately indicating the tool's action. However, it does not differentiate from sibling tools like remove_database_column, but the purpose is 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 on when to use this tool versus alternatives, no prerequisites or when-not-to-use advice provided. The description is too minimal to help an agent decide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_blockA
在父块末尾插入子块
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | 块内容 | |
| dataType | No | 输入格式 | markdown |
| parentID | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false and readOnlyHint=false, but description adds minimal behavioral context—just states insertion. It does not describe side effects, return values, or idempotency beyond what annotations hint.
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. It is front-loaded and efficient.
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 insertion tool with no output schema, the description is fairly complete but missing return value information. Given sibling volume, a bit more context (e.g., 'returns block ID') would improve completeness.
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% due to per-parameter descriptions in the input schema. The tool description does not add any extra meaning to parameters, so 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 specifies the verb (insert/append) and resource (child block into parent block), and distinguishes from siblings like prepend_block or insert_block by indicating position (末尾).
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 guidance on when to use this tool versus alternatives (e.g., prepend_block, insert_block). The description implies insertion at end but does not state prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_database_rowsC
以标题批量添加非绑定数据库条目
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| titles | Yes | 条目标题 | |
| viewID | No | 思源块、文档、笔记本或数据库 ID | |
| blockID | No | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, consistent with a mutation operation. However, the description does not disclose side effects, batch limits, or the meaning of 'non-bound' entries, leaving behavioral gaps beyond the annotations.
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, which is concise but lacks structure. It front-loads the core function but omits details that could improve usability.
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, the description should explain return values or success indicators. It does not. Additionally, it lacks context on error handling, constraints, and the behavior of 'non-bound' entries, making it incomplete 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?
Schema coverage is 100% with descriptions for all parameters. The description adds no additional parameter meaning beyond what the schema provides, meeting the baseline for high coverage.
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 indicates the tool adds non-bound database entries in bulk with titles. The verb 'append' and phrase 'batch add' match the tool name. Among sibling tools, it is distinct from database creation, cell setting, and row removal operations.
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 specify when to use this tool over alternatives like batch_set_database_cells or set_database_cell, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_insert_blocksC
批量插入块
| Name | Required | Description | Default |
|---|---|---|---|
| blocks | Yes | 待插入块 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what annotations provide. Annotations show readOnlyHint=false and destructiveHint=false, but the description fails to explain transaction behavior, partial success, or error handling, which are important for a batch 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 extremely concise (4 characters), which makes it efficient but sacrifices necessary details. While brevity is good, it omits essential context for a tool with complex nested 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 complexity of the input (array of objects with relationships) and no output schema, the description is insufficient. It does not explain insertion order, required relationships, or whether the operation is atomic. The schema helps but the description fails to provide operational 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 has 100% description coverage, with each property (data, nextID, previousID, parentID, dataType) already documented. The description adds no additional meaning beyond the schema, 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 indicates the tool's action (insert) and resource (blocks), distinguishing it from sibling tools like insert_block or batch_update_blocks. However, it could be more explicit about the batch nature and the context of 'blocks' in SiYuan.
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 guidelines are provided. The description does not specify when to use batch_insert_blocks versus insert_block or batch_update_blocks, nor does it mention prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_set_database_cellsB
批量设置数据库单元格;values 使用思源批量 AV Value 结构
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| values | Yes | 单元格更新对象 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do not provide much (all false), and the description only says 'batch set database cells'. It does not disclose any side effects, auth needs, or behavior beyond the obvious mutation. No mention of what happens on failure or partial updates.
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 concise with two clauses, front-loaded with the primary action. No unnecessary words. Every character earns its place.
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 simplicity (2 parameters, fully described in schema) and no output schema, the description is minimally adequate. It provides the batch intent and a format hint, but lacks context on constraints (e.g., all cells same database), error handling, or atomicity.
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 descriptions for both parameters. The description adds the important format hint 'values 使用思源批量 AV Value 结构', which clarifies the structure of the values array, adding value beyond the schema's 'cell update object'.
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 '批量设置数据库单元格' (batch set database cells), indicating a batch operation. It distinguishes from the sibling tool 'set_database_cell' (singular). However, the mention of '思源批量 AV Value 结构' may be unclear to non-Chinese users.
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 guidance on when to use this tool versus alternatives. The sibling 'set_database_cell' implies this is for batch updates, but no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_blocksC
批量更新块
| Name | Required | Description | Default |
|---|---|---|---|
| blocks | Yes | 待更新块 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) but the description adds no behavioral context, such as error handling, atomicity, or whether partial updates are supported.
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 (4 characters) but is under-specified. It fails to provide sufficient information for an agent to understand the tool's behavior.
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 batch update operation with nested parameters and no output schema, the description is completely inadequate. It misses crucial details like return values, atomicity, and error conditions.
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 each parameter already described. The description does not add extra parameter semantics, so 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 '批量更新块' is a direct translation of the tool name, stating 'batch update blocks'. It is tautological and does not differentiate from sibling tools like 'update_block' or 'batch_insert_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 no guidance on when to use this tool versus alternatives such as 'update_block' for single updates or 'batch_insert_blocks' for insertions. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_siyuan_statusARead-onlyIdempotent
检查连接、鉴权、笔记本和 SQL 可用性
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only and idempotent. The description adds specific context by listing the four aspects being checked (connection, auth, notebook, SQL), providing behavioral details beyond the annotations. No contradictions.
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. Every word is necessary, and it 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?
While the description covers the checks performed, it lacks information about the output format or return value. For a health-check tool, knowing whether it returns a boolean, status codes, or details would be valuable. Annotations compensate for safety but not completeness.
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?
With zero parameters, the schema provides no meaning to add. The description correctly doesn't mention parameters. According to guidelines, baseline is 4 for 0 parameters.
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 checks connection, authentication, notebook, and SQL availability. This is a specific verb-resource combination that distinguishes this health-check tool from sibling tools like get_version or sql_query which focus on individual aspects.
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 guidance on when to use this tool versus alternatives. The description does not mention prerequisites, typical use cases, or when not to use it. The name implies it's for health checks but lacks comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_notebookB
关闭指定笔记本
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, indicating no special behavioral hints. The description does not disclose any side effects, such as whether closing saves state or if the notebook must be open. More context is needed.
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 unnecessary words. It is appropriately sized for a simple 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?
For a simple tool with one parameter and no output schema, the description is mostly complete. It lacks some behavioral nuance but is sufficient given the context of sibling tools.
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 a clear description for the 'notebook' parameter. The description adds no additional meaning beyond what the schema already provides.
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 (close) and the resource (specified notebook). It effectively distinguishes from sibling tools like open_notebook, rename_notebook, etc.
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 on when to use this tool versus alternatives, nor any prerequisites or conditions. The usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_databaseB
创建并初始化原生思源数据库,可同时创建字段
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 数据库名称 | |
| columns | No | 附加字段 | |
| parentID | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's mention of 'create' is consistent but adds no new behavioral context. It does not disclose potential side effects, such as whether the database must not already exist, or what happens to existing data.
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, front-loaded with the main action. It is concise, though it could benefit from more structure (e.g., listing 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?
There is no output schema, so the description should explain what the tool returns (e.g., the database ID). It also fails to clarify the exact role of parentID beyond what the schema provides. For a creation tool, more details about success conditions and return values are needed.
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 that fields can be created simultaneously, which relates to the 'columns' parameter, but does not provide additional meaning beyond the schema's 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 tool creates and initializes a native SiYuan database, with the ability to create fields simultaneously. It uses a specific verb ('create') and resource ('database'), distinguishing it from sibling tools like get_database or rename_database.
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 on when to use this tool versus alternatives such as create_notebook or append_database_rows. There is no mention of prerequisites, conditions, or 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.
create_docB
在指定笔记本中新建 Markdown 文档
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文档路径,例如 /daily/2026-06-28 | |
| markdown | Yes | Markdown 内容 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (all false). Description does not disclose additional traits such as whether overwriting occurs, intermediate directory creation, or error handling.
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?
Single concise sentence with no extraneous words. Purpose is front-loaded and easily understood.
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?
Despite having three required parameters and no output schema, the description lacks details on return values, error scenarios, or behavior when notebook does not exist. Incomplete for a creation 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 provides full coverage for all three parameters. Description adds no extra meaning beyond what is already in the schema, so baseline score 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?
Description clearly states the action (create), resource (Markdown document), and location (in specified notebook). It distinguishes from sibling tools like create_database or insert_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?
No guidance on when to use this tool vs alternatives such as insert_block or other document tools. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_notebookB
创建新笔记本
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 笔记本名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no hints about behavior. The description does not disclose whether notebook creation requires specific permissions, what happens if a notebook with the same name exists, or any side effects. This lack of detail leaves the agent guessing.
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 concise at one sentence, which is efficient for a simple operation. However, it could be expanded slightly without becoming verbose to include critical usage 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?
For a simple create tool with one parameter and no output schema, the description is minimally adequate. However, it lacks information about creation location, duplicate handling, and return values, which could be important for an agent to use it 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?
Schema coverage is 100% with a single required 'name' parameter described as '笔记本名称'. The tool description does not add any additional meaning or context to the parameter beyond what the schema already provides. 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 '创建新笔记本' clearly communicates the action (create) and the resource (notebook). It is distinct from sibling tools like 'list_notebooks' and 'rename_notebook', so the agent can easily differentiate.
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 compared to alternatives, such as when creating a notebook should be preferred over other notebook operations. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_blockCDestructive
删除块
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint=true already informs the agent that the tool is destructive. The description adds no further behavioral details, such as permanence, permissions required, or impact on related data. Thus, it offers no additional 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 extremely concise at two characters, but this brevity sacrifices meaningful content. Conciseness should be balanced with informativeness; here, it is under-specified.
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 simple nature of the tool (one required parameter, destructive annotation), the description is minimally adequate but does not convey that the ID can refer to blocks, documents, notebooks, or databases, which is important context provided only in the parameter description. The tool-level description fails to summarize this.
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 for the single parameter 'id', including a pattern and description. The tool description does not add any parameter semantics beyond what the schema already offers. 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 '删除块' is a direct translation of the name, essentially a tautology that adds no new information beyond what the name 'delete_block' already conveys. It does not specify what a block is or clarify the scope of deletion.
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 on when to use this tool versus alternatives like remove_doc, remove_notebook, or the many other block manipulation tools. The agent receives no context about which delete operation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_md_contentCRead-onlyIdempotent
导出文档 Markdown
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds no extra behavioral context, such as what output format is returned or how different ID types are handled.
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 concise at 4 Chinese characters, capturing the core purpose without waste. It could be slightly more informative without losing 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?
For a simple tool with one parameter and no output schema, the description is minimally adequate. However, it omits details about the output format (e.g., returns a string or file) and how different ID types affect the export.
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% for the single parameter 'id', which already explains its purpose. The description does not add further semantic value beyond what the schema provides.
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 '导出文档 Markdown' clearly states the action (export), resource (document), and format (Markdown). It is specific enough, though it does not differentiate from sibling export tools like 'export_resources'.
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 on when to use this tool versus alternatives, nor any exclusion criteria. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_resourcesBRead-onlyIdempotent
导出文件与目录
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 导出文件名 | |
| paths | Yes | 工作空间路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description does not add any behavioral traits beyond the literal meaning of 'export', so it is adequate but not enhanced.
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 concise with no unnecessary words. However, it could be slightly more informative (e.g., specifying that it exports from workspace paths).
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 simplicity, annotations covering safety, and no output schema, the description is reasonably complete. It tells what the tool does, though it could mention the source context (workspace) more explicitly.
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%, meaning the parameters are fully described in the schema. The description adds minimal extra meaning (e.g., '文件和目录' clarifies scope), so 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 states it exports files and directories (导出文件与目录). The name and description are self-explanatory, and it is distinguishable from siblings like export_md_content which exports markdown content. However, the description is in Chinese, which may not be optimal for all agents.
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 on when to use this tool versus alternatives (e.g., get_file or read_dir for reading), nor any context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flush_transactionB
等待思源事务队列落盘
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and provide no safety profile. The description states the tool waits for a flush, but does not clarify its blocking behavior, duration, side effects (e.g., disk writes), or whether it is safe to call repeatedly. With no annotation support, the description should provide more 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 short sentence, front-loading the key action. While concise, the Chinese language may reduce clarity for non-Chinese agents, slightly lowering the score from 5 to 4.
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 output schema and sparse annotations, the description should explain what happens after the flush (e.g., return value, confirmation). It does not mention return behavior, error states, or typical use cases. The lack of context makes it incomplete for an agent.
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?
There are zero parameters, and schema coverage is 100% (trivially). Per scoring rules, baseline is 4. The description does not add parameter-level information, but that is unnecessary here. No deduction 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 '等待思源事务队列落盘' (Wait for SiYuan transaction queue to flush to disk) provides a specific verb (wait) and resource (transaction queue flush), clearly distinguishing this tool from siblings which focus on notebook, document, or block operations. No ambiguity.
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 gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or recommended contexts. It is implied that this should be used after write operations, but this is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fold_blockD
折叠块
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fails to disclose any behavioral aspects (e.g., whether folding is a mutation, reversible, or has side effects). With all annotations false, the burden is on the description, which provides no information beyond the 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 overly terse (two characters) and fails to convey any useful information. This is under-specification, not conciseness. No structure or front-loading of key 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?
The description is completely inadequate for a tool with no output schema and a simple but crucial operation. It does not explain what folding does, its effects on the block, or anything beyond the name.
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?
Although the input schema has 100% coverage with a good description for the 'id' parameter, the tool description adds zero additional meaning. The description is merely the name, providing no context for how the parameter is used in the folding operation.
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 is a tautology, restating the tool's name in Chinese ('折叠块' = 'fold block') without any additional clarification of what folding a block entails or how it differs from sibling 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?
No guidance is provided on when to use this tool versus alternatives like 'unfold_block' or other block manipulation tools. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_block_attrsCRead-onlyIdempotent
获取块属性
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds no behavioral context (e.g., what format the returned attributes are in, whether it works for all block types, or error conditions). Fails to add value beyond annotations.
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?
Extremely concise (one short phrase), but at the cost of informativeness. It is not well-structured; there is no front-loading of key details. While no words are wasted, the description is insufficiently helpful.
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 lack of output schema, the description should hint at the return value or structure. It does not. With many sibling tools, the description fails to contextualize its purpose. Minimal completeness.
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%; the parameter 'id' is fully described in the schema with pattern and description. The tool description does not add any additional meaning about the parameter, so it meets 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?
Description is literally 'Get block attributes' which restates the tool name. It provides no additional specificity about what attributes are retrieved or how this differs from sibling tools like get_block_info. Barely above tautology.
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 on when to use this tool vs alternatives such as get_block_info, get_child_blocks, or set_block_attrs. No context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_block_breadcrumbARead-onlyIdempotent
获取块的面包屑路径
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID | |
| excludeTypes | No | 排除的块类型 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds that it retrieves a breadcrumb path but does not elaborate on specifics such as whether it returns ancestor IDs, names, or structure. No contradictions with annotations.
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 in Chinese, containing only essential information. It is front-loaded and has no fluff, earning 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 read-only retrieval tool with good schema annotations, the description is somewhat adequate. However, it does not specify the format of the returned breadcrumb path (e.g., array of block IDs or titles), which an agent needs to interpret the output. Since no output schema exists, this is a 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?
Schema coverage is 100% with both parameters described. The description does not add extra meaning beyond the schema. The 'id' parameter is well-defined by the regex and description, and 'excludeTypes' is clear from schema. 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 ('获取'/'get') and the resource ('面包屑路径'/'breadcrumb path') and the object ('块'/'block'). Among sibling tools like 'get_block_info' and 'get_child_blocks', this uniquely identifies retrieving the hierarchical breadcrumb path.
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 does not provide any guidance on when to use this tool versus alternatives like 'get_hpath_by_id' or 'get_path_by_id'. The context of breadcrumb path is implied but no explicit when/when-not or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_block_infoBRead-onlyIdempotent
获取块的元数据
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, informing the agent this is a safe, read-only operation. The description adds no new behavioral specifics beyond the name. Since annotations carry the transparency burden, a score of 3 is appropriate.
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 with no extraneous information. It is concise and follows a standard structure. While it could benefit from more detail, it avoids verbosity.
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 one parameter, no output schema, and moderate complexity. The description fails to explain what the returned metadata includes (e.g., content, properties, children). This omission leaves the agent uncertain about the tool's result, making it 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 coverage of the single parameter is 100%, with the description matching the schema's purpose. The description does not add additional meaning or usage hints beyond what the schema already provides. 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 '获取块的元数据' (get block metadata), specifying verb and resource. However, it does not differentiate from sibling tools like get_block_attrs, get_block_breadcrumb, or get_block_kramdown, which may also relate to block metadata. The lack of distinction slightly reduces clarity.
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 on when to use this tool versus alternatives. There is no mention of context, prerequisites, or which sibling tools to consider instead. This omission leaves the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_block_kramdownBRead-onlyIdempotent
获取块 Kramdown 源码
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, idempotent read behavior. The description adds that the tool returns Kramdown source code, but does not elaborate on format or any other behavioral details. Minimal 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 concise at 3 Chinese characters, with no unnecessary words. However, it may be overly brief given that a single sentence could provide more value without sacrificing 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 no output schema, the description should clarify the output format. It states 'Kramdown source code' but leaves ambiguity about the nature of the output (e.g., raw text, structure). The tool's input accepts various ID types, but the name implies only blocks. Overall, barely adequate.
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%, and the parameter 'id' already has a description in the schema. The tool description adds no further meaning about the parameter beyond what the schema provides.
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 '获取块 Kramdown 源码' clearly states the tool retrieves Kramdown source code for a block. It uses a specific verb and resource, and distinguishes from sibling tools like get_block_info or get_child_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 no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when-not to use, or suggest alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_boot_progressARead-onlyIdempotent
获取思源启动进度
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds no extra behavioral context, such as what 'boot progress' entails or response format.
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?
One short sentence, no superfluous words. Perfectly concise.
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 no parameters and no output schema, description adequately states purpose. However, it could hint at return value shape for completeness.
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?
No parameters exist, and schema coverage is 100%. Description does not need to add parameter meaning.
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?
Description clearly states verb '获取' and resource '启动进度', making purpose unambiguous. No sibling tool has similar function, so it is well-differentiated.
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 context or when-to-use vs. alternatives is provided. However, the tool is simple and self-explanatory, so minimal guidance is acceptable but still a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_child_blocksBRead-onlyIdempotent
获取直接子块
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds minimal behavioral info beyond stating 'get direct child blocks'. It does not describe edge cases, response format, or behavior for invalid IDs.
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 and avoids verbosity. However, it is perhaps too brief; a bit more context (e.g., that it returns a list of block objects) could be added without harming 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 is simple with one parameter, full schema coverage, and comfortable annotations, the description is minimally adequate. It clearly states the purpose, but additional context like the return type or relationship to other block tools would enhance completeness.
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%: the id parameter has a clear description in the schema ('SiYuan block, document, notebook, or database ID'). The description adds no additional parameter details, but the schema is sufficient.
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 (get) and the resource (direct child blocks), making the purpose immediately obvious. It distinguishes from sibling tools like get_block_info which returns block metadata, not child 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?
No usage guidelines are provided. The description does not explain when to use this tool versus alternatives such as get_block_info or search_blocks, nor does it mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_timeARead-onlyIdempotent
获取思源内核当前时间
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description does not add any behavioral context beyond what annotations provide, such as rate limits or side effects. For a simple time retrieval, this is adequate but not enriched.
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 communicates the tool's purpose. There is no wasted text, and it is appropriately 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?
Given the tool's simplicity (no parameters, no output schema, read-only), the description is largely complete. It could optionally mention the return value format (e.g., ISO string), but the current description is sufficient for an agent to understand the tool's function.
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 tool has zero parameters and schema description coverage is 100%. According to guidelines, baseline is 4 with 0 params. The description does not add parameter information, but no additional meaning 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 translates to 'Get the current time of the Siyuan kernel', matching the tool name exactly. It uses a specific verb and resource, and distinguishes itself from sibling tools like list_notebooks or get_version which have 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, nor does it mention any prerequisites or conditions. It simply states what the tool does without any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_databaseCRead-onlyIdempotent
分页渲染数据库
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| page | No | 页码 | |
| query | No | 数据库内搜索词 | |
| viewID | No | 思源块、文档、笔记本或数据库 ID | |
| blockID | No | 思源块、文档、笔记本或数据库 ID | |
| pageSize | No | 每页数量 | |
| createIfNotExist | No | 数据库文件缺失时是否创建 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds no further behavioral context (e.g., what happens if the database doesn't exist, or how pagination works). It does not contradict annotations.
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, which is under-specified. It sacrifices substance for brevity and does not effectively earn its place with meaningful 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?
Given the tool has 7 parameters and no output schema, the description is insufficient. It does not explain the return value, how parameters interact, or what 'render' means in practice.
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 7 parameters have descriptions in the schema (100% coverage), so the description does not need to add extensive param info. However, it adds no extra meaning beyond 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 '分页渲染数据库' indicates pagination rendering of a database, but it does not clearly specify what exactly the tool returns (e.g., rows, views) or how it differs from related tools like get_database_keys. The purpose is somewhat clear but lacks specificity.
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 vs alternatives such as get_database_keys or append_database_rows. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_database_keysBRead-onlyIdempotent
获取数据库字段定义
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds no additional behavioral traits, such as what happens if the ID does not exist or if the database is empty. It does not contradict the annotations.
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 unnecessary words. It is front-loaded and effectively communicates the tool's purpose in minimal space.
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 one parameter with full schema description and read-only annotations, the description is moderately complete. However, it lacks information about the return format or structure, which would be helpful since there is no output schema. It is adequate but leaves some gaps.
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 the parameter 'avID' described in the schema as '思源块、文档、笔记本或数据库 ID' (Siyuan block, document, notebook, or database ID). The description does not add any new meaning beyond the schema, so it meets 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 '获取数据库字段定义' translates to 'get database field definitions', which is a specific verb and resource. It clearly states the tool retrieves field definitions for a database. However, it does not distinguish from sibling tools like 'get_database' which might retrieve the entire database object, leading to potential ambiguity.
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 alternative tools such as 'get_database', 'create_database', or other database-related operations. The description does not provide context about prerequisites or when it is appropriate to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fileARead-onlyIdempotent
读取工作空间文件;文本/JSON直接返回,二进制以 Base64 返回
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 以工作空间为根的路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint; the description adds valuable detail on return format (Base64 for binary, direct for text/JSON), enhancing transparency beyond structured fields.
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 clauses front-loading key behavior; every word earns its place with no 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?
Given a single parameter, no output schema, and strong annotations, the description fully covers return types and behavior, leaving no gaps.
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 description 'path rooted at workspace'; the tool description does not add new meaning beyond the schema, so baseline score 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 it reads a workspace file and specifies return behavior for text/JSON vs binary, distinguishing it from sibling tools like put_file (write) or remove_file.
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 the tool is for reading file contents, but lacks explicit guidance on when to use it versus alternatives like read_dir (for directory listing) or put_file (for writing).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hpath_by_idARead-onlyIdempotent
根据 ID 获取人类可读路径
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds that the result is a 'human-readable path', clarifying the output format. No hidden behaviors are omitted.
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 concise: one short sentence that immediately conveys the tool's purpose. No extra words or structure.
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 read tool with one parameter and no output schema, the description is sufficient. It explains the input (ID) and output (human-readable path). However, it doesn't mention possible errors or edge cases.
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 description does not add any meaning beyond the input schema. The schema already describes the 'id' parameter with pattern and description. With 100% schema coverage, the description adds no additional parameter 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 ('get') and the resource ('human-readable path') given an ID. It is specific and distinct from sibling tools like get_hpath_by_path, but does not explicitly differentiate itself.
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 get_path_by_id or get_hpath_by_path. No context for when to apply or avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hpath_by_pathARead-onlyIdempotent
根据存储路径获取人类可读路径
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 存储路径 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no behavioral context beyond this, but does not contradict annotations.
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, direct sentence conveying the core purpose without any superfluous words. Efficiently 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?
Given no output schema and simple parameters, the description is nearly complete. It could briefly mention the return type (human-readable path) but is sufficient for a read-only lookup 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 meaning beyond the schema's existing parameter 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 verb 'get' and the resource 'human-readable path' based on 'storage path', distinguishing it from siblings like get_hpath_by_id or get_path_by_id that use different identifiers.
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 on when to use this tool versus alternatives such as get_hpath_by_id or get_ids_by_hpath. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ids_by_hpathCRead-onlyIdempotent
根据人类可读路径获取 ID
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 人类可读路径 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no extra behavioral context beyond what is in the annotations, such as error handling, performance implications, or side effects.
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 superfluous text. It is efficient but arguably too minimal, leaving out important 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 output schema, the description should hint at the format or nature of the returned IDs. It does not. For a simple 2-param tool, the description is incomplete without specifying what 'get ID' means in terms of output structure or multiplicity.
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 schema already documents both parameters. The description adds no additional meaning beyond the schema's descriptions, which are already present. 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 clearly states the action ('Get') and the resource ('ID based on human-readable path'). It is specific about the input and output mapping. However, it does not differentiate from similar sibling tools like 'get_path_by_id' or 'get_hpath_by_path'.
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 on when to use this tool versus alternatives. The description lacks any context about prerequisites, typical use cases, or when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notebook_confBRead-onlyIdempotent
获取笔记本配置
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds no extra behavioral context (e.g., error handling, response format). With existing annotations, a 3 is appropriate as it does not detract but also adds no value.
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?
Extremely concise (one phrase), front-loaded. No wasted words. However, it is so minimal that it may be under-specifying, but still earns a 4 for efficiency.
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?
No output schema provided, and description does not hint at return values or behavior. Given the tool's simplicity, some guidance on expected output would improve completeness.
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?
Input schema has 100% coverage with parameter description. The tool description does not add meaning beyond what the schema provides. Baseline 3 is warranted.
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?
Description '获取笔记本配置' (Get notebook configuration) clearly states the action (get) and resource (notebook configuration). It distinguishes well from siblings like set_notebook_conf, but could be more specific about what configuration entails.
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 on when to use this tool versus alternatives like set_notebook_conf or list_notebooks. No context about prerequisites or typical use cases provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_path_by_idBRead-onlyIdempotent
根据 ID 获取存储路径
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description does not add behavioral context beyond 'get storage path', which is consistent but not informative. No contradiction.
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 front-loads the core purpose without extraneous words. Every word contributes value.
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?
Despite being a simple tool, there is no output schema, and the description does not explain what the 'storage path' return value looks like or its format. The agent may lack sufficient context to interpret results 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?
Schema coverage is 100%, and the schema fully describes the 'id' parameter with pattern and description. The description only echoes '由 ID' without adding new meaning, meeting the baseline for high schema coverage.
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 ('获取'/'get') and resource ('存储路径'/'storage path') with the input ID. However, it does not differentiate from sibling tools like get_hpath_by_id or get_hpath_by_path, which are conceptually similar.
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 (e.g., get_hpath_by_id for hierarchical paths). It lacks any contextual or exclusionary hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionARead-onlyIdempotent
获取思源版本
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no behavioral context beyond the basic function, such as authentication or potential side effects.
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 concise with a single sentence that effectively communicates the tool's purpose. No extraneous information is present.
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 tool with no output schema, the description is minimal but sufficient to understand the basic function. However, it does not specify the return format or data type, which could aid an agent.
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 zero parameters, so schema coverage is 100%. Per guidelines, a baseline of 4 is appropriate since no parameter documentation 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 the SiYuan version. The verb 'get' and resource 'version' are specific, and it distinguishes from sibling tools like get_current_time.
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 guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_infoARead-onlyIdempotent
获取脱敏后的 MCP 连接与安全配置
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds that the output is 'desensitized', which is a behavioral trait beyond annotations. However, it does not disclose the format or scope of the returned configuration.
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, clear sentence. No wasted words. Front-loaded with the 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?
Given no output schema, the description could be more helpful by listing typical fields returned. However, the tool is simple and annotations cover safety. The description is minimally adequate but lacks detail on what the configuration contains.
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?
There are zero parameters, so baseline is 4. The description does not need to add parameter details, and schema coverage is 100% (empty schema). No additional semantic value is required.
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 action and resource: 'Get desensitized MCP connection and security configuration'. It clearly distinguishes from sibling tools, which focus on notebooks, documents, blocks, databases, files, etc.
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. While it is a simple getter, the lack of context for when to retrieve workspace info (e.g., initial setup or troubleshooting) means the agent must infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_blockB
在指定锚点插入块;nextID、previousID、parentID 至少提供一个
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | 块内容 | |
| nextID | No | 思源块、文档、笔记本或数据库 ID | |
| dataType | No | 输入格式 | markdown |
| parentID | No | 思源块、文档、笔记本或数据库 ID | |
| previousID | No | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description identifies the action as insertion but offers no further behavioral context such as error handling, permissions, or side effects. Annotations are all false, so the description carries the burden, but it adds minimal 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?
Single sentence front-loads the purpose and constraint. No extraneous 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?
With no output schema and five parameters including an anyOf constraint, the description is too brief. It lacks info on return values, error conditions, or behavior when anchor IDs are invalid.
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 schema already describes all parameters. The description reiterates the anyOf constraint but adds no new meaning beyond what the structured schema provides.
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 a block at a specified anchor point and lists the required anchor IDs. This distinguishes it from sibling tools like prepend_block, append_block, or update_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?
It specifies that at least one of nextID, previousID, or parentID must be provided, which is a key usage constraint. However, it does not explicitly compare with alternatives or mention when to use this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docsBRead-onlyIdempotent
列出指定笔记本路径下的文档
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 路径,根目录使用 / | |
| sort | No | 思源排序模式 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID | |
| flashcard | No | 是否只列出闪卡相关文档 | |
| showHidden | No | 是否显示隐藏文档 | |
| maxListCount | No | 最大数量 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds no additional behavioral context. It does not mention potential pagination, sorting effects, or error behavior beyond 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, front-loaded with the core purpose. It is appropriately sized for a simple listing tool, though it could benefit from more structure (e.g., brief usage notes).
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 simplicity and annotation coverage, the description is minimally adequate. However, it lacks details on return format (no output schema) and behavior with invalid paths or edge cases, which would help completeness.
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 six parameters. The description adds no extra meaning beyond what is in 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 clearly states the tool's function in Chinese: '列出指定笔记本路径下的文档' (list documents under specified notebook path). The verb 'list' and resource 'documents' are specific, and it distinguishes from sibling tools like search_docs or get_hpath_by_path.
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 on when to use this tool versus alternatives. The description does not specify exclusion criteria or mention sibling tools. Given many sibling tools for document operations, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notebooksARead-onlyIdempotent
列出所有思源笔记本及其打开状态
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the detail about returning open status, but no further behavioral traits like performance or limitations.
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 concise sentence with no unnecessary text. Every word adds value.
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 no parameters and good annotations, the description is adequate. It could optionally detail the output format, but not strictly necessary.
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?
No parameters exist. With 0 parameters and 100% schema coverage, baseline is 4. The description adds no parameter info as none 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 (list) and what is listed (all notebooks and their open status). It distinguishes from sibling tools like open_notebook or close_notebook which have 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 implies usage when a full overview of all notebooks with their open status is needed. No explicit alternatives or when-not-to-use, but given the simplicity, it's clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_blockC
移动块;previousID 或 parentID 至少提供一个
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID | |
| parentID | No | 思源块、文档、笔记本或数据库 ID | |
| previousID | No | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no destructive or idempotent hints. The description does not disclose behavioral details such as whether moving is immediate, if it affects child blocks, or any side effects.
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, very concise. However, it lacks structure (e.g., no separated sections) and could benefit from more detail without being verbose.
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 no output schema and a move operation with complex implications, the description is incomplete. It omits return value behavior, error conditions, and prerequisites (e.g., permissions, block type restrictions).
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 parameter descriptions. The description restates the anyOf constraint ('previousID 或 parentID 至少提供一个'), adding no new semantic meaning beyond 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 states '移动块' (move block), which identifies the action and resource. However, it does not differentiate from sibling tools like 'move_docs' or 'transfer_block_ref', and doesn't clarify what 'move' entails (e.g., reordering vs. reparenting).
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 on when to use this tool versus alternatives like 'move_docs' or 'transfer_block_ref'. The description only mentions a parameter constraint already in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_docsC
移动一组文档
| Name | Required | Description | Default |
|---|---|---|---|
| toPath | Yes | 目标路径 | |
| fromPaths | Yes | 源文档路径 | |
| toNotebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'move' which implies mutation, but annotations indicate destructiveHint=false and readOnlyHint=false, leaving it unclear if the original is deleted. The description does not disclose behavioral traits beyond a basic verb.
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?
Extremely short (4 characters) but at the cost of informativeness. It should be longer to be useful.
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 three required parameters and no output schema, the description is insufficient. It doesn't explain the result of the move (e.g., what happens to original) or provide enough context for correct usage.
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 descriptions for all parameters. The description adds no extra meaning beyond what the schema already provides.
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 the action (move) and object (documents) but lacks specifics like whether it moves across notebooks or within. It does not differentiate from sibling tools like move_docs_by_id.
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 on when to use this tool versus alternatives like move_docs_by_id or rename_doc. The description gives no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_docs_by_idC
按 ID 移动一组文档
| Name | Required | Description | Default |
|---|---|---|---|
| toID | Yes | 思源块、文档、笔记本或数据库 ID | |
| fromIDs | Yes | 源文档 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal behavioral info (destructiveHint=false). The description does not disclose what 'move' entails (e.g., changing parent, affecting references), leaving behavioral ambiguity for a mutation 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 extremely concise (7 characters) with no fluff. However, it may be too terse to convey sufficient meaning without relying on the tool name.
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 simple operation and two parameters, the description is incomplete. It does not explain the result of the move (e.g., destination meaning) or any side effects, and there is 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 coverage is 100% with descriptions for both 'fromIDs' and 'toID'. The description adds no additional meaning beyond the schema, so 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 '按 ID 移动一组文档' clearly states the verb 'move' and the resource 'documents', specifying the method (by ID). However, it does not differentiate from sibling tool 'move_docs' which may move by path or other criteria.
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 on when to use this tool versus alternatives like 'move_docs' or other document manipulation tools. The description lacks context for appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_notebookB
打开指定笔记本
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (all false). Description does not disclose side effects, permissions, or any behavioral traits beyond the basic action. Lacks necessary context 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?
Single sentence with no extraneous information. Perfectly concise for the simplicity of the 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?
For a simple open operation, the description is adequate but minimal. Given the many sibling tools, more context about usage would improve completeness.
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% (one parameter fully defined). Description adds no additional meaning beyond the schema's description of the 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?
Description 'Open the specified notebook' clearly states the action (open) and resource (notebook). It distinguishes from sibling tools like close_notebook, rename_notebook, etc., which have different verbs.
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 on when to use this tool versus alternatives. For example, it doesn't mention when to use open_notebook vs list_notebooks or close_notebook.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pandoc_convertC
执行思源 Pandoc 转换
| Name | Required | Description | Default |
|---|---|---|---|
| dir | Yes | 转换临时目录 | |
| args | Yes | Pandoc 参数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and the description adds no behavioral context. It does not disclose side effects, authorization needs, or whether the tool modifies state beyond the conversion 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?
One short sentence is concise but under-specifies the tool. It is front-loaded but lacks necessary detail, making it insufficient for an agent to understand the tool's behavior.
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?
Without an output schema, the description should address return values and side effects. It does not, leaving the agent without key information needed to use the tool 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?
Schema coverage is 100%, so the description does not need to compensate. However, it adds no extra meaning beyond the schema; for instance, it does not explain the format of 'dir' or the expected structure of 'args'.
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 it executes a Pandoc conversion, which identifies the verb and resource. However, it lacks specificity about what content is converted (files, blocks, etc.), and does not distinguish it clearly from sibling tools related to blocks or documents.
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 on when to use this tool versus alternatives. The description does not mention any preconditions, contexts, or when it should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepend_blockB
在父块开头插入子块
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | 块内容 | |
| dataType | No | 输入格式 | markdown |
| parentID | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All annotations are false, indicating no safety hints. The description does not disclose behavioral traits such as error handling, atomicity, or permission requirements. For a mutation tool, more transparency is needed. No contradiction with annotations.
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 conveys the core purpose. It is front-loaded and contains no redundant information, earning a high conciseness 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?
Given the tool has no output schema and no annotations, the description lacks important context like return value, error conditions, prerequisites (e.g., parent block existence), and behavior in edge cases. This makes it incomplete for an agent to use confidently.
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 schema already documents parameter meaning. The description adds no additional semantics beyond what is in the schema, meeting 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 clearly states the action: inserting a child block at the beginning of the parent block. It uses a specific verb ('prepend') and resource ('block'), and distinguishes itself from siblings like append_block (insert at end) and insert_block (insert at arbitrary position).
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 on when to use this tool compared to alternative insertion tools (insert_block, append_block, batch_insert_blocks). The description does not mention prerequisites, constraints, or best practices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_err_msgB
向思源界面推送错误消息
| Name | Required | Description | Default |
|---|---|---|---|
| msg | Yes | 消息 | |
| timeout | No | 显示毫秒数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No behavioral traits disclosed beyond annotations (all false). Description does not state side effects, error handling, or display 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?
Single sentence is efficient, but could benefit from slight expansion for clarity. No waste.
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 push tool with no output schema, description covers basic purpose but lacks details on behavior (e.g., whether errors stack, timeout effect).
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 baseline is 3. Description does not add meaning beyond what the schema already provides.
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 the action ('push') and resource ('error message to SiYuan interface'), clearly distinguishing from sibling tools like push_msg which likely handles normal 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 on when to use this tool over alternatives (e.g., push_msg), no prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_msgB
向思源界面推送普通消息
| Name | Required | Description | Default |
|---|---|---|---|
| msg | Yes | 消息 | |
| timeout | No | 显示毫秒数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no safety cues. Description adds no behavioral details beyond 'push message', omitting side effects, permissions, or return 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?
Single sentence, no wasted words. Could be slightly more structured but efficient for a simple 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?
Minimal description covers basic purpose but lacks detail on what constitutes an ordinary message and how timeout works. Adequate for low 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?
Schema coverage is 100% with descriptions for both parameters. The description does not add additional meaning beyond what's 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 states 'push ordinary messages to the SiYuan interface' with a specific verb-resource combination. It distinguishes from sibling `push_err_msg` which pushes error 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 explicit guidance on when to use this tool vs alternatives, but the purpose is implied for ordinary messages. Lack of explicit when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_fileCDestructive
通过 Multipart 写入工作空间文件
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | 兼容字段:UTF-8 文本内容 | |
| path | Yes | 目标工作空间路径 | |
| isDir | No | 是否创建目录 | |
| modTime | No | Unix 修改时间 | |
| fileName | No | Multipart 文件名 | |
| filePath | No | 要上传的本地文件路径 | |
| mimeType | No | MIME 类型 | |
| contentBase64 | No | Base64 文件内容 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint: true, but the description adds no extra behavioral details. It does not mention permissions, side effects, or that it may overwrite existing files. The term 'Multipart' hints at upload mechanism but is not elaborated.
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 concise (one sentence). However, it is adequately front-loaded and contains no filler. It could benefit from slightly more detail without becoming verbose.
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 8 parameters with a complex oneOf structure, yet the description provides no guidance on usage or return values. No output schema exists, so the description should cover what the tool returns, which it does not.
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 descriptions in the schema. The description adds no additional parameter meaning, but the baseline is 3 due to high coverage. It does not clarify how parameters relate (e.g., oneOf usage).
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 '通过 Multipart 写入工作空间文件' indicates writing files via Multipart, but it's vague. It doesn't specify whether it creates or overwrites files, and 'Multipart' is not explained. Compared to siblings like get_file and remove_file, the purpose is somewhat clear but lacks precision.
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 on when to use this tool versus alternatives (e.g., other file manipulation tools). No context about prerequisites or typical scenarios is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_dirCRead-onlyIdempotent
列出工作空间目录
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 工作空间路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to repeat safety traits. It adds no additional behavioral context (e.g., what happens if the path doesn't exist or the format of results).
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 with no fluff, but it is very sparse. While concise, it could include more helpful details without becoming verbose. It earns its place but is minimal.
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 output schema, the description should hint at the return value (e.g., list of file/directory names). It also lacks information about error handling or valid path formats. The description is incomplete for an agent to fully understand the tool's behavior.
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% coverage with a description for the 'path' parameter. The tool description does not add any additional meaning beyond what the schema provides, so it meets the baseline.
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 indicates the action (list) and resource (workspace directory). However, it is somewhat ambiguous whether it lists the directory itself or its contents, but given the sibling tools, it likely lists contents. It distinguishes from siblings like 'list_docs' which lists documents specifically.
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 'list_docs' or 'get_file'. There is no mention of problem context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_database_columnBDestructive
删除数据库字段
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| keyID | Yes | 思源块、文档、笔记本或数据库 ID | |
| removeRelationDest | No | 同时删除关联目标 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's 'Delete' is consistent. However, it adds no extra behavioral disclosure (e.g., whether it cascades, requires permissions, or is reversible).
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?
Extremely concise single phrase, no wasted words. However, it may be considered too brief for non-Chinese speakers, but structure is efficient.
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 destructive tool with no output schema, the description lacks context about effects, return values, or post-condition state. More explanation would improve completeness.
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% and parameter descriptions are provided. The tool description does not add additional meaning beyond the schema fields.
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 'Delete database field' clearly communicates the action (delete) and resource (database column/field). It distinguishes from sibling tools like 'add_database_column' or 'rename_database'.
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 on when to use this tool versus alternatives (e.g., 'remove_database_rows'). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_database_rowsCDestructive
删除数据库条目
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| itemIDs | Yes | 条目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description simply states 'delete', which aligns with the destructiveHint=true annotation, but it adds no additional behavioral context such as whether the operation is reversible, requires permissions, or affects other data. Since the annotation already covers destructiveness, the description provides minimal extra value.
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 with no unnecessary words. It is appropriately concise, though it could be more informative without becoming verbose.
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 large number of sibling tools with similar deletion purposes, the description fails to provide enough context for an agent to distinguish this tool from others. The missing guidance on when to use this tool specifically (versus delete_block, remove_doc, etc.) makes it incomplete for the decision-making process.
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 parameters having descriptions in the schema. The tool description does not add any new information beyond what the schema already provides, 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 '删除数据库条目' (delete database entries) clearly states the verb (delete) and resource (database entries). However, it does not differentiate this tool from sibling tools like delete_block, remove_doc, or remove_database_column, which also perform deletions on various resources.
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 on when to use this tool versus alternatives. There is no mention of prerequisites, context, or what makes this tool distinct from other deletion tools (e.g., delete_block vs. remove_database_rows).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_docADestructive
按路径删除文档
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文档路径 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true. Description adds the specific deletion method but does not disclose side effects, permanence, or required permissions beyond annotations.
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?
Extremely concise single phrase, front-loaded with key information. 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?
For a simple 2-parameter destructive tool with full annotation coverage and no output schema, the description is sufficient. Could include more context about when to use it over the similarly purposed 'remove_doc_by_id'.
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 describes both parameters. Description adds no extra meaning beyond what is 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?
Description clearly states the verb '删除' (delete) and resource '文档' (document) with the method '按路径' (by path), distinguishing it from sibling 'remove_doc_by_id'.
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 on when to use this tool versus alternatives like 'remove_doc_by_id', nor any prerequisites or exclusions. Only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_doc_by_idBDestructive
按 ID 删除文档
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so description adds no behavioral context beyond confirming deletion. It does not disclose irreversibility, auth needs, or effects on connected blocks.
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, clear sentence. No unnecessary words. Front-loaded with essential 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?
For a simple deletion tool with one parameter and destructive annotations, the description is adequate but lacks context on permanence, error conditions, or impact on related data.
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 a detailed description and pattern for the 'id' parameter. The description merely restates deletion by ID, adding no extra meaning beyond 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 '按 ID 删除文档' clearly states the action (delete) and resource (document by ID). It distinguishes from sibling tool 'remove_doc', which likely deletes by other means, and other removal 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?
No guidance on when to use this tool versus alternatives like 'remove_doc'. No prerequisites, side effects, or when-not conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_fileCDestructive
删除工作空间文件
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 工作空间路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'destructiveHint: true' already signals this tool is destructive. The description adds no extra behavioral context, such as whether deletion is permanent, what happens to associated data, or if authentication is needed. With the annotation, the bar is lower, but the description still fails to provide useful behavioral details beyond the annotation.
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 in Chinese. It is concise but not structured as a complete sentence. While appropriate for a simple tool, it could be more informative with a brief sentence structure.
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 simplicity (1 required parameter, no output schema, destructive annotations), the description is minimally adequate. It explains the action but lacks completeness: it does not describe return values, error states, or whether the operation is reversible. This is acceptable for a straightforward delete operation, but more context would improve usability.
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% and the parameter 'path' has a description '工作空间路径'. The tool description does not add any additional meaning, such as path format, allowed characters, or whether the path must be absolute or relative. The baseline is 3 given high coverage, but no extra value is provided.
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 indicates the tool deletes a workspace file. The name 'remove_file' is specific. While the sibling set includes 'remove_doc' for documents, this tool is distinct in targeting files. However, the description does not explicitly differentiate from similar operations like 'remove_doc' or 'remove_database_rows', which limits clarity in a large sibling 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 over alternatives, such as when to use 'remove_file' versus 'remove_doc' for documents, or any exclusions or prerequisites. There is no context on required file states or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_notebookADestructive
删除笔记本及其内容;可通过保护开关禁用
| Name | Required | Description | Default |
|---|---|---|---|
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint: true. The description adds that the deletion can be disabled via a protection switch, offering useful behavioral context beyond the annotations.
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 concise, using two clauses to convey the action and a safety feature. Every word is necessary and front-loaded with the main purpose.
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 destructive tool with one parameter and no output schema, the description is fairly complete. It could add a warning about irreversibility, but the protection switch info mitigates that need.
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% and the parameter 'notebook' already has a pattern and description. The description does not add additional meaning about the parameter, so baseline score 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 it deletes a notebook and its content, which distinguishes it from other notebook operations like rename, create, open, or close, and from other remove tools like remove_doc.
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 mentions a protection switch that can disable the action, providing some context, but it does not explicitly guide when to use this tool versus alternatives like remove_doc or provide prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_databaseD
重命名数据库
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| name | Yes | 新名称 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=false and readOnlyHint=false, but the description adds no behavioral context beyond what annotations provide. It does not disclose effects, requirements, or side effects of renaming a database.
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 phrase, which is concise but lacks essential detail. It is under-specified and does not earn its place as a standalone explanation.
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 that there is no output schema and the description is minimal, the agent lacks information about return behavior, prerequisites, or side effects. The description is incomplete for a rename operation with sibling tools.
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 descriptions for both avID and name. The tool description adds no additional meaning beyond the schema, 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 is '重命名数据库', which is a translation of the tool name 'rename_database'. It is a tautology, restating the name without adding any specific verb or resource detail. It fails to distinguish from sibling tools like rename_notebook or rename_doc.
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 on when to use this tool versus alternatives. Sibling tools include rename_notebook, rename_doc, etc., but the description offers no contextual usage advice or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_docA
按存储路径重命名文档
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文档存储路径 | |
| title | Yes | 新标题 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not readOnly (write) and not destructive. Description adds no behavioral details beyond rename action; no contradiction.
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?
Single sentence, no verbose content; all information is essential.
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?
Minimal description for a write tool. Lacks return behavior, error details, or when to prefer over rename_doc_by_id; schema covers params but tool still feels underspecified.
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 covers all 3 parameters with descriptions. Description adds no parameter meaning beyond 'rename by storage path'; baseline 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?
Description '按存储路径重命名文档' clearly states action (rename), resource (document), and method (by storage path). Distinguishes from sibling rename_doc_by_id.
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 on when to use vs. alternatives. Sibling rename_doc_by_id exists but not mentioned; context for choosing between them is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_doc_by_idC
按 ID 重命名文档
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID | |
| title | Yes | 新标题 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, which is consistent with renaming (a mutation but not destructive). The description adds no behavioral information beyond the annotations—it does not clarify whether the rename is reversible, what happens to the old title, or if there are any side effects.
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, efficient sentence that front-loads the core action. It is appropriately concise but could benefit from additional context without becoming verbose.
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 tool with two parameters and no output schema, the description is minimal. It does not explain the return value, potential errors, or the exact effect of renaming (e.g., whether the document's path changes). The agent may lack sufficient information to invoke the tool correctly in all contexts.
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% (both 'id' and 'title' have descriptions). The tool description adds no extra context for the parameters, so it meets the baseline of 3. The description does not compensate for any gaps 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 (rename) and the resource (document by ID). The verb 'rename' and target 'document by ID' are specific and unambiguous. However, it does not differentiate from the sibling tool 'rename_doc', which might operate by path, leaving some ambiguity.
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 on when to use this tool versus alternatives like 'rename_doc' or 'rename_notebook'. There is no mention of prerequisites, context, or scenarios where this tool is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_fileCDestructive
重命名工作空间文件
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 源路径 | |
| newPath | Yes | 目标路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal and adds no behavioral details beyond what annotations already convey (destructiveHint: true). It does not specify side effects, such as whether the operation overwrites existing files at the target path.
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 concise (one phrase). While it is front-loaded, it lacks any structure or additional details that would earn its place for an agent to understand usage nuances.
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 simple nature of the tool, the description could be sufficient, but it lacks details about path format constraints, overwrite behavior, or return values. With no output schema, agents lack guidance on what to expect.
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 basic parameter descriptions ('源路径', '目标路径'), but the tool description adds no additional meaning. The baseline is 3 due to full schema coverage, but the descriptions are terse.
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 '重命名工作空间文件' translates to 'rename workspace file', which clearly states the action and the resource. However, it does not differentiate from sibling tools like rename_doc or rename_notebook, which also rename entities in the workspace.
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 rename_doc or rename_doc_by_id, nor does it mention any prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_notebookC
重命名笔记本
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 新名称 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All annotations are false (readOnlyHint, destructiveHint, etc.), and the description adds no behavioral information. It does not disclose side effects, permissions needed, or whether the operation is reversible, leaving the agent uninformed.
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 concise, a single phrase. It has no wasted words, but it lacks sentence structure. It is efficient but could be more informative.
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 lack of output schema and empty annotations, the description should provide context on return values or side effects. It does not, making it incomplete for an agent to fully understand the tool's behavior.
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 descriptions for both parameters. The description adds no additional meaning beyond the schema, so it meets the baseline.
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 '重命名笔记本' (Rename notebook) clearly states the action and resource. It is a verb+resource pair that distinguishes from sibling rename tools for documents, files, databases, etc. However, it does not elaborate on the scope or nuances, so it's not 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?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes many rename tools, but the description gives no differentiating context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_sprigC
渲染 Sprig 模板
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | 模板内容 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do not indicate read-only or destructive behavior, but description adds no behavioral detail (e.g., whether it modifies state, requires auth, or has side effects). For a tool that likely produces output or updates content, more transparency is needed.
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?
Single sentence is concise and front-loaded with the verb. However, it could benefit from additional context without becoming verbose.
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 presence of a very similar sibling 'render_template', the description does not clarify what makes 'Sprig' unique. No output schema means return value behavior is entirely undocumented, making it incomplete for an AI agent.
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 has 100% description coverage for the single parameter 'template' ('模板内容'). Description adds no additional meaning beyond what the schema already provides, so 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?
Description '渲染 Sprig 模板' (Render Sprig template) clearly states the action and resource, but does not differentiate from sibling tool 'render_template', which likely has similar functionality. Without additional context, an agent may confuse the two.
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 on when to use this tool vs alternatives like 'render_template'. No when-not or prerequisite information provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_templateC
渲染模板文件
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID | |
| path | Yes | 模板绝对路径 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond annotations. With all annotations false, the agent cannot infer side effects or return behavior. No output schema is provided, and the description gives no hints about what rendering entails.
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 concise at one short sentence. It is front-loaded and contains no unnecessary 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?
Despite having 2 parameters and 100% schema coverage, the description lacks completeness. It does not explain the output or side effects, and with no output schema, the agent is left guessing what 'render' produces.
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 tool description adds no extra meaning beyond the existing parameter descriptions, which already explain 'id' and 'path'.
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 (render) and resource (template file). It distinguishes from sibling tools like render_sprig by indicating it's for template files, though it lacks explicit 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?
No guidance is provided on when to use this tool versus alternatives. The description does not include any context, exclusions, or usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_blocksBRead-onlyIdempotent
使用思源全文搜索查找内容块
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码 | |
| paths | No | 限定笔记本/文档路径 | |
| query | Yes | 搜索词、查询语法或正则 | |
| types | No | 块类型开关,例如 {"d":true,"p":true} | |
| method | No | 0 关键词、1 查询语法、3 正则;不开放 SQL 模式 | |
| groupBy | No | 0 不分组、1 按文档分组 | |
| orderBy | No | 排序模式 | |
| pageSize | No | 每页数量 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate safety. It adds 'full-text search' context but no additional behavioral traits such as performance implications or index requirements. No contradiction.
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 that conveys the core function. It is front-loaded and avoids verbosity, but being only in Chinese may reduce accessibility for multilingual agents.
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?
Despite 8 parameters and nested objects, the description does not explain return values, query syntax, or typical usage patterns. The output schema is absent, and the description fails to compensate, leaving gaps for an agent to correctly invoke the 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% (all parameters have descriptions). The tool description adds no new parameter information beyond what the schema already provides, so 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 specifies the verb 'search' (via full-text search) and the resource 'content blocks', clearly distinguishing it from sibling tools like search_docs which search at document level. The purpose is 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 on when to use this tool versus alternatives. It does not mention conditions, limitations, or relationships with other search-related sibling tools (e.g., search_docs, sql_query).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsBRead-onlyIdempotent
按标题搜索文档
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 | |
| flashcard | No | 是否只搜索闪卡相关文档 | |
| excludeIDs | No | 排除的文档 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's additional context that it searches by title is beneficial but minimal. No details on pagination or return format.
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 with no wasted words. It is concise but could benefit from more structural 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?
With no output schema and moderate complexity in parameters, the description is too brief. It fails to explain return values, search behavior, or example usage, leaving gaps for an agent.
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 description adds little beyond the schema descriptions. It introduces a 'by title' constraint not in the schema, but this is vague and may be misleading.
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 searches documents by title (按标题搜索文档), specifying a verb and resource. However, it does not differentiate from sibling tools like search_blocks or list_docs, which also search or list documents.
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 on when to use this tool versus alternatives such as search_blocks or sql_query. The description lacks context for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_block_attrsC
设置块属性
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID | |
| attrs | Yes | 属性键值 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only (write operation) and not destructive, but the description adds no additional behavioral context. It does not clarify whether attrs are merged or overwritten, nor does it specify any side effects or error conditions.
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 concise (4 characters in Chinese) and front-loaded. While it efficiently states the core purpose, it may be too brief for an agent to infer full usage, but for a simple setter tool it is acceptable.
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?
Without an output schema, the description should at least imply return behavior (e.g., whether it returns the updated attributes). It does not mention whether existing attributes are merged or replaced, leaving ambiguity. The tool has a moderate complexity due to the nested attrs object.
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 'id' and 'attrs' having Chinese descriptions. The tool-level description provides no extra semantic value beyond the schema, 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 '设置块属性' translates the tool name 'set_block_attrs' into Chinese, clearly indicating the verb ('set') and resource ('block attributes'). However, it does not differentiate from sibling tools like update_block or get_block_attrs, lacking specificity about what constitutes 'attributes' vs other block properties.
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 on when to use this tool versus alternatives (e.g., update_block for block content, get_block_attrs for reading). There is no mention of prerequisites, constraints, or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_database_cellB
设置单个数据库单元格;value 使用思源 AV Value JSON 结构
| Name | Required | Description | Default |
|---|---|---|---|
| avID | Yes | 思源块、文档、笔记本或数据库 ID | |
| keyID | Yes | 思源块、文档、笔记本或数据库 ID | |
| value | Yes | AV Value 对象 | |
| itemID | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations lack behavioral hints (all false). Description only says 'set' but does not disclose side effects, permissions, or what happens if cell doesn't exist.
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?
Single sentence, front-loaded with action and resource. Appropriate length for a simple tool, though could include brief usage 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?
Description lacks explanation of how the IDs relate (database, column, row) and what happens after setting. No return value information. Not sufficient for agent to understand full behavior.
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%, but description adds value by specifying the AV Value JSON structure for the 'value' parameter. Other parameters (avID, keyID, itemID) have no additional explanation beyond 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?
Description clearly states action ('set single database cell') and resource ('database cell'), and mentions value format. Distinguishes from sibling 'batch_set_database_cells' by specifying 'single'.
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 on when to use this tool vs alternatives like batch_set_database_cells. No mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_notebook_confC
保存笔记本配置
| Name | Required | Description | Default |
|---|---|---|---|
| conf | Yes | 完整配置对象 | |
| notebook | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, but the description only says 'save', implying mutation. It does not disclose whether the configuration is merged or overwritten, what permissions are needed, or what happens on failure. No additional behavioral context beyond the annotations is 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 sentence, concise and front-loaded. It gets straight to the point, but could benefit from slight expansion without losing 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?
The tool has a nested object parameter and no output schema. The description does not explain the behavior (e.g., replace vs merge), return value, or error conditions. This is insufficient for a tool that modifies configuration.
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 descriptions for both parameters: 'conf' is '完整配置对象' and 'notebook' is '思源块、文档、笔记本或数据库 ID'. The description adds no further meaning beyond the schema, so 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 '保存笔记本配置' translates to 'Save notebook configuration', which clearly indicates the action (save) and the resource (notebook configuration). It distinguishes from the sibling tool 'get_notebook_conf' which retrieves configuration.
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 on when to use this tool versus alternatives. There is no mention of prerequisites, when to avoid using it, or comparison with related tools like 'get_notebook_conf'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sql_queryBDestructive
执行 SQL 语句;调用方应自行确认写入类语句的影响
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | SQL 语句 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, so the description adds a caution that the caller should confirm write impacts. This provides minimal extra behavioral context beyond the annotation.
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 with no wasted words. It efficiently conveys the core action and a warning, though it lacks structure like separating conditions or examples.
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 omits critical details: which database is targeted, return value, error handling, and transaction behavior. Given the destructive nature, more completeness 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 coverage is 100% with a basic description for the sql parameter. The tool description does not add any further meaning, such as syntax examples or acceptable SQL dialects.
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 'Execute SQL statement', which is a specific verb+resource. It is distinct among siblings as no other tool directly executes SQL queries.
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 alternative tools like create_database or set_database_cell. The only hint is a warning about write statements, but no explicit when-to-use or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_block_refC
转移块引用
| Name | Required | Description | Default |
|---|---|---|---|
| toID | Yes | 思源块、文档、笔记本或数据库 ID | |
| fromID | Yes | 思源块、文档、笔记本或数据库 ID | |
| refIDs | No | 指定引用块 ID;省略表示全部 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description must disclose behavioral traits. However, the description gives no information about side effects, permissions, or result behavior. It does not contradict annotations but fails to add value.
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 very concise (one short phrase) but lacks structure. It is not wasteful, but it is too terse to be informative. A slightly longer description with structured details would improve usability.
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 the presence of three parameters, the description is insufficient. It does not explain the operation's effect, return value, or any constraints, leaving the agent without enough context 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 the schema already documents parameters adequately. The description does not add any meaning beyond the schema's field descriptions, which are generic. 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 is a single Chinese phrase '转移块引用' meaning 'transfer block reference'. While it indicates the general action, it lacks specificity about what exactly is being transferred (references from one block to another?) and does not differentiate from sibling tools like 'move_block' or 'update_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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, constraints, or exclusions, leaving the agent uncertain about appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfold_blockD
展开块
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. Annotations show it is not readOnly (implies mutation) and not destructive, but the description does not confirm or elaborate. No explanation of side effects, permissions, or reversibility is given.
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 concise (three characters) but at the cost of informativeness. It does not earn its place because it adds no value beyond the tool name. Under-specification undermines 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 simplicity (one parameter, no output schema), the description is incomplete. It fails to explain the effect of 'unfolding' a block, such as whether it expands a collapsed block or changes a property. The schema covers the parameter, but the tool's behavior is not fully described.
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 describes the 'id' parameter comprehensively (100% schema coverage), specifying it is a block, document, notebook, or database ID. The tool description does not add any parameter information, but the baseline of 3 is appropriate since the schema covers the semantic load.
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 '展开块' (unfold block) essentially restates the tool name. It conveys the basic action but does not distinguish from sibling tools like 'fold_block' or specify what 'unfold' means in the context of Siyuan blocks. The verb and resource are clear, but no additional differentiation is provided.
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 guidelines are provided. The description does not indicate when to use this tool, when not to, or any prerequisites. It fails to guide the agent on choosing between this tool and alternatives like 'fold_block'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_blockC
更新块内容
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 思源块、文档、笔记本或数据库 ID | |
| data | Yes | 新内容 | |
| dataType | No | 输入格式 | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no read-only, idempotent, or destructive hints. The description does not disclose side effects, error behavior, or whether updates are full replacements or partial. For a mutation tool, this is insufficient 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 short sentence, which is concise. However, it lacks structure (no sections, examples, or warnings). It is appropriately sized for a simple tool but misses important information, making it minimally adequate.
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?
No output schema is provided, and the description does not mention return values, success/failure indicators, or error conditions. Given that the tool mutates data, this is a significant omission. The description is not complete enough for reliable 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it does not explain the id format, data content expectations, or dataType implications beyond what the enum suggests.
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?
Description 'Update block content' clearly states verb (update) and resource (block). However, it does not differentiate from sibling 'batch_update_blocks' which updates multiple blocks, but the singleton update is implied by the singular name and required single id parameter.
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 on when to use this tool versus alternatives like insert_block, delete_block, or batch_update_blocks. The description lacks any context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_assetB
上传一个或多个本地资源文件
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | 本地文件绝对路径 | |
| assetsDirPath | Yes | 资源目录,例如 /assets/ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is not readOnly (so it writes) and not destructive. The description adds 'upload' but does not disclose overwrite behavior, file size limits, or effect on existing files. With limited annotation details, the description should provide more 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 sentence with no wasted words. It is front-loaded with the key action. However, it could be slightly more informative (e.g., mentioning it's for SiYuan asset system) without sacrificing 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?
Given the tool's low complexity (2 required params, no output schema, no nested objects), the description is mostly adequate. However, it lacks context about the asset directory structure and whether the upload replaces or adds files. This might leave an AI agent uncertain about behavior.
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% and already describes the parameters (files as absolute paths, assetsDirPath as directory). The description adds no extra meaning beyond what's in the schema, so 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 clearly states the action ('upload') and the object ('local resource files'), mentioning 'one or more' adds specificity. It distinguishes from siblings like 'get_file' and 'remove_file', but 'put_file' is a close sibling and could be differentiated.
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 the tool is used for uploading local resource files, but it does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, such as when to use 'put_file' instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action. Even where similar operations exist (e.g., rename by path vs ID), the descriptions clearly differentiate the parameter style. The set is well-organized by category (notebooks, docs, blocks, databases, files), minimizing confusion.
All tool names follow a consistent verb_noun pattern using snake_case. Variations like 'rename_doc_by_id' or 'get_hpath_by_path' follow a predictable extension scheme. No mixing of styles or ambiguous verbs.
69 tools is large but appropriate for the comprehensive SiYuan note-taking domain, covering notebooks, documents, blocks, databases, files, and utilities. While slightly overwhelming, each tool serves a specific purpose and the scope justifies the count.
The tool surface covers all major CRUD operations for notebooks, documents, blocks, and databases, plus file management, export, templating, and system utilities. There are no obvious dead ends or missing essential operations for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect AI to your flomo notes. Search, create, edit notes and manage tags via MCP.
Create, search, and update notes in an xNotepad AI notebook, with semantic search and AI Q&A.
AI access to your aNotepad online notes: read, search, write, and organize via 22 tools.
Securely search, create, and organize your Mem notes and collections from AI assistants.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with SiYuan Note through its API for comprehensive note management. Supports searching, creating, editing documents, managing notebooks, and daily notes operations through natural language commands.4115Apache 2.0
- AlicenseCqualityAmaintenanceEnables AI assistants to interact with SiYuan Note for comprehensive notebook management, document editing, and block-level content operations. It supports advanced features like full-text search and SQL queries via secure API integration.34640ISC
- AlicenseBqualityDmaintenanceEnables AI assistants to create, read, update, and manage SiYuan notes, supporting notebook management, document operations, block editing, database attribute views, search, file operations, and export.11171MIT
- AlicenseBqualityDmaintenanceEnables AI models to interact with SiYuan Note systems, allowing management of notebooks, documents, blocks, files, and more through natural language.319ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xgq18237/siyuan_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server