Skip to main content
Glama

LayerFS-MCP

English · 中文

让支持 MCP 的 Agent 通过标准工具使用 LayerFS:共享历史、隔离工作区、自动检查点、分支、合并、发布与去重存储。

一个服务实例绑定一个项目,默认暴露 41 个工具(27 个 LayerFS 公开方法、13 个 operator 方法、1 个状态工具)、3 个资源与 1 个工作流提示词,同时支持 stdio 与 Streamable HTTP。

快速开始

要求:Node.js 22+,以及一个容器引擎——macOS 用 Apple Container,其他平台用 Docker Engine / Docker Desktop。

# 首次:指定导入源启动,运行环境自动准备,不需要手动 setup
npx -y layerfs-mcp@0.1.0 serve --backend apple-container --project website --source /absolute/path/website

# 另开一个终端:显式导入项目(serve 不会自动导入文件)
npx -y layerfs-mcp@0.1.0 init --project website

# 之后配置已保存,直接启动
npx -y layerfs-mcp@0.1.0 serve --project website

Docker 用户把 --backend apple-container 换成 --backend docker。

serve 会立即完成 MCP 握手并列出工具。首次构建镜像期间 layerfs_status 返回 preparing,变为 ready 后即可调用 LayerFS 方法。完整的安装方式、导入和验证步骤见 快速上手。

接入 Agent

把下面这段加进客户端的 MCP 配置(也可直接用 examples/mcp-unified-stdio.json):

{
  "mcpServers": {
    "layerfs": {
      "command": "layerfs-mcp",
      "args": ["serve", "--backend", "apple-container", "--project", "website"]
    }
  }
}

未全局安装时把 command 换成 npx,args 从 -y, layerfs-mcp@0.1.0 开始(见 examples/mcp-npx.json)。需要远程或共享接入时用 Streamable HTTP:

layerfs-mcp serve --project website --transport http --host 127.0.0.1 --port 8787
# 端点 http://127.0.0.1:8787/mcp,请求头 Authorization: Bearer <LAYERFS_MCP_TOKEN>

Related MCP server: safe-workspace-mcp

能做什么

能力

工具组

从目录初始化项目、枚举分支

layerfs_project_*

按行读取、目录列表、元数据、grep、glob、文件差异、blame

layerfs_fs_*

文本/二进制写入、精确编辑、原子批量修改、目录、删除、复制、移动

layerfs_fs_*

从任意历史状态 fork、提交历史、差异、合并、发布

layerfs_branch_*

FUSE 工作区挂载、命令执行、状态、提交、卸载

layerfs_workspace_*

存储/文件/覆盖层诊断、历史快照、初始化进度

layerfs_operator_*

后台进程启动、列出和取消

layerfs_operator_process_*

存储格式、去重、检查点、.lww 冲突规则和合并算法都由上游 LayerFS 实现,本项目不包含模拟存储后端。完整参数与语义见 MCP API。

文档

我想…

看

5 分钟跑通并接入 Agent

快速上手

查全部工具、参数和返回结构

MCP API

用 CLI 管理镜像、项目、HTTP 和生命周期

统一 CLI

配置环境变量、项目配置和访问控制

配置

在 Apple、Docker、原生 Linux 之间选后端

后端

了解检查点、分支、合并和并发约定

工作方式

跑测试、看已验证的范围

测试与验证

排查启动失败、导入冲突、连不上

故障排查

发布到 npm

发布指南

中文文档在 docs/,英文文档在 docs/en/,两边页面一一对应。

边界

  • 默认完整模式具备目录导入、命令执行和 Docker 权限,只连接可信 Agent。分支与 Workspace 提供工作隔离,不构成租户权限边界。

  • 服务不自动重试。超时或断线不表示操作没有发生,应先检查进程、工作区和提交历史。

  • 上游 Disposable Store 没有崩溃/断电持久性保证,重要数据请保留可重建的原始副本。MCP 层不改变这一性质。

  • 一个实例一个项目。要跑另一个项目,请使用不同的项目名、home、Store 卷、容器前缀和端口。

开发

npm ci
npm run build
npm run check      # tsc --noEmit
npm test           # 协议、schema、参数转换、分页、错误保留、stdio 与 HTTP

需要真实 Store / FUSE / 容器引擎的测试见 测试与验证。

许可证 MIT;上游与依赖声明见 THIRD_PARTY_NOTICES.md。

Available Tools

41 tools
layerfs_branch_diff_branchesB
Read-onlyIdempotent

Page changed paths between two saved refs. Pass nextCursor as cursor for continuation; hunks=false omits line hunks.

NameRequiredDescriptionDefault
toYes
fromYes
hunksNo
cursorNo
pagePosNo
pageSizeNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely new behavior: results are paged and line hunks can be omitted for cheaper payloads. It does not explain what a nextCursor looks like or what the page envelope contains, and the referenced 'nextCursor' is not a declared input name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core operation before the modifiers. Every clause carries information; only the mismatch between 'nextCursor' and the schema's 'cursor' introduces noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only paginated diff over two refs, the description plus annotations plus schema cover what an agent needs. Return shape sits with the (absent) output schema, and the read-only safety profile is fully annotated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across six parameters, so the description carries the full burden. It only clarifies two of them (cursor, hunks); from, to, pagePos, and pageSize — including the surprising '^/' pattern on cursor and the 1000 cap on pageSize — receive no explanation at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — paging changed paths between two saved refs — which is more precise than a bare name restatement. It does not, however, distinguish itself explicitly from the nearby layerfs_branch_diff_commits or layerfs_fs_diff_files siblings, and 'saved refs' is slightly at odds with the 'branches' in the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains mechanics (how to continue paging, how to turn off line hunks) but never says when to choose this over diff_commits or diff_files, or what preconditions a 'saved ref' must satisfy. An agent must infer the selection rule from sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_branch_diff_commitsA
Read-onlyIdempotent

Page changed paths between two saved refs. Pass nextCursor as cursor for continuation; hunks=false omits line hunks.

NameRequiredDescriptionDefault
toYes
fromYes
hunksNo
cursorNo
pagePosNo
pageSizeNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description adds behavior annotations cannot: results are paginated and continuation is done by feeding the returned cursor back in, plus hunks=false suppresses line-level detail — genuinely useful context for a read-only paging tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight, front-loaded sentences with no filler — purpose first, then paging and hunk behavior. Minor deduction because the undefined 'nextCursor' token could confuse an agent wiring the cursor parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter, no-output-schema tool, the description leaves two parameters (pagePos, pageSize) and the default hunks behavior unexplained, and never states the shape of returned paths/hunks. Adequate for invoking the tool but with clear gaps an agent may hit on the first call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate with six parameters. It adds meaning for from/to ('saved refs'), cursor (continuation), and hunks (omits line hunks), but pagePos and pageSize go completely undocumented, and the term 'nextCursor' does not appear in the schema, leaving the continuation contract slightly ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: paging changed paths between two refs. An agent can grasp what it returns, but the description never contrasts it with near siblings like layerfs_branch_diff_branches or layerfs_fs_diff_files, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage through 'between two saved refs' (both refs must already exist) and gives operational hints for continuation and hunk suppression. However, it offers no when-to-use or when-not guidance relative to the other diff/commit tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_branch_forkB

Fork a writable branch from main, any branch, commit or layer. Forking an earlier ref provides rewind without rewriting history.

