Skip to main content
Glama
codeocean

Code Ocean MCP Server

Official
by codeocean

Code Ocean MCP Server

Model Context Protocol (MCP) server for Code Ocean.

This MCP server provides tools to search and run capsules and pipelines, and manage data assets.

Table of Contents

Related MCP server: MCP Data Science

Prerequisites

  1. Install uv from Astral or the GitHub README

  2. Install Python 3.10 or newer using uv python install 3.10 (or a more recent version)

  3. Generate a Code Ocean access token. Follow instructions in the Code Ocean user guide.

Code Ocean Platform Version Compatibility

Each release of this Code Ocean MCP Server is tested and verified against a specific minimum version of the Code Ocean platform API. Generally, this minimum version is the latest Code Ocean version at the time of the MCP Server release. We recommend ensuring your MCP Server dependency is pinned to a version compatible with your Code Ocean deployment. For details on when the minimum Code Ocean platform version changes, see the CHANGELOG.

Installation

Visual Studio Code

Here's an example VS Code MCP server configuration:

{
    ...
    "mcp": {
        "inputs": [
            {
            "type": "promptString",
            "id": "codeocean-token",
            "description": "Code Ocean API Key", 
            "password": true
            }
        ],
        "servers": {
            "codeocean": {
                "type": "stdio",
                "command": "uvx",
                "args": ["codeocean-mcp-server"],
                "env": {
                    "CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
                    "CODEOCEAN_TOKEN": "${input:codeocean-token}",
                    "AGENT_ID": "VS Code"
                }
            }
        },
    }
}

Claude Desktop

  1. Open the claude_desktop_config.json file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  1. Under the top-level "mcpServers" object, add a "codeocean" entry. For a stdio transport (child-process) it looks like this:

{
  "mcpServers": {
    "codeocean": {
      "command": "uvx",
      "args": ["codeocean-mcp-server"],
      "env": {
        "CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
        "CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
        "AGENT_ID": "Claude Desktop"
      }
    }
  }
}

Cline

Cline stores all of its MCP settings in a JSON file called cline_mcp_settings.json. You can edit this either through the GUI (“Configure MCP Servers” in the MCP Servers pane) or by hand:

  1. Open Cline and click the MCP Servers icon in the sidebar.

  2. In the “Installed” tab, click Configure MCP Servers → this opens your cline_mcp_settings.json.

  3. Add a "codeocean" server under the "mcpServers" key. For stdio transport:

{
  "mcpServers": {
    "codeocean": {
      "command": "uvx",
      "args": ["codeocean-mcp-server"],
      "env": {
        "CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
        "CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
        "AGENT_ID": "Cline"
      },
      "alwaysAllow": [],       // optional: list of tools to auto-approve
      "disabled": false        // ensure it’s enabled
    }
  }
}
  1. Save the file. Cline will automatically detect and launch the new server, making your Code Ocean tools available in chat .


Roo Code

Roo Code’s MCP support is configured globally across all workspaces via a JSON settings file or through its dedicated MCP Settings UI

Via the MCP Settings UI:

  1. Click the MCP icon in Roo Code’s sidebar. 

  2. Select Edit MCP Settings (opens cline_mcp_settings.json). 

  3. Under "mcpServers", add:

{
  "mcpServers": {
    "codeocean": {
      "command": "uvx",
      "args": ["codeocean-mcp-server"],
      "env": {
        "CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
        "CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
        "AGENT_ID": "Roo Code"
      }
    }
  }
}
  1. Save and restart Roo Code; your Code Ocean tools will appear automatically.

Optional: Manually editing cline_mcp_settings.json

  1. Locate cline_mcp_settings.json (in your home directory or workspace). 

  2. Insert the same "codeocean" block under "mcpServers" as above.

  3. Save and restart.


Cursor

Cursor stores MCP servers in a JSON file at either ~/.cursor/mcp.json (global) or {project}/.cursor/mcp.json (project-specific) .

  1. Open .cursor/mcp.json (or create it if missing). 

  2. Add under "mcpServers":

{
  "mcpServers": {
    "codeocean": {
      "command": "uvx",
      "args": ["codeocean-mcp-server"],
      "env": {
        "CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
        "CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
        "AGENT_ID": "Cursor"
      }
    }
  }
}
  1. Save the file. Cursor will automatically detect and launch the new server on next start. 


Windsurf

Windsurf (Cascade) uses mcp_config.json under ~/.codeium/windsurf/ (or via the Cascade → MCP Servers UI) .

  1. Open your Windsurf Settings and navigate to Cascade → MCP Servers, then click View Raw Config to open mcp_config.json. 

  2. Insert the following under "mcpServers":

{
  "mcpServers": {
    "codeocean": {
      "command": "uvx",
      "args": ["codeocean-mcp-server"],
      "env": {
        "CODEOCEAN_DOMAIN": "https://codeocean.acme.com",
        "CODEOCEAN_TOKEN": "<YOUR_API_KEY>",
        "AGENT_ID": "Windsurf"
      }
    }
  }
}
  1. Save and restart Windsurf (or hit “Refresh” in the MCP panel).

Streamable HTTP Transport

By default the server runs over stdio and authenticates with the CODEOCEAN_TOKEN environment variable, as described above. It can also serve multiple users from a single process over streamable HTTP, taking each caller's API token from the request instead:

CODEOCEAN_DOMAIN=https://acmecorp.codeocean.com codeocean-mcp-server --transport streamable-http --host 127.0.0.1 --port 8000

Clients then pass their own token as Authorization: Bearer <YOUR_API_KEY> on every request; CODEOCEAN_TOKEN is not used, and a request without a token is refused. The endpoint is http://<host>:<port>/mcp.

Local Testing

You can test the MCP server locally during development with MCP Inspector:

npx @modelcontextprotocol/inspector uv tool run codeocean-mcp-server

This will start a web server where you can:

  • View available tools and resources

  • Test tool calls interactively

  • See server logs and responses

Log Formatting (Optional)

The MCP server supports custom log formatting through the LOG_FORMAT environment variable. This allows you to control the format of log messages output by the server. Example Format Strings: "%(asctime)s %(levelname)s [%(name)s] %(message)s". If LOG_FORMAT is not set, the server uses FastMCP's default logging configuration.

Available Tools

26 tools
attach_computation_data_assetsC

