Optuna MCP Server
OfficialThe Optuna MCP Server enables automated hyperparameter optimization and analysis through LLMs by providing access to Optuna's capabilities via the Model Context Protocol.
Core Capabilities:
Study Management: Create and manage studies with configurable optimization directions (minimize/maximize), define samplers (TPESampler, NSGAIISampler, RandomSampler, GPSampler), set metric names for multi-objective optimization, and retrieve study information
Trial Operations: Request suggested parameters using Optuna's distribution system (ask), report objective values (tell), manually add single or batch trials, and manage trial metadata through user attributes
Results Analysis: Retrieve all trials in CSV format, find the best trial for single-objective optimization, or get trials on the Pareto front for multi-objective problems
Visualization: Generate plots including optimization history, hypervolume history, Pareto front, contour maps, parallel coordinates, slice plots, parameter importances, EDF plots, timeline, and rank plots
Interactive Analysis: Launch the Optuna dashboard (default port 58080) for web-based interactive study analysis
Persistent Storage: Support for SQLite and other storage backends to maintain optimization history
Use Cases:
Automated hyperparameter optimization for ML models guided by LLMs
Interactive optimization and result analysis via chat interfaces
Optimizing parameters for other MCP tools and applications (FFmpeg encoding, matplotlib configurations, recipes)
Multi-objective optimization with Pareto front analysis
Enables running the Optuna MCP server in a containerized environment with volume mounting for persistence of optimization results.
Provides tools for optimizing FFmpeg encoding parameters to maximize video quality while balancing encoding time.
Allows use of JavaScript interpreter to calculate objective values for optimization problems.
Integrates with Python environment, offering access to Optuna's hyperparameter optimization capabilities through a standardized interface.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Optuna MCP Servercreate a study named 'xgboost_tuning' to minimize validation loss"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Optuna MCP Server
A Model Context Protocol (MCP) server that automates optimization and analysis using Optuna.
Use Cases
The Optuna MCP Server can be used in the following use cases, for example.
Automated hyperparameter optimization by LLMs
Interactive analysis of Optuna's optimization results via chat interface
Optimize input and output of other MCP tools
For details, see the Examples section.
Related MCP server: FastAPI MCP Server
Installation
The Optuna MCP server can be installed using uv or Docker.
This section explains how to install the Optuna MCP server, using Claude Desktop as an example MCP client.
Usage with uv
Before starting the installation process, install uv from Astral.
Then, add the Optuna MCP server configuration to the MCP client.
To include it in Claude Desktop, go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json
and add the following:
{
"mcpServers": {
"Optuna": {
"command": "/path/to/uvx",
"args": [
"optuna-mcp"
]
}
}
}Additionally, you can specify the Optuna storage with the --storage argument to persist the results.
{
"mcpServers": {
"Optuna": {
"command": "/path/to/uvx",
"args": [
"optuna-mcp",
"--storage",
"sqlite:///optuna.db"
]
}
}
}After adding this, please restart Claude Desktop application. For more information about Claude Desktop, check out the quickstart page.
Usage with Docker
You can also run the Optuna MCP server using Docker. Make sure you have Docker installed and running on your machine.
{
"mcpServers": {
"Optuna": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--net=host",
"-v",
"/PATH/TO/LOCAL/DIRECTORY/WHICH/INCLUDES/DB/FILE:/app/workspace",
"ghcr.io/optuna/optuna-mcp:latest",
"--storage",
"sqlite:////app/workspace/optuna.db"
]
}
}
}Tools provided by Optuna MCP
The Optuna MCP provides the following tools. Specifically, it offers primitive functions of Optuna such as Study, Trial, Visualization, and Dashboard. Since MCP clients know the list of tools and the details of each tool, users do not need to remember those details.
Study
create_study - Create a new Optuna study with the given study_name and directions. If the study already exists, it will be simply loaded.
study_name: name of the study (string, required).directions: The directions of optimization (list of literal strings minimize/maximize, optional).
set_sampler - Set the sampler for the study.
name: the name of the sampler (string, required).
get_all_study_names - Get all study names from the storage.
set_metric_names - Set metric_names. Metric_names are labels used to distinguish what each objective value is.
metric_names: The list of metric names for each objective (list of strings, required).
get_metric_names - Get metric_names.
No parameters required.
get_directions - Get the directions of the study.
No parameters required.
get_trials - Get all trials in a CSV format.
No parameters required.
best_trial - Get the best trial.
No parameters required.
best_trials - Return trials located at the Pareto front in the study.
No parameters required.
Trial
ask - Suggest new parameters using Optuna.
search_space: the search space for Optuna (dictionary, required).
tell - Report the result of a trial.
trial_number: the trial number (integer, required).values: the result of the trial (float or list of floats, required).
set_trial_user_attr - Set user attributes for a trial.
trial_number: the trial number (integer, required).key: the key of the user attribute (string, required).value: the value of the user attribute (any type, required).
get_trial_user_attrs - Get user attributes in a trial.
trial_number: the trial number (integer, required).
Visualization
plot_optimization_history - Return the optimization history plot as an image.
target: index to specify which value to display (integer, optional).target_name: target’s name to display on the axis label (string, optional).
plot_hypervolume_history - Return the hypervolume history plot as an image.
reference_point: a list of reference points to calculate the hypervolume (list of floats, required).
plot_pareto_front - Return the Pareto front plot as an image for multi-objective optimization.
target_names: objective name list used as the axis titles (list of strings, optional).include_dominated_trials: a flag to include all dominated trial's objective values (boolean, optional).targets: a list of indices to specify the objective values to display. (list of integers, optional).
plot_contour - Return the contour plot as an image.
params: parameter list to visualize (list of strings, optional).target: an index to specify the value to display (integer, required).target_name: target’s name to display on the color bar (string, required).
plot_parallel_coordinate - Return the parallel coordinate plot as an image.
params: parameter list to visualize (list of strings, optional).target: an index to specify the value to display (integer, required).target_name: target’s name to display on the axis label and the legend (string, required).
plot_slice - Return the slice plot as an image.
params: parameter list to visualize (list of strings, optional).target: an index to specify the value to display (integer, required).target_name: target’s name to display on the axis label (string, required).
plot_param_importances - Return the parameter importances plot as an image.
params: parameter list to visualize (list of strings, optional).target: an index to specify the value to display (integer/null, optional).target_name: target’s name to display on the legend (string, required).
plot_edf - Return the EDF plot as an image.
target: an index to specify the value to display (integer, required).target_name: target’s name to display on the axis label (string, required).
plot_timeline - Return the timeline plot as an image.
No parameters required.
plot_rank - Return the rank plot as an image.
params: parameter list to visualize (list of strings, optional).target: an index to specify the value to display (integer, required).target_name: target’s name to display on the color bar (string, required).
Web Dashboard
launch_optuna_dashboard - Launch the Optuna dashboard.
port: server port (integer, optional, default: 58080).
Examples
Optimizing the 2D-Sphere Function
Here we present a simple example of optimizing the 2D-Sphere function, along with example prompts and the summary of the LLM responses.
User prompt | Output in Claude |
(Launch Claude Desktop) | |
Please create an Optuna study named "Optimize-2D-Sphere" for minimization. | |
Please suggest two float parameters x, y in [-1, 1]. | |
Please report the objective value x**2 + y**2. To calculate the value, please use the JavaScript interpreter and do not round the values. | |
Please suggest another parameter set and evaluate it. | |
Please plot the optimization history so far. |
Starting the Optuna Dashboard and Analyzing Optimization Results
You can also start the Optuna dashboard via the MCP server to analyze the optimization results interactively.
User prompt | Output in Claude |
Please launch the Optuna dashboard. |
By default, the Optuna dashboard will be launched on port 58080.
You can access it by navigating to http://localhost:58080 in your web browser as shown below:
Optuna dashboard provides various visualizations to analyze the optimization results, such as optimization history, parameter importances, and more.
Optimizing the FFmpeg Encoding Parameters