NameRequiredDescriptionDefault
nameYes
fromRefNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-readOnly, non-destructive, non-idempotent, open-world operation. The description adds meaningful context that the branch is writable and that forking an earlier ref acts as a rewind without rewriting history. It does not explain behavior on name collisions, required permissions, or what is created beyond the branch itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is two tight sentences, front-loaded with the action and scope. Each sentence carries useful information: the first establishes the operation, and the second explains a key behavioral consequence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation tool with no output schema, the description covers the high-level operation and rewind semantics well. However, with zero schema description coverage, it leaves both parameters underspecified and omits practical behavior such as name collisions or branch creation side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It implicitly indicates that a fork source can be 'main, any branch, commit or layer,' but it never maps this to the 'fromRef' parameter, does not explain the required 'name' parameter, and gives no format or validation details for either string parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a precise verb and resource: 'Fork a writable branch.' It clearly conveys that the tool creates a branch from an existing ref, distinguishing it from siblings like branch_merge or branch_publish. It stops short of explicitly naming an alternative, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Forking an earlier ref provides rewind without rewriting history' gives an implied use case, but there is no explicit when-to-use versus alternatives, no when-not guidance, and no prerequisites such as permissions or existing-name handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_branch_list_commitsC
Read-onlyIdempotent

Page a branch's checkpoint history, newest first along first parents.

NameRequiredDescriptionDefault
branchYes
pagePosNo
pageSizeNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds meaningful context—newest-first ordering along first parents—but does not disclose pagination defaults, behavior at the end of history, or what a page contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, and the key ordering trait is front-loaded after the verb. Slightly terse for the amount of pagination semantics left unstated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description is the only place paging semantics could be explained, yet it leaves defaults, cursor-vs-offset meaning, and terminal-page behavior unaddressed. For a paginated list tool with 0% schema coverage, this is a substantial gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across three parameters, so the description must compensate and largely does not. It implies 'branch' and paging but never clarifies whether pagePos is an offset or cursor, what pageSize defaults to, or the cap of 1000.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Page') and resource ('a branch's checkpoint history') with an ordering guarantee ('newest first along first parents'). This distinguishes it from nearby siblings like layerfs_operator_store_commits and layerfs_branch_diff_commits, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage (paging a branch's commit history) but gives no explicit when-to-use or when-not-to-use guidance, and never points to an alternative such as branch_diff_commits for comparing histories. The agent must infer the context from the verb alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_branch_mergeC

Merge two branches into a new named branch. Preserve Conflict.detail and truncation flags. Optional merge units group related path patterns; .lww rules are handled by LayerFS.

NameRequiredDescriptionDefault
aYes
bYes
nameYes
unitsNo
messageNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds real context beyond annotations: it discloses that conflicts surface as Conflict.detail with truncation flags preserved, and 'openWorldHint=true/non-idempotent' is consistent with merging arbitrary branch content. However it never says what happens if 'name' already exists, whether partial merges are possible, or whether the result is a new commit/snapshot – important gaps 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action, then behavioral notes, then the optional parameter. No filler, though the mid-sentence 'Preserve Conflict.detail and truncation flags' reads as shorthand that assumes the reader already knows the Conflict type.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-read-only merge tool with no output schema and zero schema description coverage, the description should explain the required inputs and conflict outcome. It covers the action and 'units' but leaves four of five parameters and conflict resolution behavior unexplained, so an agent cannot reliably construct a correct call from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the schema itself is cryptic (parameters a, b, name, message have no descriptions, and 'patterns' items oddly $ref a string). The description only partially compensates by explaining that 'units' groups related path patterns; the meaning of 'message' (presumably a commit message) and the roles of a/b/name are left entirely to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Merge two branches into a new named branch') and makes the output semantics clear enough for an agent to distinguish it from layerfs_branch_fork or layerfs_branch_diff_branches. It does not explicitly contrast with those siblings, but the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use merge versus fork/publish/diff-branches, and no prerequisites or failure conditions are stated. The only usage-adjacent remark is the passing note that '.lww rules are handled by LayerFS', which implies at best that the caller needn't implement LWW merging.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_branch_publishB
Destructive

Publish a branch (optionally a specific commit) to main as a new immutable layer.

NameRequiredDescriptionDefault
branchYes
commitNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false, and readOnlyHint=false, so the agent knows this is a destructive non-idempotent write. The description adds useful context that the result is a new immutable layer, but it does not explain irreversibility, effects on existing main history, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant text. Every phrase contributes directly to identifying the operation and its optional commit scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with two parameters and no output schema, the description is too terse. It covers the core action but omits important context such as what publishing an unspecified commit means, what happens to existing main, and whether the operation can be undone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It mentions branch and that commit is optional, but provides no format, identifier, defaulting, or semantic detail beyond the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: publish a branch, optionally a specific commit, to main. It also clarifies the output as a new immutable layer. It does not differentiate this operation from siblings such as layerfs_branch_merge or layerfs_workspace_commit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is for publishing a branch to main, but gives no explicit when-to-use guidance, prerequisites, or when-not conditions. It does not mention alternatives such as merge or workspace commit, leaving the agent to infer selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_applyA
Destructive

Apply ordered write/edit/mkdir/rm/cp/mv changes atomically as one checkpoint. Refusals retain detail.index. Binary writes use encoding=base64.

NameRequiredDescriptionDefault
branchYes
changesYes
messageNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive, non-idempotent, open-world, so safety is covered; the description adds two things annotations cannot: all changes land atomically as a single checkpoint, and refusals expose detail.index so the caller can identify the failing change. It stops short of saying whether refusals roll back entirely or what a success response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the core verb and atomicity guarantee, followed by the failure-signal and encoding caveats. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter destructive batch tool with no output schema, the essentials are partially covered: atomicity and refusal shape are given, but return value, rollback behavior on refusal, and edit-application semantics are missing. Adequate to attempt a call, not to predict its effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning and largely does not. It names the six ops (mapping to the op const values) and clarifies encoding=base64 for binary content, but says nothing about branch requirements, message, edit's oldText/newText replacement semantics, or relative vs absolute path rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: 'Apply ordered write/edit/mkdir/rm/cp/mv changes atomically as one checkpoint'. This clearly distinguishes it from the single-operation siblings (layerfs_fs_write, layerfs_fs_edit, layerfs_fs_rm), which apply one change each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The batching/atomicity framing implies when to prefer this over individual fs_* calls, but no explicit when-to-use or when-not, and no mention of how it relates to layerfs_workspace_commit or the single-op tools. The agent must infer the routing itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_blameC
Read-onlyIdempotent

Read line attribution from a saved file. Inspect comparisonCoarse and continuation fields.

NameRequiredDescriptionDefault
refYes
pathYes
fromLineNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only vague output-field names ('comparisonCoarse and continuation') without explaining what blame attribution returns or how pagination/fromLine works.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted preamble. The core action is front-loaded, though the second sentence is cryptic rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no parameter descriptions, the definition should explain blame output, required permissions or context, and how to page or scope results. It only gestures at two output fields and leaves the rest to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not clarify any of the three parameters. It does not explain whether 'ref' is a branch/commit, what 'path' must look like beyond the schema pattern, or what 'fromLine' controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read line attribution from a saved file.' That distinguishes it from generic file reads like fs_read or fs_grep, though it does not explicitly name those siblings as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 fs_read, fs_grep, or operator_files_history. The only usage hint is 'Inspect comparisonCoarse and continuation fields,' which describes output inspection rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_cpB

Copy a path on a branch and checkpoint. Destination is exact and must not exist.

NameRequiredDescriptionDefault
toYes
fromYes
branchYes
messageNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=false, destructive=false, and openWorld=true. The description adds the important non-schema constraint that the destination is exact and must not exist, but leaves out permission requirements, whether source directories are copied recursively, and what 'checkpoint' entails. With annotations covering the safety profile, this is a moderate addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action, and no filler. Every sentence contributes a purpose or constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter mutation with no output schema and zero schema descriptions, the definition is too sparse: it does not explain 'message', the checkpoint result, recursive/directory behavior, or possible failure modes. Annotations help with safety hints but cannot fill those functional gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It implies from/to are paths and branch selects a branch, and clarifies that 'to' must not exist, but it never explains the optional 'message' parameter or the required 'from'/'to' distinction beyond destination exactness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb ('Copy') and resource ('a path on a branch') and mentions checkpointing, so the action is identifiable. It does not explicitly distinguish this from layerfs_fs_mv or fs_apply, but the core purpose is clear enough to act on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a destination constraint ('must not exist') but no when-to-use guidance, no alternatives such as layerfs_fs_mv, and no prerequisites or conditions. An agent must infer when copy is preferred over move or write.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_diff_filesC
Read-onlyIdempotent

Compare two saved file versions, including versions at different paths.

NameRequiredDescriptionDefault
leftRefYes
leftPathYes
rightRefYes
rightPathYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds one piece of non-annotation context: cross-path comparison is permitted. It says nothing about output shape or ordering, which leaves a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the capability note front-loaded and no filler. It is efficient, though the brevity comes at the cost of the parameter explanation a caller needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-required-parameter diff tool with no output schema and zero schema descriptions, the description is too thin: it does not define ref values, path constraints (schema requires leading '/'), or what the diff result contains. An agent would need to guess at the ref format before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all four parameters, and it does not. It never explains what a 'ref' is (commit, branch, snapshot?) or that leftRef/rightRef accept the same value type; 'different paths' only loosely hints at leftPath/rightPath.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Compare) and resource (two saved file versions), and the clause 'including versions at different paths' adds scope that distinguishes it from a same-path diff. It does not explicitly contrast itself with siblings like layerfs_branch_diff_commits or layerfs_branch_diff_branches, but 'file versions' vs 'commits/branches' makes the distinction inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instead of layerfs_branch_diff_commits or layerfs_branch_diff_branches, nor any prerequisites. The only usage signal is the implicit hint that left/right paths may differ, which is a capability note rather than a when-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_editA
Destructive