Attach one or more data assets to a cloud workstation session computation. Accepts a list of parameter objects (e.g. [{'id': '...'}]). Use for cloud workstation sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes
attach_paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/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 but offers limited behavioral insight. It mentions the tool accepts a list of parameter objects, hinting at input format, but doesn't disclose permissions, side effects, rate limits, or what happens on success/failure. For a mutation tool, this is inadequate.

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 brief and front-loaded with the core purpose, using two sentences efficiently. However, the example syntax could be more integrated, and it lacks structural elements like bullet points for clarity, but overall it avoids unnecessary verbosity.

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 2 parameters with 0% schema coverage, an output schema exists (which reduces need to describe returns), and no annotations, the description is moderately complete. It covers the basic action and input format but misses behavioral details and full parameter explanations, making it adequate but with clear gaps for a mutation tool.

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 but adds minimal value. It notes 'Accepts a list of parameter objects (e.g. [{'id': '...'}])', which clarifies 'attach_params' as an array with ID fields, but doesn't explain 'computation_id' or details like mount paths. This partially addresses one parameter but leaves gaps.

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 ('Attach') and target ('data assets to a cloud workstation session computation'), making the purpose understandable. It distinguishes from siblings like 'detach_computation_data_assets' by specifying attachment, though it doesn't explicitly contrast with 'attach_data_assets' which might be for different contexts.

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

Usage Guidelines2/5

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

The description provides minimal guidance with 'Use for cloud workstation sessions,' but lacks explicit when-to-use criteria, prerequisites, or comparisons to alternatives like 'attach_data_assets.' No exclusions or detailed context are given, leaving usage ambiguous.

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

attach_data_assetsA

Attach one or more data assets to a capsule with optional mount paths. Use when the capsule has no running cloud workstations. For active cloud workstation sessions use attach_computation_data_assets instead. Accepts a list of parameter objects (e.g. [{'id': '...'}]), not just a list of IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
capsule_idYes
attach_paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses important behavioral context about the prerequisite state (capsule must have no running cloud workstations) and clarifies the input format requirement ('Accepts a list of parameter objects... not just a list of IDs'). However, it doesn't mention potential side effects, error conditions, or response format.

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

Conciseness5/5

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

Three sentences with zero waste: first states purpose and optional feature, second provides usage guidelines with sibling distinction, third clarifies input format. Every sentence adds essential information and is front-loaded with key details.

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

Completeness4/5

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

For a mutation tool with no annotations, the description does well by covering purpose, usage context, sibling distinction, and input format clarification. Since there's an output schema, the description doesn't need to explain return values. The main gap is lack of information about side effects 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 description coverage, the description must compensate. It clarifies that 'attach_params' should be 'a list of parameter objects' with examples, and mentions 'optional mount paths' which maps to the 'mount' parameter. However, it doesn't explicitly explain the 'capsule_id' parameter or provide format details for the IDs.

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 specific action ('Attach one or more data assets to a capsule') and distinguishes it from its sibling tool 'attach_computation_data_assets' by specifying different usage contexts. It provides both the verb and resource with clear scope.

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?

The description explicitly states when to use this tool ('when the capsule has no running cloud workstations') and when to use the alternative ('For active cloud workstation sessions use attach_computation_data_assets instead'). This provides clear decision criteria for the agent.

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

create_data_assetA

Create a new data asset from various sources including S3 buckets, computation results, or combined assets.

Data assets are versioned, immutable collections of files that serve as inputs or outputs for computational workflows in Code Ocean. Internal data assets store files within Code Ocean's infrastructure, while external data assets reference files in external storage (S3/GCP) without copying.

Supports creating data assets from AWS S3, GCP Cloud Storage, computation results, or combining existing data assets. Returns confirmation of creation request validity, not success, as creation takes time. Use wait_until_ready() to monitor creation progress.

You can link to the created data assets with the 'data_asset_id' with the pattern: https://codeocean.example.com with /data-assets/.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_asset_paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
sizeNo
tagsNo
typeYes
filesNo
mountYes
stateYes
createdYes
last_usedYes
provenanceNo
descriptionNo
source_bucketNo
app_parametersNo
failure_reasonNo
transfer_errorNo
custom_metadataNo
last_transferredNo
nextflow_profileNo
contained_data_assetsNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool returns confirmation of creation request validity (not success), creation takes time, and monitoring requires 'wait_until_ready()'. It also explains that data assets are versioned and immutable, and distinguishes between internal and external storage. However, it lacks details on permissions, rate limits, or error handling, which are important for a creation 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 well-structured and appropriately sized, with key information front-loaded: it starts with the core purpose, then explains data asset properties, source types, and behavioral notes. Each sentence adds value, such as explaining versioning, storage types, and monitoring. It could be slightly more concise by avoiding minor redundancy, but overall it is efficient and clear.

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 complexity of the tool (with multiple source types and a detailed input schema) and the presence of an output schema, the description is reasonably complete. It covers the purpose, key behaviors, and usage context, and the output schema likely handles return values. However, without annotations, it could benefit from more details on permissions or error scenarios to fully guide an agent in a production environment.

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 description coverage is 0%, so the description must compensate. It mentions sources like S3 buckets, computation results, and combined assets, which map to the 'source' parameter and 'data_asset_ids', and notes that data assets have names, tags, and mounts. However, it does not detail all parameters (e.g., 'custom_metadata', 'target', 'results_info') or their specific semantics, leaving gaps despite the low schema coverage.

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 tool creates a new data asset from various sources (S3, GCP, computation results, combined assets), specifies that data assets are versioned, immutable collections for computational workflows, and distinguishes between internal and external storage types. It provides a specific verb ('create') with detailed resource context, making it distinct from sibling tools like 'get_data_asset' or 'search_data_assets'.

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 explicitly mentions when to use this tool: for creating data assets from AWS S3, GCP Cloud Storage, computation results, or combining existing data assets. It also provides guidance on monitoring creation progress with 'wait_until_ready()'. However, it does not explicitly state when NOT to use it or compare it to alternatives like 'attach_data_assets' or 'update_metadata', which could help differentiate use cases.

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

delete_computationB

Delete a computation and stop it if currently running.

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden. It discloses that deletion stops running computations, which is useful behavioral context. However, it lacks critical details: whether deletion is permanent or reversible, what permissions are required, if there are side effects on attached data assets, or what the output contains. For a destructive operation, this is a significant gap.

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, efficient sentence that front-loads the core action ('Delete a computation') and adds a clarifying detail ('stop it if currently running'). There is no wasted verbiage, and it's appropriately sized for the tool's complexity.

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's destructive nature, no annotations, and an output schema (which should cover return values), the description is incomplete. It covers the basic action and a key behavioral trait (stopping), but misses important context like permanence, permissions, or effects on related resources. The output schema helps, but the description should do more for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds no information about the 'computation_id' parameter beyond what's inferred from the tool name. It doesn't explain the parameter's format, source, or constraints. With one parameter, the baseline is 4, but the description fails to compensate for the lack of schema details, resulting in a minimal score.

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 ('Delete a computation') and the resource ('computation'), and specifies an additional effect ('stop it if currently running'). It distinguishes from siblings like 'rename_computation' or 'get_computation' by focusing on deletion. However, it doesn't explicitly differentiate from tools like 'detach_computation_data_assets', which might involve removal but not full deletion.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid computation_id), exclusions (e.g., not for data assets), or compare to siblings like 'detach_computation_data_assets' or 'list_computations' for selection. Usage is implied only by the action described.

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