This demo showcases how to use the Optuna MCP server to automatically find optimal FFmpeg encoding parameters. It optimizes x264 encoding options to maximize video quality (measured by the SSIM score) while keeping encoding time reasonable.
Check out examples/ffmpeg for details.
Optimizing the Cookie Recipe

In this example, we will optimize a cookie recipe, referencing the paper titled "Bayesian Optimization for a Better Dessert".
Check out examples/cookie-recipe for details.
Optimizing the Matplotlib Configuration
This example optimizes a Matplotlib configuration.
Check out examples/auto-matplotlib for details.
License
MIT License (see LICENSE).
Available Tools
26 toolsadd_trialC
Add a trial to the study.
| Name | Required | Description | Default |
|---|---|---|---|
| trial | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only states 'Add' without disclosing any behavioral traits. It does not mention the effect on the study, error conditions, or whether the operation is idempotent. The bare description does little to inform the agent beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief with one sentence. While concise, it lacks necessary details for a complex tool. It is not structured or front-loaded with key information beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input object and the presence of an output schema, the description is incomplete. It does not mention return values, side effects, or required preconditions. For a tool with such rich schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the parameters. The input schema has a complex object 'TrialToAdd' with multiple properties, and schema description coverage is 0%. An agent cannot infer what 'params', 'distributions', 'values', etc., represent from the tool's description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Add a trial to the study.' It is specific but does not distinguish from the sibling tool 'add_trials' which likely adds multiple trials. The singular 'trial' implies a single addition, but it's not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'add_trials' or 'tell'. The description lacks context on prerequisites, such as the need for an existing study, and does not indicate scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_trialsC
Add multiple trials to the study.
| Name | Required | Description | Default |
|---|---|---|---|
| trials | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states 'add' implying mutation, but lacks details on side effects, validation, or whether trials are appended or replaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise single sentence, but it sacrifices necessary detail. Adequate for the minimal purpose but not for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), description lacks context on return values, error handling, or the relationship with the study. Incomplete for a tool with nested array parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description adds no meaning to the 'trials' parameter or its nested fields. The complex structure of TrialToAdd is entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool adds multiple trials to a study, using a specific verb-resource pair. It distinguishes from the sibling 'add_trial' which likely handles single trials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like 'add_trial' or 'tell'. No context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
askC
Suggest new parameters using Optuna
search_space must be a string that can be evaluated to a dictionary to specify Optuna's distributions.
Example:
{"x": {"name": "FloatDistribution", "attributes": {"step": null, "low": -10.0, "high": 10.0, "log": false}}}
| Name | Required | Description | Default |
|---|---|---|---|
| search_space | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| trial_number | Yes | |
| params | No | The parameter values suggested by the trial. |
| values | No | The objective values of the trial. |
| user_attrs | No | User-defined attributes for the trial. |
| system_attrs | No | System-defined attributes for the trial. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'suggest new parameters' but does not disclose that calling 'ask' creates a new trial in Optuna (a side effect). The agent may incorrectly assume it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but includes an example. However, key information is not front-loaded, and the structure could be improved with a clear summary sentence first, then details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having one parameter, the description does not mention the return value (even though an output schema exists). It also lacks context about using the suggested parameters with other tools like 'tell'. The contradictory type information further reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning by specifying the expected structure of search_space as a string that evaluates to a dictionary, but this directly contradicts the input schema which declares search_space as an object. This creates confusion and misleads the agent about how to provide the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Suggest new parameters using Optuna' clearly states the tool's action (suggest), the resource (new parameters), and the method (Optuna). It distinguishes from siblings like 'best_trial' or 'add_trial' which retrieve existing results or add specific trials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example of the search_space format but does not explain when to use 'ask' versus siblings like 'tell' or 'best_trial'. It also contradicts the input schema by stating search_space must be a string while the schema defines it as an object, potentially confusing the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
best_trialA
Get the best trial
This feature can only be used for single-objective optimization. If your study is multi-objective, use best_trials instead.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| trial_number | Yes | |
| params | No | The parameter values suggested by the trial. |
| values | No | The objective values of the trial. |
| user_attrs | No | User-defined attributes for the trial. |
| system_attrs | No | System-defined attributes for the trial. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the key behavioral restriction (single-objective only) and implies read-only via 'Get'. However, it does not describe what happens if called incorrectly (e.g., error behavior) or provide details about the return value beyond what the output schema conveys. The restriction is valuable transparency, but lacks fuller behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and a clear usage condition. Every word earns its place. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless getter with an output schema, the description is fully complete: it states the purpose, the single-objective constraint, and directs to the correct sibling for multi-objective. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% and description needs to add no parameter info. According to the rubric, 0 parameters gives a baseline of 4. No additional param explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the best trial'. It immediately distinguishes from siblings by specifying that it is only for single-objective optimization, and directs to best_trials for multi-objective. The verb+resource is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool: 'only be used for single-objective optimization'. It also provides a clear alternative: 'if your study is multi-objective, use best_trials instead'. This gives clear usage context and exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
best_trialsA
Return trials located at the Pareto front in the study.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states the function. It does not disclose behavioral traits like read-only nature or potential performance implications, though it is not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 8 words with no wasted content. Very concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the presence of an output schema, the description is largely complete. It could mention relation to 'best_trial', but not strictly required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters with 100% coverage; description adds no parameter info, but baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns trials at the Pareto front, using a specific verb and resource that distinguishes it from sibling tools like 'best_trial' (singular) and 'get_trials' (all trials).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'best_trial' or 'get_trials'. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_studyC
Create a new Optuna study with the given study_name and directions.
If the study already exists, it will be simply loaded.
| Name | Required | Description | Default |
|---|---|---|---|
| study_name | Yes | ||
| directions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| study_name | Yes | |
| sampler_name | No | The name of the sampler used in the study. |
| directions | No | The optimization directions for each objective. |
| metric_names | No | The metric names for each objective. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses idempotent behavior (loads if exists), which is positive. However, no annotations, so description should cover safety, side effects, permissions; it does not. Minimal beyond the idempotency note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and parameters. No fluff, but the note about existing studies adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists to describe return values. Description covers creation and idempotency. However, it does not explain what 'loaded' entails (e.g., returns existing study object?), which is a minor gap for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It only repeats parameter names without adding constraints, formats, or examples. 'directions' is mentioned but the permitted values (minimize/maximize) are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Create' and resource 'new Optuna study', mentions parameters. Does not explicitly differentiate from sibling tools like add_trial, but purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., get_all_study_names, ask). Only behavioral note about existing studies, no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_study_namesC
Get all study names from the storage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'from the storage' without clarifying whether it is read-only, requires authentication, or has side effects. The agent cannot infer safety or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose. It is appropriately front-loaded and contains no superfluous words, though it could be slightly more descriptive without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and parameters, the description is minimally viable. The output schema exists, so return value explanation is not required, but the tool context (e.g., relationship to studies, effects of previous commands) is omitted. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and 100% coverage, so the description adds no parameter details. The phrase 'from the storage' is implied by the schema's empty object. With zero parameters, the baseline is 4, but the description adds no value, resulting in a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get all study names from the storage' clearly states the action (get) and resource (study names). It is specific and distinguishes from other sibling tools that retrieve different entities like metrics or directions, though it could explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives like 'get_metric_names' or 'get_directions'. It does not mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_directionsC
Get the directions of the study.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| study_name | Yes | |
| sampler_name | No | The name of the sampler used in the study. |
| directions | No | The optimization directions for each objective. |
| metric_names | No | The metric names for each objective. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether this is a read operation or what side effects exist. The word 'Get' implies a safe read, but no further details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), which is appropriately front-loaded, but it lacks detail that could be added without much verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description should explain what 'directions' means and what the return value contains, but it does not. The tool performs a simple get but leaves ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description adds no parameter information, but with no parameters, the baseline is 4. It does not need to elaborate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Get' and resource 'directions of the study', but 'directions' is ambiguous in the context of an optimization study. It does not clearly differentiate from siblings like get_trials or get_metric_names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_trials or plot tools. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metric_namesD
Get metric_names
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| study_name | Yes | |
| sampler_name | No | The name of the sampler used in the study. |
| directions | No | The optimization directions for each objective. |
| metric_names | No | The metric names for each objective. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It does not state whether this is a read operation, what side effects occur, or what the output represents. The description provides zero behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief but at the expense of clarity. It is under-specified, not concise; every word should earn its place, but here the single phrase adds no value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description should explain what the returned data represents. It fails to do so, leaving the agent without understanding of the tool's complete behavior. The description is wholly inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% by default. Baseline for zero parameters is 3, but the description adds no meaning beyond the name. A minimal purpose statement would be expected, but it is absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description is identical to tool name, offering no additional context about what metric names are retrieved or from where. It is a tautology that fails to clarify the tool's purpose beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like get_trials or set_metric_names. The description does not indicate appropriate use cases or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trialsA
Get all trials in a CSV format
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It only states the action and output format without disclosing important traits like side effects, pagination, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no extraneous words, efficiently conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with no output schema, the description covers the basic action but lacks detail on output format specifics (e.g., CSV string vs file) and does not clarify whether it is read-only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage, so baseline is 4. The description adds no parameter-specific information but benefits from the baseline due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('all trials') and specifies the output format ('CSV format'), distinguishing it from sibling tools like 'add_trial' and 'best_trials'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'best_trials' or 'get_all_study_names'. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trial_user_attrsC
Get user attributes in a trial
| Name | Required | Description | Default |
|---|---|---|---|
| trial_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| trial_number | Yes | |
| params | No | The parameter values suggested by the trial. |
| values | No | The objective values of the trial. |
| user_attrs | No | User-defined attributes for the trial. |
| system_attrs | No | System-defined attributes for the trial. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds no behavioral context beyond the bare action. It does not disclose error handling, side effects, or dependencies (e.g., what happens if trial_number is invalid).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely concise (4 words), the description is under-specified and fails to provide valuable details that would justify its brevity. It is not well-structured and does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, low schema coverage, and the existence of an output schema, the description should provide more context about what user attributes are, but it does not. The tool's purpose remains vague.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter trial_number has no description in the schema (0% coverage). The description does not explain its meaning, format, or constraints, forcing the agent to infer from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and resource (user attributes in a trial), distinguishing it from sibling tools like set_trial_user_attr. However, it lacks specificity about the context (e.g., Optuna) and what user attributes are involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as set_trial_user_attr or get_trials. The description does not mention prerequisites, limitations, or appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_optuna_dashboardC
Launch the Optuna dashboard
| Name | Required | Description | Default |
|---|---|---|---|
| port | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description must bear full burden. It only states 'Launch the Optuna dashboard' without disclosing important behaviors: whether the dashboard runs locally, blocks the process, returns a URL, or requires a running study. The output schema exists but is not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (4 words), which is concise but not necessarily effective. It could benefit from a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and parameter descriptions, the description lacks completeness. It does not explain what the dashboard displays, how to access it, or any dependencies. The output schema is present but not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the 'port' parameter. It does not explain what the port is used for, the expected range, or the default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool launches the Optuna dashboard, which is a specific verb+resource. However, it does not differentiate from sibling plotting tools that also visualize Optuna results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many sibling plot_* tools. There is no mention of prerequisites (e.g., an existing study) or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_contourB
Return the contour plot as an image.
Args:
params:
Parameter list to visualize. The default is all parameters.
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
target_name:
Target’s name to display on the color bar.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Return the contour plot as an image' but does not specify the image format (e.g., PNG bytes, file path) or side effects (e.g., whether it modifies the study). It also does not mention if a study session is required or any performance implications. The parameter indexing note (0-indexed) is useful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with a clear one-line summary followed by parameter details. It is concise and free of fluff. Each sentence serves a purpose. The parameter descriptions are appropriately detailed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should specify the return type (e.g., bytes, base64 string). It does not. It also omits context about the required environment (e.g., an active study with trials) and whether this tool can be called stand-alone. The tool name suggests Optuna integration, but the description does not clarify dependencies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning. It explains that 'params' is a parameter list to visualize (default all), 'target' is a 0-indexed objective value index, and 'target_name' is the color bar label. This adds significant semantic value beyond the schema's default titles. However, it could further clarify valid values for 'params' (e.g., must be parameter names from the study).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Return the contour plot as an image.' This clearly indicates the action and output. It distinguishes from sibling plot tools like plot_slice or plot_parallel_coordinate by specifying 'contour plot'. However, it lacks context on what a contour plot represents in the optimization framework, e.g., visualizing objective function over two parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use contour plots over alternatives like plot_slice or plot_parallel_coordinate. It does not mention prerequisites (e.g., must have a study with trials) or exclusions. The Args section only documents parameters without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_edfC
Return the EDF plot as an image.
Args:
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
target_name:
Target’s name to display on the axis label.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits, but it omits details such as return format (e.g., image type), side effects (none), and prerequisites (e.g., trials must exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise but contains a docstring format with repetitive parameter documentation. The main purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks explanation of the return value (image format, resolution). Prerequisites like requiring a study with trials are not mentioned, making it less complete given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema by explaining that target is 0-indexed with examples, and that target_name is the axis label. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return the EDF plot as an image' with a specific verb and resource. However, it does not distinguish from sibling plot tools like plot_contour or plot_optimization_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only details parameters without any context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_hypervolume_historyC
Return the hypervolume history plot as an image.
Args:
reference_point:
A list of reference points to calculate the hypervolume.
| Name | Required | Description | Default |
|---|---|---|---|
| reference_point | Yes |
TDQS
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 fails to mention side effects, authorization needs, or output format (e.g., whether the image is returned as bytes or base64). The only behavior stated is 'return the plot,' which is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single-line summary followed by a structured Args block. It is front-loaded and avoids unnecessary details. However, it could be shorter if the docstring format is considered standard.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter and lack of output schema or annotations, the description is incomplete for reliable invocation. An agent lacks information on the return format, prerequisite study state, and interpretation of the plot, making it difficult to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the parameter description must compensate. It explains that reference_point is a list of points for hypervolume calculation, adding meaning beyond the schema's type-only definition. However, it does not specify constraints like number of points, range, or precision, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a hypervolume history plot as an image, using a specific verb and resource. It distinguishes from sibling plot tools like plot_contour or plot_edf by specifying 'hypervolume history'. However, it does not explain what hypervolume history is, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., existence of trials with hypervolume) or provide context for when hypervolume history is relevant, such as in multi-objective optimization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_optimization_historyA
Return the optimization history plot as an image.
Args:
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
For single-objective optimization, None (auto) is recommended.
For multi-objective optimization, this must be specified.
target_name:
Target's name to display on the axis label and the legend.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It explains parameter behavior (0-indexed target, axis label) but does not mention read-only status, output format (e.g., URL vs base64), or error handling. Partially informative but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and then provides structured parameter descriptions. It is reasonably concise for a two-parameter tool, though the Python-docstring style adds some verbosity. No superfluous sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and two parameters, the description covers parameter usage but lacks details about the returned image (e.g., format, size, how it's returned) and potential errors. For a plot tool, some completeness gaps exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description fully compensates by explaining both parameters in detail. For 'target', it clarifies indexing, auto for single-objective, and required for multi-objective. For 'target_name', it states its display purpose. This adds significant meaning beyond the schema's default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Return the optimization history plot as an image,' clearly stating the verb and resource. It distinguishes from sibling plotting tools (e.g., plot_contour, plot_slice) by its specific focus on optimization history, though it doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context for the 'target' parameter (single vs multi-objective optimization) but does not specify when to use this tool over alternative plotting tools or when not to use it. It lacks explicit when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_parallel_coordinateB
Return the parallel coordinate plot as an image.
Args:
params:
Parameter list to visualize. The default is all parameters.
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
target_name:
Target’s name to display on the axis label and the legend.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as read-only nature, side effects, or permissions. It only states it returns an image.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with Args section. It is informative but slightly verbose; each sentence is useful. Could be more concise, but performs well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a plot generation tool, the description sufficiently explains return type (image) and parameters. No output schema, but the basic behavior is conveyed. Missing advanced context like image format or interaction with other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds significant meaning: explains 'params' default is all parameters, 'target' is 0-indexed index for objective value, and 'target_name' is for axis label. This compensates well for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a parallel coordinate plot as an image, specifying verb and resource. However, it does not differentiate from sibling plot tools like plot_contour or plot_slice, lacking explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only explains parameters without context on appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_param_importancesA
Return the parameter importances plot as an image.
Args:
params:
Parameter list to visualize. The default is all parameters.
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
By default, all objective will be plotted by setting target to None.
target_name:
Target’s name to display on the legend.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose return format, side effects, or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear Args section, but slightly verbose; could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Thorough on parameters but lacks output format details; no annotations or output schema to supplement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description explains all three parameters in detail, including defaults and indexing behavior, compensating for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a parameter importances plot as an image, which is specific and distinct from sibling plot tools like plot_contour or plot_slice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs others; lacks context like prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_pareto_frontA
Return the Pareto front plot as an image for multi-objective optimization.
Args:
target_names:
Objective name list used as the axis titles. If :obj:`None` is specified,
"Objective {objective_index}" is used instead. If ``targets`` is specified
for a study that does not contain any completed trial,
``target_name`` must be specified.
include_dominated_trials:
A flag to include all dominated trial's objective values.
targets:
A list of indices to specify the objective values to display.
Note that this is 0-indexed, i.e., to plot the first and second objective value, set this to [0, 1].
If the number of objectives is neither 2 nor 3, ``targets`` must be specified.
By default, all objectives are displayed.
| Name | Required | Description | Default |
|---|---|---|---|
| target_names | No | ||
| include_dominated_trials | No | ||
| targets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It explains the return type (image) and parameter conditions, but does not explicitly state that the tool is read-only, has no side effects, or describe the image format. This leaves some ambiguity about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with parameter explanations. It front-loads the purpose and uses bullet-style args. Some explanations (e.g., targets) are slightly verbose but each sentence adds value. Could be more concise but remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of multi-objective optimization and lack of output schema, the description covers parameter semantics and conditions well. It does not specify the image output format or prerequisites (e.g., at least 2 objectives), but the parameter constraints are clear enough for an intermediate user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates fully by detailing each parameter: target_names (axis titles, default behavior), include_dominated_trials (flag function), and targets (index usage and constraints). It adds significant meaning beyond the schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a Pareto front plot as an image for multi-objective optimization. It uses specific verbs ('Return') and resources ('Pareto front plot'), and the context of sibling plot tools (contour, slice, etc.) helps differentiate it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains necessary conditions for parameters (e.g., target_names must be specified if no completed trials, targets must be specified if objectives not 2 or 3). It provides implicit guidance for multi-objective use, but does not explicitly say when NOT to use it versus other plot tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_rankA
Return the rank plot as an image.
Args:
params:
Parameter list to visualize. The default is all parameters.
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
target_name:
Target’s name to display on the color bar.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it returns an image but doesn't disclose any side effects, authorization needs, or operational constraints. The explanation of the zero-indexed target is helpful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, but the following Args section is verbose and formatted like a docstring. It could be more concise, e.g., stating defaults inline rather than full parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a plot tool with no output schema, the description covers the inputs and basic behavior. It doesn't explain what a rank plot is or the format of the image, but given sibling tools are similar visualizations, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description adds meaning for all three parameters: params (list to visualize, default all), target (0-indexed objective index), and target_name (color bar label). This compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Return the rank plot as an image', which is a specific verb and resource. It distinguishes itself from sibling plot tools like plot_contour, plot_slice, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters in detail but does not provide guidance on when to use this tool versus alternatives (e.g., when to choose rank plot over other plots). No explicit when/not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_sliceC
Return the slice plot as an image.
Args:
params:
Parameter list to visualize. The default is all parameters.
target:
An index to specify the value to display. To plot nth objective value, set this to n.
Note that this is 0-indexed, i.e., to plot the first objective value, set this to 0.
target_name:
Target’s name to display on the axis label.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| target | No | ||
| target_name | No | Objective Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only states it returns an image but omits details like side effects, required state (e.g., existing study), output format, or permissions. This lack of transparency could lead to incorrect invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description starts with a concise first sentence but then expands into an Args block. It is not overly verbose but could be more succinct. The structure is reasonable but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and many sibling tools, the description is incomplete. It does not specify the return type (e.g., base64 image, file path) or prerequisites (e.g., an existing study). This leaves gaps for an agent to confidently invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds significant value: it explains 'params' as a parameter list defaulting to all, 'target' as a 0-indexed objective index, and 'target_name' as axis label. This clarifies meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Return the slice plot as an image.' This is a clear verb+resource statement. However, it does not differentiate from sibling plot tools like plot_contour or plot_optimization_history, lacking context for when to choose slice plot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It only describes parameters, leaving the agent to infer usage without any when-to-use or when-not-to-use hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_timelineB
Return the timeline plot as an image.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states it returns an image. It does not disclose that the tool is read-only, has no side effects, or that it requires an existing study. Minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no unnecessary words. It is front-loaded and minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is adequate but lacks context about what the timeline plot shows and any dependencies. It could be more helpful by mentioning the study context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description adds no parameter info, but baseline is 4 per instructions. The schema coverage is 100% (no params), so no additional detail is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a timeline plot as an image, distinguishing it from sibling plotting tools like plot_contour or plot_optimization_history. However, it does not explain what the timeline plot represents, which could be ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided on when to use this tool versus alternatives like plot_contour or plot_optimization_history. The description does not mention any prerequisites or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_metric_namesB
Set metric_names. metric_names are labels used to distinguish what each objective value is.
Args:
metric_names:
The list of metric name for each objective value.
The length of metric_names list must be the same with the number of objectives.
| Name | Required | Description | Default |
|---|---|---|---|
| metric_names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| study_name | Yes | |
| sampler_name | No | The name of the sampler used in the study. |
| directions | No | The optimization directions for each objective. |
| metric_names | No | The metric names for each objective. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only mentions the length constraint for metric_names, omitting details like overwrite behavior or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and front-loaded with the core action. Minor verbosity from docstring format (Args) but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple 1-parameter tool, but lacks side effects, return value, or prerequisites. Output schema exists but not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, but description adds purpose and the length constraint, significantly clarifying the parameter beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Set metric_names' and explains their role as labels for objective values. This distinguishes it from sibling tools like get_metric_names that retrieve them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like set_trial_user_attr or when not to use it. Sibling tools exist but no explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_samplerA
Set the sampler for the study. The sampler must be one of the following: - TPESampler - NSGAIISampler - RandomSampler - GPSampler
The default sampler for single-objective optimization is TPESampler.
The default sampler for multi-objective optimization is NSGAIISampler.
GPSampler is a Gaussian process-based sampler suitable for low-dimensional numerical optimization problems.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| study_name | Yes | |
| sampler_name | No | The name of the sampler used in the study. |
| directions | No | The optimization directions for each objective. |
| metric_names | No | The metric names for each objective. |
TDQS
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 the allowed values and default behaviors but does not mention side effects (e.g., whether changing the sampler mid-study is safe or resets state).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose statement, list of samplers, then default and guidance. Could be slightly more concise, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and an output schema (though not visible), the description covers the essentials: what the tool does, the valid options, and usage hints. It is largely sufficient for an agent to understand and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema enumerates the samplers with no description. The description adds value by explaining defaults and suitability for different scenarios, going beyond the schema's enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set the sampler for the study') and specifies the exact allowed values. No sibling tool has a similar purpose, so it is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides default samplers for single-objective and multi-objective optimization, and notes that GPSampler is suitable for low-dimensional numerical problems. However, it does not explicitly state when not to use each sampler or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_trial_user_attrC
Set user attributes for a trial
| Name | Required | Description | Default |
|---|---|---|---|
| trial_number | Yes | ||
| key | Yes | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits like overwriting behavior, persistence, authorization needs, or side effects. It fails to do so, only stating the action without any behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is under-specified for a 3-parameter tool. It lacks necessary detail, making it insufficiently informative despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no schema descriptions, and an output schema that is not referenced, the description is incomplete. It does not explain return values, error conditions, or effects on the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no meaning beyond the parameter names. It does not explain what 'user attributes' are, what types 'value' can take, or how trial_number is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set user attributes for a trial' clearly states the verb (set) and resource (user attributes for a trial). It distinguishes from siblings like add_trial (which adds a trial) and get_trial_user_attrs (which retrieves attributes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as add_trial, ask, or get_trial_user_attrs. The agent lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tellC
Report the result of a trial
| Name | Required | Description | Default |
|---|---|---|---|
| trial_number | Yes | ||
| values | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| trial_number | Yes | |
| params | No | The parameter values suggested by the trial. |
| values | No | The objective values of the trial. |
| user_attrs | No | User-defined attributes for the trial. |
| system_attrs | No | System-defined attributes for the trial. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but gives minimal behavioral info. Does not state side effects, return value, or any constraints (e.g., required study state). The output schema exists but is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (single sentence) but under-specified. Not wasteful, but fails to provide necessary detail for correct usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two required parameters and no annotations, the description is incomplete. It does not explain the role of the tool within the broader optimization workflow or clarify how it differs from similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to parameters. 'trial_number' and 'values' are left unexplained; their purpose and expected format are unclear without external domain knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Report the result of a trial' is vague but not a tautology. It states a verb 'report' and resource 'result of a trial', but lacks specificity on what reporting entails (e.g., updating a trial with values). Fails to distinguish from sibling tools like 'add_trial'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'add_trial' or 'ask'. No prerequisites or context for invocation are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose. The many plot tools are differentiated by the type of plot they generate, and the core tools like ask, tell, create_study, etc. have unique roles without overlap.
Most tools follow a verb_noun pattern (add_trial, create_study, get_trials), but a few deviate like 'ask', 'tell' (single verbs), and 'best_trial' (adjective_noun). Overall consistent enough for readability.
26 tools is above the typical range of 3-15, but each tool serves a clear purpose within the Optuna ecosystem. The count is justified by the breadth of functionality including many visualization tools.
The tool set covers the full lifecycle of hyperparameter optimization: creating studies, adding trials, suggesting/reporting results, retrieving best trials, setting samplers, and extensive analysis with plots. No obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP server for building and testing AI agents with multi-model experimentation and insights.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.3,501289MIT
- AlicenseNot gradedqualityDmaintenanceA high-performance Model Context Protocol (MCP) server designed for large language models, enabling real-time communication between AI models and applications with support for session management and intelligent tool registration.2MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol server that enables large language models to access database metadata and perform cross-engine data querying across diverse database ecosystems.1652Apache 2.0
- -licenseAqualityNot gradedmaintenanceA Model Context Protocol server that allows LLMs to interact with Python environments, enabling code execution, file operations, package management, and development workflows.9
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/optuna/optuna-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server