Skip to main content
Glama

champollion-sulcal-mcp

A FastMCP server wrapping the Champollion sulcal embedding pipeline — exposes each pipeline stage as an MCP tool so an agent can run, monitor, and debug the pipeline without shelling out manually.

Overview

This is a stdio MCP server (not a web service). It doesn't run the pipeline in-process — each start_* tool launches one of the pipeline's CLI scripts as a subprocess and tracks it as a background job (status + log file on disk), which callers poll until it reaches a terminal state.

It's consumed by the technician agent in the sibling champollion_agents repo, and also ships its own Claude Code subagent definition and skills so it can be driven directly from Claude Code.

Related MCP server: Botverse

How it works

  1. A caller (an MCP client, or the Technician agent via claude-code-sdk) invokes a tool such as start_cortical_tiles.

  2. The tool validates its arguments (paths must be absolute), resolves the pipeline's script location via preflight.detect(), and builds an argv matching that script's real CLI.

  3. runner.launch() spawns the script as a subprocess with an environment built by _build_env() (selectively passes HF_TOKEN, injects BRAINVISA_SHARE, prepends BrainVISA/pixi bins to PATH), and returns immediately with a job_id.

  4. The subprocess's combined stdout/stderr is streamed line-by-line into a log file; progress lines matching fold N/M update the job's progress.

  5. The caller polls get_job_status(output_dir, job_id) (and can tail get_job_log) until the job is succeeded, failed, or cancelled.

Pipeline stages

Stage

Tool

Purpose

1

start_morphologist

Generate sulcal graphs from T1 MRI using Morphologist

2

start_cortical_tiles

Extract 28 standardized sulcal region crops

3

start_config

Generate Champollion dataset YAML configuration

4

start_embeddings

Compute 56-fold sulcal embeddings (28 regions × 2 hemispheres)

5

start_combine

Collect per-region embedding CSVs into a single output directory

6

start_snapshots

Render sulcal graph meshes, cortical tile masks, and UMAP plots

start_pipeline

Run stages 1–6 sequentially as one umbrella job (stages skippable)

start_streaming

Scan-centric mode: one worker per scan runs stages 2–4 in parallel; combine runs once after all workers drain

start_training

Train a self-supervised champollion_V1 encoder for one region

Project layout

src/champollion_sulcal_mcp/
├── server.py            # FastMCP instance, tool registration, entry point (main())
├── preflight.py          # locates the champollion_pipeline repo + its scripts/submodules
├── job_store.py           # JobState/JobProgress models, JSON job file persistence
├── runner.py               # subprocess launch, log streaming, progress parsing, cancel
└── tools/
    ├── stages.py           # one start_<stage> tool per pipeline stage + maintenance tools
    ├── pipeline.py          # start_pipeline composite/umbrella job orchestration
    ├── jobs.py               # get_job_status, list_jobs, cancel_job, get_job_log
    └── utils.py               # get_pipeline_info, preflight_check
agents/
└── champollion-pipeline.md  # Claude Code subagent definition for this MCP server
skills/
├── run-pipeline/             # SKILL.md guiding stage-centric vs streaming execution
├── monitor/                   # SKILL.md for the job-polling loop
└── debug/                      # SKILL.md + known error patterns for failure diagnosis
docs/
└── agents_architecture.md      # early design doc for the champollion_agents repo (historical, superseded — see note below)
tests/                           # pytest suite with fake_pipeline_dir / recording_runner fixtures

MCP tools reference

Registered in server.py:

Stage launchersstart_morphologist, start_cortical_tiles, start_config, start_training, start_embeddings, start_combine, start_snapshots

Composite pipelinestart_pipeline

Streamingstart_streaming