Replace exactly one occurrence on a branch and checkpoint. Zero or multiple matches are refused.

NameRequiredDescriptionDefault
pathYes
branchYes
messageNo
newTextYes
oldTextYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool is destructive, non-idempotent, and open-world. The description adds important behavioral detail beyond that: only exactly one match is accepted, and zero or multiple matches are refused. It also mentions checkpoint creation, though it does not explain what a checkpoint means or what error behavior looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core action and immediately followed by the key refusal condition. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the unique matching constraint and checkpoint behavior, and annotations cover the safety profile. However, for a five-parameter mutation tool with no output schema and zero schema description coverage, it leaves parameter meanings and result/error behavior under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for five parameters, so the description must compensate and largely does not. It implies branch and old/new text semantics through 'replace exactly one occurrence on a branch,' but never explains path, oldText, newText, or message, nor the required relationship between them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific mutation: replacing exactly one occurrence on a branch and creating a checkpoint. This distinguishes it from whole-file write or patch-apply siblings, though the phrase 'occurrence on a branch' is slightly compressed and does not explicitly name the file path or old/new text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The exact-one-match constraint implies this is for targeted replacements rather than full-file writes, but there is no explicit guidance on when to use it versus layerfs_fs_write, layerfs_fs_apply, or other siblings. No alternatives or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_globC
Read-onlyIdempotent

Find saved paths using a glob pattern, with pagination.

NameRequiredDescriptionDefault
refYes
pathNo
pagePosNo
patternYes
pageSizeNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds one behavioral fact beyond that: results are paginated, meaning matches can be truncated and more than one call may be needed. Nothing about errors, glob syntax support, or ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler and the core mechanism stated immediately. Its brevity is efficient rather than padded, though the shortness leaves the gaps noted above.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter, zero-coverage filesystem search with no output schema, this is thin: the meaning of the required `ref` and the semantics of `path` are missing entirely, and pagination mechanics (defaults, ordering, termination) are undescribed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across five parameters, and the description only glosses `pattern` and pagination. It never explains `ref` (a required, opaque identifier) or the optional `path` scoping parameter, nor glob syntax or the 1000-item page cap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Find), resource (saved paths) and mechanism (glob pattern), so the agent knows what the operation returns. It does not distinguish itself from close siblings like layerfs_fs_list or layerfs_fs_grep, which are the obvious alternatives for listing/searching paths.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use glob matching versus layerfs_fs_list (plain enumeration) or layerfs_fs_grep (content search), and no prerequisites or scope caveats. The agent must infer the choice from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_grepC
Read-onlyIdempotent

Search saved text using LayerFS pattern semantics, with pagination.

NameRequiredDescriptionDefault
refYes
pathNo
pagePosNo
patternYes
pageSizeNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds that results are paginated, which is genuine context, but it doesn't say what pattern dialect is accepted, what the default page size is, or what happens at the end of pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the core verb front-loaded and no filler. It is terse without being wasteful, though the pagination clause dangles without detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with no schema descriptions and no output schema, the definition is far too thin; an agent must guess pattern syntax, scoping via ref/path, and paging behavior. Only the existence of pagination is conveyed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across five parameters, so the description carries the full burden. It implies pattern and pagination semantics but leaves ref, path, pagePos bounds, and pageSize defaults completely undocumented, and never clarifies whether pattern is regex, glob, or literal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It gives a specific verb (search) and resource (saved text), but 'LayerFS pattern semantics' is undefined and nothing distinguishes it from the sibling layerfs_fs_glob, which also searches by pattern. An agent cannot tell whether this is a content search or a path search from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus layerfs_fs_glob, layerfs_fs_read, or layerfs_fs_list, and no prerequisites such as whether a workspace mount is required. The only usage clue is the pagination mention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_listC
Read-onlyIdempotent

List a saved directory, with pagination.

NameRequiredDescriptionDefault
refYes
pathNo
pagePosNo
pageSizeNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds that results are paginated, which is useful context beyond annotations, but it does not explain pagination defaults, ordering, limits, or how a partial result is signaled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. Its brevity is efficient, though it contributes to the under-specification captured in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters, a required but undocumented `ref`, no output schema, and no parameter descriptions in the schema, the definition is too thin for an agent to invoke it confidently. The annotations cover safety but not the semantics of the saved-directory reference or pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It implies 'path' and pagination via 'directory' and 'pagination', but leaves the required `ref` parameter entirely unexplained and gives no guidance on `pagePos`/`pageSize` defaults or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a clear verb ('List') and resource ('saved directory'), so the basic operation is identifiable. However, 'saved directory' is ambiguous in the LayerFS context, and the description does not distinguish this listing operation from siblings such as fs_glob, fs_stat, or sandbox_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this tool versus fs_glob, fs_grep, fs_stat, or operator_sandbox_list. No prerequisites, exclusions, or alternative-routing guidance are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_mkdirA

