embodied-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@embodied-mcpcheck the quality of ./datasets/aloha_pick_cube and show any issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Embodied Data Studio
给具身智能数据平台开发者的一套工具:格式识别 / 校验 / 质检 / 标注任务生成 / 格式转换 / 数据集编目 / 项目脚手架,同时以三种形态提供——
形态 | 入口 | 给谁用 |
Python 库 |
| 平台后端、离线脚本、CI |
命令行 |
| 终端里的快速巡检、流水线步骤 |
MCP 服务 |
| Codex、Claude Code、DeepSeek、Cursor 等任意支持 MCP 的模型/客户端 |
DSH 插件 |
| DeepSeek Harness,把上面 13 个工具直接变成 agent 工具 |
核心逻辑只有一份 Python 实现,模型侧无论走 MCP 还是 DSH 插件,用的都是同一套行为,不会出现"Codex 里能跑、DeepSeek 里报错"的分裂。
┌──────────────┐ ┌──────────────┐ ┌───────────────┐
│ Codex CLI │ │ Claude Code │ │ DeepSeek/DSH │
└──────┬───────┘ └──────┬───────┘ └───────┬───────┘
│ MCP (stdio) │ MCP (stdio) │ MCP │ 插件工具
└──────────┬───────┴───────────────────┘ │
▼ ▼
embodied_core.mcp_server ◄──── dsh-embodied-data (JS 桥接)
│
▼
embodied_core (Python:formats / validate / quality / convert / catalog / scaffold)30 秒上手
# 1) 装库(仓库内开发用 PYTHONPATH,正式用 pip install -e .)
pip install -e ".[all]"
# 2) 看一眼是什么格式
embodied detect ./datasets/aloha_pick_cube
# 3) 体检 + 打分
embodied validate ./datasets/aloha_pick_cube
embodied quality ./datasets/aloha_pick_cube --json
# 4) 转成 LeRobot v2.1,给训练用
embodied convert ./datasets/aloha_pick_cube ./out/lerobot --target lerobot
# 5) 把整个数据盘编目,之后按条件搜
embodied catalog index /data/embodied --db catalog.db
embodied catalog search --db catalog.db --robot so100 --min-episodes 50Python 里同样直接:
from embodied_core import open_dataset, validate
dataset = open_dataset("./datasets/aloha_pick_cube") # 自动识别 7 种格式
ids, columns = dataset.frames() # 数值列,numpy 二维
report = validate("./datasets/aloha_pick_cube")
print(report["score"], [i["code"] for i in report["issues"]])Related MCP server: ReleaseGuard MCP Server
能力一览
格式识别(detect_dataset):LeRobot v2.1/v3.0、HDF5(robomimic / 通用组)、rosbag2、rosbag1、MCAP、RLDS/TFRecord、canonical JSONL。识别基于目录结构与文件魔数,不看扩展名。
校验(validate_dataset):8 组检查——结构、元数据、特征词表、episode 一致性、fps 一致性、LeRobot 规范(含 v3 chunk/file 编号连续性)、parquet 可读性、HDF5 空 demo。每条问题带 code / severity / scope / hint,并按 error×30、warn×8、info×1 扣分,score >= 80 才建议入库。
质检(quality_report):逐特征统计(nan/inf 比例、分位数、范数、近零比)、鲁棒异常检测(median + 1.4826·MAD,跳变/停滞/非有限值窗口)、按运动量切 moving/idle 段。记账列(episode_index、frame_index…)不参与异常检测,避免把编码器噪声当物理问题。
标注辅助(labeling_tasks):把异常窗口和运动段变成可交付的标注任务清单,带固定回答格式,方便回灌。
转换(convert_dataset):任意可读格式 ⟷ canonical JSONL / LeRobot v2.1,转换时记录被丢弃的非数值特征。
编目(catalog_*):SQLite 一张表,按路径增量索引(mtime+size 标记),支持文本/格式/机器人型号/episode 数/时长/分数过滤。
脚手架(scaffold_project):platform(平台骨架 + 数据契约 + 质量门)/ adapter(新格式适配器 + 测试)/ pipeline(摄取流水线 + 测试),生成的文件都带类型标注,可直接跑。
文档
文档 | 内容 |
安装、第一个数据集、常见工作流 | |
支持矩阵、每种格式的探测依据、如何新增适配器 | |
13 个 MCP 工具的参数与返回结构 | |
命令、退出码、JSON 输出形态 | |
Codex / Claude Code / DeepSeek / Cursor / DSH 的接入配置 | |
DSH 插件安装、配置项、自检 | |
插件包说明 |
目录结构
D:\具身平台插件开发\
├── src/embodied_core/ # Python 核心(唯一的事实来源)
│ ├── formats/ # 7 个格式适配器 + registry
│ ├── validate.py # 8 组检查、评分
│ ├── quality.py # 统计、异常检测、切段、标注任务
│ ├── convert.py # JSONL / LeRobot 目标格式
│ ├── catalog.py # SQLite 编目与检索
│ ├── scaffold.py # 项目模板
│ ├── cli.py # embodied 命令
│ └── mcp_server.py # 零依赖 MCP stdio 服务
├── packages/dsh-plugin/ # 零依赖 ESM 插件(JS 只做 MCP 桥接)
├── tests/ # unittest(pytest 兼容),91 项
├── tools/ # 夹具生成 + 端到端脚本
├── examples/ # 可直接运行的示例
└── docs/开发
python -m unittest discover -s tests -t . # 91 项单元测试,或用 pytest
python tools/e2e.py # 16 项端到端(需先 tools/make_fixtures.py 生成夹具)
node packages/dsh-plugin/scripts/probe.mjs # 插件自检(mock cordis ctx)夹具、离线 wheel 与本地依赖树放在 .devtools/(已在 .gitignore 中):tools/make_fixtures.py 生成 .devtools/fixtures/,pip install 不可用时把 wheel 解压到 .devtools/pydeps/ 并加进 PYTHONPATH。
Python 依赖全部可选:核心只需要 numpy;parquet 要 pyarrow,HDF5 要 h5py,MCAP 要 mcap。缺依赖时对应适配器会给出明确的 FramesUnavailable(reason, install),而不是抛一坨 ImportError。
状态
核心库、CLI、MCP、DSH 插件均已跑通(91 项单元测试 + 16 项端到端 + 插件 probe)。
插件已装进本机 profile(
~/.dsh/profiles/desktop)并在 Harness 会话里实测:14 个embodied_*工具可用,live 调用 detect / summarize / quality 返回真实数据。RLDS/MCAP 目前是 metadata 级支持:能识别、统计、校验,但读不到逐帧张量(需要 TensorFlow / CDR schema 解码),
frames()会显式抛FramesUnavailable。视频流(LeRobot
observation.images.*)只做元数据描述,不解码像素。
Available Tools
13 toolscatalog_indexB
Scan a directory tree, load every dataset found and upsert its metadata into a SQLite catalog. Incremental: unchanged datasets are skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| db | Yes | Catalog SQLite path | |
| root | Yes | ||
| force | No | ||
| validate | No | Also store a health score | |
| max_depth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the key behavior that the operation is an upsert and that unchanged datasets are skipped. However, it never says what upsert overwrites in existing catalog rows, whether the operation is reversible, how errors on unreadable datasets are handled, or how expensive a large tree scan is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary action and immediately followed by the one behavioral caveat that matters most. No filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutating tool with no annotations, no output schema, and 40% schema coverage, the description leaves significant gaps: return value, force/max_depth semantics, overwrite scope, and failure behavior are all unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% (only db and validate are documented), and the description adds nothing about root, max_depth, or force — 'force' in particular is left for the agent to guess as the override for the incremental skip. Besides a weak hint at the skip behavior, no parameter meaning is clarified beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb chain (scan, load, upsert) against a specific resource (directory tree → SQLite catalog), which clearly separates it from read-only siblings like catalog_search and catalog_stats. It never names those siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Incremental: unchanged datasets are skipped' implies the tool's role for repeat runs, but there is no explicit when-to-use/when-not guidance and no mention of the natural follow-up tools (catalog_search, catalog_stats, quality_report). An agent must infer the workflow placement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalog_searchC
Query the dataset catalog by free text, format, robot type, episode count, duration or minimum health score.
| Name | Required | Description | Default |
|---|---|---|---|
| db | Yes | ||
| text | No | ||
| limit | No | ||
| format | No | ||
| min_score | No | ||
| robot_type | No | ||
| min_duration | No | ||
| min_episodes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full behavioral burden. It says nothing about read-only semantics, pagination behavior of 'limit', default ordering, result size, or what a result entry contains — only the filter dimensions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, zero filler. Every listed item maps to a real parameter and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An eight-parameter search tool with no annotations, no output schema, and no schema descriptions needs more than a one-line field list. The required 'db' scope, 'limit' pagination semantics, and the shape of returned catalog entries are all undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate: it names six of the eight parameters (text, format, robot_type, min_episodes, min_duration, min_score). However, it omits the required 'db' parameter and 'limit' entirely, and phrases the numeric filters as bare nouns ('episode count', 'duration') leaving ambiguous whether they are minimum thresholds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Query the dataset catalog') and enumerates the filter dimensions it accepts, so the agent knows this is the search/filter entry point. It does not distinguish itself from siblings like catalog_index, catalog_stats, or list_formats, which are the likeliest confusion points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative is given. An agent must infer from the name alone whether this or catalog_index / catalog_stats is correct for listing datasets, and there is no mention of prerequisites such as which 'db' to target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
catalog_statsB
Totals for the catalog: datasets per format, episodes, frames, duration, robot types and last index time.
| Name | Required | Description | Default |
|---|---|---|---|
| db | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the return metrics, which is useful since there is no output schema, but it does not explicitly state that this is a read-only aggregation, what the required database parameter represents, or any access constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that enumerates the returned totals without waste. Every phrase contributes to understanding what the tool reports.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple aggregation tool with no output schema and no annotations, the description adequately lists the return metrics. However, it leaves the required parameter undocumented and provides no usage guidance, so it is only partially complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter 'db' has 0% schema description coverage, and the description never mentions or explains it. The description does not compensate for the schema gap by clarifying whether 'db' is a database name, catalog identifier, or path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool returns aggregate catalog totals, enumerating the specific metrics: datasets per format, episodes, frames, duration, robot types, and last index time. It is distinguishable from list-oriented siblings like catalog_search or list_formats, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives such as catalog_index, catalog_search, or list_formats. Usage is only implied by the mention of totals, and there are no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_datasetB
Convert a dataset to another layout: 'jsonl' (canonical, dependency-free) or 'lerobot' (v2.1 parquet, needs pyarrow). Numeric features only; camera streams are reported, not re-encoded.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| target | No | jsonl | |
| episodes | No | ||
| overwrite | No | ||
| destination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose real behavioral facts — the pyarrow dependency for lerobot and that camera streams are reported rather than re-encoded. But it says nothing about the destructive/side-effecting nature of writing to destination, what `overwrite` does when false, or what the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, zero filler, with the format choice and its constraints front-loaded. Every clause (dependency requirements, numeric-only restriction, camera handling) adds information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation tool with no annotations and no output schema, the description covers format semantics and data-type scope well but leaves the episode-subset selector, overwrite behavior, and result expectations unexplained. It is adequate but noticeably incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain all five parameters. It does a good job on `target`, giving meaning and requirements for both enum values, but `source`, `destination`, `episodes`, and `overwrite` are entirely undocumented — most of the schema remains opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb (convert) and resource (dataset) plus the exact target layouts, which clearly separates it from siblings like validate_dataset, summarize_dataset, or detect_dataset. It doesn't explicitly name a sibling or competing operation, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description helps choose the target format by giving requirements ('jsonl' is dependency-free, 'lerobot' needs pyarrow), which is useful in-tool guidance. However, it never says when to convert at all, when to prefer other siblings (e.g., detect_dataset first), or what preconditions the source must satisfy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_datasetA
Identify the on-disk format of an embodied-AI dataset (LeRobot, HDF5/robomimic, MCAP, rosbag1/2, RLDS, canonical JSONL) with confidence and evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add one valuable behavioral fact beyond the schema — the result includes confidence and evidence, not just a bare format label — and "on-disk" implies a read-only inspection. However, it says nothing about failure behavior for unrecognized formats, whether the whole tree is scanned (cost/latency on large datasets), or whether a path must exist locally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with zero filler; the format enumeration and the confidence/evidence clause each carry information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter detection tool with no output schema, the description is nearly sufficient: it names inputs, candidate outputs, and that results come with confidence and evidence. The remaining gap is the unrecognized-format/failure path, which an agent would want before calling it on arbitrary paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter at 100% schema description coverage ("File or directory to inspect"), so the schema already does the work and baseline 3 applies. The description adds no path semantics such as local-vs-remote, symlink handling, or depth of inspection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("Identify") plus resource ("on-disk format of an embodied-AI dataset"), with the candidate formats enumerated so an agent knows exactly what output to expect. It is distinguishable from validate_dataset/convert_dataset/summarize_dataset by the format-identification framing, but it never explicitly contrasts with list_formats, which is the nearest ambiguous sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the pre-flight step when the format of a given path is unknown. There is no explicit when/when-not, no mention of ordering relative to validate_dataset or convert_dataset, and no disambiguation from list_formats (supported formats) or catalog_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
labeling_tasksC
Generate an annotation manifest: each task names an episode, a frame range, cues and a concrete question, ready for a human reviewer or a vision-language model.
| Name | Required | Description | Default |
|---|---|---|---|
| z | No | ||
| out | No | Optional path to write the manifest JSON | |
| path | Yes | ||
| max_tasks | No | ||
| include_segments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the manifest's content shape, which is genuinely useful, but says nothing about whether a file is written, where, whether it overwrites existing output, or whether the operation is read-only or mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: the action first, then the manifest's structure, then the consumer. Every clause adds information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, 20% schema coverage, no annotations, and no output schema, the description leaves too much unsaid — notably what 'z', 'max_tasks', and 'include_segments' control and whether a file is produced at 'out'. Adequate for understanding the artifact, inadequate for calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate, and it does not: 'path', 'z', 'max_tasks', and 'include_segments' are never mentioned. Only 'out' has a schema description, so most parameters are opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and artifact ('Generate an annotation manifest') and even previews what each task contains (episode, frame range, cues, question). That is far more specific than any sibling in the list, though it never explicitly contrasts itself with tools like segment_episodes or plan_windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ready for a human reviewer or a vision-language model' hints at the downstream consumer but gives no when-to-use condition, no prerequisites (e.g. must the dataset be detected/segmented first?), and no alternatives. An agent must infer placement in the pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_formatsA
List supported dataset formats, how each is detected, which optional dependency it needs, and the available validation checks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden, but it discloses the content of the response (formats, detection, dependency, checks), which implicitly signals a safe read-only reference call. It does not state whether output is static/cached or how large the list may be.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause adds a distinct fact about what is returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no annotations, and no output schema, the description is the only carrier of semantics, and it fully enumerates the fields an agent will get back. Nothing needed to invoke or interpret the call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ("List") with a specific resource ("supported dataset formats") and enumerates exactly what each entry covers: detection method, optional dependency, and validation checks. That content makes it clearly distinct from action-oriented siblings like detect_dataset, validate_dataset, or convert_dataset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the reference lookup to consult before calling detect_dataset or validate_dataset, but the description never says when to use it or what it is not for. No alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_windowsC
Plan fixed-length training windows over the episodes of a dataset (window, stride, episode/start/end).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| stride | No | ||
| window | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not say whether planning writes files or only computes a result, what the return value looks like, or whether any permissions or side effects are involved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted wording, and the core purpose is front-loaded. The parenthetical is somewhat cryptic but does not make the sentence bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no annotations, no output schema, and 0% schema description coverage, the definition is too thin. It omits key details about the input parameters, the expected output plan, and how this differs from related tools like segment_episodes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate, but it only vaguely names window and stride and mentions episode/start/end, which do not correspond to the actual schema parameters. It leaves path and limit entirely unexplained and gives no units, defaults, or constraints for the parameters it does mention.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Plan') and resource ('fixed-length training windows over the episodes of a dataset'), which is enough to understand the core operation. It does not, however, distinguish this from the sibling tool segment_episodes, which likely has overlapping territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use plan_windows versus segment_episodes or any other sibling. The only implied usage is planning windows, but no exclusions or routing conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quality_reportB
Compute per-feature statistics (range, mean, std, percentiles, NaN ratio) and detect anomalous windows (jumps, stalls, non-finite spans) with robust z-scoring.
| Name | Required | Description | Default |
|---|---|---|---|
| z | No | ||
| path | Yes | ||
| episodes | No | ||
| features | No | ||
| skip_anomalies | No | ||
| include_segments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the analysis method ('robust z-scoring') and the anomaly classes detected, which is real added context, but it never says whether the tool is read-only, whether it writes a report to disk, or whether results are returned inline, which matters for a tool that may be run against large datasets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the two main capabilities and contains no filler. Every clause (the statistic list, the anomaly types, the z-scoring method) contributes distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter, mutation-status-unknown tool with no annotations, no output schema, and zero parameter documentation, the description leaves too much open. It does not say what the return value looks like (statistics table? anomaly list?) or how the boolean flags change output, which the agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across six parameters, so the description must compensate and largely does not. 'Robust z-scoring' hints at the meaning of the z threshold parameter, but features, episodes, skip_anomalies, include_segments, and the required path are entirely unexplained, so an agent cannot infer what skip_anomalies does versus simply reading the anomaly output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names two specific operations ('compute per-feature statistics' and 'detect anomalous windows') with concrete outputs (range, mean, std, percentiles, NaN ratio; jumps, stalls, non-finite spans). It is clearly a diagnostic tool, distinguishable in spirit from summarize_dataset or validate_dataset, but it never explicitly names what resource 'path' points to or contrasts itself against those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this over summarize_dataset, validate_dataset, or detect_dataset, nor any preconditions or exclusions. The only usage signal is implicit in the word 'quality', leaving the agent to guess whether this is a pre-flight check, a profiling step, or an anomaly audit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_projectC
Write a project skeleton: 'platform' (HTTP API + quality gate + catalog + data contract), 'adapter' (new format adapter with tests) or 'pipeline' (ingest -> validate -> index).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | platform | |
| name | No | embodied-platform | |
| overwrite | No | ||
| destination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. "Write a project skeleton" implies filesystem mutation, but it never says whether files are created at 'destination', what happens if the target already exists, or that 'overwrite' exists to allow clobbering — a notable omission for an unannotated write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and zero filler; the only mild cost is that the parenthetical scaffolding contents are dense and slightly compete with the actionable part.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A write tool with no annotations, no output schema, and 0% schema description coverage needs the description to cover side effects, overwrite semantics, and destination meaning. It supplies only the kind enumeration, so an agent cannot safely predict what will land on disk before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 4 parameters. The description glosses only 'kind' (and partially at that), leaving 'destination' (directory? path prefix?), 'name' (project name vs folder name vs default value), and 'overwrite' (what it overwrites, and that default false means failure or merge) entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Write a project skeleton" names a specific verb and resource, and the three enumerated kinds ('platform', 'adapter', 'pipeline') make the scope concrete. It is clearly distinguishable from the dataset/catalog siblings, though the parenthetical build descriptions read as content lists rather than a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose scaffold_project over, say, convert_dataset or catalog_index, and no stated preconditions (empty destination, existing project present, permissions). The only selection help is implicit in the 'kind' glosses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
segment_episodesC
Split episodes into moving/idle segments using feature-speed percentiles. Useful for phase labelling and for trimming dead time.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| episode | No | ||
| feature | No | ||
| min_frames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the algorithmic basis but says nothing about whether it mutates the dataset or returns segments, what the output shape is, or what happens to unsegmented frames — significant gaps for a processing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and no filler. Efficient, though it is concise at the cost of necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A four-parameter processing tool with no annotations, no output schema, and zero parameter descriptions needs considerably more explanation than two sentences. The agent lacks enough to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and four parameters exist. The description only loosely gestures at 'feature' via 'feature-speed percentiles'; path, episode, and min_frames (default 5) are left entirely unexplained, so it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (split) and resource (episodes) with the segmentation criterion (moving/idle via feature-speed percentiles). Sibling tools are dataset-level operations, so there is little confusion risk, but the description does not explicitly differentiate itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for phase labelling and for trimming dead time' implies downstream use cases but gives no explicit when-to-use/when-not guidance or alternatives. An agent must infer the trigger conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_datasetA
Summarise a dataset: format, version, fps, robot type, features (key/dtype/shape/kind), episode count, frames, duration, tasks and notes. Use before any analysis to learn the schema.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| include_episodes | No | Include per-episode rows (can be long) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does well on response contents (it lists the returned fields, which is the key behavioral fact for a read tool). It omits read-only confirmation, requirements on `path` (local dataset root vs file), behavior on unsupported/invalid datasets, and cost when episode rows are included — that last point lives only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the highest-value content (the field list) front-loaded and the usage cue trailing as an imperative. The dense enumeration earns its length because no output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain returns — it does so thoroughly via the field enumeration. The only real hole is the undefined `path` argument, which is important for correct invocation but is the sole gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: `include_episodes` is documented ("can be long") but `path` has no description anywhere — the description never says what it points to. The description adds no parameter meaning at all, so it fails to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (summarise) and resource (dataset) and enumerates exactly what the summary contains: format, version, fps, robot type, feature metadata, episode count, frames, duration, tasks, notes. This implicitly distinguishes it from validate_dataset or quality_report, but no sibling is named, so it falls short of the 5 bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use before any analysis to learn the schema" gives a clear when-to-use trigger. It does not state when to prefer siblings like detect_dataset or validate_dataset instead, nor any prerequisites, so it is strong context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_datasetB
Run structural validation: required metadata, feature vocabulary (state/action), episode indices and lengths, fps consistency, format-specific layout rules. Returns issues with severity, stable code, hint and a 0-100 score.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| checks | No | Subset of checks; omit for defaults | |
| include_frames | No | Also scan numeric frames for NaN/inf (slower) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description must carry the burden; it does disclose the return shape (severity, stable code, hint, 0-100 score) which is valuable since no output schema exists. It never states that the operation is read-only/non-destructive, whether it writes a report artifact, or how expensive a full run is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the verb and check list, then the return contract. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param, read-only validator with no output schema, the enumeration of checks plus the description of returned issues and score is close to sufficient. Missing only prerequisites and the validate-vs-report relationship to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 67% schema coverage the schema explains checks and include_frames, and the description's list of check categories (metadata, vocabulary, episode indices/lengths, fps, layout) indirectly tells the agent what values the checks array accepts. It adds nothing about the required path parameter or the format expectations behind it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Run structural validation) and enumerates the concrete checks performed, which is far more than a restatement of the name. It does not differentiate itself from overlapping siblings such as quality_report or detect_dataset, so an agent still has to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus quality_report/detect_dataset, no prerequisites (e.g. must path already be catalogued or converted), and no guidance on cost. The only usage hint ('omit for defaults') lives in the schema, not the description.
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.
13 tool updates
v0.1.0- First observed
catalog_index - First observed
catalog_search - First observed
catalog_stats - First observed
convert_dataset - First observed
detect_dataset - First observed
labeling_tasks - First observed
list_formats - First observed
plan_windows - First observed
quality_report - First observed
scaffold_project - First observed
segment_episodes - First observed
summarize_dataset - First observed
validate_dataset
TDQS
Scored across 13 tools
Most tools target clearly different dataset lifecycle stages: detection, summarisation, validation, quality analysis, segmentation, labelling, conversion, cataloging, and planning. Minor possible confusion exists between detect_dataset and list_formats, and between summarize_dataset/validate_dataset/quality_report, but the descriptions clarify specific versus aggregate and structural versus statistical roles.
Most names use a readable snake_case convention, with verb_noun patterns like detect_dataset, validate_dataset, convert_dataset, segment_episodes, and plan_windows. The catalog_index/search/stats group is internally consistent, though quality_report and labeling_tasks deviate from the dominant verb_noun style.
Thirteen tools is well within the appropriate range and each appears to cover a distinct useful operation in an embodied-AI dataset workflow. The set is broad without feeling bloated, spanning inspection, validation, conversion, cataloging, and project scaffolding.
The surface covers a wide lifecycle: format detection, schema summary, validation, quality reporting, segmentation, annotation planning, conversion, scaffolding, cataloging, format listing, and training-window planning. Minor gaps remain, such as no explicit catalog deletion/pruning and no tool to materialise planned windows into actual training samples.
Maintenance
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Trusted multi-domain data for AI: 59 tools, MCP Apps, Skills, 520+ cross-domain benchmarks.
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
Related MCP Servers
AlicenseAqualityAmaintenanceEnables Claude and other MCP-compatible agents to process documents, extract structured data, detect PII, and export LLM-ready datasets through natural language tool calls.840 PyPI1MIT- AlicenseAqualityAmaintenanceProvides MCP tools for scanning, redacting, and packaging dataset/model directories for public release, leveraging Presidio for PII detection and generating Hugging Face cards and EU AI Act training-data summaries.3Apache 2.0
- AlicenseAqualityBmaintenanceProvides safe, deterministic inspection, transformation, validation, and diffing of structured data (JSON, CSV, YAML, Parquet) via schema-aware MCP tools.4Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP agents to discover, import, query, visualize, select, and cite NEON and local scientific datasets while keeping credentials, private paths, and bulk data out of model context.MIT