Maintenancepurge_subject (remove a subject's cortical_tiles derivatives), prune_failed_subjects (remove outputs for subjects that failed QC)

Job lifecycleget_job_status, list_jobs, cancel_job, get_job_log

Utilitiesget_pipeline_info (server/stage metadata), preflight_check (verify the pipeline is correctly configured and accessible)

Requirements

  • Python 3.11 or 3.12

  • pixi

  • The sibling champollion_pipeline repository (not included here) — must contain the stage scripts under src/ (generate_morphologist_graphs.py, run_cortical_tiles.py, generate_champollion_config.py, generate_embeddings.py, put_together_embeddings.py, generate_snapshots.py, train_champollion.py, run_streaming.py) and the external/champollion_V1 and external/cortical_tiles submodules.

Installation

pixi install

Configuration

Variable

Purpose

Default

CHAMPOLLION_PIPELINE_DIR

Absolute path to the champollion_pipeline repo

Falls back to ../champollion_pipeline relative to this package

HF_TOKEN

HuggingFace token

Passed through only to the embeddings and streaming stages; stripped from every other stage's subprocess environment

BRAINVISA / BRAINVISA_SHARE

BrainVISA install location / share dir

Auto-injected from the pipeline's pixi environment if not already set in the environment

Running

This is a stdio server meant to be launched by an MCP client (e.g. the Technician agent's ClaudeCodeOptions.mcp_servers config in champollion_agents), not run interactively on its own:

pixi run run                  # python -m champollion_sulcal_mcp.server
# or, once installed:
champollion-sulcal-mcp

Claude Code integration

Beyond the raw MCP tools, this repo ships assets for using the pipeline directly from Claude Code:

  • agents/champollion-pipeline.md — a subagent scoped to exactly the MCP tools it needs, with an operational playbook: always preflight first, never guess paths, default output layout, per-stage required parameters, a known-error-pattern table, and the exact CLI invocation each tool wraps.

  • skills/run-pipeline — guides choosing stage-centric vs. streaming execution and gathering the right parameters.

  • skills/monitor — a poll-every-30-seconds monitoring loop with per-job-type progress reporting.

  • skills/debug — systematic failure diagnosis: read the full log, match against known error patterns, report root cause and fix.

Job tracking

Each job is persisted as <output_dir>/.mcp_jobs/<job_id>.json (atomic write) with its combined stdout/stderr log at <output_dir>/.mcp_jobs/<job_id>.log. Status lifecycle: pendingrunning → one of succeeded / failed / cancelled. start_pipeline additionally writes an "umbrella" job whose progress tracks current_stage / stages_done / stages_total and the currently active child job_id.

Testing

pixi run test           # full suite
pixi run test-unit        # unit-marked tests only
pixi run test-fast         # stop on first failure
pixi run test-cov           # with coverage report

tests/conftest.py provides fake_pipeline_dir (a temp dir with stub stage scripts and submodule folders) and recording_runner (stubs runner.launch to record calls instead of spawning real subprocesses), so most tool behavior can be tested without a real champollion_pipeline checkout.

Linting

pixi run lint        # ruff check
pixi run lint-fix      # ruff check --fix
pixi run format         # ruff format

Note on docs/agents_architecture.md

That document is an early architecture proposal for the champollion_agents repo (ACP/acp-sdk, OpenAI-compatible LLM backend, in-process ChromaDB indexing). It predates and does not reflect the current implementation of either repo — champollion_agents now runs its agents through claude-code-sdk rather than a custom ACP/LangGraph stack, and this repo has no LLM or ACP code at all. Kept for historical context only.

Available Tools

17 tools
cancel_jobC

Cancel a running job by sending SIGTERM to its process.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
output_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions sending SIGTERM, which implies process termination, but lacks details on side effects (e.g., job state changes, irreversibility, resource cleanup, or impact on other jobs).

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 sentence (9 words) that efficiently conveys the core action. No extraneous text; every word contributes to purpose.

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 tool's destructive nature (cancelling a job), the description omits important context: is it reversible, what happens to output, does it require ownership? The output schema exists but doesn't cover behavioral context. The minimal description leaves gaps for an AI agent to make safe decisions.

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%, yet the description adds no meaning beyond the bare schema. The parameters job_id and output_dir are not described; the agent must infer their purpose from names alone, risking misunderstanding (e.g., output_dir role is unclear).

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?

The description clearly states the verb 'cancel', the resource 'running job', and the method 'SIGTERM'. It distinguishes itself from sibling tools like get_job_status or list_jobs by indicating an action that modifies the job state.

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 is provided on when to use this tool versus alternatives such as get_job_status or the start_* tools. The description does not mention prerequisites, conditions, or when not to cancel a job.

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

get_job_logB

Retrieve the last N lines of a job's log output.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
output_dirYes
tail_linesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It indicates a read operation (retrieve) but does not mention potential limitations (e.g., maximum lines retrievable, performance impact, availability of logs after job completion) or error scenarios.

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 unnecessary words. Every word contributes to conveying the core functionality.

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?

Given the tool has an output schema (not detailed but present) and only three simple parameters, the description is adequate but leaves gaps: it does not specify the format or size of the returned log, nor behavior for invalid job IDs or non-existent logs.

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 coverage is 0%, yet the description only implicitly references the 'tail_lines' parameter via 'last N lines'. Required parameters 'job_id' and 'output_dir' are not explained, and their meanings or constraints are missing.

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?

The description clearly states the action 'retrieve' and the resource 'job's log output', with a specific qualifier 'last N lines'. It effectively distinguishes from sibling tools like get_job_status (status) and list_jobs (listing) by focusing on log content.

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 implies usage when wanting to see recent log output, but provides no explicit guidance on when to use this tool vs. alternatives like get_job_status or cancel_job. No prerequisites or exclusions are mentioned.

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

get_job_statusB

Get the current status and progress of a running or completed job.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
output_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions 'current status and progress' but does not disclose whether the operation is read-only, what the response contains (though an output schema exists), or any authentication or side effects.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded with the core action. It could be improved by structuring parameter details, but it is not verbose.

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 presence of an output schema, return values need not be described, but the description lacks parameter explanations and behavioral context. For a two-parameter tool, more detail is expected to guide correct 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%, leaving the description to explain parameters. However, the description does not mention job_id or output_dir at all, failing to add meaning beyond the schema's field names.

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?

The description clearly states the verb 'Get' and the resource 'status and progress of a running or completed job', distinguishing it from sibling tools like list_jobs (lists all jobs) and get_job_log (gets logs).

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 implies usage for checking job status, but does not explicitly state when to use this versus alternatives like get_job_log or cancel_job, nor provides any exclusions or preconditions.

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

get_pipeline_infoA

Get metadata about the Champollion pipeline and available MCP tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. 'Get metadata' suggests a read-only operation without side effects, which is likely safe, but it does not explicitly state that the tool is non-destructive or clarify authentication requirements. The description is adequate but could be more explicit.

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, concise sentence that communicates the tool's purpose without unnecessary detail. Every word is relevant and earns 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?

Given the tool has no parameters and an output schema exists, the description sufficiently conveys the tool's role as a metadata provider. It does not explain return values, but the output schema presumably covers that. It is complete for its simplicity.

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?

There are zero parameters and schema coverage is 100% (trivially). The description adds no parameter information, which is acceptable since none exist. Baseline is high, and no additional info is needed.

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?

The description uses the specific verb 'Get' and clearly identifies the resource as 'metadata about the Champollion pipeline and available MCP tools'. This distinguishes it from sibling tools, which are primarily task starters (e.g., start_training) or job management tools.

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 implies usage for retrieving metadata but does not provide explicit guidance on when to use this tool versus alternatives like get_job_status or list_jobs. Given the tool has no parameters, the context is straightforward, but exclusion criteria or preferred scenarios are missing.

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

list_jobsB

List all jobs for a given output directory, optionally filtered by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo
output_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It states the read-like list operation but fails to disclose limitations, ordering, pagination, or side effects. The behavioral profile is minimal.

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 concise sentence of 12 words, directly stating the core action. While efficient, it could be slightly expanded to cover key details.

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 lack of annotations, an output schema exists but is unused, and parameter coverage is zero, the description is too sparse. It misses expected guidance on return values, defaults, and usage context.

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%. The description mentions output_dir and status, but omits limit entirely. It adds minimal value beyond the schema—only clarifies that status is optional.

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?

The description clearly states the verb 'List' and the resource 'jobs for a given output directory', with an optional filter by status. It distinguishes from siblings like get_job_status (which targets a specific job) and cancel_job.

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 implies when to use (listing jobs by directory) but does not explicitly contrast with other tools like get_job_status or specify when not to use. 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.

preflight_checkA

Check whether the Champollion pipeline is correctly configured and accessible.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so description must disclose all behavioral traits. Only states high-level purpose; fails to mention what exactly is checked, side-effects, error handling, or output nature.

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?

Single sentence, front-loaded verb, zero waste. Efficient and to the point.

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?

Simple tool with zero params and an output schema. Description is mostly complete for a check action, though could clarify what aspects of configuration are verified.

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?

No parameters (empty schema, 100% coverage). Description appropriately focuses on tool action without needing parameter details.

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?

Description states specific verb 'check' and resource 'pipeline configuration and accessibility'. Clearly distinguishes from sibling start/status tools.

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?

Implied usage as a pre-run validation but no explicit guidance on when to use versus alternatives or when to skip.

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

prune_failed_subjectsA

Remove cortical_tiles outputs for all subjects that failed QC.

Reads a QC TSV/CSV file with 'participant_id' and 'qc' columns and deletes all files belonging to subjects with qc==0 or absent from the QC file. Equivalent to having run cortical_tiles with --sk_qc_path from the start.

Use dry_run=True to preview what would be deleted without modifying anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
qcYes
outputYes
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool deletes files (destructive), reads a QC file, and supports dry-run preview. It also specifies the scope (only cortical_tiles outputs) and the deletion condition. It could be more explicit about side effects or reversibility, but the information is sufficient for safe invocation.

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 concise sentences: purpose, detailed behavior, and usage tip. It front-loads the verb-resource pair and avoids fluff. Every sentence adds essential information without redundancy.

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?

Given the existence of an output schema, the description does not need to explain return values. It covers the input format, behavior, and a safety preview. Missing context includes dependencies (e.g., QC file must exist) and scope confirmation (ensures it only deletes cortical_tiles outputs), but overall it adequately prepares an agent for correct invocation.

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 schema coverage is 0%, so the description must compensate. It explains the 'qc' parameter (TSV/CSV with specific columns) and 'dry_run' (preview mode), but 'output' is not explicitly defined—only implied as the cortical_tiles output directory. This adds some value but leaves a gap for one required parameter.

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?

The description clearly states the verb (remove), resource (cortical_tiles outputs), and condition (subjects that failed QC). It explains how failure is determined (qc==0 or absent from QC file), making the tool's purpose precise and distinct from siblings like purge_subject.

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?

The description provides context for when to use this tool: after cortical_tiles if the QC flag was not used initially, and it offers a preview option (dry_run=True). It does not explicitly list alternatives or when not to use it, but the equivalence to a flag and the sample use case are clear enough for an agent to infer appropriate usage.

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

purge_subjectA

Remove all cortical_tiles derivatives for a single subject.

Deletes per-subject NIfTI files (crops, labels, extremities, distbottom), per-subject subdirectories (skeletons/, foldlabels/, transforms/, distmaps/), and filters the subject's row from aggregated .npy arrays and their subject CSVs.

Use dry_run=True to preview what would be deleted without modifying anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
subjectYes
derivativesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

No annotations exist, so the description fully discloses the destructive behavior by listing specific files and directories deleted, and mentions the dry_run preview.

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 concise sentences front-loading the core purpose, followed by details and a usage tip, with no fluff.

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?

Covers behavior and parameters adequately; an output schema exists so return values are not needed, but lacks prerequisites or error conditions.

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?

With 0% schema coverage, the description explains the dry_run and subject parameters implicitly through context, but the 'derivatives' parameter is not explicitly described.

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?

The description states the verb 'Remove' and the specific resource 'all cortical_tiles derivatives for a single subject', distinguishing it from sibling tools like prune_failed_subjects.

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?

Provides a dry_run option to preview deletions, guiding safe usage, but does not explicitly compare to alternatives or give when-not-to-use scenarios.

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

start_combineB

Launch Stage 5: collect all per-region embedding CSVs into a single output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathYes
path_modelsNo
embeddings_subpathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must bear the full burden. It does not disclose side effects (e.g., overwriting existing output), required permissions, or whether previous stages must be completed. The description only states the basic operation.

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 clear sentence with no unnecessary words. It is front-loaded with the stage identifier and action.

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?

While an output schema exists (reducing need to describe return values), the description lacks context about the pipeline stage, prerequisites, input format constraints, and any behavioral side effects. For a tool with 3 parameters and no annotations, more detail is needed.

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%. The description partially explains 'embeddings_subpath' and 'output_path' by linking them to per-region CSVs and the output directory, but does not explain 'path_models' (optional, default null) or expected formats for the required parameters.

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?

The description clearly states the verb 'Launch Stage 5' and specifies the action: collecting per-region embedding CSVs into a single output directory. It distinguishes from sibling tools like start_embeddings by naming the stage and resource.

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 tool versus alternatives. There is no mention of prerequisites (e.g., previous stages must be complete) or scenarios where this tool should not be used.

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

start_configC

Launch Stage 3: generate Champollion dataset YAML configuration files.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNo
datasetYes
crop_pathYes
external_cropsNo
champollion_locNo
external_configNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior1/5

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

With no annotations provided, the description must disclose all behavioral traits, but it lacks any mention of side effects, idempotency, error handling, destuctiveness, or authorization needs. The agent has no clue what happens when the tool runs.

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 description is a single concise sentence, which is efficient, but it sacrifices essential details. A few more sentences would improve clarity without harming conciseness.

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 6 parameters and an output schema, this single sentence is insufficient. The description does not explain the return value or how the configuration generation works, despite the complexity indicated by the 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?

Input schema has 0% description coverage for its 6 parameters. The description does not explain any parameters or their roles, leaving the agent to guess from parameter 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?

The description specifies 'generate Champollion dataset YAML configuration files' and mentions 'Stage 3', which gives a clear verb and resource. However, 'Launch Stage 3' is ambiguous—it could mean initiating a pipeline step or just generating files for that stage, and it does not explicitly distinguish from other 'start_*' sibling tools.

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 tool versus alternatives like other 'start_*' tools. There is no mention of prerequisites, order of operations, or exclusion conditions.

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

start_cortical_tilesC

Launch Stage 2: extract 28 sulcal region crops with cortical_tiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
masksNo
njobsNo
regionsNo
input_dirYes
output_dirYes
sk_qc_pathNo
path_to_graphYes
path_sk_with_hullYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description must convey all behavioral traits. It only states that the tool launches a stage, but does not disclose side effects (e.g., file creation), blocking behavior, or error handling. This is insufficient for safe invocation.

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 sentence with no waste, achieving high conciseness. However, it sacrifices necessary detail for 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?

Given 8 parameters, 4 required, and no output schema visible, the description is insufficiently complete. It fails to indicate return value (e.g., job ID), required inputs, or how the tool fits into the pipeline, despite the pipeline context implied by sibling tools.

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 explain any parameter meaning beyond the schema property names. With 8 parameters (4 required), the agent has no insight into what 'input_dir', 'path_to_graph', etc., represent or how to set them.

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?

The description clearly states the action ('Launch Stage 2: extract') and the resource ('28 sulcal region crops with cortical_tiles'), making the purpose unambiguous and distinct from sibling tools that handle different stages.

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 is provided on when to use this tool vs. alternatives. Sibling tools include many 'start_*' tools for different pipeline stages, but the description offers no context for when this specific stage should be invoked.

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

start_embeddingsC

Launch Stage 4: compute sulcal embeddings across all 56 model folds (28 regions × 2 hemispheres).

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
labelsNo
nb_jobsNo
datasetsNo
overwriteNo
short_nameYes
config_pathNo
models_pathYes
datasets_rootYes
embeddings_onlyNo
dataset_localizationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only states the action (compute embeddings) but omits key traits such as side effects, required permissions, idempotency, runtime expectations, or whether data is read-only or modified. This is insufficient for a computational 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?

The description is a single, front-loaded sentence with no wasted words. It is concise but lacks any structural elements (e.g., parameter highlights, usage notes). Given the complexity, some expansion would be beneficial without sacrificing conciseness.

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 11 parameters, no schema documentation, no annotations, and no parameter explanations in the description, the description is severely incomplete. It does not explain return values (even though output schema exists), parameter roles, or how this step fits into the larger pipeline. The agent would need significant external knowledge to use this tool correctly.

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% (none of the 11 parameters are documented beyond names/types). The description provides zero parameter-level meaning, leaving the agent to guess the role of required fields like models_path, dataset_localization, datasets_root, and short_name, as well as optional ones.

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?

The description uses a specific verb 'Launch' and clearly identifies the resource 'Stage 4: compute sulcal embeddings across all 56 model folds (28 regions × 2 hemispheres)'. It distinguishes this tool from siblings (other start_* stages and pipeline tools) by naming the exact computation and scope.

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 tool versus alternatives like start_pipeline or other stages. The description does not indicate prerequisites, ordering, or when not to use it. With siblings covering different pipeline steps, the agent needs more context to decide correctly.

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

start_morphologistC

Launch Stage 1: generate sulcal graphs with Morphologist from raw T1 MRI data.

ParametersJSON Schema
NameRequiredDescriptionDefault
parallelNo
input_dirYes
output_dirYes
enable_sulcal_recognitionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool generates sulcal graphs but does not explain side effects, auth needs, or whether it modifies input data. Lack of detail on execution behavior limits transparency.

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, concise sentence (13 words) with no filler. However, it is overly minimal and could be expanded without losing conciseness to include more useful context.

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 four parameters, the absence of annotations or output schema details in the description, and no examples, the description is incomplete. It does not explain what the tool returns or how to configure it beyond the basic function.

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 only implies that 'input_dir' contains raw T1 MRI data, but does not explain other parameters ('output_dir', 'parallel', 'enable_sulcal_recognition') or their purposes. This is insufficient for correct invocation.

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?

The description clearly states the action 'Launch Stage 1: generate sulcal graphs with Morphologist from raw T1 MRI data.' It uses a specific verb ('Launch') and identifies the resource and output, distinguishing it from sibling tools like 'start_cortical_tiles' which target different stages or outputs.

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 tool versus alternatives (e.g., start_pipeline, start_cortical_tiles). The description does not mention prerequisites, exclusions, or context for selection, leaving the agent without direction.

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

start_pipelineB

Launch the full Champollion pipeline (all 6 stages sequentially). Returns a pipeline job_id immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
njobsNo
datasetYes
nb_jobsNo
parallelNo
crop_pathYes
input_dirYes
output_dirYes
short_nameYes
sk_qc_pathNo
models_pathYes
skip_stagesNo
datasets_rootYes
path_to_graphYes
embeddings_onlyNo
path_sk_with_hullYes
embeddings_subpathYes
dataset_localizationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

It mentions that the pipeline runs sequentially and returns a job_id immediately, indicating async behavior. However, no annotations are provided, so the description carries the full burden but lacks details on resource usage, prerequisites, or effects.

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 description is concise (one sentence) but too brief for the tool's complexity. It could list key parameters or stages.

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 high parameter count, many required, and numerous sibling tools, the description is incomplete. It lacks explanation of pipeline stages, parameter dependencies, and output schema details.

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 18 parameters, 11 required, and 0% schema description coverage, the description provides no explanation of any parameter. This is a major gap for correct invocation.

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?

The description clearly states it launches the full Champollion pipeline (all 6 stages sequentially) and returns a job ID. This distinguishes it from sibling tools that launch individual stages.

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 implies usage for running the full pipeline, but does not explicitly state when to use vs alternatives like start_cortical_tiles or start_training. No guidance on when not to use.

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

start_snapshotsC

Launch Stage 6: render sulcal graph meshes, cortical tile masks, and UMAP scatter plots.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectNo
umap_onlyNo
output_dirYes
tiles_onlyNo
acquisitionNo
sulcal_onlyNo
umap_regionNo
embeddings_dirNo
morphologist_dirNo
cortical_tiles_dirNo
champollion_data_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description only states what the tool renders. It does not disclose side effects, permissions, or whether it is destructive. The agent has no behavioral context beyond the basic rendering action.

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 description is a single sentence, which is concise but fails to convey necessary information for a tool with 11 parameters. It is too short relative to the complexity.

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

Completeness1/5

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

Given the high parameter count and absence of schema descriptions or annotations, the description is extremely incomplete. It does not explain how parameters interact, the expected output, or prerequisites. The existence of an output schema is not referenced.

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% (no parameter descriptions in schema), and the tool description does not mention any parameters. With 11 parameters including 'umap_only', 'tiles_only', 'sulcal_only', etc., the agent receives no help understanding their meaning or usage.

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 clearly states the action ('Launch Stage 6') and the specific outputs ('render sulcal graph meshes, cortical tile masks, and UMAP scatter plots'). It provides a specific verb and resource. However, it does not distinguish from sibling tools like start_cortical_tiles, which might overlap.

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 is given on when to use this tool versus alternatives. The mention of 'Stage 6' implies a pipeline sequence, but no explicit context or prerequisites are provided.

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

start_streamingA

Launch scan-centric streaming pipeline: one worker per scan runs stages 2-4 in parallel.

Each worker owns one ScanId and processes cortical_tiles → config → embeddings sequentially for its scan, using file-presence barriers between stages. Stage 5 (combine) runs once after all workers drain.

Requires embeddings_only mode (training aggregates all subjects and cannot be parallelised per-scan).

ParametersJSON Schema
NameRequiredDescriptionDefault
bidsNo
datasetYes
dry_runNo
input_dirYes
n_workersNo
output_dirYes
short_nameNoeval
sk_qc_pathNo
models_pathNo
datasets_rootNo
path_to_graphYes
poll_intervalNo
worker_timeoutNo
embeddings_pathNochampollion_V1
path_sk_with_hullYes
dataset_localizationNolocal

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Describes worker-per-scan processing, sequential stages, file-presence barriers, and post-processing combine stage. No annotations provided, so description fully covers behavioral traits.

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?

Highly concise with zero wasted sentences. Important information is front-loaded, and the structure efficiently conveys complex workflow.

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?

Despite good behavioral coverage, the tool has 16 parameters with no documentation and an output schema not described. For a complex pipeline tool, this is insufficient to guide invocation.

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 and 16 parameters, the description fails entirely to explain what each parameter does or how they relate to the pipeline behavior. Only mode constraint is mentioned implicitly.

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?

The description clearly states it launches a scan-centric streaming pipeline with specific stages, distinguishing it from sibling tools that handle individual stages or other pipelines.

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

Usage Guidelines5/5

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

Explicitly specifies when to use (embeddings_only mode) and when not (training mode cannot be parallelised), providing clear context over alternatives.

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

start_trainingB

Launch encoder training: train a champollion_V1 self-supervised encoder for one sulcal region.

Dataset configs must exist before calling this tool — run start_config first (or supply config_dir if configs live outside the champollion_V1 submodule).

ParametersJSON Schema
NameRequiredDescriptionDefault
cpuNo
swfNo
modeNoencoder
njobsNo
regionYes
datasetYes
overwriteNo
config_dirNo
output_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions config existence requirement, but does not disclose side effects (e.g., file modifications, resource usage, idempotency, failure behavior). A mutation tool like this should state whether it overrides existing outputs or requires network access.

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 sentences, no wasted words. Purpose front-loaded. Could benefit from list format for prerequisites, but overall concise.

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 9 parameters, 0% schema coverage, no annotations, and minimal description, the tool is underdocumented. The output schema exists but description doesn't reference it. Missing details like what 'mode: encoder' implies or what 'overwrite' does. Insufficient for an agent to reliably invoke.

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%, so description must explain parameters. It only mentions dataset, region, and config_dir. The other 6 parameters (cpu, swf, mode, njobs, overwrite, output_dir) are completely undocumented, leaving the agent guessing.

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?

Description clearly states it launches encoder training for a specific region and model (champollion_V1). The verb 'Launch' plus resource 'encoder training' is specific and distinguishes from siblings like start_cortical_tiles or start_embeddings.

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?

Explicitly provides prerequisite: dataset configs must exist, and mentions run start_config first or supply config_dir. This gives clear guidance on when to use this tool. No explicit when-not-to-use, but helpful context.

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. 17 tool updatesv0.1.0
    • First observedcancel_job
    • First observedget_job_log
    • First observedget_job_status
    • First observedget_pipeline_info
    • First observedlist_jobs
    • First observedpreflight_check
    • First observedprune_failed_subjects
    • First observedpurge_subject
    • First observedstart_combine
    • First observedstart_config
    • First observedstart_cortical_tiles
    • First observedstart_embeddings
    • First observedstart_morphologist
    • First observedstart_pipeline
    • First observedstart_snapshots
    • First observedstart_streaming
    • First observedstart_training

TDQS

A3.5/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct operation: launching pipeline stages (start_*), subject management (purge_subject, prune_failed_subjects), job control (get_job_status, list_jobs, cancel_job, get_job_log), and pipeline info (get_pipeline_info, preflight_check). Minimal overlap; even similar tasks like subject removal are differentiated by scope.

Naming Consistency4/5

Most tools follow a consistent pattern: launch verbs (start_*) for pipeline stages, get_* for retrieval, and descriptive verbs for actions. Deviations include 'purge_subject' vs. 'prune_failed_subjects' (different delete verbs) and 'preflight_check' (no prefix), but overall naming is clear and predictable.

Tool Count5/5

17 tools is appropriate for a multi-stage neuroimaging pipeline with job management and utility functions. Each tool earns its place, covering all stages and supporting operations without being excessive or sparse.

Completeness5/5

The tool set covers the full pipeline lifecycle: stage launches, job monitoring, subject cleanup, and configuration checks. All essential operations are present with no obvious gaps for the stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP tools for video transcoding, document conversion, and multi-step pipelines — callable by any AI agent.
    12
    429
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes RAG and document intelligence pipelines as 8 composable tools for MCP-compatible clients, enabling querying, indexing, classifying, extracting, and assessing documents.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Exposes 12 robotics/simulation tools from robosimtools.com as MCP tools, enabling AI agents to perform conversions (quaternion, URDF, MJCF), validation, and CAD imports locally.
    12
    1
    MIT