Create a directory and its parents on a branch, then checkpoint. An existing directory is a no-op.

NameRequiredDescriptionDefault
pathYes
branchYes
messageNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a non-readonly, non-destructive, open-world mutation, and the description adds real behavioral detail beyond them: recursive parent creation and an automatic checkpoint side effect. One ambiguity remains — it is unclear whether the checkpoint still fires when the directory already exists, which sits in mild tension with idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no filler, and the core action is front-loaded before the no-op caveat. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutating tool with no annotations on parameters, no output schema, and 0% schema coverage, the description covers the action and one edge case but omits the meaning of 'message', the side effect of checkpointing on the branch history, and any return information. It is callable but not fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning and largely does not. It implies the path semantics (directory plus parents) but says nothing about the absolute-path requirement encoded in the pattern, what 'branch' refers to, or that 'message' is presumably the checkpoint/commit message.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a directory and its parents') plus the scoping dimension ('on a branch'), which is enough for an agent to distinguish it from layerfs_fs_write, layerfs_fs_cp, and layerfs_fs_rm. It stops short of naming any sibling explicitly, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the operation itself; there is no explicit statement of when to prefer this over fs_write (which could also create paths) or fs_cp. The 'existing directory is a no-op' clause gives a small amount of decision-relevant context but no alternatives or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_mvA
Destructive

Move a path on a branch and checkpoint. Destination is exact and must not exist.

NameRequiredDescriptionDefault
toYes
fromYes
branchYes
messageNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose destructive, non-idempotent, open-world behavior, so the bar is lower; the description still adds real value by revealing that a checkpoint is created as part of the operation and that the destination must not already exist (a failure mode). It omits whether the source is removed atomically, whether directories are supported, and what the checkpoint contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action, with the critical constraint second. Nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent mutation with no output schema and zero schema description coverage, the description covers the essential precondition and side effect but leaves the 'message'/checkpoint semantics and the expected response unexplained. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry semantics: it maps 'branch' and 'to' (exact destination, must not exist) reasonably, and 'move a path' implies 'from'. However, the optional 'message' parameter is never explained, and path format constraints (absolute, leading slash) are only in the schema pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (move), resource (a path on a branch), and the side effect (checkpoint), which distinguishes it from sibling writes like layerfs_fs_cp, layerfs_fs_rm, or layerfs_fs_write. It never names a sibling or explicitly contrasts, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'move a path' plus the precondition 'destination must not exist', which tells the agent when a call will fail. There is no explicit when-to-use/when-not guidance or named alternative (e.g., cp+rm vs this atomic move).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_readA
Read-onlyIdempotent

Read UTF-8 lines from a branch, commit or layer. Lines are 1-based and inclusive. Follow nextLine and inspect truncated/lineTruncated; binary files are refused.

NameRequiredDescriptionDefault
refYes
pathYes
endLineNo
startLineNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe read-only/idempotent profile, so the bar is lower, and the description still adds real behavior: binary files are refused outright, output is UTF-8 line-based, and results may be truncated with a nextLine continuation token. It does not state size limits that trigger truncation, but the truncation signal itself is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core action front-loaded and the paging/truncation caveat following. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description names response fields (nextLine, truncated, lineTruncated) without describing their shape or how to resume a truncated read. For a paginated reader this leaves the caller to probe the response to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, with four bare parameters, so the description must compensate. It partially does: 'ref' is clarified as a branch, commit or layer, and startLine/endLine semantics are given (1-based, inclusive). It says nothing about the required leading-slash path format or what endLine defaults to when omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: reading UTF-8 lines from a branch, commit or layer. That distinguishes it from listing/stat/grep siblings in intent, though it never names a sibling explicitly (e.g. fs_grep for pattern search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance for the read itself ('follow nextLine', 'inspect truncated/lineTruncated') and a hard exclusion (binary files are refused), but it never says when to prefer this over fs_grep, fs_stat, or fs_list. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_rmC
Destructive

Remove a saved path on a branch, then checkpoint.

NameRequiredDescriptionDefault
pathYes
branchYes
messageNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and non-idempotence, so the safety profile is carried by structured data. The description adds the non-obvious behavior that removal is followed by a checkpoint, but is silent on whether directories are removed recursively, what happens to a missing path, or whether the checkpoint can be suppressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or boilerplate. It is compressed to the point of under-specification, but that gap is better attributed to completeness than to structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation tool with three undocumented parameters and no output schema, the description is too thin: error/not-found behavior, directory semantics, and the `message` parameter are all unaddressed. An agent could call it correctly only by guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it only loosely gestures at `path` and `branch` without adding format details such as the required absolute-path prefix. The `message` parameter is never mentioned at all, leaving its purpose (presumably the checkpoint message) entirely unstated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Remove a saved path on a branch") plus the follow-on effect ("then checkpoint"), so an agent can tell this deletes something rather than reading or moving it. "Saved path" is slightly odd phrasing for a filesystem entry, and no sibling is named, but the operation is unambiguous against fs_read/fs_write/fs_mv.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus alternatives, no precondition (e.g. branch must be mounted), and no exclusion guidance. The only implicit usage signal is "then checkpoint", which hints that a commit follows automatically, but that is inference rather than guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_statC
Read-onlyIdempotent

Read saved file or directory metadata.

NameRequiredDescriptionDefault
refYes
pathYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds only the word "saved," which is too vague to convey what state is being inspected or what happens when the path or ref does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, but the brevity here reflects under-specification rather than disciplined editing — there is nothing after the core claim to build on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two required, undocumented parameters, no output schema, and a 0% schema coverage rate, the description would need to explain the ref/path pair and what metadata is returned. It does neither, leaving the agent guessing before invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and does not meet it: "ref" is entirely unexplained (branch? commit? snapshot?) and "path" is only weakly implied by "file or directory." Neither required parameter's expected format or relationship is clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource pair ("Read" + "file or directory metadata") is identifiable and separates it from content reads like layerfs_fs_read and listings like layerfs_fs_list. However, "saved" is ambiguous — it could mean persisted commits, snapshots, or working-tree state — and no sibling is named to anchor the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose stat over layerfs_fs_read, layerfs_fs_list, or layerfs_operator_files_stats / layerfs_operator_store_stats, which all sound adjacent. The agent must infer the selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_fs_writeB
Destructive

Write UTF-8 or base64-decoded binary content on a writable branch, creating a deduplicated checkpoint. main changes only through publish.

NameRequiredDescriptionDefault
pathYes
branchYes
contentYes
messageNo
encodingNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description usefully discloses that each write produces a deduplicated checkpoint and that main is protected from direct writes. But it does not disclose what a write to an existing path does (overwrite vs. fail), nor what is destroyed despite destructiveHint=true, nor the return value, for a tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, no filler, with the core operation stated first and the branch-scope caveat second. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter destructive write with no output schema and zero schema documentation, the description is too thin: it omits the 'message' parameter entirely, says nothing about overwrite/error behavior on existing paths, and gives no hint of what the operation returns (e.g., a checkpoint/commit identifier).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden. It only illuminates 'encoding' (utf8 vs base64) and the writable-branch constraint on 'branch'; the required 'path' (must match ^\/) and especially the 'message' property — which content is oddly $ref'd to — remain completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Write UTF-8 or base64-decoded binary content') plus the scope constraint ('on a writable branch') and a side effect ('creating a deduplicated checkpoint'). It also carves out the main-branch case ('main changes only through publish'), which separates it from layerfs_branch_publish, though it does not distinguish itself from layerfs_fs_edit or layerfs_fs_apply.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'On a writable branch' and 'main changes only through publish' give one explicit routing rule toward layerfs_branch_publish for main. However, no guidance is offered on when to use this versus layerfs_fs_edit (in-place edit) or layerfs_fs_apply (multi-file/structured changes), which is the most likely ambiguity an agent faces in this sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_files_historyC
Read-onlyIdempotent