detach_computation_data_assetsB

Detach one or more data assets from a cloud workstation session computation by their IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes
data_assetsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action ('detach') but doesn't explain effects like whether this is reversible, if it requires specific permissions, or what happens to the detached assets. For a mutation tool with zero annotation coverage, this is insufficient.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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 (which reduces the need to describe return values) but no annotations and low schema coverage, the description is minimally adequate. It covers the basic action but lacks details on behavior, usage context, and parameter specifics, leaving gaps for a mutation tool.

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 description adds minimal semantics by implying that 'data_assets' are identified by 'IDs' and are detached from a 'computation', but with 0% schema description coverage, it doesn't detail parameter formats or constraints. Since schema coverage is low, the description should compensate more but only provides basic context, meeting the baseline.

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 ('detach') and target resources ('data assets from a cloud workstation session computation'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'detach_data_assets' or 'attach_computation_data_assets', which would require mentioning scope or context differences.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'detach_data_assets' or 'attach_computation_data_assets'. It lacks context about prerequisites, such as whether the computation must be active or if data assets need to be attached first, leaving usage unclear.

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

detach_data_assetsA

Detach one or more data assets from a capsule by their IDs. Use when the capsule has no running cloud workstations. For active cloud workstation sessions use detach_computation_data_assets instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
capsule_idYes
data_assetsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 the full burden. It mentions the precondition about cloud workstations, which is useful behavioral context. However, it doesn't disclose other important traits like whether this is a destructive operation, permission requirements, error conditions, or rate limits. The description adds some value but leaves significant gaps.

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

Conciseness5/5

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

Two sentences with zero waste. The first sentence states the purpose, the second provides crucial usage guidelines. Every word earns its place, and the information is front-loaded appropriately.

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 that there's an output schema (which handles return values) and the tool has moderate complexity, the description covers the essential purpose and usage guidelines well. However, with no annotations and 0% schema coverage, it should provide more behavioral context about the mutation nature of the operation and parameter details to be fully complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'by their IDs' which clarifies the purpose of the data_assets parameter, but doesn't explain what a capsule_id is or provide format details for either parameter. It adds minimal semantic value beyond the parameter 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 action ('detach'), target resources ('data assets'), and scope ('from a capsule by their IDs'). It distinguishes from sibling 'detach_computation_data_assets' by specifying different use cases, making the purpose specific and differentiated.

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?

The description explicitly states when to use this tool ('when the capsule has no running cloud workstations') and when to use an alternative ('For active cloud workstation sessions use detach_computation_data_assets instead'). This provides clear, actionable guidance for tool selection.

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

download_and_read_a_file_from_computationC

Use when you want to read the content of a file from a computation

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/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 mentions 'download_and_read', implying file retrieval and content reading, but fails to disclose critical behavioral traits such as authentication needs, rate limits, error handling, or whether the file is cached or streamed. This leaves significant gaps for an agent to understand the tool's behavior.

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, straightforward sentence that is front-loaded and efficient. It avoids unnecessary words, making it concise, though it could be more structured by including key details without sacrificing brevity.

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, the description does not need to explain return values. However, with no annotations, 2 parameters at 0% schema coverage, and complexity from siblings, the description is incomplete. It lacks details on usage context, parameter meanings, and behavioral traits, making it minimally adequate but with clear gaps.

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

Parameters2/5

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

The input schema has 0% description coverage, and the description provides no parameter information. It does not explain what 'computation_id' or 'file_path' represent, their formats, or constraints. With low schema coverage, the description fails to compensate, leaving parameters undocumented.

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

Purpose3/5

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

The description states the purpose as 'read the content of a file from a computation', which is clear but vague. It specifies the verb ('read') and resource ('file from a computation'), but does not distinguish it from sibling tools like 'download_and_read_a_file_from_data_asset' or 'get_data_asset_file_urls', leaving ambiguity about scope and differentiation.

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

Usage Guidelines2/5

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

The description includes 'Use when you want to read the content of a file from a computation', which provides minimal context but no explicit guidance on when to use this tool versus alternatives. It lacks details on prerequisites, exclusions, or comparisons to siblings, offering no help in tool selection.

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

download_and_read_a_file_from_data_assetC

Use when you want to read the content of a file from a data asset

ParametersJSON Schema
NameRequiredDescriptionDefault
data_asset_idYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior1/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 of behavioral disclosure. The description only states what the tool does ('read the content'), with no information about permissions, rate limits, file size constraints, error handling, or what 'download_and_read' entails operationally. For a tool with no annotations, this is a significant gap in 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, straightforward sentence that efficiently conveys the core purpose. It's appropriately sized and front-loaded with the key information. There's no wasted verbiage, though it could benefit from more detail given the lack of annotations and schema coverage.

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 has 2 parameters with 0% schema coverage, no annotations, and an output schema exists (which helps), the description is incomplete. It doesn't address parameter meanings, behavioral aspects, or usage context relative to siblings. For a tool that likely involves file I/O operations, more guidance is needed to be complete.

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?

The input schema has 2 parameters with 0% description coverage, meaning the schema provides no semantic information. The description doesn't mention parameters at all, failing to compensate for the schema gap. It doesn't explain what 'data_asset_id' or 'file_path' represent, their formats, or examples. This leaves parameters completely undocumented.

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

Purpose3/5

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

The description states the purpose as 'read the content of a file from a data asset', which is clear but vague. It specifies the action (read) and resource (file from data asset), but doesn't distinguish it from sibling tools like 'download_and_read_a_file_from_computation' or 'get_data_asset_file_urls' that might serve similar purposes. The description is functional but lacks specificity about what makes this tool unique.

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

Usage Guidelines2/5

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

The description starts with 'Use when you want to read the content of a file from a data asset', which provides basic context but no explicit guidance on when to use this tool versus alternatives. It doesn't mention when not to use it, prerequisites, or compare it to siblings like 'list_data_asset_files' or 'get_data_asset_file_urls'. This leaves the agent with minimal direction for tool selection.

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

get_capsuleA

Retrieve metadata for a specific capsule by its ID.Use only to fetch metadata for a known capsule ID. Do not use for searching.

ParametersJSON Schema
NameRequiredDescriptionDefault
capsule_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
slugYes
tagsNo
fieldNo
ownerYes
statusYes
articleNo
createdYes
versionsNo
submissionNo
descriptionNo
last_accessedNo
cloned_from_urlNo
release_capsuleNo
original_capsuleNo

TDQS

A4.4/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 the full burden. It states the tool retrieves metadata, implying a read-only operation, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what metadata fields are returned. The description is minimal but doesn't contradict any annotations.

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 two sentences with zero waste: the first states the purpose, and the second provides usage guidelines. It's front-loaded and appropriately sized for a simple retrieval tool.

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

Completeness4/5

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

Given the tool's low complexity (1 parameter, no annotations, but has an output schema), the description is reasonably complete. It covers purpose and usage well, but lacks details on behavioral aspects like permissions or error handling. The output schema likely handles return values, so this isn't a major gap.

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

Parameters4/5

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

The description adds meaning beyond the input schema by clarifying that 'capsule_id' must be a 'known capsule ID', implying it should be an existing identifier. With 0% schema description coverage and only 1 parameter, this compensates adequately, though it doesn't specify format or constraints.

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 'Retrieve' and the resource 'metadata for a specific capsule by its ID', making the purpose specific and unambiguous. It distinguishes from sibling tools like 'search_capsules' by explicitly stating it's for fetching metadata for a known ID, not for searching.

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?

The description provides explicit guidance on when to use ('Use only to fetch metadata for a known capsule ID') and when not to use ('Do not use for searching'), with a clear alternative implied by the sibling tool 'search_capsules'. This gives the agent precise context for tool selection.

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

get_capsule_app_panelB

Retrieve app panel information for a specific capsule by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
capsule_idYes
versionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
generalNoGeneral information about the App Panel.
resultsNoResult files to display after computation.
processesNoPipeline processes and their App Panels.
categoriesNoCategories for organizing App Panel parameters.
parametersNoParameters for the App Panel.
data_assetsNoList of data assets used in the App Panel.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Retrieve' implying a read operation, but doesn't specify permissions, rate limits, or what 'app panel information' entails (e.g., format, size, or if it's mutable). This is inadequate for a tool with potential complexity.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 (which handles return values), the description's minimalism is somewhat acceptable. However, with no annotations and low parameter coverage, it lacks context on behavior and usage, making it incomplete for safe and effective tool 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?

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description mentions 'by its ID' for 'capsule_id', adding minimal context. It doesn't explain the 'version' parameter or its default/null behavior, leaving gaps in understanding.

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 ('Retrieve') and resource ('app panel information for a specific capsule'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_capsule' or 'search_capsules', which might retrieve different capsule-related information, so it doesn't fully distinguish itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_capsule' or 'search_capsules', nor does it specify prerequisites or exclusions, leaving the agent to infer usage context.

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

get_computationB

Retrieve metadata and status information for a specific computation by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
stateYes
createdYes
run_timeYes
exit_codeNo
processesNo
end_statusNo
parametersNo
data_assetsNo
has_resultsNo
nextflow_profileNo
cloud_workstationNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving metadata and status, but does not cover critical aspects like authentication needs, rate limits, error handling, or whether it's a read-only operation (implied but not stated). This leaves significant gaps for a tool with potential complexity.

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, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly.

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's moderate complexity (single parameter, no annotations, but with an output schema), the description is minimally adequate. It covers the basic purpose but lacks details on usage, behavior, and parameter nuances, which are needed for full context, though the output schema may help with return values.

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

Parameters4/5

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

The description specifies that the tool retrieves information 'by its ID', which clarifies the purpose of the 'computation_id' parameter beyond the schema's basic type. Since schema description coverage is 0% and there is only one parameter, this added meaning compensates well, though it could detail ID format or constraints.

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 verb 'retrieve' and the resource 'metadata and status information for a specific computation', making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'list_computations' or 'get_result_file_urls', which reduces the score from a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'list_computations' for multiple computations or 'get_result_file_urls' for result details. It lacks explicit context or exclusions, leaving usage unclear.

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

get_custom_metadataB

Retrieve the Code Ocean deployment's custom metadata schema.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
fieldsNo
categoriesNo

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 carries the full burden of behavioral disclosure. It states 'Retrieve,' implying a read-only operation, but does not specify permissions, rate limits, or response behavior. This is a significant gap for a tool with no annotation coverage, as it lacks details on safety or operational constraints.

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 that efficiently conveys the tool's purpose without any wasted words. It is front-loaded and appropriately sized, making it easy to understand at a glance.

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 that the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is adequate for a simple retrieval operation. However, with no annotations and no output details in the description, it lacks completeness in behavioral context, such as error handling or response format, which could be important for an agent.

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

Parameters4/5

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

The tool has 0 parameters, and the schema description coverage is 100%, so no parameter information is needed. The description appropriately does not add unnecessary details, earning a baseline score of 4 for not overcomplicating a parameterless tool.

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 ('Retrieve') and the resource ('Code Ocean deployment's custom metadata schema'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'get_capsule' or 'get_data_asset', which might retrieve other types of metadata or resources, so it lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as 'get_capsule' or 'get_data_asset', which might also involve metadata. There is no mention of prerequisites, context, or exclusions, leaving usage implied rather than explicit.

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

get_data_assetA

Get full details for a data asset by ID. Use after compact search to retrieve complete metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_asset_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
sizeNo
tagsNo
typeYes
filesNo
mountYes
stateYes
createdYes
last_usedYes
provenanceNo
descriptionNo
source_bucketNo
app_parametersNo
failure_reasonNo
transfer_errorNo
custom_metadataNo
last_transferredNo
nextflow_profileNo
contained_data_assetsNo

TDQS

A3.6/5.0
Behavior2/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 of behavioral disclosure. It states it 'Get full details' and retrieves 'complete metadata', which implies a read-only operation, but doesn't specify aspects like authentication requirements, rate limits, error handling, or what 'full details' entails beyond metadata. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior and constraints.

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 appropriately sized with two concise sentences that front-load the core purpose and follow with usage guidance. Every sentence earns its place by adding value without redundancy or unnecessary detail, making it efficient and easy to parse.

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's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose and basic usage context. However, with no annotations and low schema coverage, it could benefit from more behavioral details (e.g., permissions, errors) to fully compensate for the lack of structured metadata.

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 input schema has 1 parameter with 0% description coverage, so the schema provides no semantic information. The description adds meaning by specifying that the parameter is for retrieving details 'by ID', which clarifies the purpose of 'data_asset_id'. However, it doesn't explain the ID format, source, or validation rules, leaving some ambiguity. With low schema coverage, the description compensates partially but not fully.

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 verb ('Get full details') and resource ('data asset by ID'), making the purpose specific and understandable. It distinguishes from siblings like 'search_data_assets' by focusing on retrieval of complete metadata for a single asset rather than searching or listing. However, it doesn't explicitly differentiate from 'get_data_asset_file_urls' or 'download_and_read_a_file_from_data_asset', which are also retrieval tools but for different aspects of data assets.

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 clear context for when to use this tool ('Use after compact search to retrieve complete metadata'), implying it's for detailed follow-up after a broader search. It doesn't explicitly state when not to use it or name alternatives, but the guidance is practical and helps distinguish it from initial search operations like 'search_data_assets'.

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

get_data_asset_file_urlsA

Generate view and download URLs for a specific file from an internal data asset.Call only when the data asset is already created and in a ready state. If the asset may not yet be ready, first use wait_until_ready to poll until readiness, then retrieve the download URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_asset_idYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
view_urlYes
download_urlYes

TDQS

A4.4/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 the full burden of behavioral disclosure. It mentions the prerequisite state (asset must be 'ready'), which is useful context. However, it lacks details on authentication needs, rate limits, error handling, or what the URLs look like (e.g., expiration, access controls). For a tool with zero annotation coverage, this leaves gaps in behavioral understanding.

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 front-loaded with the core purpose in the first sentence, followed by usage guidelines in the second. Every sentence adds critical value—no wasted words. It's appropriately sized for a tool with two parameters and clear prerequisites.

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's moderate complexity (2 parameters, no annotations, but has an output schema), the description is mostly complete. It covers purpose, usage, and prerequisites well. With an output schema present, it doesn't need to explain return values. However, it could improve by addressing behavioral aspects like error cases or URL characteristics.

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?

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It implies the parameters ('data_asset_id' and 'file_path') by referencing 'a specific file from an internal data asset', giving basic context. However, it doesn't specify format details (e.g., path syntax, ID structure) or constraints, partially addressing the coverage gap but not fully.

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 specific action ('Generate view and download URLs') and the resource ('for a specific file from an internal data asset'), distinguishing it from siblings like 'download_and_read_a_file_from_data_asset' (which reads file content) or 'get_data_asset' (which retrieves asset metadata). It precisely defines the tool's function without redundancy.

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?

The description provides explicit guidance on when to use this tool ('Call only when the data asset is already created and in a ready state') and when not to use it (if not ready). It names an alternative tool ('wait_until_ready') for handling unready assets, offering clear prerequisites and workflow context.

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

get_result_file_urlsB

Generate view and download URLs for a specific result file from a computation.

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
view_urlYes
download_urlYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions generating URLs but doesn't specify whether these URLs are ephemeral or persistent, require authentication, have rate limits, or what happens if the file doesn't exist. For a tool that likely involves access control and network operations, this leaves critical behavioral traits undocumented.

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, efficient sentence that front-loads the core action and resource. Every word contributes directly to understanding the tool's purpose without any redundancy or unnecessary elaboration, making it highly concise and well-structured.

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's moderate complexity (2 required parameters, no annotations, but with an output schema), the description is minimally adequate. It covers the basic purpose but lacks details on usage context, behavioral traits, and parameter nuances. The presence of an output schema means return values are documented elsewhere, but the description doesn't fully compensate for the gaps in annotations and low schema coverage.

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 input schema has 0% description coverage, so the description must compensate. It implies that 'computation_id' identifies the computation and 'file_path' specifies the file, but doesn't clarify the format of 'file_path' (e.g., relative path, naming conventions) or provide examples. This adds minimal meaning beyond the schema's titles, resulting in a baseline score for partial compensation.

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 ('Generate view and download URLs') and the target resource ('for a specific result file from a computation'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_data_asset_file_urls' or 'download_and_read_a_file_from_computation', which handle similar file operations but on different resources or with different 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a completed computation), exclusions (e.g., not for data assets), or compare to siblings like 'list_computation_results' for discovering files or 'download_and_read_a_file_from_computation' for direct access. Usage is implied but not specified.

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

list_computation_resultsB

List result files and folders generated by a computation at the specified path. Empty path retrieves the /results root folder. computation_id is required as string

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

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 carries full burden. It describes the action ('List result files and folders') and basic behavior (path handling), but fails to disclose critical traits such as pagination, rate limits, authentication needs, error conditions, or what 'list' entails (e.g., format, metadata included). This leaves significant gaps for a tool with no annotation coverage.

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 front-loaded with the core purpose in the first sentence, followed by essential usage notes. Every sentence adds value without redundancy, making it appropriately sized and efficiently structured for quick understanding.

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 1 parameter with 0% schema coverage and an output schema (which reduces need to describe returns), the description covers the basic purpose and parameter requirement adequately. However, for a tool with no annotations, it lacks details on behavioral aspects like error handling or performance, making it minimally complete but with clear informational gaps.

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?

Schema description coverage is 0%, so the description must compensate. It adds meaningful context for 'computation_id' by stating it's 'required as string', clarifying its role in identifying the computation. However, it doesn't detail parameter constraints or provide examples, leaving some semantic gaps despite the single parameter.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('result files and folders generated by a computation'), specifying it operates at a given path. It distinguishes from siblings like 'list_computations' by focusing on results rather than computations themselves, though it doesn't explicitly contrast with 'get_result_file_urls' or 'download_and_read_a_file_from_computation'.

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 by mentioning 'Empty path retrieves the /results root folder' and requiring 'computation_id', providing some context for when to use it. However, it lacks explicit guidance on when to choose this tool over alternatives like 'get_result_file_urls' or 'download_and_read_a_file_from_computation', leaving usage partially inferred.

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

list_computationsB

Get all computations associated with a specific capsule.

ParametersJSON Schema
NameRequiredDescriptionDefault
capsule_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden of behavioral disclosure. It states a read operation ('Get'), implying it is likely non-destructive, but fails to describe critical behaviors such as authentication requirements, rate limits, pagination, error handling, or the format of returned computations. This leaves significant gaps for an agent to understand how to interact with the tool effectively.

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 wasted words. It is front-loaded with the core action and resource, making it efficient and easy to parse, which is ideal for conciseness.

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's simplicity (1 parameter, read-only operation) and the presence of an output schema (which likely defines the return structure), the description is minimally adequate. However, with no annotations and low schema coverage, it lacks details on behavioral aspects like permissions or error cases, making it incomplete for robust agent use.

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 input schema has 1 parameter with 0% description coverage, so the schema provides no semantic context. The description adds minimal value by implying 'capsule_id' is used to filter computations, but it does not explain what a capsule is, valid formats for the ID, or any constraints. This meets the baseline for low schema coverage but does not fully compensate for the lack of detail.

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 verb ('Get') and resource ('all computations associated with a specific capsule'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'get_computation' (which likely retrieves a single computation) or 'list_computation_results' (which focuses on results rather than computations themselves), missing full sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a valid capsule ID, or compare it to siblings like 'get_computation' for single computations or 'search_capsules' for broader queries, leaving usage context unclear.

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

list_data_asset_filesB

List files and folders within an internal data asset at the specified path. Empty path retrieves root level contents.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_asset_idYes
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes

TDQS

B3.3/5.0
Behavior2/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 mentions the behavior of listing files and folders and handling empty paths, but fails to disclose critical traits like whether this is a read-only operation, if it requires authentication, rate limits, pagination, error handling, or the format of returned data. For a tool with no annotation coverage, this is a significant gap in behavioral context.

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

Conciseness5/5

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

The description is appropriately sized with two sentences: the first states the core purpose, and the second provides essential context about the path parameter. Every sentence earns its place by adding value without redundancy, and it's front-loaded with the main action, making it efficient and easy to parse.

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 (which likely defines return values), the description doesn't need to explain outputs. However, with no annotations, 0% schema description coverage, and two parameters, it should do more to cover behavioral aspects like safety, permissions, or error cases. The description is minimal but adequate for a basic listing tool, though gaps remain in transparency and parameter details.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'path' specifies the location within the data asset and that an empty path retrieves root contents, which clarifies beyond the schema's basic titles. However, it doesn't detail 'data_asset_id' (e.g., format or source) or other nuances like path syntax or constraints, leaving some parameters under-specified.

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 verb ('List') and resource ('files and folders within an internal data asset'), specifying the scope ('at the specified path'). It distinguishes from siblings like 'get_data_asset' (which likely retrieves metadata) and 'download_and_read_a_file_from_data_asset' (which accesses file content). However, it doesn't explicitly contrast with 'search_data_assets' (which might search across assets rather than within one), leaving slight ambiguity.

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

Usage Guidelines3/5

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

The description implies usage by stating 'Empty path retrieves root level contents,' providing context for when to use the default path. However, it lacks explicit guidance on when to choose this tool over alternatives like 'search_data_assets' or 'get_data_asset_file_urls,' and doesn't mention prerequisites or exclusions, such as required permissions or asset availability.

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

rename_computationB

Rename an existing computation with a new display name.

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation ('Rename') but doesn't specify permissions required, whether the rename is reversible, potential side effects (e.g., on linked assets), or rate limits. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence that front-loads the core action ('Rename an existing computation') and specifies the key parameter ('with a new display name'). There is no wasted verbiage, making it highly concise and well-structured.

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's complexity (a mutation with 2 parameters), lack of annotations, and presence of an output schema, the description is minimally adequate. It covers the basic purpose but lacks behavioral details and usage guidelines. The output schema mitigates the need to explain return values, but overall completeness is limited.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'new display name' for the 'name' parameter, adding semantic context beyond the schema's generic 'Name' title. However, it doesn't explain 'computation_id' (e.g., format or source) or other details like character limits. Baseline is 3 due to partial compensation.

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 ('Rename') and target resource ('an existing computation'), specifying what the tool does. It distinguishes from siblings like 'delete_computation' or 'get_computation' by focusing on renaming. However, it doesn't explicitly differentiate from tools like 'update_metadata' which might also modify computation properties, keeping it from a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing computation), exclusions, or compare to siblings like 'update_metadata' for broader updates. This lack of context leaves the agent without clear usage direction.

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

run_capsuleA

Execute a capsule or pipeline with specified parameters and data assets.

For capsule execution: Set run_params.capsule_id and optionally provide data_assets, parameters, or named_parameters.

For pipeline execution: Set run_params.pipeline_id and optionally provide data_assets, processes (with process-specific parameters), and nextflow_profile configuration.

Typical workflow: 1) run_capsule() to start execution 2) wait_until_completed() to monitor progress 3) list_computation_results() and get_result_file_urls() to retrieve outputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
stateYes
createdYes
run_timeYes
exit_codeNo
processesNo
end_statusNo
parametersNo
data_assetsNo
has_resultsNo
nextflow_profileNo
cloud_workstationNo

TDQS

A4.4/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 the full burden. It describes the tool's function (execution) and workflow context, but lacks details on behavioral traits like permissions needed, rate limits, error conditions, or whether execution is asynchronous. It mentions a 'typical workflow' implying monitoring is required, which adds some context, but doesn't fully disclose operational behavior.

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

Conciseness5/5

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

The description is well-structured and front-loaded: the first sentence states the core purpose, followed by mode-specific instructions and a workflow summary. Every sentence adds value without redundancy, making it efficient and easy to parse.

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's complexity (execution with multiple modes), no annotations, and an output schema (which handles return values), the description is largely complete. It covers purpose, usage, and parameter context, but could improve by addressing behavioral aspects like execution semantics (e.g., async nature, resource implications) to fully compensate for the lack of annotations.

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 description coverage, the description must compensate. It adds significant semantic value by explaining the two execution modes (capsule vs. pipeline) and mapping optional parameters (data_assets, parameters, named_parameters, processes, nextflow_profile) to each mode. However, it doesn't detail parameter formats or constraints beyond what's implied, leaving some gaps.

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 tool's purpose with specific verbs ('execute a capsule or pipeline') and resources ('capsule', 'pipeline'), distinguishing it from siblings like 'get_capsule' (read-only) or 'wait_until_completed' (monitoring). It explicitly covers two execution modes, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it distinguishes between capsule and pipeline execution modes, specifies required parameters (capsule_id or pipeline_id), and outlines a typical workflow involving sibling tools (run_capsule, wait_until_completed, list_computation_results, get_result_file_urls). This clearly indicates when and how to use this tool versus alternatives.

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

search_capsulesA

Search for capsules with filtering, sorting, and pagination options. Compact results: {items: [{id, n, s, d, t}], has_more, next_token, item_count}.

Item fields: id=id, n=name, s=slug, d=description (truncated), t=tags (limited). Pagination: item_count returns the number of items in the current page. Use next_token for additional pages when has_more=true. Set include_field_names=true to add field_names with full labels. Use get_capsule(id) if full details needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
search_paramsYes
include_field_namesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
item_countYes
next_tokenNo
field_namesNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it's a search operation (implied read-only), returns compact results with specific field mappings, supports pagination with next_token, and includes an option for field labels. However, it doesn't mention rate limits, authentication requirements, or error conditions, leaving some behavioral aspects uncovered.

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 well-structured and appropriately sized. It front-loads the core purpose, then details result format, pagination behavior, and usage guidance. Every sentence adds value, though the field mapping explanation (id=id, n=name, etc.) could be slightly more concise.

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

Completeness5/5

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

Given the tool's complexity (search with multiple parameters) and the presence of an output schema, the description is complete enough. It explains the compact result format, pagination mechanism, and when to use alternatives. With an output schema handling return values, the description focuses appropriately on usage context and behavioral guidance.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It adds significant value by explaining the 'include_field_names' parameter's effect and providing context about pagination behavior (next_token, has_more). While it doesn't detail all search parameters, it gives essential guidance on the tool's core functionality beyond what the bare schema provides.

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 tool's purpose: 'Search for capsules with filtering, sorting, and pagination options.' It specifies the resource (capsules) and the core capabilities (filtering, sorting, pagination), distinguishing it from sibling tools like 'get_capsule' which retrieves full details for a single capsule.

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?

The description provides explicit guidance on when to use this tool versus alternatives: 'Use get_capsule(id) if full details needed.' It also clarifies the tool's scope by describing the compact result format and when to use pagination (when has_more=true), giving clear context for its application.

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

search_data_assetsA

Search for data assets with filtering, sorting, and pagination options. Compact results: {items: [{id, n, d, t}], has_more, next_token, item_count}.

Item fields: id=id, n=name, d=description (truncated), t=tags (limited). Pagination: item_count returns the number of items in the current page. Use next_token for additional pages when has_more=true. Set include_field_names=true to add field_names with full labels. Use get_data_asset(id) if full details needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
search_paramsYes
include_field_namesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
item_countYes
next_tokenNo
field_namesNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the compact result format with truncated fields, pagination mechanics (has_more, next_token, item_count), and the effect of include_field_names. However, it doesn't mention rate limits, authentication needs, or error conditions, leaving some gaps.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the core purpose. However, some sentences could be more efficient (e.g., 'Item fields: id=id, n=name, d=description (truncated), t=tags (limited)' is slightly redundant). Overall, it's well-structured with minimal waste.

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's complexity (search with many parameters) and no annotations, the description does a good job covering key aspects like result format, pagination, and usage alternatives. With an output schema likely present (as indicated), it doesn't need to explain return values in detail, but more on query syntax would help.

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 description coverage is 0%, so the description must compensate. It adds value by explaining the 'include_field_names' parameter's effect and implying pagination usage, but it doesn't detail the 'search_params' object's many sub-parameters (e.g., query syntax, filters). This partial compensation results in a baseline score.

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 tool's purpose as 'Search for data assets with filtering, sorting, and pagination options.' It specifies the verb ('search'), resource ('data assets'), and scope ('filtering, sorting, and pagination'), distinguishing it from siblings like 'get_data_asset' (for full details) and 'list_data_asset_files' (for files).

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?

The description provides explicit guidance on when to use this tool versus alternatives: 'Use get_data_asset(id) if full details needed.' It also implies usage context through pagination instructions and the 'include_field_names' parameter, though it doesn't explicitly state when not to use it.

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

search_pipelinesA

Search for pipelines with filtering, sorting, and pagination options. Compact results: {items: [{id, n, s, d, t}], has_more, next_token, item_count}.

Item fields: id=id, n=name, s=slug, d=description (truncated), t=tags (limited). Pagination: item_count returns the number of items in the current page. Use next_token for additional pages when has_more=true. Set include_field_names=true to add field_names with full labels. Use get_capsule(id) if full details needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
search_paramsYes
include_field_namesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
item_countYes
next_tokenNo
field_namesNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it describes the compact result format with truncated fields, pagination mechanics (has_more, next_token, item_count), and the effect of include_field_names. It also notes limitations like truncated descriptions and limited tags, though it doesn't cover rate limits or authentication needs.

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 appropriately sized and front-loaded with the core purpose, followed by structured details on results and pagination. Every sentence adds value, but the formatting with braces and abbreviations (e.g., n=name) could be slightly clearer, and it's moderately dense without being wasteful.

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's complexity (search with many options), no annotations, and an output schema (implied by 'has output schema: true'), the description is fairly complete. It covers purpose, result format, pagination, and key parameters, but lacks full details on all filtering options and doesn't explicitly reference the output schema, though that may be adequate given structured data elsewhere.

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?

Schema description coverage is 0%, so the description must compensate. It adds significant value by explaining the include_field_names parameter's effect and implying search_params usage through examples in the compact results section. However, it doesn't detail all filtering options (e.g., query syntax, sort_field choices) beyond what the schema might encode, leaving some gaps.

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 tool searches for pipelines with filtering, sorting, and pagination. It specifies the resource (pipelines) and verb (search) with operational details. However, it doesn't explicitly differentiate from sibling tools like 'search_capsules' or 'search_data_assets' beyond the resource name, missing explicit sibling comparison.

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 through pagination instructions and suggests using 'get_capsule(id)' for full details, providing some contextual guidance. However, it lacks explicit when-to-use vs. alternatives (e.g., when to use this vs. 'search_capsules'), and doesn't mention prerequisites or exclusions, leaving usage context partially implied.

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

update_metadataB

Update metadata for a data asset including name, description, tags, mount, and custom metadata.

Supports updating various metadata types:

  • Basic metadata: name (display name), description (free text description)

  • Organization: tags (keywords for searching), mount (default mount folder path)

  • Custom metadata: admin-defined custom fields with user-set values according to deployment configuration (string, number, or date fields in unix epoch format)

ParametersJSON Schema
NameRequiredDescriptionDefault
data_asset_idYes
update_paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
sizeNo
tagsNo
typeYes
filesNo
mountYes
stateYes
createdYes
last_usedYes
provenanceNo
descriptionNo
source_bucketNo
app_parametersNo
failure_reasonNo
transfer_errorNo
custom_metadataNo
last_transferredNo
nextflow_profileNo
contained_data_assetsNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions what can be updated, it doesn't describe important behavioral aspects: whether this is a partial or full update, what permissions are required, whether changes are reversible, how conflicts are handled, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.

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 well-structured and appropriately sized. It starts with a clear purpose statement, then provides a bulleted breakdown of metadata types. Each bullet adds value by explaining the semantics of different metadata categories. There's minimal waste, though the custom metadata explanation could be slightly more concise.

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 that this is a mutation tool with no annotations but with an output schema (which handles return values), the description is moderately complete. It explains what can be updated well, but lacks behavioral context about permissions, side effects, or error conditions. The parameter semantics are strong, but overall completeness is limited by missing usage guidelines and behavioral transparency.

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

Parameters4/5

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

The description provides excellent parameter semantics despite 0% schema description coverage. It clearly explains what each metadata field represents: name as 'display name', description as 'free text description', tags as 'keywords for searching', mount as 'default mount folder path', and custom metadata as 'admin-defined custom fields'. This adds substantial value beyond the bare schema, though it doesn't cover the data_asset_id parameter.

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

Purpose4/5

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

The description clearly states the tool's purpose: updating metadata for a data asset. It specifies the types of metadata that can be updated (name, description, tags, mount, custom metadata), which provides good specificity. However, it doesn't explicitly differentiate this from sibling tools like 'rename_computation' or 'get_custom_metadata', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that might overlap (rename_computation, get_custom_metadata, create_data_asset), but the description offers no comparison or context for choosing this specific update tool over others. It simply describes what the tool does without usage context.

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

wait_until_completedA

Poll a computation until it reaches 'Completed' or 'Failed' state with configurable timing.

Args: computation: The computation object to monitor polling_interval: Time between status checks in seconds (minimum 5 seconds) timeout: Maximum time to wait in seconds, or None for no timeout

Returns: Updated computation object once completed or failed

Raises: ValueError: If polling_interval < 5 or timeout constraints are violated TimeoutError: If computation doesn't complete within the timeout period

ParametersJSON Schema
NameRequiredDescriptionDefault
computation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
stateYes
createdYes
run_timeYes
exit_codeNo
processesNo
end_statusNo
parametersNo
data_assetsNo
has_resultsNo
nextflow_profileNo
cloud_workstationNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and comprehensively discloses behavioral traits. It describes polling behavior with configurable timing, terminal states ('Completed' or 'Failed'), error conditions (ValueError, TimeoutError), and return values (updated computation object). This covers mutation implications, timing constraints, and error handling.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose in the first sentence. Each subsequent section (Args, Returns, Raises) is concise and adds necessary detail without redundancy. Every sentence earns its place by clarifying behavior, parameters, or outcomes.

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

Completeness5/5

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

Given the tool's complexity (polling with timing constraints), no annotations, and an output schema (implied by 'Returns' section), the description is complete. It covers purpose, parameters with semantics, behavioral details, return values, and error conditions, providing all needed context for an agent to use the tool effectively.

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

Parameters5/5

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

The input schema has 0% description coverage with only one parameter ('computation_id'), but the description adds significant semantic value. It explains that 'computation' is the object to monitor, details 'polling_interval' with minimum constraints, and clarifies 'timeout' behavior (including 'None' for no timeout). This fully compensates for the schema gap and provides essential usage context.

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 specific action ('Poll a computation until it reaches 'Completed' or 'Failed' state') and distinguishes it from siblings like 'wait_until_ready' by specifying the terminal states. It uses precise verbs ('poll', 'monitor') and identifies the resource ('computation object').

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 implies usage context by stating it's for monitoring computations until completion or failure, but does not explicitly name when to use alternatives like 'wait_until_ready' or other sibling tools. It provides clear functional intent without explicit exclusions or comparisons to other tools.

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

wait_until_readyA

Poll a data asset until it reaches 'Ready' or 'Failed' state with configurable timing.

Args: data_asset: The data asset object to monitor polling_interval: Time between status checks in seconds (minimum 5 seconds) timeout: Maximum time to wait in seconds, or None for no timeout

Returns: Updated data asset object once ready or failed

Raises: ValueError: If polling_interval < 5 or timeout constraints are violated TimeoutError: If data asset doesn't become ready within timeout period Poll until the specified data asset becomes ready before performing further operations (e.g., downloading files). You can set polling_interval and optional timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_assetYes
polling_intervalNo
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
sizeNo
tagsNo
typeYes
filesNo
mountYes
stateYes
createdYes
last_usedYes
provenanceNo
descriptionNo
source_bucketNo
app_parametersNo
failure_reasonNo
transfer_errorNo
custom_metadataNo
last_transferredNo
nextflow_profileNo
contained_data_assetsNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's polling behavior, configurable timing, termination conditions (ready/failed states, timeout), and error cases (ValueError, TimeoutError). However, it does not mention side effects, rate limits, or authentication requirements, leaving some behavioral aspects uncovered.

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 appropriately sized and front-loaded with a clear summary, followed by structured sections (Args, Returns, Raises) and a usage note. While efficient, the final sentence ('Poll until...') slightly repeats information from the opening, making it marginally less concise than ideal.

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

Completeness5/5

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

Given the tool's complexity (polling with configurable timing), no annotations, and an output schema present, the description is complete. It covers the tool's purpose, parameters, return values, error conditions, and usage context, providing all necessary information for an agent to understand and invoke the tool correctly without needing to infer missing details.

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

Parameters5/5

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

The description adds significant meaning beyond the input schema, which has 0% schema description coverage. It explains the purpose of each parameter ('data_asset: The data asset object to monitor'), provides constraints ('polling_interval: minimum 5 seconds'), clarifies optionality ('timeout: or None for no timeout'), and contextualizes their roles in the polling process, fully compensating for the schema's lack of descriptions.

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 tool's purpose with specific verbs ('poll', 'monitor') and resource ('data asset'), and distinguishes it from siblings by focusing on waiting for state transitions rather than creation, retrieval, or modification. It explicitly mentions the target states ('Ready' or 'Failed'), making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('before performing further operations (e.g., downloading files)'), but does not explicitly mention when not to use it or name specific alternatives. It implies usage for asynchronous operations but lacks explicit exclusions or comparisons to sibling tools like 'wait_until_completed'.

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

TDQS

B3.2/5.0
Disambiguation3/5

The tool set has clear distinctions between major resource types (capsules, computations, data assets, pipelines), but there is notable overlap and confusion in specific areas. For example, attach_computation_data_assets and attach_data_assets have overlapping purposes with subtle context differences that could lead to misselection, and download_and_read_a_file_from_computation vs get_result_file_urls serve similar file access needs but with different approaches. The descriptions help clarify, but the boundaries are not always crisp.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., create_data_asset, list_computations, update_metadata), which is predictable and readable. However, there are minor deviations, such as download_and_read_a_file_from_computation using a verbose phrase instead of a simpler verb_noun structure, and get_custom_metadata not fully aligning with the pattern. Overall, the naming is mostly consistent with only a few outliers.

Tool Count3/5

With 26 tools, the count is borderline high for the server's purpose of managing computational workflows in Code Ocean. While the domain is complex and may justify many operations, the set feels heavy and could be streamlined, such as by merging similar tools like the attach/detach pairs. It's not extreme, but it approaches the upper limit of what is manageable without confusion.

Completeness4/5

The tool surface provides comprehensive coverage for core workflows involving capsules, computations, data assets, and pipelines, including CRUD operations, execution, monitoring, and file access. Minor gaps exist, such as no direct tools for deleting capsules or pipelines, and limited update capabilities beyond metadata, but agents can likely work around these with the available tools. The set supports typical user journeys from creation to result retrieval.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/codeocean/codeocean-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server