Optuna MCP Server
Automatiza la optimización y el análisis utilizando Optuna.
Documentación
Servidor MCP de Optuna
Un servidor de Model Context Protocol (MCP) que automatiza la optimización y el análisis utilizando Optuna.
Casos de uso
El servidor MCP de Optuna se puede utilizar en los siguientes casos de uso, por ejemplo.
- Optimización automatizada de hiperparámetros por LLMs
- Análisis interactivo de los resultados de optimización de Optuna a través de una interfaz de chat
- Optimizar la entrada y salida de otras herramientas MCP
Para más detalles, consulte la sección de Ejemplos.
Instalación
El servidor MCP de Optuna se puede instalar usando uv o Docker.
Esta sección explica cómo instalar el servidor MCP de Optuna, usando Claude Desktop como ejemplo de cliente MCP.
Uso con uv
Antes de comenzar el proceso de instalación, instale uv desde Astral.
Luego, agregue la configuración del servidor MCP de Optuna al cliente MCP.
Para incluirlo en Claude Desktop, vaya a Claude > Configuración > Desarrollador > Editar configuración > claude_desktop_config.json
y agregue lo siguiente:
{
"mcpServers": {
"Optuna": {
"command": "/path/to/uvx",
"args": [
"optuna-mcp"
]
}
}
}
Adicionalmente, puede especificar el almacenamiento de Optuna con el argumento --storage para persistir los resultados.
{
"mcpServers": {
"Optuna": {
"command": "/path/to/uvx",
"args": [
"optuna-mcp",
"--storage",
"sqlite:///optuna.db"
]
}
}
}
Después de agregar esto, reinicie la aplicación Claude Desktop. Para más información sobre Claude Desktop, consulte la página de inicio rápido.
Uso con Docker
También puede ejecutar el servidor MCP de Optuna usando Docker. Asegúrese de tener Docker instalado y ejecutándose en su máquina.
{
"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"
]
}
}
}
Herramientas proporcionadas por Optuna MCP
Optuna MCP proporciona las siguientes herramientas. Específicamente, ofrece funciones primitivas de Optuna como Study, Trial, Visualization y Dashboard. Dado que los clientes MCP conocen la lista de herramientas y los detalles de cada herramienta, los usuarios no necesitan recordar esos detalles.
Study
- create_study - Crear un nuevo estudio de Optuna con el study_name y las direcciones dados.
Si el estudio ya existe, simplemente se cargará.
study_name: nombre del estudio (cadena, obligatorio).directions: Las direcciones de optimización (lista de cadenas literales minimize/maximize, opcional).
- set_sampler - Establecer el muestreador para el estudio.
name: el nombre del muestreador (cadena, obligatorio).
- get_all_study_names - Obtener todos los nombres de estudios del almacenamiento.
- set_metric_names - Establecer metric_names. Los metric_names son etiquetas utilizadas para distinguir qué representa cada valor objetivo.
metric_names: La lista de nombres de métricas para cada objetivo (lista de cadenas, obligatorio).
- get_metric_names - Obtener metric_names.
- No se requieren parámetros.
- get_directions - Obtener las direcciones del estudio.
- No se requieren parámetros.
- get_trials - Obtener todos los ensayos en formato CSV.
- No se requieren parámetros.
- best_trial - Obtener el mejor ensayo.
- No se requieren parámetros.
- best_trials - Devolver los ensayos ubicados en el frente de Pareto del estudio.
- No se requieren parámetros.
Trial
- ask - Sugerir nuevos parámetros usando Optuna.
search_space: el espacio de búsqueda para Optuna (diccionario, obligatorio).
- tell - Informar el resultado de un ensayo.
trial_number: el número del ensayo (entero, obligatorio).values: el resultado del ensayo (flotante o lista de flotantes, obligatorio).
- set_trial_user_attr - Establecer atributos de usuario para un ensayo.
trial_number: el número del ensayo (entero, obligatorio).key: la clave del atributo de usuario (cadena, obligatorio).value: el valor del atributo de usuario (cualquier tipo, obligatorio).
- get_trial_user_attrs - Obtener atributos de usuario en un ensayo.
trial_number: el número del ensayo (entero, obligatorio).
Visualización
- plot_optimization_history - Devolver el gráfico del historial de optimización como imagen.
target: índice para especificar qué valor mostrar (entero, opcional).target_name: nombre del objetivo para mostrar en la etiqueta del eje (cadena, opcional).
- plot_hypervolume_history - Devolver el gráfico del historial de hipervolumen como imagen.
reference_point: una lista de puntos de referencia para calcular el hipervolumen (lista de flotantes, obligatorio).
- plot_pareto_front - Devolver el gráfico del frente de Pareto como imagen para optimización multiobjetivo.
target_names: lista de nombres de objetivos utilizados como títulos de los ejes (lista de cadenas, opcional).include_dominated_trials: un indicador para incluir todos los valores objetivos de los ensayos dominados (booleano, opcional).targets: una lista de índices para especificar los valores objetivos a mostrar (lista de enteros, opcional).
- plot_contour - Devolver el gráfico de contorno como imagen.
params: lista de parámetros a visualizar (lista de cadenas, opcional).target: un índice para especificar el valor a mostrar (entero, obligatorio).target_name: nombre del objetivo para mostrar en la barra de colores (cadena, obligatorio).
- plot_parallel_coordinate - Devolver el gráfico de coordenadas paralelas como imagen.
params: lista de parámetros a visualizar (lista de cadenas, opcional).target: un índice para especificar el valor a mostrar (entero, obligatorio).target_name: nombre del objetivo para mostrar en la etiqueta del eje y la leyenda (cadena, obligatorio).
- plot_slice - Devolver el gráfico de cortes como imagen.
params: lista de parámetros a visualizar (lista de cadenas, opcional).target: un índice para especificar el valor a mostrar (entero, obligatorio).target_name: nombre del objetivo para mostrar en la etiqueta del eje (cadena, obligatorio).
- plot_param_importances - Devolver el gráfico de importancias de parámetros como imagen.
params: lista de parámetros a visualizar (lista de cadenas, opcional).target: un índice para especificar el valor a mostrar (entero/nulo, opcional).target_name: nombre del objetivo para mostrar en la leyenda (cadena, obligatorio).
- plot_edf - Devolver el gráfico EDF como imagen.
target: un índice para especificar el valor a mostrar (entero, obligatorio).target_name: nombre del objetivo para mostrar en la etiqueta del eje (cadena, obligatorio).
- plot_timeline - Devolver el gráfico de línea de tiempo como imagen.
- No se requieren parámetros.
- plot_rank - Devolver el gráfico de rango como imagen.
params: lista de parámetros a visualizar (lista de cadenas, opcional).target: un índice para especificar el valor a mostrar (entero, obligatorio).target_name: nombre del objetivo para mostrar en la barra de colores (cadena, obligatorio).
Panel web
- launch_optuna_dashboard - Iniciar el panel de Optuna.
port: puerto del servidor (entero, opcional, predeterminado: 58080).
Ejemplos
- Optimización de la función 2D-Sphere
- Iniciar el panel de Optuna y analizar los resultados de optimización
- Optimización de los parámetros de codificación de FFmpeg
- Optimización de la receta de galletas
- Optimización de la configuración de Matplotlib
Optimización de la función 2D-Sphere
Aquí presentamos un ejemplo simple de optimización de la función 2D-Sphere, junto con ejemplos de indicaciones y el resumen de las respuestas del LLM.
| Indicación del usuario | Salida en Claude |
|---|---|
| (Iniciar Claude Desktop) | ![]() |
| Por favor, cree un estudio de Optuna llamado "Optimize-2D-Sphere" para minimización. | ![]() |
| Por favor, sugiera dos parámetros flotantes x, y en [-1, 1]. | ![]() |
| Por favor, informe el valor objetivo x**2 + y**2. Para calcular el valor, use el intérprete de JavaScript y no redondee los valores. | ![]() |
| Por favor, sugiera otro conjunto de parámetros y evalúelo. | ![]() |
| Por favor, grafique el historial de optimización hasta ahora. | ![]() |
Iniciar el panel de Optuna y analizar los resultados de optimización
También puede iniciar el panel de Optuna a través del servidor MCP para analizar los resultados de optimización de forma interactiva.
| Indicación del usuario | Salida en Claude |
|---|---|
| Por favor, inicie el panel de Optuna. | ![]() |
De forma predeterminada, el panel de Optuna se iniciará en el puerto 58080.
Puede acceder a él navegando a http://localhost:58080 en su navegador web como se muestra a continuación:

El panel de Optuna proporciona varias visualizaciones para analizar los resultados de optimización, como el historial de optimización, las importancias de parámetros y más.
Optimización de los parámetros de codificación de FFmpeg

Esta demostración muestra cómo usar el servidor MCP de Optuna para encontrar automáticamente parámetros óptimos de codificación de FFmpeg. Optimiza las opciones de codificación x264 para maximizar la calidad de video (medida por la puntuación SSIM) mientras mantiene un tiempo de codificación razonable.
Consulte examples/ffmpeg para más detalles.
Optimización de la receta de galletas

En este ejemplo, optimizaremos una receta de galletas, haciendo referencia al artículo titulado "Bayesian Optimization for a Better Dessert".
Consulte examples/cookie-recipe para más detalles.
Optimización de la configuración de Matplotlib
![]() | ![]() |
Este ejemplo optimiza una configuración de Matplotlib.
Consulte examples/auto-matplotlib para más detalles.
Licencia
Licencia MIT (consulte LICENSE).