Page a saved file's revision diagnostics.

NameRequiredDescriptionDefault
refYes
pathYes
pagePosNo
pageSizeNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds only the idea of paging and 'revision diagnostics,' but does not explain ordering, page-size defaults, what the diagnostics contain, or any other 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is compact and front-loaded, but its brevity reflects under-specification rather than efficient communication. It contains no wasted text but also very little useful text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter read operation with no output schema, the description is not complete enough. It leaves unclear what revision diagnostics are returned, how pagination works, and what ref and path identify.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for four undocumented parameters. 'Page' hints at pagePos/pageSize, and 'saved file' hints at ref/path, but none of the parameters' meanings, formats, or constraints are clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb, 'Page,' and a resource, 'saved file's revision diagnostics,' but 'diagnostics' is vague and does not clearly distinguish this tool from siblings such as layerfs_operator_files_stats or layerfs_operator_store_commits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer its role from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_files_statsC
Read-onlyIdempotent

Read file storage diagnostics; physical attribution can be null.

NameRequiredDescriptionDefault
refYes
pathYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds only the cryptic caveat that 'physical attribution can be null' – it never explains what the diagnostics contain, what 'physical attribution' means, or what an agent should do when it is null, which matters since no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler, but its brevity stems from under-specification rather than efficiency – the second clause is opaque.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and zero-documented parameters, the description should explain the ref/path semantics and what diagnostics come back. It leaves both the inputs and the return content essentially unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%: neither 'ref' nor 'path' is documented in the schema, and the description does not mention either parameter or clarify what 'ref' refers to (project? branch? workspace?). With two required parameters and no compensation anywhere, the agent is guessing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource 'Read file storage diagnostics' is identifiable but 'diagnostics' is vague – an agent can't tell what stats are returned or how this differs from the sibling layerfs_fs_stat or layerfs_operator_store_stats. No sibling differentiation is offered.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 versus layerfs_fs_stat or layerfs_operator_store_stats, no prerequisites, and no exclusions. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_inspect_snapshotC

Read project history and all live Workspaces. Pass the previous version as since to receive kind=unchanged when applicable. Upstream discovery may reclaim stopped Sandbox records.

NameRequiredDescriptionDefault
sinceNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations say readOnlyHint=false and openWorldHint=true; the description earns credit for explaining why a 'read' is non-read-only by disclosing that upstream discovery may reclaim stopped Sandbox records. It still omits what is returned, whether reclamation can affect running sandboxes, and why the tool is non-idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what is read, then the delta mechanism, then the side effect. No filler, though the side-effect warning buried at the end arguably deserves earlier placement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and an undocumented parameter, the description should do more: the return shape (history vs. workspace entries, the kind fields) and the scope of sandbox reclamation are unstated. The key non-obvious behavior (reclamation) is at least disclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single `since` parameter has 0% schema coverage, so the description must carry it and partly does by explaining it takes 'the previous version' and triggers kind=unchanged results. It never specifies the format of that version string or what happens on an invalid/stale value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource ('project history and all live Workspaces') and an implicit read verb, but never says what a 'snapshot' inspection yields or how it differs from neighbors like layerfs_operator_workspace_changes or layerfs_operator_project_progress. An agent knows the domain but not the exact payload.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus the many sibling inspection tools, and no prerequisites or exclusions. The only usage hint is the mechanical 'pass the previous version as since', which is about a parameter, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_process_cancelB
Destructive

Cancel a background process by its persisted process id.

NameRequiredDescriptionDefault
processYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is known. The description adds only that the target is a background process; it says nothing about how cancellation is delivered, what happens to buffered output or exit status, or what an already-terminated or unknown id produces — a real gap for a destructive, non-idempotent tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler and the identifying constraint placed at the end of the clause. Efficient, though terseness here edges toward under-specification rather than economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Destructive, non-idempotent, one parameter at 0% schema coverage, and no output schema — the description would need to explain the effect of cancellation and the failure modes. Neither is covered, so an agent cannot predict what happens to the process or its output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the parameter, and it partially does: 'persisted process id' rules out an OS PID or a process name. It still doesn't say where that id is obtained (process_start/process_list output) or whether it must be the full id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — cancel a background process — plus the identifier type ('persisted process id'), which separates it from layerfs_operator_process_start and process_list. It doesn't explicitly name the sibling it replaces, but the action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call this when you need to stop a running background process, and the phrase 'persisted process id' hints the id comes from a prior start/list call. There is no explicit when-not condition (e.g. already-finished processes) and no named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_process_listA
Read-onlyIdempotent

List the project's background processes, including their Sandbox ids.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds that results include Sandbox ids, which helps an agent know what it gets back, but it says nothing about ordering, staleness, or whether only currently-running processes are returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler; the resource being listed and the key included field are both front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no input parameters, no output schema, and rich annotations, the description covers what an agent needs to select and call the tool. The only gap is whether terminal/finished processes are included, which a caller might reasonably wonder about.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a parameterless tool is 4, and nothing in the text misleads about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and a specific resource ('the project's background processes'), plus the notable content of each entry (Sandbox ids). It doesn't explicitly name a sibling for contrast, but the verb/resource pair cleanly separates it from process_start and process_cancel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus process_start, process_cancel, sandbox_list, or project_progress. The usage is only inferable from the tool name; no prerequisites, scope conditions, or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_process_startB
Destructive

Start a supervised background command in a Workspace. Keep the returned process id; commit filesystem changes explicitly.

NameRequiredDescriptionDefault
wsYes
commandYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/openWorld/non-idempotent, so the bar is lower; the description still adds real value by disclosing that the process is background and supervised, that the returned id must be retained, and that filesystem changes must be committed explicitly — a non-obvious behavioral consequence. It stops short of saying what the commit path is or what the start call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler — the action leads and the operational caveats follow. Nothing extraneous, though it is arguably under-packed for the parameter complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent tool with a nested parameter object and no output schema, the description leaves too much unexplained: how ws/sandbox/image combine, what form the process id takes, and how commits relate to the running process.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is a nested 'ws' object with sandbox, path, and image fields plus a 'command' string. The description says nothing about any of these, leaving the agent to infer what a sandbox vs. path vs. image means from field names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Start a supervised background command in a Workspace.' An agent can distinguish it from foreground execution, though the description never names the obvious sibling (layerfs_workspace_exec) or process_list/process_cancel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Keep the returned process id' implies a follow-up with process_list/process_cancel but never states when to prefer this over layerfs_workspace_exec. Usage context is implied rather than declared, and no exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_project_progressA
Read-onlyIdempotent

Read same-process project initialization progress, or null if no Init is running. Counts are progress, not totals.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (`readOnlyHint`, `idempotentHint`, `destructiveHint=false`). The description adds useful behavioral context beyond that: it is same-process scoped, can return `null`, and its counts represent progress rather than totals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and followed by the important null and count semantics. Every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool, the description covers scope, null behavior, and count meaning, but with no output schema it does not describe the progress object's shape or what the counts measure. It is adequate for invocation but leaves return-value interpretation partially implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden. The description appropriately does not invent parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific read operation (`Read`) and resource (`project initialization progress`), and adds scope (`same-process`) plus a null condition. It is clear, but it does not explicitly contrast itself with nearby siblings such as `layerfs_project_init` or `layerfs_operator_process_list`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage context: read this when checking same-process project initialization progress, with `null` when no Init is running. It does not name alternative tools or explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_sandbox_listA

Discover the project's Sandboxes and their images. Upstream may reclaim stopped Sandbox records during discovery.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The second sentence adds real value beyond the annotations: it explains that discovery has a side effect (upstream may reclaim stopped Sandbox records), which accounts for readOnlyHint=false and idempotentHint=false on what looks like a list call. It stops short of saying whether results are cached or what fields a record contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: the primary purpose first, then the surprising side effect. Nothing is repeated from the title or annotations, and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only-ish discovery call with no output schema, the description is nearly sufficient: it names what comes back (sandboxes and their images) and warns about reclamation. Auth/permission requirements are the only notable omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to compensate for. The empty schema matches the parameterless claim in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ("Discover") plus specific resource ("the project's Sandboxes and their images"), scoped to a project. It is clearly distinguishable from the many fs/workspace/branch siblings, though it does not name those siblings to reinforce the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource name rather than stated: an agent can infer it is the discovery/enumeration call for sandboxes, but there is no explicit 'use this when...' nor any pointer to an alternative for related needs. The reclamation caveat gives partial context about when calling has consequences.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_store_commitsC
Read-onlyIdempotent

Read checkpoint records with storage diagnostics.

NameRequiredDescriptionDefault
branchYes
pagePosNo
pageSizeNo

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description's only extra signal is the vague phrase 'with storage diagnostics', which never says what diagnostics are included or whether the read is paginated. With annotations doing the safety work, the bar is lower, but 'storage diagnostics' adds almost no usable 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. However, its brevity comes at the cost of substance rather than from efficiency — there is nothing left to trim but also very little conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 undocumented parameters, no output schema, and several plausible sibling alternatives, the description is far too thin. It neither explains the branch/pagination inputs nor clarifies what 'storage diagnostics' returns in the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 3 parameters, so the description carries the full burden — and it says nothing about 'branch' (required), 'pagePos', or 'pageSize'. An agent cannot tell that the tool is branch-scoped or paginated from the description at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Read' and resource 'checkpoint records' give a rough sense of purpose, but it's unclear whether 'checkpoint records' are the same as the commits implied by the tool name. It does nothing to distinguish itself from close siblings like layerfs_branch_list_commits or layerfs_operator_store_stats, so an agent can't confidently pick it on description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 versus layerfs_branch_list_commits, layerfs_operator_store_stats, or layerfs_operator_store_overwritten. No prerequisites, no exclusions, no alternative routing — the agent must guess from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_store_overwrittenC
Read-onlyIdempotent

Page layers overwritten by a publication, newest first.

NameRequiredDescriptionDefault
layerYes
pagePosNo
pageSizeNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful ordering (newest first) and hints at pagination, but does not explain what an 'overwritten' layer is, whether pagination has defaults, or what the result set contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and contains no filler. It is efficient, though its brevity contributes to the gaps in parameter and scope explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero schema description coverage, three parameters, and no output schema, one terse sentence is not enough. An agent would not know what 'layer' identifies, how pagination defaults work, or exactly which layers are considered overwritten by a publication.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, but it explains none of the three parameters. The required 'layer' parameter is never described, and pagePos/pageSize are only weakly implied by the word 'page'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (layers overwritten by a publication) and an ordering (newest first), so an agent can tell roughly what it returns. However, it does not differentiate this tool from siblings such as layerfs_operator_store_commits or layerfs_operator_files_history, and 'page' is an unusual verb that leans on the tool name for meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like store_commits, files_history, or workspace_overlay, and no prerequisites or exclusions are stated. The only usage signal is the implied listing/paging behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_store_statsB
Read-onlyIdempotent

Read physical/logical storage and deduplication statistics. Null measurements remain null.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety behavior is fully covered by structured fields. The description adds one useful data-semantics note ('Null measurements remain null'), but says nothing about cost, aggregation window, or what the returned measurements look like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the resource being read, with the null-behavior note following. Nothing extraneous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no parameters, the description carries the burden of conveying what the statistics response contains. It hints at null results but does not enumerate the measurement categories (physical vs logical vs dedup) or return shape, leaving an agent with a partially specified result set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to explain; the baseline of 4 applies. The description correctly does not invent inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and a specific resource (physical/logical storage and deduplication statistics), which is clear enough to distinguish from commit/history-oriented siblings like layerfs_operator_store_commits and layerfs_operator_store_overwritten. However, it does not explicitly address its closest sibling layerfs_operator_files_stats, so an agent must infer which stats tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus layerfs_operator_files_stats or the other store_* tools, and no prerequisites or context conditions. Usage is only implied by the name and purpose sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_workspace_changesC
Read-onlyIdempotent

Page pending Workspace changes.

NameRequiredDescriptionDefault
wsYes
pagePosNo
pageSizeNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds that results are 'pending' changes and that the tool pages them, but it does not disclose ordering, pagination defaults, whether changes accumulate, or what 'pending' means in this system.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The four-word fragment is concise and front-loaded, but it is under-specified for a nested pagination tool. Brevity here removes necessary context rather than making the definition efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested ws object, zero schema description coverage, and paging parameters, the description is far too thin. Annotations cover the read-only safety profile, but the agent still lacks enough context to know what the ws fields mean or how paging is expected to work.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description says nothing about ws, sandbox, path, image, pagePos, or pageSize. With a nested required ws object and paging parameters, the description must compensate for the undocumented schema, but it provides no parameter semantics at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase gives a specific operation ('Page') and resource ('pending Workspace changes'), so an agent can tell it is a paginated listing of uncommitted workspace changes. It does not explicitly distinguish itself from nearby siblings such as layerfs_operator_workspace_overlay or layerfs_workspace_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The word 'pending' implies a narrow use case, but the description never routes the agent to or away from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_operator_workspace_overlayC
Read-onlyIdempotent

Read a mounted Workspace's overlay statistics.

NameRequiredDescriptionDefault
wsYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only the implicit prerequisite that the workspace be mounted; it does not say what overlay statistics include, how they are returned, or what happens if the workspace is not mounted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or restated title. It is efficient, though efficiency here partly reflects under-specification rather than deliberate brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only statistics tool with a nested, fully undocumented parameter object and no output schema, the description does not explain the metric being read or how to identify the target workspace. It leaves too much for the agent to infer before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the single nested `ws` object has three undocumented fields (sandbox, path, image). The description only implies that `ws` identifies a mounted workspace and gives no meaning for sandbox, path, or image, leaving the parameter essentially unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) and resource (a mounted Workspace's overlay statistics), but 'overlay statistics' is unexplained jargon and nothing distinguishes it from nearby siblings like layerfs_operator_workspace_changes, layerfs_operator_store_stats, or layerfs_operator_files_stats. An agent can tell it is a read of some workspace stats, but not clearly which stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of alternatives among the many statistics/inspection siblings. The only implied precondition is that the workspace be mounted, which is not framed as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_project_initA

Initialize this server's project from a host directory. Explicit, one-time import; requires Linux and an installed native addon. Never called automatically.

NameRequiredDescriptionDefault
sourcePathYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations: discloses platform requirement (Linux), a native addon dependency, one-time semantics (consistent with idempotentHint=false), and that it is never invoked automatically. Still silent on failure behavior, what state the project ends up in, and whether re-invocation errors out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then constraints. No filler; every clause carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no description of the resulting state, so the agent doesn't know what to check afterward or how this relates to layerfs_project_list_branches / layerfs_status. Prerequisites are covered, but the post-condition and error surface are not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single parameter sourcePath is undocumented in the schema. The description partially compensates by saying it comes 'from a host directory', which implies a host filesystem path rather than a workspace path, but adds nothing about absolute-path requirements or path resolution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Initialize this server's project from a host directory', and 'one-time import' clarifies the nature of the operation. No sibling performs project initialization, so it is distinguishable, though it never explicitly contrasts with layerfs_workspace_mount or layerfs_project_list_branches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Explicit, one-time import' and 'Never called automatically' give clear when-to-use framing plus a when-not (don't invoke implicitly). It stops short of naming alternatives or stating what to do if a project already exists, so it stops below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_project_list_branchesB
Read-onlyIdempotent

List project branches. Follow hasMore with pagePos + items.length.

NameRequiredDescriptionDefault
pagePosNo
pageSizeNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile needs no repeating. The description does add value by disclosing the pagination contract (hasMore plus items.length), but it never describes what a branch record contains or what the default page size is. That partial disclosure is a 3, not higher.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse sentences, front-loaded with the purpose, with every clause carrying either intent or the pagination rule. There is no filler or restated metadata.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description names only hasMore and items and does not say which branch fields come back. Combined with the undocumented pageSize default, an agent can paginate correctly but cannot anticipate the payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry the parameter burden, and it only partly covers one parameter. For a pageSize parameter with a documented 1–1000 range and an unstated default, that leaves a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"List project branches" gives a specific verb and resource, so the agent immediately knows what it enumerates. It does not distinguish this from sibling branch tools such as layerfs_branch_list_commits or layerfs_branch_fork, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The pagination instruction ('Follow hasMore with pagePos + items.length') implies when to call again, which is real operational guidance. However, nothing states when to prefer this over related tools like layerfs_branch_list_commits or layerfs_operator_workspace_changes, and no prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_statusA
Read-onlyIdempotent

Check configuration, automatic runtime preparation progress, pinned upstream revision and exposed methods. This read does not initialize project data or trigger another preparation attempt.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: that this read will not lazily initialize project data nor kick off a preparation attempt — something an agent could easily assume a status call does. It does not describe the shape of the response, but the core behavioral caveat is well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with no filler: the first enumerates what is reported, the second immediately qualifies the side-effect boundary. Slightly dense enumeration of four report areas in one sentence, but nothing that fails to earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, rich annotations, and no output schema, the description carries most of the burden and does cover what the call reports plus its key non-effect. The only shortfall is not clarifying its relationship to the overlapping workspace_status / project_progress siblings, which would help an agent pick correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters with additionalProperties=false, so there is nothing for the description to disambiguate. The baseline for a parameterless tool applies; no parameter-level gaps exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb ('Check') and enumerates the resources it reports on: configuration, runtime preparation progress, pinned upstream revision, and exposed methods. That is far more specific than a tautology. It stops short of distinguishing this tool from closely named siblings such as layerfs_workspace_status and layerfs_operator_project_progress, leaving overlap ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'This read does not initialize project data or trigger another preparation attempt' implies the safe, side-effect-free context in which to call it, which is a useful usage signal. However, no alternative is named — it never says to use layerfs_project_init to actually trigger preparation or layerfs_operator_project_progress for per-project detail, so the agent must infer routing among several overlapping status-style siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_workspace_commitB
Destructive

Checkpoint Workspace changes and merge against its current branch head once. Conflicts preserve the Workspace for inspection. force is passed unchanged to LayerFS.

NameRequiredDescriptionDefault
wsYes
forceNo
messageNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false; the description adds genuinely new context by explaining that conflicts preserve the Workspace for inspection, which materially qualifies the destructive hint. It also clarifies the merge targets the branch head exactly once, implying repeated calls create repeated checkpoints. The one weakness is the deferral 'force is passed unchanged to LayerFS', which flags the parameter without disclosing what it does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no filler, and the core action is front-loaded ahead of the conflict caveat. The final clause about force is low-value given it explains nothing, but the overall size is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no output schema, the description covers the important conflict outcome but omits what a successful commit returns (commit id? branch head?) and leaves the required ws object and message undocumented. An agent could call it, but not confidently predict results or the effect of force.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and 3 parameters are present, including a required nested ws object with sandbox/path/image fields that the description never touches. Only 'force' is named, and it is explicitly left unexplained ('passed unchanged to LayerFS'). 'message' is not mentioned at all, so the description does not compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: checkpoint Workspace changes and merge them against the current branch head once. That is clearly distinguishable from read-only siblings like layerfs_operator_workspace_changes. It never names the closest alternative (layerfs_branch_merge), so sibling differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what happens, not when to call it. There is no guidance on when to use this instead of layerfs_branch_merge, layerfs_workspace_status, or layerfs_workspace_unmount, and no prerequisites (e.g., changes must exist, workspace must be mounted). Usage can only be inferred from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_workspace_execA
Destructive

Run a command in a mounted Workspace; returns complete stdout/stderr and exitCode. Does not checkpoint: call workspace.commit afterward, including after a failing command. A client timeout does not establish that the command stopped; inspect before retrying.

NameRequiredDescriptionDefault
wsYes
commandYes
messageNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important behavior: output includes complete stdout/stderr and exitCode, the command does not checkpoint state, and a client timeout does not prove the command stopped. This adds meaningful operational context about side effects and retry safety, though it does not mention permissions or concurrency limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences, front-loaded with what the tool does and followed by critical operational caveats. Every sentence carries useful information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers return values, checkpointing behavior, and timeout retry safety, which is useful given the destructive and open-world annotations. However, it leaves the caller without guidance on the nested workspace parameter structure, a notable gap for a tool with no parameter descriptions and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation of the three parameters, including the nested workspace object fields (sandbox, path, image) or the message field. It implies a ws and command are needed but does not compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Run a command in a mounted Workspace,' and notes that it returns stdout/stderr and exitCode. It clearly identifies the core operation, though it does not explicitly differentiate this tool from sibling process-management tools such as process_start.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete post-execution workflow guidance: call workspace.commit afterward, including after a failing command, and inspect before retrying after a client timeout. It stops short of explaining when to choose this tool over process_start or other siblings for background or long-running commands.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_workspace_mountA

Mount a branch as an isolated writable FUSE Workspace. LayerFS chooses or creates its Sandbox. Save the returned {sandbox,path} handle; optional image is a local immutable sha256 digest.

NameRequiredDescriptionDefault
imageNo
branchYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnly=false, destructive=false, openWorld=true, idempotent=false) already flag this as a mutating, side-effecting call, and the description adds real substance beyond that: it discloses that LayerFS may create a Sandbox, that a {sandbox,path} handle is returned, and that the image is a local immutable sha256 digest. It stops short of describing lifecycle obligations (unmount/commit) or failure behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action, then side-effect, then return-handle guidance. No filler, though the phrase 'Save the returned {sandbox,path} handle' is slightly terse and assumes the reader knows what the handle is used for.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the minimum by naming the return shape ({sandbox,path}). For a stateful mount tool, though, it omits lifecycle context an agent needs — whether an unmount is required, what happens to the sandbox on failure, and whether the mount is scoped to a session.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain that 'image' is a local immutable sha256 digest, adding meaning beyond the regex pattern, and 'Mount a branch' implies branch identifies the branch to mount. However neither parameter's accepted values or constraints are spelled out, leaving a partial gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Mount) plus resource (a branch) and the resulting object (isolated writable FUSE Workspace), which cleanly separates it from siblings like layerfs_workspace_unmount, layerfs_workspace_commit and layerfs_workspace_exec. An agent knows exactly what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: mounting is clearly the prerequisite step before exec/fs operations, and 'Save the returned {sandbox,path} handle' hints at follow-on calls. But it never explicitly says when to prefer this over alternatives or what prerequisites (branch must exist, etc.) are required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_workspace_statusB
Read-onlyIdempotent

Read a mounted Workspace's pending state and branch head.

NameRequiredDescriptionDefault
wsYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered elsewhere. The description adds what is conceptually returned ('pending state and branch head'), but says nothing about behavior when the workspace is not mounted, what 'pending' means, or the shape of the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with the verb and resource front-loaded and zero filler. It is arguably too terse for a nested-object tool, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only status call with full annotation coverage and no output schema, the description says enough to attempt the call. However, with a 0%-documented nested parameter and no mention of error conditions or return shape, an agent could still misfill ws or misunderstand 'pending state'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter is a nested object with required sandbox and path plus an optional image — none of which is explained in the description. The word 'mounted Workspace' loosely hints that ws identifies an existing mount, but it does not compensate for the total lack of field-level guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('read') and specific resources ('pending state and branch head') scoped to a 'mounted Workspace'. Clear on its own, but does not differentiate from close siblings such as layerfs_status, layerfs_operator_workspace_changes, or layerfs_operator_workspace_overlay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this versus layerfs_status or workspace_changes, no prerequisites (workspace must be mounted?), and no exclusions. The agent must infer the selection rule from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerfs_workspace_unmountA
Destructive

End a Workspace. Dirty state is refused unless discard=true. History is retained; idle Sandboxes are reclaimed by LayerFS.

NameRequiredDescriptionDefault
wsYes
discardNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true. The description adds meaningful behavior beyond those fields: dirty-state refusal, the discard escape hatch, history retention, and idle Sandbox reclamation by LayerFS.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no waste. The core action is front-loaded, followed by the key discard constraint and lifecycle consequences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the destructive profile and there is no output schema, so the description does not need to explain return values. It covers the main lifecycle behavior, but the nested ws object remains underspecified, which is a clear gap for an agent constructing the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the discard parameter's role for dirty state, but it says nothing about the nested ws fields sandbox, path, or image, leaving the required workspace object largely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"End a Workspace" names a specific verb and resource, and the pairing with layerfs_workspace_mount is obvious from the sibling set. It does not explicitly call out alternatives, but an agent can identify what this tool does without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes one useful conditional rule: dirty state is refused unless discard=true. It does not explain when to choose unmount versus commit, status, or cleanup-oriented siblings, and it omits any prerequisites or exclusions beyond that discard condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 41 tool updatesv0.1.0
    • First observedlayerfs_branch_diff_branches
    • First observedlayerfs_branch_diff_commits
    • First observedlayerfs_branch_fork
    • First observedlayerfs_branch_list_commits
    • First observedlayerfs_branch_merge
    • First observedlayerfs_branch_publish
    • First observedlayerfs_fs_apply
    • First observedlayerfs_fs_blame
    • First observedlayerfs_fs_cp
    • First observedlayerfs_fs_diff_files
    • First observedlayerfs_fs_edit
    • First observedlayerfs_fs_glob
    • First observedlayerfs_fs_grep
    • First observedlayerfs_fs_list
    • First observedlayerfs_fs_mkdir
    • First observedlayerfs_fs_mv
    • First observedlayerfs_fs_read
    • First observedlayerfs_fs_rm
    • First observedlayerfs_fs_stat
    • First observedlayerfs_fs_write
    • First observedlayerfs_operator_files_history
    • First observedlayerfs_operator_files_stats
    • First observedlayerfs_operator_inspect_snapshot
    • First observedlayerfs_operator_process_cancel
    • First observedlayerfs_operator_process_list
    • First observedlayerfs_operator_process_start
    • First observedlayerfs_operator_project_progress
    • First observedlayerfs_operator_sandbox_list
    • First observedlayerfs_operator_store_commits
    • First observedlayerfs_operator_store_overwritten
    • First observedlayerfs_operator_store_stats
    • First observedlayerfs_operator_workspace_changes
    • First observedlayerfs_operator_workspace_overlay
    • First observedlayerfs_project_init
    • First observedlayerfs_project_list_branches
    • First observedlayerfs_status
    • First observedlayerfs_workspace_commit
    • First observedlayerfs_workspace_exec
    • First observedlayerfs_workspace_mount
    • First observedlayerfs_workspace_status
    • First observedlayerfs_workspace_unmount

TDQS

C2.8/5.0

Scored across 41 tools

Disambiguation2/5

Several tools have very close boundaries: branch_diff_commits and branch_diff_branches have essentially identical descriptions, fs_apply overlaps with the individual fs_write/edit/rm/mkdir/cp/mv tools, and command execution is split between workspace_exec and process_start. The many operator diagnostic/read tools also blur together despite prefix grouping.

Naming Consistency3/5

Names use consistent snake_case and useful domain prefixes (fs_, workspace_, branch_, operator_), but action ordering is mixed: operator_sandbox_list and operator_process_start use noun-verb, while operator_inspect_snapshot uses verb-noun and others are noun-noun. The patterns remain readable but are not fully uniform.

Tool Count2/5

At 41 tools this surface is heavy for a single server, even one covering filesystem, branches, workspaces, processes, and diagnostics. Many tools could likely be consolidated, especially the diff, diagnostic, and fs mutation families.

Completeness4/5

The server covers a broad lifecycle: file read/write/edit/remove/copy/move, branch fork/merge/publish, workspace mount/unmount/commit/exec, process control, and extensive diagnostics. Minor gaps remain, such as branch deletion/rename or filesystem permission/symlink operations.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides coding agents with a durable, revision-aware project workspace for semantic context, governed source changes, verification, task checkpoints, and observability through an MCP interface.
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A minimal, security-focused MCP server that provides structured read/write access to exactly one local workspace, with built-in local Git checkpoints and rollback.
    1
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Coordination protocol for parallel coding agents, built above Git. The MCP server exposes the full 17-tool lifecycle over stdio: register agents, publish intents with semantic scopes and declared operations, claim work, check for conflicts before code is written, publish ChangeSets, run trusted named verification checks, and record accepted work. Deterministic rules raise findings when two agents'
    18
    521
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients to safely read, write, edit, search, and optionally run commands within one or more named project workspaces, while maintaining a work journal and tracking changes.
    19
    MIT